GrammarAnalysis

所属分类:编译器/解释器
开发工具:Visual C++
文件大小:404KB
下载次数:8
上传日期:2009-05-04 20:26:23
上 传 者nancyan
说明:  语法分析程序 实现C语言的语法分析过程,正则表达式,上下文无关语法
(Analysis of program syntax of C language syntax analysis, regular expressions, context-free grammar)

文件列表:
Grammar\可执行文件\analyse.exe (614297, 2007-12-17)
Grammar\可执行文件\analyse_tree.txt (31720, 2007-12-17)
Grammar\可执行文件\error.txt (0, 2007-12-17)
Grammar\可执行文件\grammer.txt (2950, 2006-12-29)
Grammar\可执行文件\LL_Table.txt (5647, 2006-12-29)
Grammar\可执行文件\token.txt (998, 2007-12-17)
Grammar\程序源文件\analyse.dev (1730, 2006-12-26)
Grammar\程序源文件\analyse.exe (614297, 2007-12-17)
Grammar\程序源文件\analysestack.cpp (1109, 2007-12-17)
Grammar\程序源文件\analysestack.o (44862, 2007-12-17)
Grammar\程序源文件\analyse_tree.txt (31720, 2007-12-17)
Grammar\程序源文件\error.cpp (841, 2007-12-17)
Grammar\程序源文件\error.o (25061, 2007-12-17)
Grammar\程序源文件\error.txt (0, 2007-12-17)
Grammar\程序源文件\grammer.cpp (1261, 2007-12-17)
Grammar\程序源文件\grammer.o (56811, 2007-12-17)
Grammar\程序源文件\grammer.txt (2950, 2006-12-29)
Grammar\程序源文件\LL_Table.cpp (2254, 2007-12-17)
Grammar\程序源文件\LL_Table.o (33381, 2007-12-17)
Grammar\程序源文件\LL_Table.txt (5647, 2006-12-29)
Grammar\程序源文件\main.cpp (574, 2007-12-17)
Grammar\程序源文件\main.h (2673, 2007-12-17)
Grammar\程序源文件\main.o (13708, 2007-12-17)
Grammar\程序源文件\Makefile.win (1365, 2007-12-17)
Grammar\程序源文件\parsing.cpp (7719, 2007-12-17)
Grammar\程序源文件\parsing.o (53987, 2007-12-17)
Grammar\程序源文件\token.cpp (832, 2007-12-17)
Grammar\程序源文件\token.o (26614, 2007-12-17)
Grammar\程序源文件\token.txt (998, 2007-12-17)
Grammar\计科05010542017杨晓艳语法分析报告 .doc (451072, 2007-12-17)
Grammar\说明文件\功能说明.txt (1373, 2006-12-29)
Grammar\说明文件\文法说明.txt (2378, 2007-12-17)
Grammar\说明文件\有序号的改写文法.txt (2926, 2006-12-29)
Grammar\可执行文件 (0, 2007-12-17)
Grammar\程序源文件 (0, 2007-12-17)
Grammar\说明文件 (0, 2007-12-17)
Grammar (0, 2007-12-17)

程序使用说明: 编译环境:Dev-C++4.9.9.2_setup.exe 打开方法:在程序源文件夹中,用devcpp-4.9.9.2.exe 编译器打开analyse.dev即可打开所有源程序 运行程序:打开可执行文件夹,然后运行analyse.exe。注意保证下面所列文件与可执行文件analyse.exe在同一个目录下。 输入输出文件说明: "grammer_one.txt" 文法输入文件(这里所列的文法是全部的产生式,消除了‘|’和左递归的文法, 规定用‘:’代替生成符号‘->’,用‘@’代替空符号‘ε’,在每条产生式的前后加$, 如:$statment : if_stmt$ 。文件的第一行是所有的产生式的个数。 "token.txt"; token序列输入文件(每行依次由源程序符号,token类型,所在行号三部分组成。 可识别的token类型有 关键字 KEYWORD、标识符 ID、数字 NUM、符号 SYMBOL 。) "LL_Table.txt"; LL(1)分析表输入文件 (第一行数字是终结符的个数,下面是所有的终结符, 第二行数字是非终结符的个数,然后是所有的非终结符列表。 第三行数字的后面是LL(1)分析表的状态转移阵列,不能到达的位置设为99.) "Analyse_tree.txt"; 分析栈的输出文件 (每行前面是分析栈里的内容,后面是对分析栈执行的操作) "error.txt"; 出错情况的输出文件 (每行前面是出错的符号,后面是产生错误的位置) "可执行文件" 可执行文件analyse.exe和它要求的输入输出文件。 "程序原文件" 所有程序的源代码、头文件和输入输出文件 可用的关键字: struct int void if else while do continue break return 可用的符号集: { } [ ] ( ) , . ; <= < > >= == != + - * / = 可定义一维数组,结构体,if-else结构, while结构 比较运算:<= < > >= != 算术运算:+ - * / 赋值运算:= 本程序的测试源程序如下: int max_factor(int p,intq) { if(q==0) return p; else return max_factor(q,p-p/q*q); } void main(void) { int x; int y; int a[10]; x=12; a[1]=5; a[2]9; max_factor(x,y); } 注:本软件的错误机制还不完善,比如上述源程序中包含一个错误 ‘a[2]9;’,但并没有检查出来。

近期下载者

相关文件


收藏者