3个版本
0.1.6 | 2022年10月7日 |
---|---|
0.1.5 | 2022年10月7日 |
0.1.4 | 2022年9月30日 |
#902 in 编程语言
2MB
7.5K SLoC
包含(JAR文件,2.5MB) antlr4-4.8-2-SNAPSHOT-complete.jar
Rust编写的C++20预处理器
请使用git clone --recurse-submodules https://github.com/Destroyerrrocket/rustycpp.git
克隆必要的子模块
不幸的是需要一个定制的lalrpop构建。
描述
模块依赖树生成完成!
这是一个非常简单且肯定不正确的C++预处理器。这并不是出于任何重大意图,只是简单地测试Rust及其功能(我认为动手实践比仅仅跟随教程更有用)。
作为一个Rust新手,我不声称这有任何质量。
到目前为止,最相关的是缺少以下内容
- 不支持的#line指令(并且可能在未来一段时间内也不会支持,我现在不打算支持生成的代码 :))
- 预处理器的一些QOL功能,如任何pragma指令(标准没有规定,但任何合理的实现都期望#pragma once),或
__FUNCTION__
宏(需要实现第7步解析器才能知道此类信息) - 大多数测试宏目前有点无用了。
__has_cpp_attribute
实际上只是硬编码为0
我觉得C++编译过程的头4步已经完成了!现在是词法分析的时候了。
如果您想了解更多关于正在发生的事情的日志,可以使用环境变量RUST_LOG
,如下所示:RUST_LOG=debug
依赖关系
~10–23MB
~246K SLoC