diff --git a/tutorial/01-basics/chinese_ident.kv b/tutorial/01-basics/chinese_ident.kv new file mode 100644 index 00000000..381fa859 --- /dev/null +++ b/tutorial/01-basics/chinese_ident.kv @@ -0,0 +1,38 @@ +// chinese_ident: 中文(Unicode)作标识符 —— 多级/嵌套 lib 名 / struct 名 / 函数名 / 字段名 / 变量名 +// 语义: 词法器以「最长非分隔符字节串」切分标识符,凡非分隔符的 Unicode 字符(含中文) +// 均可用于任意标识符位置:包名、结构体名、函数名、参数名、字段名、局部变量。 +// 路径分隔符 /、成员分隔符 ·、运算符仍是分隔符,故中文标识符与它们照常组合, +// 多级包名(数学/几何)与嵌套 lib(外层·内层)也一样支持中文。 +// 期望输出: +// 相加 = 7 +// 相加 = 30 +// 嵌套问候 +// 点 = 3.0 4.0 +lib 数学/几何 { + rwfunc 相加(甲:int64, 乙:int64) -> (和:int64) { + 甲 + 乙 -> 和 + } +} + +lib 外层 { + lib 内层 { + rwfunc 问候() -> () { println("嵌套问候") } + } +} + +struct 点 { + 横:float64=0.0 + 纵:float64=0.0 +} + +rwfunc test() -> () { + 数学/几何·相加(3, 4) -> 结果 + println("相加 =", 结果) + /lib/数学/几何·相加(10, 20) -> 结果2 + println("相加 =", 结果2) + /lib/外层/内层·问候() + 原点 = 点{横=3.0 纵=4.0} + 原点·横 -> x + 原点·纵 -> y + println("点 =", x, y) +}