本项目实现了一个基本的词法分析器和语法分析器。能对任意高级程序设计语言进行词法分析和语法分析,并生成相应的抽象语法树。
本项目的主要功能有词法分析、语法分析、抽象语法树生成。正则表达式、BNF文法书写规则、语义动作书写规则在项目设计文档有介绍。
- 词法分析:输入任意高级程序设计语言的正则表达式,生成相应的词法分析代码,并能对该高级程序设计语言的源程序进行词法分析。
- 语法分析:在已经进行了词法分析的前提下,输入任意高级程序设计语言的BNF文法规则,并给每一个BNF文法规则附上相应的语义动作,该系统能生成相应的抽象语法树,并能可视化语法分析过程。
下面对本项目的目录结构进行说明:
- docs,存放项目设计文档
- assets是图片文件,存放markdown文档中的图片文件
- execute,存放可执行文件,其中AppImage是用qt在UBUNTU22.04LST打包出来的可执行文件,理论上在Linux环境可以双击运行
- README.md,项目说明文件,就是本文档
- sources,工程源代码,本项目有两份工程文件,一份是无GUI版本的ProtoCompiler-Core,一份是带GUI版本的ProtoCompiler
- ProtoCompiler-Core,无GUI版本的系统
- ProtoCompiler,带GUI版本的系统
- 源代码使用说明书,主要介绍如何在本地编译运行ProtoCompiler和ProtoCompiler-Core
- test,测试部分,主要包括TINY语言测试和MINIC语言测试所需要的所有文件,包括正则表达式文件、带语义动作的BNF文法文件、测试源程序等,assets是存放图片的目录
- video,存放项目汇报视频和PPT
.
├── docs
│ ├── assets
│ ├── 项目文档说明书.docx
│ ├── 项目文档说明书.md
│ └── 项目文档说明书.pdf
├── execute
│ ├── ProtoCompiler.AppImage
│ ├── 可执行程序使用说明书.md
│ └── 可执行程序使用说明书.pdf
├── README.md
├── README.pdf
├── sources
│ ├── ProtoCompiler
│ ├── ProtoCompiler-Core
│ ├── 源代码使用说明书.md
│ └── 源代码使用说明书.pdf
├── test
│ ├── assets
│ ├── MINIC
│ ├── TINY
│ ├── 项目测试报告.md
│ └── 项目测试报告.pdf
└── video
├── Presentation_compressed1.mp4
└── Presentation.pptx