1 / 22
文档名称:

一个简单的语法分析器.doc

格式:doc   页数:22
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

一个简单的语法分析器.doc

上传人:janny 2011/6/5 文件大小:0 KB

下载得到文件列表

一个简单的语法分析器.doc

文档介绍

文档介绍:《编译原理》
上机实验报告
标题:LL(1)语法分析程序
单位:计算机学院2001级13班
报告人:龚勋 200131500342
刘栋 200131500350
罗晓波 200131500351
指导教师:何炎详
编程环境:VC++
时间:2004年5月13日

(1)对输入文法,它能判断是否为LL(1)文法,若是,则转(2);否则报错并终止;
(2)输入已知文法,由程序自动生成它的LL(1)分析表;
(3)对于给定的输入串,应能判断识别该串是否为给定文法的句型。

该程序可分为如下几步:
(1)读入文法
(2)判断正误
(3)若无误,判断是否为LL(1)文法
(4)若是,构造分析表;
(5)由总控算法判断输入符号串是否为该文法的句型。
有效?
读入文法
开始


是LL(1)文法?
结束
报错
判断句型


/*******************************************
语法分析程序
作者:龚勋刘栋罗晓波
学号:200131500342 200131500350 200131500351
计科系 13班
********************************************/
#include<>
#include<>
#include<>
/*******************************************/
int count=0; /*分解的产生式的个数*/
int number; /*所有终结符和非终结符的总数*/
char start; /*开始符号*/
char termin[50]; /*终结符号*/
char non_ter[50]; /*非终结符号*/
char v[50]; /*所有符号*/
char left[50]; /*左部*/
char right[50][50]; /*右部*/
char first[50][50],follow[50][50]; /*各产生式右部的FIRST和左部的FOLLOW集合*/
char first1[50][50]; /*所有单个符号的FIRST集合*/
char select[50][50]; /*各单个产生式的SELECT集合*/
char f[50],F[50]; /*记录各符号的FIRST和FOLLOW是否已求过*/
char empty[20]; /*记录可直接推出^的符号*/
char TEMP[50]; /*求FOLLOW时存放某一符号串的FIRST集合*/
int validity=1; /*表示输入文法是否有效*/
int ll=1; /*表示输入文法是否为LL(1)文法*/
int M[20][20]; /*分析表*/
char choose; /*用户输入时使用*/
char empt[20]; /*求_emp()时使用*/
char fo[20]; /*求FOLLOW集合时使用*/
/*******************************************
判断一个字符是否在指定字符串中
********************************************/
int in(char c,char *p)
{
int i;
if(strlen(p)==0)
return(0);
for(i=0;;i++)
{
if(p[i]==c)
return(1); /*若在,返回1*/
if(i==strlen(p))
return(0); /*若不在,返回0*/
}
}
/*******************************************
得到一个不是非终结符的符号
********************************************/
char c()
{
char c='A';
while(in(c,non_ter)==1)
c++;
return(c);
}
/*******************************************
分解含有左递归的产生式
********************************************/
void recur(char *point)
{ /*完整的产生式在point[]中*/
int j,

最近更新

2024年广东食品药品职业学院单招职业适应性考.. 40页

2024年广安职业技术学院单招职业适应性考试题.. 40页

2024年广州城建职业学院单招职业适应性测试模.. 41页

2024年广州民航职业技术学院单招职业技能考试.. 41页

2024年广州科技贸易职业学院单招职业技能考试.. 40页

2024年广西交通职业技术学院单招职业技能测试.. 40页

2024年广西信息职业技术学院单招职业倾向性考.. 40页

2024年广西卫生职业技术学院单招职业倾向性测.. 38页

2024年广西城市职业大学单招职业倾向性测试题.. 39页

2024年广西培贤国际职业学院单招职业适应性考.. 40页

2024年广西工业职业技术学院单招职业适应性测.. 40页

2024年广西工程职业学院单招职业技能考试题库.. 40页

2024年广西物流职业技术学院单招职业技能测试.. 40页

2024年广西理工职业技术学院单招职业技能测试.. 39页

2024年广西省玉林市单招职业适应性测试模拟测.. 39页

2024年广西省贺州市单招职业适应性考试模拟测.. 40页

2024年广西经贸职业技术学院单招职业技能测试.. 40页

2024年广西蓝天航空职业学院单招职业倾向性考.. 39页

2024年广西金融职业技术学院单招职业倾向性测.. 41页

2024年应天职业技术学院单招综合素质考试题库.. 39页

2024年廊坊卫生职业学院单招职业适应性考试题.. 40页

2024年廊坊职业技术学院单招职业适应性考试模.. 40页

2024年张家口职业技术学院单招职业适应性测试.. 40页

2024年徐州工业职业技术学院单招职业技能测试.. 41页

2024年徐州生物工程职业技术学院单招职业技能.. 40页

2024年德阳科贸职业学院单招职业倾向性测试模.. 40页

2024年忻州职业技术学院单招综合素质考试模拟.. 42页

ZR-003 建设单位法人授权书 1页

玩具购销合同通用6篇 10页

卫生院医疗质量、医疗安全工作责任书 11页