diy编译器 0x01 项目组织

项目预计分为多个模块,模块间低耦合,编译器前后端分离,方便移植多平台与多语言。

模块:

(ing)

词法分析模块

中间代码生成模块

代码优化模块

目标代码生成模块

表格管理模块

项目架构

预计项目通过 cmake 编译,各模块独立编译成库,便于相互调用。目录结构如下:

.
├── bin
│   └── tcc
├── cmake
│   ├── toolchain_options.cmake
│   └── utils.cmake
├── CMakeLists.txt
├── conf
├── doc
│   ├── c++17_lexical.html
│   └── lex_lcc.xlsx
├── lib
│   ├── CMakeLists.txt
│   ├── cmdline
│   │   ├── cmdline.cxx
│   │   └── cmdline.h
│   └──libcmdline.a
├── LICENSE
├── platform
├── README.md
├── scripts
├── src
│   ├── CMakeLists.txt
│   ├── common
│   │   └── version.hpp
│   ├── lex
│   │   ├── CMakeLists.txt
│   │   ├── lex.cpp
│   │   ├── lex.hpp
│   │   ├── liblex.a
│   │   └── Makefile
│   ├── main
│   │   ├── main.cpp
│   │   └── main.hpp
└── test

/lib:引用的外部库,如命令行解析,日志生成,多线程调用,数据库

/src:编写的各个模块与上层模块,除顶层模块外全部编译为静态链接库

/test:存放一些测试代码

/scripts:存放测试脚本

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注