教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 实用文档 >

递归下降的语法分析器

来源:网络收集 时间:2026-09-08
导读: 希望可以帮我南航金城的学弟学妹们,嘿嘿 #includeiostream #includestring using namespace std; string str;//句子 int flag = 0;//0标记合法,1标记非法 int i = 0; void E(); void F(); void E1(); void T1(); void T(); void E() { T(); E1(); } void E1(

希望可以帮我南航金城的学弟学妹们,嘿嘿

#include<iostream>
#include<string>

using namespace std;
string str;//句子
int flag = 0;//0标记合法,1标记非法
int i = 0;
void E();
void F();
void E1();
void T1();
void T();
void E()
{
T();
E1();
}

void E1()
{
if(str[i] == '+' )
{
cout<<"E->TE1"<<endl;
cout<<"E1->+TE1|ε"<<endl;

i++;
T();
E1();


}


}

void T()
{
F();
T1();
}

void T1()
{
if(str[i] == '*' )
{
cout<<"E->TE1"<<endl;
cout<<"T->FT1 "<<endl;
cout<<"T1->*FT1|ε"<<endl;

i++;
F();
T1();
}
}

void F()
{
if(str[i] == 'i')
{
i++;
}
else
{cout<<"F->(E)|i"<<endl;
if(str[i] == '(')
{
i++;
E();
if(str[i] == ')')
{
i++;
}
else
{
flag = 1;
cout << "error" << flag << endl;
}
}
else
{
flag = 2;
cout << "error" << flag << endl;
}
}
}

int main()
{
cout << "请输入字符串(以'#'结束)..." << endl;
cin >> str;
E();
if(str[i] == '#'
&& flag == 0)
cout << "为合法符号串!" << endl;
else
cout << "为非法的符号串!" << endl;
return 0;
}

递归下降的语法分析器.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1802362.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)