Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fatescript/compiler
https://github.com/fatescript/compiler
Last synced: 24 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/fatescript/compiler
- Owner: FateScript
- Created: 2016-04-20T00:01:35.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2016-05-12T04:30:22.000Z (over 8 years ago)
- Last Synced: 2024-10-28T12:25:12.643Z (2 months ago)
- Language: Yacc
- Size: 1.15 MB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# compiler
### 词法分析器
词法分析器使用lex生成,采用的环境是ubuntu 14.04,需要预装flex,如果没有flex,可以通过sudo apt-get install flex获得
如果要一步步生成所需文件,则需按照如下步骤:
* 在终端运行 flex lexcial_analyser.l,会生成lex.yy.c 文件
* 在终端运行 gcc lex.yy.c -o analyser -ll,会生成analyser二进制程序(在windows下用gcc lex.yy.c -o analyser即可,无需加ll选项)
* 运行 ./analyser demon (demon为所需要进行词法分析的c源文件),结果会生成在token.txt ,并且如果词法分析过程出现错误,则终端会显示No,并且指出哪一行程序的哪一个部分会有错误。如果没有问题,则在屏幕上输出yes### 语法分析器
语法分析器位于syntax文件夹中,用lex与yacc进行生成,如果需要一步步生成所需文件,按如下步骤进行:
* 在终端运行 flex lexcial.l,生成lex.yy.c文件
* 终端运行yacc -d syntax.y,生成y.tab.h与y.tab.c文件
* 运行gcc y.tab.h y.tab.c lex.yy.c -o analyser生成analyser二进制文件
* 运行./analyser demon (demon为所需要进行词法分析的文件),如果不存在语法错误,则会输出Parse complete.否则输出Parse failed并且会报出第一个出现语法错误的地方
* 注意:语法分析与词法分析过程不包含预处理过程#### 声明
词法分析与语法分析采用C99标准写成,具体内容可以查看C99.pdf