Zava 语法
本页依据 tools/compiler/lexer.py、parser.py、tokens.py、仓库内 .vts 程序和
编译器测试整理。源码与本页冲突时,以源码为准。
文件与注释
高层源码后缀为 .vts,编译结果后缀为 .vt。空白不影响语义;分号可选。
字面量与类型
整数支持十进制、下划线和十六进制;浮点数使用十进制小数。字符串支持
\n \r \t \0 \\ \",布尔值为 true/false。
let count: u64 = 1_000
let mask: u64 = 0xFF
let ratio: f64 = 0.5
let ready: bool = true
let text: string = "Zava\n"
解析器接受的类型名包括 u64、i64、f64、bool、ref 和 string;未标注
时默认为 u64。
函数与返回
表达式
优先级从低到高为:||、&&、|、^、&、比较、移位、加减、乘除模。
一元运算为 - ! ~ &。
变量与赋值
当前 parser 只允许给名称赋值,不接受任意成员或索引作为赋值左值。
条件与循环
if total > 3 {
print("large")
} else {
print("small")
}
while total < 10 { total += 1 }
for index in 0..4 { print(index) }
loop { break }
循环体内可用 break 和 continue。
match
列表、调用与成员
列表和成员访问必须通过编译器类型/selector 检查;语法可解析不代表任意成员都能 编码。
元认知语句
这些是语言语法,会编译到 OBSERVE/DOUBT/REFLECT 指令,不是 CLI 命令。
observe 0 -> observation
doubt observation -> retry
doubt observation -> { print("retry") }
reflect strategy_a -> strategy_b
社会协作语句
spawn 是语言语句;Runtime 的 /dream 和 HTTP /chat 属于不同接口层。
量子块
量子操作集合由 parser 固定为 qstate/hgate/xgate/ygate/zgate/phase_pi/qft/measure/noise。
命名量子函数也合法:
输出与停止
halt 的可选表达式是进程状态。生产程序必须有可达的停止路径,避免触发步骤上限。
编译与审计
python3 tools/compiler/main.py program.vts -o program.vt --dump-ir
python3 tools/vt_disasm.py program.vt
编译器遇到未知字符、未闭合字符串/注释、缺失括号或无效 selector 必须失败,不会 猜测修复源码。