注释
为了程序维护的简洁,我们建议在源码中使用注释. 源码中的注释可以帮助读者,但是会被BDL忽略.你可以使用注
释符在开发阶段暂时注释掉不要执行的指令,代替直接从源码中删除此部分指令.
源码中的注释可以按照下面任何一种方式指定:
1、一对负号(--)指示当前行到结尾为注释。这个注释符和ANSI 标准的SQL注释符一致。
2、井号(#)注释符指示当前行到结尾为注释。
3、一个左大括号( { ) 代表一个注释块的开始。后面可以跟任何字符(包括行终断).这个注释块直到右大括号( } )
被发现才结束。
MAIN
-- DISPLAY "This line will be ignored."
# DISPLAY "This line will be ignored."
{
DISPLAY "This line will be ignored."
DISPLAY "This line will be ignored."
}
DISPLAY "Hello, World"
END MAIN
在引号代表的字符串中,编译器把注释符看作常量字符,而不是注释符。
你不能使用大括号({ })在注释块里嵌套注释块。
注释语句不能出现在表单显示段的定义中。比如 SCREEN,TABLE, TREE, 或者GRID.
#符号在SQL语句块或者SQL语句的预准备语句中是不代表注释的。也不可以在数学表达式中使用连续的负号
(--),BDL会把它后面的语句作为注释。你可以使用空格或者括号在数学表达式中分开连续的负号。
除非在同一份源码中需要Informix 4GL编译,否则不要在--注释符后面跟#符号。--#特殊注释符号是在Genero BDL
代码中区别Informix 4GL代码。这种条件源码编译技术可以转换--#{和--#}注释包含的代码块:
MAIN
--# DISPLAY "Ignored by I4GL, but compiled with BDL."
--#{
DISPLAY "Ignored by BDL, but compiled with I4GL."
--#}
END MAIN
总结:--#开始的代码块,Gennero BDL编译, Informix 4GL会忽略。--#{和--#}包含的代码块,Informix 4GL编译,
Genero BDL会忽略。
标识符
一个Genero BDL 标识符是和程序文件名类似的字符串。
标识符必须符合以下规则:
1、必须包含至少一个字符,字符长度不限制。
2、只用ASCII 字母,数字,和下划线(_)是有效的符号
3、空格,连接符号和其他非阿拉伯数字字符时无效符号
4、第一个字符必须是字母或者下划线
5、一般标识符是大小写不敏感的,因此my_Var 和 MY_vaR 代表同一个标识符。然而,在有些情况下,标识符大
小写是不一样的(像AUI树中的动作名)。建议使用小写标识符避免错误。
在非英语地区,如果非ASCII字符在本地字符集中有定义,BDL标识符可以包含这些非ASCII字符在标识中。在非
基于字母东亚地区的多字节语言(比如中文,日文,韩文)支持中,标识符可以不用字母开头。仍然建议程序源码用
ASCII字符集编写。
预编译指令
Genero BDL 支持预编译指令,允许写宏或者条件编译规则
&include "myheader.4gl"
FUNCTION debug( msg )
DEFINE msg STRING
&ifdef DEBUG
DISPLAY msg
&endif
END FUNCTION
注意:使用预编译要小心,除非本语言无法解决。不要让源码被预编译指令包围。这样会使代码不易阅读或者维护。