所使用的开发环境: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
包括词法分析、语法分析、语义分析(生成四元式)、DAG优化(给出优化后的四元式),内容非常完整,绝对物有所值,有需要的小伙伴赶快下载吧!!!
2023-12-11 00:01:33 872KB 编译原理
1
在本次改进中,通过对PL/0程序的头文件,源文件的更新以及定义新的头文件,小组共实现15个功能,包括一维数组,++,--,+=,-=,*=,/=,%(取余),!(取反),repeat,for(to,downto),else,处理注释,错误提示,标识符或变量中可以有下划线。添加了12个保留字,添加了两条opr指令。在原有的语法基础上,更新了EBNF。错误处理上,新增了对数组,repeat语句等的错误处理。
2023-10-18 13:25:40 2.51MB 编译器
1
编译原理 课程设计 包含 词法分析 语法分析 语义分析 ,压缩包中 包含使用文档 采用c# 语言开发,有图形界面,并且核心代码 与界面代码分离 可以很好的改成java 平台 代码。
1
编译原理课程设计修改PL0编译器 对PL/0作以下修改扩充: 1.增加单词:保留字 ELSE,FOR,TO,DOWNTO,RETURN 运算符 +=,-=,++,--, 2.修改单词:不等号# 改为 <> 3.增加条件语句的ELSE子句
2023-04-13 14:37:22 242KB 编译原理课程设计修改PL0编译器
1
本次实验一共由四个部分组成,分别是词法设计、语法设计(包括递归下降和LL1)、语义设计以及窗口界面设计。
2023-03-09 14:56:47 2.08MB 文档资料
1
1.1 编译对象 1.2 编译功能 3.1 概要设计 3.2 详细设计
2023-03-08 10:03:12 805KB
1
编译原理课程设计 词法分析器 java版 题目要求:把关键字、算符、界符称为语言固有的单词,标识符、常量称为用户自定义的单词。为此设置三个全程量:SYM,ID,NUM 。 SYM:存放每个单词的类别,为内部编码的表示形式。 ID:存放用户所定义的标识符的值,即标识符字符串的机内表示。 NUM:存放用户定义的数。 GETSYM要完成的任务: 1. 滤掉单词间的空格。 2. 识别关键字,用查关键字表的方法识别。当单词是关键字时,将对应的类别放在SYM中。如IF的类别为IFSYM,THEN的类别为THENSYM。 3. 识别标识符,标识符的类别为IDENT,IDRNT放在SYM中,标识符本身的值放在ID中。关键字或标识符的最大长度是10。 4. 拼数,将数的类别NUMBER放在SYM中,数本身的值放在NUM中。 5. 拼由两个字符组成的运算符,如:>=、<=等等,识别后将类别存放在SYM中。 6. 打印源程序,边读入字符边打印。 由于一个单词是由一个或多个字符组成的,所以在词法分析程序GETSYM中定义一个读字符过程GETCH。
2023-03-05 16:48:43 108KB 编译原理 词法分析器 java
1
所使用的开发环境:Windows10、python(PyCharm)环境 注意,main.py里面有一个写函数,如果没有该位置可能会出错,建议注释掉。 课题功能: 创建一个词法分析程序,该程序支持分析常规语法。使用DFA(确定性有限自动机)来实现此程序。 程序有两个输入:1)一个文本文档,包括一组3º语法(正规文法)的产生式;2)一个源代码文本文档,包含一组需要识别的字符串。 程序的输出是一个token(令牌)表,该表由5种token组成:关键词,标识符,常量,限定符和运算符。 项目简介: 词法分析器读入三型文法,将三型文法构建成一个起点和一个终点的NFA,然后将NFA用子集法构造成DFA,创建DFA的索引表,后续读取要扫描的代码,将代码中的每个词依次带入DFA的索引表进行状态转换,如果到达终态说明词符合文法要求,输出token列表(三元组:所在行号,类别,token 内容)如果出错会输出另一种三元组(行号, 对错判定, token内容),并将token列表写入txt文件供任务二LR(1)语法分析器来使用,同时也会将结果输出到result.txt文件来观测。
2023-03-05 14:33:24 7.3MB python 编译原理 课程设计 词法分析器
1
东南大学编译原理课程设计完整版源码和实验报告
2023-03-02 14:48:45 59KB 东南大学
1