【问题描述】 设计一个给定LL(1)分析表,输入一个句子,能由依据LL(1)分析表输出与句子对应的语法树。能对语法树生成过程进行模拟。(算法参见教材) 【基本要求】 动态模拟算法的基本功能是: (1) 输入LL(1)分析表和一个句子; (2) 输出LL(1)总控程序; (3) 输出依据句子构成的对应语法树的过程; 【测试数据】 输入句子:i*i+i
2019-12-21 22:09:40 4KB 编译原理
1
基于LL(1)方法的语法分析程序 实现对输入文法的分析 化简左递归 判断输入的句型
2019-12-21 21:59:26 70KB 编译课设LL(1)语法分析
1
第三次上机—语法分析1 目的:熟练掌握自上而下的语法分析方法,并能用C++程序实现。 要求: 1. 使用的文法如下: E ® TE ¢ E ¢ ® + TE ¢ | e T ® FT ¢ T ¢ ® * FT ¢ | e F ® (E) | id 2. 对于任意给定的输入串(词法记号流)进行语法分析,递归下降方法和非递归预测分析方法可以任选其一来实现。 3. 要有一定的错误处理功能。即对错误能提示,并且能在一定程度上忽略尽量少的记号来进行接下来的分析。可以参考书上介绍的同步记号集合来处理。 可能的出错情况:idid*id, id**id, (id+id, +id*+id …… 4. 输入串以#结尾,输出推导过程中使用到的产生式。例如: 输入:id+id*id# 输出:E ® TE ¢ T ® FT ¢ F ® id E ¢ ® + TE ¢ T ® FT ¢ …… 如果输入串有错误,则在输出中要体现是跳过输入串的某些记号了,还是弹栈,弹出某个非终结符或者是终结符了,同时给出相应的出错提示信息。比如: idid*id对应的出错信息是:“输入串跳过记号id,用户多输入了一个id”; id**id对应的出错信息是:“弹栈,弹出非终结符F,用户少输入了一个id” (id+id对应的出错信息是:“弹栈,弹出终结符 ) ,用户少输入了一个右括号(或者说,括号不匹配)” 有余力的同学可进一步考虑如下扩展: 1. 将递归下降方法和非递归预测分析方法都实现 2. 在语法分析的过程中调用第二次上机的结果,即利用词法分析器来返回一个记号给语法分析器。 3. 编写First和Follow函数,实现其求解过程。 测试文法: A->BCDE B->aBA|ε C->F|ε D->b|c|ε E->e|ε F->d|ε
2019-12-21 21:58:39 10KB 递归 LL(1) 自上而下
1
编译原理课程设计项目,带报告 根据LL(1)分析法编写的语法分析程序: (1)输入已知文法,由程序自动构造文法的分析表M。 (2)所开发的程序可适用于不同的文法和任意输入串,且能判断该文法是否为LL(1)文法。 (3)对于输入的文法和符号串,正确判断此串是否为文法的句子,输出分析过程。 (4)可消除左递归左公因子 图形界面良好 可分析如下产生式集合(空字用‘@’表示) "E->E+T|T,T->T*F|F,F->i|(E)"; "S->ME,E->+ME|@,M->FT,T->*FT|@,F->i|(S)"; "S->AB,S->bC,A->@,A->b,B->@,B->aD,C->AD,C->b,D->aS,D->c";"S->AB|b,A->Sm,B->eA";
2019-12-21 21:55:42 1.57MB LL(1) 编译原理 课程设计 项目
1
STM32 LL库使用指南+新建工程模板方法,详细介绍STM32LL库以及如何新建工程模板的具体步骤
2019-12-21 21:54:24 849KB STM32 LL库 使用指南 工程模板
1
因为空闲中断误触发导致数据收得不全,所以改成直接中断收数据,超时接收。代码实测好用,无丢包情况。好用,可直接 使 用
2019-12-21 21:53:33 13.84MB STM32 HAL I2 HAL 
1
(1)要提供一个源程序编辑界面,让用户输入文法规则(可保存、打开存有文法规则的文件) (2)检查该文法是否存在着左递归,如果有,则消除该文法的左递归。因此需要提供窗口以便用户可以查看消除左递归后的结果。 (3)检查该文法是否存在着左公共因子,如果有,则消除该文法的左公共因子。因此需要提供窗口以便用户可以查看消除左公共因子的结果。 (4)需要提供窗口以便用户可以查看文法对应的LL(1)分析表,并报告该文法是否为LL(1)文法。 (5)需要提供窗口以便用户输入需要分析的句子。 (6)需要提供窗口以便用户查看使用LL(1)分析该句子的过程。【可以使用表格的形式逐行显示分析过程】 (7)应该书写完善的软件文档
2019-12-21 21:37:58 1.06MB LL(1)生成器 编译原理 Qt 华南师范大学
1
预测分析表自动构造程序的实现 设计内容及要求:对于任意输入的一个LL(1)文法,构造其预测分析表。要求:首先实现集合FIRST(X)构造算法和集合FOLLOW(A)构造算法,再实现教材P.79给出的预测分析表构造算法。程序显示输出预测分析表或输出到指定文件中。 预测分析程序的实现 设计内容及要求: 对文法 G: E→E+T|T 按教材P.76表4.1构造出G的预测分析程序, T→T*F|F 程序显示输出如P.78那样的匹配过程。 F→(E)|i
2019-12-21 21:33:44 236KB 编译原理 c++ 课程设计
1
根据某一文法编制调试LL(1)分析程序,以便对任意输入的符号串进行分析。
2019-12-21 21:33:07 107KB LL(1)分析法 编译原理 c++
1
重庆理工大学 编译原理 课程设计。用java编写,有漂亮的界面,支持词法分析,正规式转换、LL(1)分析、LR(0)分析、算符优先分析
2019-12-21 21:32:36 189KB 语法分析
1