目录

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

原则上包名应和文件名相同