预处理指令(preprocessor)

 TJS2 可以对 条件编译表达式 ( 相当于 C 中的 #if 和 #endif 的东西 ) 进行处理。也就是说,可以在脚本(script)被实际执行之前进行处理,依照条件只解释脚本中想要解释的一部分,而对其他部分不进行解释。
 件编译表达式的书写风格和 C 中的预处理指令不同,是在哪里都能写的自由风格。并不是像 C 中那样每行只能写一条指令。

@set 指令

 @set 指令会对条件编译表达式求值,并将结果忽略掉。格式如下。
    @set(表达式)

 在“表达式”那个位置书写条件编译表达式。这里可以使用下面的这些运算符。

    ,  =  !=  ==  ||  &&  |  ^  &  <  >  <=  >=  +  -  %  *  /  !  +  -  ( )

 这些运算符的作用请参考 表达式和运算符 。但是,条件编译表达式中只能处理整数。
 可以使用任意的变量和常量。变量名的命名和 记号 中的变量和常量适用相同的命名规则。
 但是,预处理指令中使用的变量和 TJS2 脚本中使用的变量名并不互相影响 ( 并不共享同一个名字空间 )。

@if 指令, @endif 指令

 @if 会对条件编译表达式求值,结果为 0 的话,到下一个 @endif 为止,这之间的脚本不会被解释。结果不是 0 则会解释这些脚本。
 格式如下。

    @if(表达式)              ...         @endif

    在“表达式”那个位置指定条件编译表达式。 @if ~ @endif 可以欠套。


例:
    @if(flag==0)  // 还没有被代入任何值的变量在这里会被看作是 0
        @set(flag=1)
        ****
    @endif
    // ↑  写在 **** 部分的脚本只会被解释一次

    @if(version>=0x02040009)
        @if(flag)
            ****
        @endif
    @endif 
    // ↑ version 在 0x02040009 (2.4.9) 以上且 flag 不为 0 的时候会解释 **** 部分的脚本

已定义的变量

 version 变量代表当前的 TJS2 的版本。

 该变量为16进制的 0x0XYYZZZZ 形式的数值, X 的部分是主版本号,YY 的部分是副版本号, ZZZZ 是发布序号。例如 0x02040009 的话,版本就是 2.4.9 。