资源简介
这是我自己用c++编的LR分析器,下载后即用。对编译时出现的各种错误都能纠正,很好用,希望能够帮助大家。
另外补充一下:此编译器实现功能主要是+*()的操作。
代码片段和文件信息
#include
#include
#include
using namespace std;
char f[9]={‘i‘‘+‘‘*‘‘(‘‘)‘‘#‘‘E‘‘T‘‘F‘};
/*将产生式左部写在前,逆序存放产生式内容*/
char anal[8][2]=
{
{‘E‘‘E‘} // 1 E->E+T
{‘E‘‘T‘} // 2 E->T
{‘T‘‘T‘} // 3 T->T*F
{‘T‘‘F‘} // 4 T->F
{‘F‘‘(‘} // 5 F->(E)
{‘F‘‘i‘} // 6 F->i
};
void display(int lr)
{
cout<<“按“;
switch(lr)
{
case 1:cout<<“E->E+T“;break;
case 2:cout<<“E->T“;break;
case 3:cout<<“T->T*F“;break;
case 4:cout<<“T->F“;break;
case 5:cout<<“F->(E)“;break;
case 6:cout<<“F->i“;break;
}
cout<<“归约“< }
//LR分析表(个位表状态,十位1表r,十位2表s)
int LR[12][9]=
{
{25-1-124-2-1123}
{-3260-3-2100000}
{-31227-31212000}
{-3141401414000}
{25-1-124-2-1823}
{-3161601616000}
{25-1-124-2-1093}
{25-1-124-2-10010}
{-3260-331-4000}
{-31127-31111000}
{0131301313000}
{0151501515000}
};
int anal_f(char c)//由符号判断分析表的列
{
switch(c)
{
case ‘i‘:return 0;break;
case ‘+‘:return 1;break;
case ‘*‘:return 2;break;
case ‘(‘:return 3;break;
case ‘)‘:return 4;break;
case ‘#‘:return 5;break;
case ‘E‘:return 6;break;
case ‘T‘:return 7;break;
case ‘F‘:return 8;break;
}
}
void main()
{
queuewenfa;//输入
stackzhan_s;//栈中的数字--状态
stackzhan_f;//栈中的字符
char ss[10];
char idtf;
int numtsjksym;
cout<<“------>>欢迎使用LR文法<<-------\n“<<“请输入文法串:“;
while(id!=‘#‘)
{
cin>>id;
wenfa.push(id);
}
cout< zhan_s.p
- 上一篇:单像空间后方交会用C语言实现的
- 下一篇:MFC多人聊天室
相关资源
- MFC多人聊天室
- C++ primer 第三版习题答案
- C++实现AES、DES加密算法含MFC界面
- C++课程设计 扑克牌游戏内含2程序
- 3DES加密算法C++实现
- vim配置文件及其插件大全配置好的I
- C++绘制漂亮仪表盘
- c++ test9.5破解工具
- C/C++视频教程
- 图书管理系统.cpp
- c++P2P视频技术源码(VC++)
- VC++开发IE ActiveX控件
- 汉字转拼音 自适应多音字处理 姓名自
- c++_关于公路收费的问题
- c++ 源码通过dll启动应用程序exe
- Dev-C++ V5.7.1中文版(32位64;位)_C++ 开
- C++ log4cplus Demo
- VC++6.0 简体中文版 msdn
- Microsoft Visual C++ 14.0.zip
- VC++2010(VC++最新版!)
- 使用socket套接字发送udp数据包
-
C++_AES_ECB_ba
se64 - 个人总结的一些C/C++编码规范
- C++编程规范
- c++标准库第二版_高清_230M
- C++11新标准中文版
- 谷歌C++编码规范 Google C++ 风格指南
- c++stl标准库源码
-
Unreal Engine 4 sc
ripting with C++ Cookbook - Data Structures and Algorithm Analysis in C++
评论
共有 条评论