编写 GDL 预处理器指令时,请使用以下准则:
为防止意外后果,GDL 文件的编写者在定义预处理器符号和前缀时应遵守以下准则。
不要取消定义在文件中未显式定义的任何符号,并且在文件结束之前,始终取消定义您在文件中定义的所有符号。 换句话说,始终保持符号和前缀堆栈的原样。 如果遵循此准则,则永远不会发生涉及预处理器的命名空间冲突。
GDL 分析器接口将使客户端能够注入将在根 GDL 文件之前处理的任意大小的 GDL 文本片段。 此机会使客户端能够定义所需的任何预处理器符号,以便分析器处理 GDL 文件的相应部分。 此片段可能包括其他 GDL 标准模板或定义标准宏。
注意 当文件被内嵌时,主机中已经定义的所有预处理器符号和前缀在预处理包含文件时继续保持定义状态。 将文件作为预编译进行处理时,将创建一个全新的分析环境。 因此,所有符号和前缀都返回到其默认值。 将作为预编译处理的文件不应依赖于外部或主机文件定义的预处理器符号。
注意 预处理器指令和宏不受 switch/case 构造影响,因为这些指令在任何 switch/case 构造之前会被单独预处理。
GDL 预处理器指令不支持逻辑运算符。 有关解决此问题的详细信息,请参阅 GDL 预处理中的逻辑运算符问题。