- 实现了括号深度跟踪来正确分割带括号的宏参数 - 添加了对 GNU 扩展中 `##` 操作符逗号删除的支持 - 新增辅助函数 `got_left_non_blank` 和 `got_right_non_blank` 来优化查找非空白 token 的逻辑 - 改进了错误消息以显示预期但得到的实际值类型 fix(pproc): 修复条件编译和包含文件路径的错误消息 - 在 `scc_pproc_parse_if_condition` 中改进错误消息格式 - 修复 `switch_file_stack` 函数中的日志字符串格式问题 test(pproc): 添加宏处理相关的单元测试 - 增加了连接操作符、嵌套宏、括号处理等测试用例 - 添加了 C99 标准示例和 GNU 变参宏删除逗号的测试 - 包含了复杂的宏展开场景测试 chore(justfile): 更新构建脚本添加调试目标 - 为 `test-scc` 目标添加了 `debug-scc` 调试版本 - 更新构建命令以支持开发模式 feat(cbuild): 添加 dry-run 模式和改进编译器参数 - 为编译器类添加 dry-run 功能,只打印命令不执行 - 改进 scc 编译器的包含路径处理逻辑 - 为命令行解析器添加 dry-run 参数选项 refactor(log): 重命名 static_assert 为 StaticAssert 避免冲突 - 为了避免与标准库冲突,将自定义 static_assert 重命名为 StaticAssert style(scc_core): 移除未使用的预定义宏定义 - 删除了不再需要的基础类型前缀宏定义 fix(scc_core): 初始化 ring 测试中的未初始化变量 - 为测试函数中的字符变量添加初始化值避免未定义行为
40 lines
751 B
Makefile
40 lines
751 B
Makefile
list:
|
|
just --list
|
|
|
|
build_docs:
|
|
doxygen Doxyfile
|
|
|
|
docs: build_docs
|
|
python -m http.server -d docs/html
|
|
|
|
count:
|
|
# you need download `tokei` it can download by cargo
|
|
tokei libs runtime src -e tests
|
|
|
|
count-file:
|
|
# you need download `tokei` it can download by cargo
|
|
tokei libs runtime src -e tests --files
|
|
|
|
clean:
|
|
cbuild clean
|
|
|
|
build:
|
|
cbuild build -cclang
|
|
|
|
build-install: build
|
|
cp ./build/dev/scc.exe ./scc.exe
|
|
|
|
test-scc:
|
|
# windows: (Get-Content a.txt -Raw) -replace '\x1b\[[0-9;]*[a-zA-Z]', '' | Set-Content clean.txt
|
|
# linux: sed 's/\x1b\[[0-9;]*[a-zA-Z]//g' a.txt > clean.txt
|
|
just clean
|
|
just build-install
|
|
just clean
|
|
cbuild build -cscc
|
|
|
|
debug-scc:
|
|
just clean
|
|
just build-install
|
|
just clean
|
|
cbuild build -cscc --dev --record --dry-run
|