文档库

最新最全的文档下载
当前位置:文档库 > 实验二 语法分析(算符优先)(1)

实验二 语法分析(算符优先)(1)

实验二语法分析实验报告

一、实验题目

算符优先分析程序

二、实验内容及要求

(1)根据给定文法,先求出FirstVt和LastVt集合,构造算符优先关系表(要求算符优先关系表输出到屏幕或者输出到文件);

(2)根据算法和优先关系表分析给定表达式是否是该文法识别的正确的算术表达式(要求输出归约过程)

(3)给定表达式文法为:

G(E’): E’→#E#

E→E+T | T

T→T*F |F

F→(E)|i

(4)分析的句子为:

(i+i)*i和i+i)*i

三、程序源代码:

#include

#include

#include

#include

#define SIZE 128

char priority[6][6]; //算符优先关系表数组

char input[SIZE]; //存放输入的要进行分析的句子

char remain[SIZE]; //存放剩余串

char AnalyseStack[SIZE]; //分析栈

void analyse();

int testchar(char x); //判断字符X在算符优先关系表中的位置

void remainString(); //移进时处理剩余字符串,即去掉剩余字符串第一个字符

int k;

void init()//构造算符优先关系表,并将其存入数组中