文件结构
.
├── Cargo.lock
├── Cargo.toml
├── common
│ ├── Cargo.toml
│ └── src
│ ├── errors.rs # 各种错误,本阶段不需要修改
│ ├── ignore_result.rs # 工具
│ ├── indent_printer.rs # 用于格式化输出,不需要修改
│ ├── lib.rs
│ ├── loc.rs # 定义位置(行号,列号)
│ ├── op.rs # 定义操作符,可以添加新的操作符
│ └── ref.rs # 工具
├── driver
│ ├── Cargo.toml
│ └── src
│ ├── cli.rs # 提供command line interface
│ ├── lib.rs
│ ├── test.rs # 执行测试的程序
│ └── test_util.rs # 测试框架
├── print
│ ├── Cargo.toml
│ └── src
│ ├── ast.rs # 实现输出ast,你需要在这里输出新增的ast节点,以及可能需要修改老的ast节点的输出
│ └── lib.rs
└── syntax
├── Cargo.toml
└── src
├── ast.rs # 定义ast节点,你需要在这里新增ast节点类型
├── lib.rs
├── parser.rs # 基于lalr(1)文法的parser,你需要在这里新增ast节点对应的产生式和语法动作
├── symbol.rs # 定义符号,不需要修改
└── ty.rs # 定义SynTy和Ty,可以添加新的类型
Last updated