====== Covariant Script 核心概念 ====== ===== 2.1 语句(statement) ===== 语句1; 语句2 语句3 **以换行符或分号结束的一行代码称为语句** 语句1 ; 语句2 ; 语句3 **任意语句都可以将分号作为终结符** 单独一行语句也可以使用分号作为结尾 ----- \\ ===== 2.2 预处理(preprocessor) ===== 语句 # 注释 **任意#之后至本行结尾的内容均视为注释** @begin 代码 @end **在 @begin 和 @end 之间的代码可以跨行编写** 虽然可以跨行编写,但不能破坏词元的完整性,如一个完整的字符串中间不能换行 @charset: 字符集 指定程序的编码,可以是: ^ **编码** ^ **字符集** ^ | ASCII纯文本 | ascii | | UTF-8简体中文 | utf8 | | GBK简体中文 | gbk | Covariant Script 官方解释器默认使用的字符集是 UTF-8 当选择Unicode中文编码(UTF-8/GBK)时,**可以使用简体中文作为标识符** @require: 标准号 **指定程序需要的最低CovScript语言标准号** @exit **(仅REPL可用)退出解释环境** ----- \\ ===== 2.3 关键字(keyword) ===== Covariant Script的关键字分为两种: 一种为**强制型关键字**,即编译器遇到这个词即视为使用这个语法标识符; 一种为**标识型关键字**,即仅在符合语法时编译器才会将其视为语法标识符 强制型关键字表 ^ 关键字 ^ ''and'' ^ ''or'' ^ ''not'' ^ ''typeid'' ^ ''new'' ^ | **含义** | 与运算符 | 或运算符 | 非运算符 | 类型信息 | 新建栈对象 | || ^ 关键字 ^ ''null'' ^ ''local'' ^ ''global'' ^ ''true'' ^ ''false'' ^ ''gcnew'' ^ | **含义** | 空指针 | 本地作用域 | 全局作用域 | 逻辑真 | 逻辑假 | 新建堆对象 | 标识型关键字表(190501) ^ 关键字 ^ ''import'' ^ ''as'' ^ ''package'' ^ ''namespace'' ^ ''using'' ^ ''struct'' ^ ''class'' ^ ''extends'' ^ | **含义** | 引入包 | 包定义 | 声明名称空间 | 引入名称空间 | 声明类 || 继承类 | || ^ 关键字 ^ ''block'' ^ ''var'' ^ ''constant'' ^ ''if'' ^ ''else'' ^ ''switch'' ^ ''case'' ^ ''default'' ^ | **含义** | 声明语句块 | 声明变量 | 声明常量 | 分支语句 ||||| || ^ 关键字 ^ ''end'' ^ ''while'' ^ ''loop'' ^ ''until'' ^ ''for'' ^ ''foreach'' ^ ''in'' ^ ''do'' ^ | **含义** | 结束语句块 | 循环语句 ||||||| || ^ 关键字 ^ ''break'' ^ ''continue'' ^ ''function'' ^ ''override'' ^ ''return'' ^ ''try'' ^ ''catch'' ^ ''throw'' ^ | **含义** | 跳出循环 | 进入下一轮循环 | 声明函数 | 覆写函数 | 返回语句 | 异常处理 |||
注意:在190501前的标准中,标识性关键字也属于强制型关键字的一部分
----- \\ ===== 2.4 模块(module) ===== import Package名, Package名... 引入一个或多个Package import Package名[(.名称空间名)...] as Package别名 **引入一个package或package内的名称空间,并设置别名** 引入的**package**可以是 '' *.csp '' 文件(CovScript包)或者是 ''*.cse'' 文件(CovScript扩展) 当两者同时存在时会优先引入 ''*.csp'' 文件(CovScript包) package Package名 **声明一个Package** 原则上包名应和文件名相同