编译原理算符优先文法编译原理算符优先文法
//算符优先分析器源代码:
#include
#include
#define MAX 100
using namespace std;
struct Stack //符号栈
{
char data[MAX];
int top;
};
char Terminal[6]={'+','*','w','(',')','#'}; //终结符集合
char Table[6][6]={ //算符优先关系表
{'>', '', '>'},
{'>', '>', '', '>'},...
编译原理算符优先文法
//算符优先分析器源代码:
#include
#include
#define MAX 100
using namespace std;
struct Stack //符号栈
{
char data[MAX];
int top;
};
char Terminal[6]={'+','*','w','(',')','#'}; //终结符集合
char Table[6][6]={ //算符优先关系表
{'>', '<', '<', '<', '>', '>'},
{'>', '>', '<', '<', '>', '>'},
{'>', '>', '!', '!', '>', '>'},
{'<', '<', '<', '<', '=', '!'},
{'>', '>', '!', '!', '>', '>'},
{'<', '<', '<', '<', '!', '='} };
//判断是否为终结符,是返回其所在位置i,否则返回-1
int Is_Vt(char ch,char Terminal[6]) {
int i;
for(i=0;i<6;i++)
{
if(ch==Terminal[i]) //输入符为终结符
return i;
}
return -1;
}
//读入输入串,返回其长度 int Getchar(int length,char String[MAX]) {
int i;
cout<<"*****输入字符串的长度length=";
cin>>length;
cout<>String[i];
return length;
}
void PrintStack(Stack &st, int top) //输出栈中的内容
{
for(int i=0;i<=top;i++)
cout<
本文档为【编译原理算符优先文法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。