- 73
- 0
- 约1.1万字
- 约 13页
- 2017-04-04 发布于江苏
- 举报
天津理工大学编译原理实验2:语法分析
实验报告
学院(系)名称:计算机与通信工程学院
姓名 学号 专业 班级 实验项目 实验二:语法分析 课程名称 编译原理 课程代码 实验时间 2016年4月21日 第1、2节
2016年4月26日 第3、4节
2016年4月28日 第1、2节 实验地点 计算机软件实验室7-220 批改意见 成绩
教师签字: 实验内容:
可选择LL1分析法、算符优先分析法、LR分析法之一,实现如下表达式文法的语法分析器:
(1)E→E+T | E-T | T
(2)T→T*F | T/F | F
(3)F→P^F | P
(4)P→(E) | i
实验目的:
1.掌握语法分析的基本概念和基本方法;
2.正确理解LL1分析法、算符优先分析法、LR分析法的设计与使用方法。
实验要求
使用的是LL(1)分析法,其分析表的构造方法和构造过程如下:
实验源代码:
#includeiostream
#includecstring
#define size 1024
using namespace std;
int getLength(char str[size])
{
int i=0;
while(str[i]!=\0)
i++;
return i;
}
int getstringLength(string str)
{
int i=0;
while(str[i]!=\0)
i++;
return i;
}
char gettop(char stack[size],int top)
{
if(stack[top]!=\0)
return stack[top];
else
return #;
}
void popstack(char *stack,int *pointer)
{
int p=*pointer;
cout\tPopup stack[p] out!;
stack[p]=\0;
(*pointer)--;
}
void pushstack(char *stack,int *pointer,string str)
{
int i=0;
int length=getstringLength(str);
cout push str in stack reversed order.;
for(i=length-1;i=0;i--)
{
(*pointer)++;
stack[(*pointer)]=str[i];
}
}
int getcol(char top)
{
switch(top)
{
case +:
return 0;
case -:
return 1;
case *:
return 2;
case /:
return 3;
case ^:
return 4;
case ):
return 5;
case #:
return 6;
case (:
return 7;
case i:
return 8;
default:
coutError! This character string is not this grammer`s sentence.endl;
return -1;
}
}
void show(char str[size],int index)
{
int length=getLength(str);
if(index!=-1)
cout\t;
for(int i=index+1;ilength;i++)
coutstr[i];
}
int main()
{
char str[size];//接受字符串的数组
char stack[size];//进行比对的栈
int pointer=-1;//指向栈顶的指针
int length=0;//记录字符串长度
int index=0;//记录输入字符串
char top;
int i,j;//i表示行,j表示列
string production;
bool match=false;
string table[7][9]={ // + - * / ^ ) # ( i
/* E */ error, error, error, error, error, error, error, TX, TX,
/* X */ +TX, -TX, error, error, error, empty, e
您可能关注的文档
- 为您的电动自行车选择正确的轮胎.doc
- 九年级Unit15_it must belong to Carla.Section_B1.ppt
- 九年级Unit5it must belong to Carla._Section_B1.ppt
- 九年级Unit51it must belong to Carla._Section_B1.ppt
- 九年级_Unit_5_It_must_belong_to_Carla..ppt
- 九年级英语 Unit 5 《It must belong to Carla》1a--1c课件.ppt
- 九年级Unit6 Section A 第一课时 课件.ppt
- 九年级英语《Unit5 It must belong to Carla Self check》课件.ppt
- 九年级英语定位考写作要求.ppt
- 五下Unit-2-My--favourite-season--B--Read-and-write.ppt
最近下载
- 《我家是动物园》教案(2025—2026学年).docx VIP
- QSY 02025-2017 油水井压裂设计规范.pdf VIP
- 《轩辕剑4全全地图超完美攻略--黑龙舞兮云飞扬(最详细的心得体会、可下载、可编辑、可复制)》.doc VIP
- 2025-2026学年湖南省长沙市浏阳市高一(上)期末数学试卷(含答案).pdf VIP
- 一种基于层次分析法与灰色模糊综合评价法的项目效益评估方法.docx VIP
- 设备自检记录(电焊机).doc VIP
- 保时捷Boxster、Boxster S_2013款_汽车使用手册用户操作图解驾驶车主车辆说明书电子版.pdf
- 2024新疆中考语文试题(附参考答案) .pdf VIP
- 颅脑体表标志与脑出血穿刺定位方法.ppt VIP
- 塑料注射成型与模具设计指南_401-450.docx VIP
原创力文档

文档评论(0)