Skip to content

关于本参考 ​

本参考描述 SYX 语言 的词法、语法、类型、表达式、语句、声明、特性(Attributes)、模式、泛型与协议的形式化规则,面向需要精确查阅语言形式的读者(编译器贡献者、SDK 维护者、深度语言用户)。

当前版本: SYX 117.0(Phase 139)· syx-cache-v1 · 许可证 Apache-2.0 · 文档同步 2026-10-27

完整状态见 shared/implementation-status.md;架构决议见 docs/adr/architecture-decisions.md;能力摘要见 docs/adr/capabilities-summary.md。

与《语言指南》的关系 ​

本参考《语言指南》
形式化定义、语法表、诊断码叙事讲解、完整范例、学习路径
「if 语句的语法是什么?」「如何用 if 写分支逻辑?」

每章末尾「用法示例」链接到指南对应章节;指南每章末尾「参见」回链到参考。

章节结构 ​

#章节内容
1词法结构Token、关键字、字面量、注释、转义
2类型类型表达式、数值、String、集合、引用、不透明、SIMD
3表达式表达式分类、优先级表
4语句变量声明、控制流、异常
5声明import / func / class / struct / enum / actor / protocol / extension
6特性(Attributes)@attached / @Service / @Around / @resultBuilder / @Equatable 等
7模式变体、元组、switch / if case 模式
8泛型形参和实参<T> / where / 协议约束 / 单态化
9协议与一致性协议声明、一致性、witness、存在类型
10语法摘要EBNF / 模块 / 函数 / 类型 / 表达式
A附录:实现状态矩阵指向实现状态总表

记号约定 ​

记号含义
…语法元素
|择一
?可选
*零次或多次
+一次或多次
[x]可选分组
{x}零或多重复
(x | y)分组
terminal终结符(关键字 / 标点)
nonterm非终结符

实现状态 ​

每条规则或特性标注四档之一(详见 shared/implementation-status.md):

档位含义
已实现 / GAsyx run 或 parity / 硬闸可验证
部分实现 / partial GA可解析/编译但语义不完整
计划中roadmap 有记录,实现未完成
未实现无对应 AST/语义
拒绝有意 fail-closed(编译器会报错)

诊断代码前缀 ​

前缀阶段范围示例
L词法 / Lint词法单元、命名规范L001 未闭合字符串 / L001 函数名应小写
P解析语法错误P001 parse error
S语义符号、类型、借用S002 未定义标识符
AActor隔离违规A002 cross-actor access
C并发跨隔离、SendableC003 非 Sendable
R运行时panic / trapR007 force unwrap nil
HHost 插件dlopen / 验签H001 插件未加载
E宏展开错误E002 宏展开深度超限
W警告编译期警告W001 #warning

完整索引见 语言指南附录 B 诊断代码索引。

与编译器实现的关系 ​

本参考编译器源码
词法crates/syx-lexer/src/
语法(AST)crates/syx-ast/src/lib.rs
解析crates/syx-parser/src/
语义crates/syx-semantic/src/
宏展开crates/syx-macro/src/
MIRcrates/syx-mir/src/
Codegencrates/syx-codegen/src/ / crates/syx-llvm/src/ / crates/syx-wasm-emit/src/
VMcrates/syx-vm/src/

完整 BNF 与 parser 同步更新于 docs/2_SyntaxAnalysis.md。

工具链 ​


用法示例 → 语言指南

SYX · Apache-2.0