compiler-go/README.md

1.4 KiB

环境

  • x86 Debian GNU/Linux 12
  • Python 3.11.2
  • gcc version 12.2.2
  • openJDK version "17.0.12"
  • NASM version 2.16.01
  • antlr complete & runtime Version: 4.9.3
  • glog
  • 请使用C++17以上标准

构建

mkdir build && cd build
cmake ..
make -j4

批量执行

bash test_all.sh

详细说明

  • 可执行文件 LiteGoCompiler
  • 用法
./LiteGoCompiler /path/to/gofile
  • 所需库 print.o 负责向标准输出打印结果
  • 源文件同级文件夹下生成中间产物
    • out.asm 三地址中间代码
    • out.o 二进制编译产物
  • 目标可执行文件 out.bin

文件结构

.
├── antlr -------------------------- 存放 antlr jar 包和 runtime
│   └── antlr4-runtime
│       
├── grammar ------------------------ 存放 Go 语言语法文件和 antlr 针对 Cpp 的解析结果
│   └── cpp
├── include ------------------------ 代码头文件
│   ├── Common
│   ├── ICG
│   │   └── StmtICG
│   ├── Public
│   └── TCG
│       └── SentenceTranslator
├── src ----------------------------- 源代码
│   ├── Common
│   ├── ICG
│   ├── Public
│   └── TCG
│       └── SentenceTranslator
└── test ---------------------------- 测试文件

代码架构

code