所使用的开发环境:Windows10、python(PyCharm)环境 注意:expression已给,包括测试的例子,但是需要词法分析器分析出的token表,格式:(行数, token分类, token内容),可以配套我的词法分析器使用。 要求:创建一个使用LR(1) 方法的语法分析程序,程序有两个输入:1)一个是文本文档,其中包含2º型文法(上下文无关文法)的产生式集合;2)任务1词法分析程序输出的(生成的)token令牌表。程序的输出包括:YES或NO(源代码字符串符合此2º型文法,或者源代码字符串不符合此2º型文法);错误提示文件,如果有语法错标示出错行号,并给出大致的出错原因。 项目简介:程序读入上下文无关文法,并进行拓广文法,将产生式依次形成项目进行储存,设定好起点进行处理得到完整的项目集族,按照项目集族之间的转换得到action、goto表,读取词法分析得到的token,按照之前得到的action、goto表进行处理,得到语法分析的结果,查看是否符合自己设定的语法,如果出错可以形成缺失或者错误导致的错误报告,并输出到result.txt(正确会得到‘YES’)。
1
语法分析器调用的是词法分析器的类。。。 自己写的。。LL(1)。。。 预测分析。。。 语法分析器调用的是词法分析器的类。。。 自己写的。。LL(1)。。。 预测分析。。。
2023-12-18 19:52:27 6KB 语法分析器 LL(1) 预测分析 java
1
Lex与Yacc, 词法和语法分析器讲解
带源码
2023-12-17 16:13:51 5.3MB Yacc 词法分析 语法分析
1
语法分析是编译过程的核心部分,它的任务是在词法分析识别出单词符号串的基础上,分析并判定程序的语法结构是否符合语法规则。分为自上而下分析法和自下而上分析法。本程序实现LL(1)文法;LL(1)文法是一类可以进行确定的自上而下语法分析的文法。
2023-12-01 21:09:15 84KB 语法分析器
1
根据LL(1)分析法编写一个语法分析程序,输入已知文法,由程序自动构造文法的预测分析表。所开发的程序可适用于不同的文法和任意输入串,且能判断该文法是否为LL(1)文法。对输入的任意符号串,所编制的语法分析程序应能正确判断此串是否为文法的句子(句型分析),并可以输出分析过程。
2023-11-19 15:45:56 18KB
1
编译实验,有词法分析和语法分析,实验报告也有。做的是科学计数法的词法分析,和语法分析
2023-11-15 01:40:59 155KB 词法分析 语法分析 编译原理
1
语法分析程序,实现对算术表达式的语法分析。要求所分析算术表达式由如下文法产生: E→E+T | E-T | T T→T*F | T / F | F F→id | (E) | num 对上述文法构造LL(1)分析表,在对输入表达式进行分析的过程中,输出所采用的产生式,并对错误进行适当的分析。
2023-05-15 17:34:37 14KB 编译原理 语法分析 LL(1) 自顶向下
1
编译原理 课程设计 包含 词法分析 语法分析 语义分析 ,压缩包中 包含使用文档 采用c# 语言开发,有图形界面,并且核心代码 与界面代码分离 可以很好的改成java 平台 代码。
1
#include #include #include #include #include #define de(x) cout<<#x<<"="< state_stack; stack sign_stack; char G[300][300]; //存文法 int length[300]; //文法的长度 int number=0; //文法的个数 bool isV[300]; //buffer of input 判断文法中是否出现这个字符 char Vn[300]; //非终结符 int size_vn=0; char Vt[300]; //终结符 int size_vt=0; bool first[300][300]; //first集 char buffer[300]; int size=0; struct T //转换表 项目集转换 { int begin; int next; char ch; }; struct project //项目集 { int num; int now; //小数点位置
2023-05-08 22:21:51 16KB 编译原理 语法分析 c++
1
本人编译原理课程设计题目,基于LR(1)的语法分析器采用的是C++语言进行书写。可以直接运行通过从文件中读取文法和ACTION和GOTO表格的方法进行实现。
2023-04-24 08:25:53 3KB c++ 编译器 c语言
1