Skip to content

ICserD/CompilerProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

项目说明

概要

本项目实现了一个基本的词法分析器和语法分析器。能对任意高级程序设计语言进行词法分析和语法分析,并生成相应的抽象语法树。

功能

本项目的主要功能有词法分析、语法分析、抽象语法树生成。正则表达式、BNF文法书写规则、语义动作书写规则在项目设计文档有介绍。

  1. 词法分析:输入任意高级程序设计语言的正则表达式,生成相应的词法分析代码,并能对该高级程序设计语言的源程序进行词法分析。
  2. 语法分析:在已经进行了词法分析的前提下,输入任意高级程序设计语言的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

About

对编译原理课程项目进行版本跟踪

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published