下载此文档

编译原理语法分析程序设计分析法.doc


文档分类:IT计算机 | 页数:约8页 举报非法文档有奖
1/8
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/8 下载此文档
文档列表 文档介绍
: .
1. 实验目:掌握LL(1)分析法基本原理,掌握LL(1)分析表构造办法,掌握LL(1) 驱动程序构造办法。
:实现LR分析法(P147,)或预测分析法(P121,)。
:一台配备为1GXP操作系统PC机;Visual C++.
:编译程序语法分析器以单词符号作为输入,分析单词符号串与否形成符合语 法规则语法单位,如表达式、赋值、循环等,最后看与否构成一种符合规定程序,按该语言使用语法规则分析检查每条语句与否有对的逻辑构造,程序是最后一种语法单位。编译程序语法规则可用上下文无关文法来刻画。
语法分析办法分为两种:自上而下分析法和自下而上分析法。自上而下就是从文法开始符号出发,向下推导,推出句子。而自下而上分析法采用是移进归约法,基本思想是:用一种寄存符号先进后出栈,把输入符号一种一种地移进栈里,当栈顶形成某个产生式一种候选式时,即把栈顶这一某些归约成该产生式左邻符号。
自顶向下带递归语法分析:1、一方面对因此生成式消除左递归、提取公共左因子
2、在源程序里建立一种字符串数组,将所有生成式都存在这个数组中。
3、给每个非终结符写一种带递归匹配函数,其中起始符函数写在main函数里。 这些函数对生成式右边从左向右扫描,若是终结符直接进行匹配,匹配失败,则调用出错函数。如果是非终结符则调用相应非终结符函数。
4、对输入符号串进行扫描,从起始符生成式开始。如果匹配成功某个非终结符生成式右边首个终结符,则将这个生成式输出。匹配过程中,应当浮现非终结符没有浮现,则出错解决。
:相应源程序代码:
#include <>
#include <>
#include <stack>
using namespace std;
struct Node1
{ char vn;
char vt;
char s[10];
}MAP[20]; //存储分析预测表每个位置相应终结符,非终结符,产生式
int k; //用R代表E',W代表T',e代表空
char start='E';
int len=8;
charG[10][10]={"E->TR","R->+TR","R->e","T->FW","W->*FW","W->e","F->(E)","F->i"};//存储文法中产生式
char VN[6]={'E','R','T','W','F'}; //存储非终结符
char VT[6]={'i','+','*','(',')','#'}; //存储终结符
char SELECT[10][10]={"(,i","+","),#","(,i","*","+,),#","(","i"};//存储文法中每个产生式相应SELECT集
char Right[10][8]={"->

编译原理语法分析程序设计分析法 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数8
  • 收藏数0 收藏
  • 顶次数0
  • 上传人梅花书斋
  • 文件大小83 KB
  • 时间2021-12-07