25个版本 (1个稳定版本)
1.0.0 | 2024年1月5日 |
---|---|
0.6.1 | 2024年1月4日 |
0.5.2 | 2023年12月29日 |
0.5.0 | 2023年11月24日 |
0.1.3 | 2023年10月14日 |
#273 在 过程宏 中
每月414次下载
在 2 crate 中使用
345KB
7K SLoC
Chandeliers-San
Candle的翻译和静态分析。
目的
此crate为Candle语言提供AST,以及
- 依赖解析
- 类型检查
- (即将推出) 正规性检查
- 代码生成
这里声明的AST不能直接解析,因此应由具有更好LL属性的翻译语言生成。
此crate在以下层面上运行
- 有足够的计算能力(与Candle中定义的
macro_rules!
不同), Span
用于我们操作的一切,以便可以跟踪回源代码,并且非常重要- 一个方便递归的AST结构,其中不再有关联性、标点符号、关键字等概念,这些在解析时是必要的,但如果丢弃则只会使静态分析更加复杂。
限制
AST的结构使其便于导航,但难以为单元测试生成。一些内部自包含算法(例如依赖关系的不相交性)有自己的单元测试,但除此之外,只要通过端到端测试,此crate应该主要在没有单元测试的情况下信任。
这并不是说这里的代码完全没有经过测试,因为我们仍然在验证它是否在正确的位置产生正确的错误消息,只是测试此代码不可能不同时测试解析器和翻译器。
依赖
~300–750KB
~18K SLoC