zzy bc0b1d23e3 feat(pproc): 添加预处理器包含路径支持和改进头文件查找逻辑
添加了新的类型定义 scc_pproc_cstr_vec_t 用于存储包含路径,
并在 scc_pproc 结构中添加 include_paths 字段。实现改进的
switch_file_stack 函数,支持从当前目录、父目录和系统包含路径
中查找头文件,提供更完整的 #include 指令处理能力。

fix(core): 重命名环形缓冲区内联宏避免命名冲突

将 scc_ring_phys 宏重命名为 _scc_ring_phys,并添加其他相关
内部宏如 _scc_ring_cap、_scc_ring_head 等,以避免与外部接口
的命名冲突并提高代码清晰度。

refactor(main): 添加命令行包含路径选项并清理标准库引用

在命令行参数解析中添加 -I/--include 选项支持,允许用户指定
额外的头文件搜索路径。同时移除不必要的 stdio.h 引用并清理
一些调试相关的缓冲区设置。
2026-02-19 19:30:00 +08:00
2025-04-05 23:11:39 +08:00

Simple C Compiler

scc

这是一个简单的C语言编译器可以从C99子集编程语言生成可执行代码。该语言支持基本操作如算术运算、逻辑运算、条件语句if/else、循环语句while/for、分支语句switch/case、函数调用以及内联汇编调用asm

Builder

该编译器使用cbuild 构建,设计思路来源于rust的构建工具cargo,以默认行为代替掉makecmake等构建工具。

由于整个项目除了测试代码,完全没有任何依赖,真正做到0依赖,所以无需复杂的依赖管理 TODO 未来构建工具本身也会使用c或者lua等可轻松自举的系统重构

cbuild

常用命令:

  • 构建项目: cbuild build
  • 运行程序: cbuild run
  • 运行测试: cbuild test
  • 清理构建产物: cbuild clean
  • 查看依赖树: cbuild tree

标准C语言文档链接

项目特点

  • 隔离标准库: 不直接依赖标准库实现,提高可移植性
  • 轻量化: 专注于核心功能,减少冗余组件
  • 模块化: 采用模块化设计,易于扩展和维护
  • 自举构建: 支持通过自身编译器构建项目
Description
No description provided
Readme 957 KiB
Languages
C 69.5%
C++ 26.3%
Python 3.3%
Makefile 0.9%