Go to file
2025-06-11 21:17:03 +08:00
lexical 初始化仓库 2025-06-11 19:51:42 +08:00
semantic 添加exp的52表达式 2025-06-11 21:10:49 +08:00
syntax Merge branch 'main' of git.gangary.cn:gary/Hydrogen-python 2025-06-11 21:17:03 +08:00
.gitignore 初始化仓库 2025-06-11 19:51:42 +08:00
error.py 初始化仓库 2025-06-11 19:51:42 +08:00
LICENSE 初始化仓库 2025-06-11 19:51:42 +08:00
main.py 优化了syntax的LL1Generator对象 , 加入debug功能, 加入导出excel表功能 2025-06-11 21:06:40 +08:00
README.md 初始化仓库 2025-06-11 19:51:42 +08:00
rule_back.py 初始化仓库 2025-06-11 19:51:42 +08:00
semantic_rule_back.py 初始化仓库 2025-06-11 19:51:42 +08:00
test1.c 初始化仓库 2025-06-11 19:51:42 +08:00
test2.c 初始化仓库 2025-06-11 19:51:42 +08:00
test3.c 初始化仓库 2025-06-11 19:51:42 +08:00
test4.c 初始化仓库 2025-06-11 19:51:42 +08:00
test5.c 初始化仓库 2025-06-11 19:51:42 +08:00
test6.c 初始化仓库 2025-06-11 19:51:42 +08:00
test7.c 初始化仓库 2025-06-11 19:51:42 +08:00
test8.c 初始化仓库 2025-06-11 19:51:42 +08:00
test9.c Merge branch 'main' of git.gangary.cn:gary/Hydrogen-python 2025-06-11 21:17:03 +08:00
test.c 初始化仓库 2025-06-11 19:51:42 +08:00
test.py 优化了syntax的LL1Generator对象 , 加入debug功能, 加入导出excel表功能 2025-06-11 21:06:40 +08:00

C(缩减版)语言编译器前端

是什么

NUAA 2017年编译原理课设词法分析使用正则表达式语法分析使用LL(1)文法分析器, 语义分析使用自上而下翻译,使用 Python 语言编写,面向配置化,稍加改造可以适用其他文法

怎么使用

git clone https://github.com/FlyAndNotDown/CSub-CompilerFrontend.git

在 PyCharm 中打开新建项目导入代码即可Python 使用版本为 3 以上,请不要使用 Python2 运行该项目

代码结构说明

  • main.py 编译器主程序
  • error.py 存放错误相关的类和代码
  • test.c 要编译的文件
  • lexical 词法分析
  • syntax 语法分析
  • semantic 语义分析

另外,三大分析中 rule.py 即是支持编译器的所有文法、词法、语义规则,加以改动即可面向一些其他的文法和语言使用

关于

NUAA 161520311 John Kindem