资源简介
编译原理课程设计-布尔表达式转换为四元式
设计一个语法制导翻译器,将布尔表达式翻译成四元式。要求:先确定一个定义布尔表达式的文法,为其设计一个语法分析程序,为每条产生式配备一个语义子程序,按照一遍扫描的语法制导翻译方法,实现翻译程序。对用户输入的任意一个正确的布尔表达式,程序将其转换成四元式输出(可按一定格式输出到指定文件中)。
代码片段和文件信息
#include
#include
#include
using namespace std;
stack s;
void sub_E();
void sub_T();
void sub_F();
void GEQ(char);
int num=0;
char QT[10][4]T=‘A‘c;
void sub_E()
{
sub_T();
R1: if(c==‘^‘)
{
c=getchar();
sub_T();
GEQ(‘^‘);
goto R1;
}
}
void sub_T()
{
sub_F();
R4: if(c==‘&‘)
{
c=getchar();
sub_F();
GEQ(‘&‘);
goto R4;
}
}
void sub_F()
{
if(c>=‘a‘&&c<=‘z‘)
{
s.push(c);
c=getchar();
}
else if(c==‘(‘)
{
c=getchar();
sub_E();
if(c==‘)‘)
c=getchar();
else
{
cout<<“括号不匹配!“< exit(0);
}
}
else
{
cout<<“非法符号!“< exit(0);
}
}
void GEQ(char m)
{
QT[num][0]=m;
QT[num][2]=s.top();s.pop();
- 上一篇:osgActiveX源码
- 下一篇:tic-tac-toe(三连棋游戏
相关资源
- DSS中的RTSPclientLib程序
- c 常用的数据结构 (Errata for Ford/Top
- rip协议编程及代码实现
- Windows Sockets 编程及UR机器人通信数据
- 茶壶的光照观察组(c++代码)
- C++实战源码-小蛇长得快
- C++实战源码-文字水平滚动
- C++实战源码-替换指定的字符串
- C++实战源码-小球称重
- C++实战源码-新同学的年龄
- C++实战源码-向数组中赋值
- C++实战源码-用#打印三角形
- C++实战源码-统计学生成绩分布
- C++实战源码-向数组中插入元素
- C++实战源码-用指向函数的指针比较大
- C++实战源码-用宏定义实现值互换
- C++实战源码-CD抓取
- C++实战源码-指定符号分割字符串
- C++实战源码-抓不住的兔子
- C++实战源码-用new动态创建结构体
- C++实战源码-将AVI动画分解成BMP位图
- C++实战源码-修改可执行文件中的资源
- C++实战源码-指向结构体变量的指针
- C++实战源码-将二维数组行列对换
- C++实战源码-应用random_shuffle算法将元
- C++实战源码-应用adjacent_find算法搜索相
- C++实战源码-数组中整数的判断
- C++实战源码-获取数组中元素的个数
- C++实战源码-将二维数组转换为一维数
- C++实战源码-迭代器的用法
评论
共有 条评论