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过程宏

Download history 86/week @ 2024-04-02 1/week @ 2024-05-28 7/week @ 2024-06-04 3/week @ 2024-06-11

每月414次下载
2 crate 中使用

MIT/Apache

345KB
7K SLoC

Chandeliers-San

Candle的翻译和静态分析。


目的

此crate为Candle语言提供AST,以及

  • 依赖解析
  • 类型检查
  • (即将推出) 正规性检查
  • 代码生成

这里声明的AST不能直接解析,因此应由具有更好LL属性的翻译语言生成。

此crate在以下层面上运行

  • 有足够的计算能力(与Candle中定义的macro_rules!不同),
  • Span用于我们操作的一切,以便可以跟踪回源代码,并且非常重要
  • 一个方便递归的AST结构,其中不再有关联性、标点符号、关键字等概念,这些在解析时是必要的,但如果丢弃则只会使静态分析更加复杂。

限制

AST的结构使其便于导航,但难以为单元测试生成。一些内部自包含算法(例如依赖关系的不相交性)有自己的单元测试,但除此之外,只要通过端到端测试,此crate应该主要在没有单元测试的情况下信任。

这并不是说这里的代码完全没有经过测试,因为我们仍然在验证它是否在正确的位置产生正确的错误消息,只是测试此代码不可能不同时测试解析器和翻译器。

依赖

~300–750KB
~18K SLoC