语言指南
跟随当前编译器的核心语法和语义。
语言指南
今天你应该教授的语言表面是反复出现在示例、测试和当前已检查的艺术品中的保守子集。此页面是该稳定教学表面的地图,而不是承诺在仓库中的每个历史语法形式或研究 DSL 都同样可用。
稳定教学表面应包含的内容
- 使用
let和var的本地绑定。 - 函数、块、返回类型和显式的
with ...效果注释。 - 控制流,如
if、while、for和match。 - 可以用已检查的固定件代替设计文档演示的核心代数和认识论思想。
实现现在在哪里
- 解析和文法工作集中在
self-hosted/lexer/和self-hosted/parser/下。 - 名称解析位于
self-hosted/resolve/下。 - 类型检查和语义检查位于
self-hosted/check/下,包括效果、认识论检查、单位、所有权、特质和精炼的专用模块。 - 旧的 Rust-side 编译器文档仍然有用作历史架构参考,但它们不再是活跃源树的最佳主要地图。
代表语法
let value = 5
var count = 0
fn add(a: i32, b: i32) -> i32 {
a + b
}
fn main() with IO {
if value > 0 {
println(add(value, count))
}
}
如何准确地记录语法
- 偏好可以立即使用
souc check验证的示例。 - 在
tests/run-pass/、tests/compile-fail/和文档中记录快照中的高级声明。 - 如果一个语言特性仅在大型架构注释或旧指南中描述,除非你有当前的固定件或艺术品支持的证据,否则将其记录为设计意图。