Skip to content

词法与基础语法 ​

核心关键字 ​

玄铁的关键字体系涵盖了从变量声明到并发控制的全方位支持(点击进入详解页):

  • 声明与作用域:
    • 设:声明变量 (var)
    • 常:声明常量 (const)
    • 函:声明函数 (func)
    • 返:函数返回 (return)
    • 外:声明外部函数/C-FFI (external)
    • 型:定义类/类型 (type)
    • 口:定义接口 (interface)
    • 造:实例化/构造函数 (new)
    • 承:继承父类 (inherit)
    • 覆:重写父类方法 (override)
    • 弱:弱引用修饰符
    • 此:当前实例引用 (this)
    • 引:引入外部模块 (import)
    • 予:为模块指定别名 (alias)
    • 公 / 私 / 护:可见性修饰 (public/private/protected)
  • 控制流:
    • 若 / 抑 / 否:条件分支 (if/elif/else)
    • 当:条件循环 (while)
    • 循:无限循环 (loop)
    • 遍历 / 于:迭代循环 (for/in)
    • 断:跳出循环 (break)
    • 续:下一轮迭代 (continue)
  • 并发与异步:
    • 异步:声明异步任务 (async)
    • 等待:等待异步结果 (await)
    • 并行:并行执行 (parallel)
    • 道:通道 (channel)
    • 选:多路通道等待 (select)
  • 异常与匹配:
    • 尝试 / 捕捉:异常捕获 (try/catch)
    • 匹配:模式匹配 (match)
    • 终:终止程序/抛出异常 (terminate)
  • 逻辑与值:
    • 真 / 假:布尔字面量 (true/false)
    • 空:空值 (null)
    • 且 / 或 / 非:逻辑与/或/非 (and/or/not)
    • 是:等价与类型判断 (is)
  • 类型词:
  • 系统级内建原语:
    • 示:打印输出 (print)
    • 化:JSON 序列化
    • 解:JSON 反序列化
    • 执:执行系统命令 (exec)
    • 输:读取标准输入 (input)
    • 求:发起 HTTP 请求
    • 听:网络监听
    • 连:建立网络连接
  • 位运算:
  • 符号运算符:

保留字不可作标识符 ​

保留字不能用作标识符——变量名、常量名、函数名、参数名、迭代变量名、型名、接口名,一律不允许。种子编译器(GSC)与自举编译器(XTC)都强制执行这条规则,对同一份源码给出同样的判定。

保留字清单:

保留字含义保留字含义
整整数类型与转换函数数组数组类型
小数小数类型与转换函数字典字典类型
字字符串类型与转换函数结果结果容器类型
布尔布尔类型字节字节串类型
字符串字符串类型任务异步任务类型
道通道类型测试测试块关键字

此外,表示实例自身的 此 同样不能用作标识符。

报错长这样(编译器原文):

xuantie
[示例.xt 行:3, 列:5] 语法错误:'结果' 是玄铁语言的保留关键字,不能用作变量名或标识符。请换一个名字。

换成组合名即可——词法器按完整标识符切分,类型词出现在更长的名字里完全合法:

xuantie
设 结果值 = 整("42")        // ✓ 组合名合法
设 抓取结果 = 请求(地址)     // ✓
设 任务列表 = []            // ✓

设 结果 = 整("42")          // ✗ 保留字不能单独作名字

只禁止"当名字",不禁止"当关键字用"——关键字在表达式与类型位置照常工作:

xuantie
设 n = 整("42")             // 类型转换函数
设 s = 字(n.值)              // 值转文本
设 ch = 道(4)               // 建通道
设 r: 结果<整> = n           // 类型注解
型 盒<T> { 设 内容: T }      // 泛型参数名不受影响

运算符 ​

  • 算术:+, -, *, /, %
    • 整数间运算保持整数语义(7 / 2 = 3);任一侧为小数即提升为小数运算(7 / 2.0 = 3.5)
    • 小数支持 %(按 fmod 语义,如 5.5 % 2.0 = 1.5)
    • 除零约定:整数与小数均返回 0(不报错;与 GSC 解释器的报错行为有意分歧,移植代码时注意)
    • 小数字面量打印规则:整数值小数打印不带小数点(字(2.0) 得 "2")
  • 比较:==, !=, <, >, <=, >=
    • 整数与小数可混合比较,按数值判定(1.0 == 1 为 真)
  • 逻辑:且 (AND), 或 (OR), 非 (NOT), 是 (IS)
  • 位运算:位与, 位或, 异或, 左移, 右移, 取反
  • 其他:
    • 赋值:=
    • 成员访问:.
    • 箭头:->(匹配语句中模式与分支之间的分隔符:模式 -> 块)
    • 错误冒泡后缀操作符:?(跟在返回 结果 类型的表达式之后,用于快速解包或向上传递错误,如 设 值 = 可能出错的操作()?)

运算符重载(魔术方法) ​

玄铁支持通过魔术方法重载算术和比较运算符,使自定义类型(型)可使用原生运算符语法:

运算符魔术方法示例
+_加_v1 + v2
-_减_v1 - v2
*_乘_v1 * 2
/_除_v1 / v2
%_模_v1 % 3
==_等_v1 == v2
!=_等_(取反)v1 != v2

注意:== 和 != 仅对自定义类型(类型声明含 型: 前缀)启用重载;弱引用、整型、字符串等内置类型直接走指针/值比较,不触发 _等_。

完整教程、实现细节、链式调用与嵌套表达式示例请参阅:10_运算符重载编程指南.md

字面量与标识符特性 ​

  • 布尔值:真 (true), 假 (false)
  • 空值:空 (null)
  • 数字:支持标准的十进制整数与浮点数(小数)
  • 字符串:支持双引号 "" 或单引号 ''
  • 问号标识符:标识符支持以 ? 结尾,常用于返回布尔值的函数或变量命名(例如 文件.存在?、队列.空?),这让代码读起来更像自然语言的提问。

基于 VitePress 静态构建 · 文档内容与仓库 GUIDE/ 同源

玄铁玄铁 XUANTIE · 中文系统级编程语言MARK 玄·折 120×120 · STROKE 8 · NO CURVES