Forcal中的“关键字”
在一般的编程语言中,关键字是事先定义的有特别意义的字,关键字是保留字,不能用来做标识符(如变量名),使用关键字来做变量名是一种语法错误,不能通过编译。按此定义,则Forcal中没有关键字。Forcal中只有常量、变量和函数。但有些符号常量、变量名或函数名使用很频繁,可当作“关键字”来使用,不过不符合上述关键字的定义,例如:
f(return) = return(return+1); //return是自变量,同时也是一个二级函数。
f(2);
Forcal允许符号常量、变量和函数用同一个标识符表示,参考标识符解释规则。但尽量避免这种用法。
Forcal核心库中的“关键字”见下表(Forcal核心库中未定义任何符号常量,但一些Forcal扩展库中定义的符号常量可当作“关键字”来使用,如FcData中定义的符号常量char、int等等。该表仅收录Forcal核心库中的“关键字”)。
关键字 | 类型 | 功能 |
static | 静态变量 | 定义静态变量。 |
free | 静态变量 | 专用静态变量,进行销毁表达式前的释放工作。 |
common | 全局变量 | 定义全局变量。 |
const | 二级函数 | 定义永久性符号常量或暂时性符号常量。 |
return | 二级函数 | 结束计算并立即返回表达式的值。 |
if | 二级函数 | 条件满足时执行计算多个语句。 |
which | 二级函数 | 自定义分段函数,选择计算函数。 |
while | 二级函数 | “当型”循环函数。 |
until | 二级函数 | “直到型”循环函数。 |
continue | 二级函数 | 返回while或until循环的开始。 |
break | 二级函数 | 跳出while或until循环。 |
Module | 二级函数 | 创建模块命名空间。 |
OutFun | 二级函数 | 输出模块命名空间中的表达式。 |
附:Forcal标识符解释规则
1)标识符后若有括号,表示是一个函数,否则是一个变量或常量名。
2)如果一个变量名与常量名相同,则常量名被忽略。
3)如果是一个普通的函数名,则确定函数的顺行是:一级函数或流程控制函数、自定义表达式、二级函数。
4)如果是一个命名空间中的函数,确定函数的顺行是:模块命名空间、二级函数命名空间。
5)模块私有表达式与一个公有表达式重名时,优先调用本模块中的私有表达式。