跳到主要内容
🚨 重要提示

本项目目前仍处于早期开发阶段,核心功能尚未完全实现,语法规范和工具链仍在持续完善中。

基础语法

备注

本文档撰写过程中,参考了以下文档:

基础

Collie 语言区分大小写,并使用 Unicode 字符集。

注释

注释在代码中不起作用,你可以在必要处使用注释来使代码更加清晰,增加代码可阅读性。

危险

另一个方案:使用 # 注释

行注释(单行注释)

// 单行注释可以单独写一行

foo() // 也可以写在一行之后
提示

注意:为规范代码整体观感,我们强烈建议您,// 与注释之间保留一个空格

// 推荐这样写

//不推荐这样写

块注释(多行注释)

/*
* 多行注释
*/

/* 或者这样 */

/* 还可以...
这样 */

文档注释

注意

另一个方案:使用 /// 注释

/**
* 这是一个文档注释
* 可以出现在 类 或 函数 之前
*/

嵌套块注释【TODO;危险】

嵌套1层

可以在嵌套块注释中,嵌套1层块注释。

/*x/*xxx*/x*/

无限嵌套

可以在嵌套块注释中,嵌套任意多个其他注释。

/* 可以在多行注释中,
// 嵌套一个单行注释
/* 再嵌套一个多行注释,或者 /* 再 /* */ 嵌套 */ 好几个 */ */

/* 注释 /* 注释 /* 注释 /* 注释/* 注释 */ */ */ */ */ 代码 /*注释 */
注意

需要保证 /**/ 前后一一配对

嵌套块注释中的单行注释【TODO;危险】

对于嵌套多行注释中的单行注释符号将被忽略。也就是说,如果一个单行注释符号 // 出现在块注释中,那么他就是

/* 这种 /* // 情况也是 */ 允许的 */

段落注释

提示

段落注释优先级高于行注释 (//) 和块注释 (/* */)

段落注释必须单独占一行,前后除空白字符(空格、Tab 制表符等)外不得包含其他内容。

注释到文件末尾

注释到文件末尾
String foo = "bar"

/...
这里可以写很多注释
甚至可以包含 // 行注释
或者 /** 块注释 */
但 Collie 不会解析这块内容,也就是说,段落注释将一直到文档结束

从文档开头都是注释

从此行之前全部都是注释

这里也是一样的,也支持 /** 块注释 */ 和 // 行注释
.../

String foo = "bar"

也可以组合使用

这是段落注释
.../
number star = 0
/...
可以跨越多行
.../
star++
/...
还可以混着用
.../
star++ /...也可以定义.../
/...
还可以定义好几个
注意

注意,段落注释不支持嵌套

不支持的写法
❌ 错误示范
/*
/...
*/

因为段落注释优先级高于块注释,所以 */ 结束符将被忽略

语法规则

标识符

标识符由字母、数字和下划线组成,不能以数字开头。

关键字

TODO

Collie 语言有以下关键字:var, function, if, else, for, while 等。

声明

变量声明

你可以使用以下几种方式声明 Collie 变量

显式指定类型

number num = 1

自动推断类型

var anotherNum = 1
提示

自动推断类型是一个 Collie 语法糖

变量作用域【TODO】

变量有如下作用域,每个变量都会且仅会是其中之一。

  • 全局:作为类的成员变量。
  • 内部:在当前代码块作用域下定义的变量。