• 大小: 2KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-01-07
  • 语言: C/C++
  • 标签: C/C++  

资源简介

编译原理课程设计-布尔表达式转换为四元式 设计一个语法制导翻译器,将布尔表达式翻译成四元式。要求:先确定一个定义布尔表达式的文法,为其设计一个语法分析程序,为每条产生式配备一个语义子程序,按照一遍扫描的语法制导翻译方法,实现翻译程序。对用户输入的任意一个正确的布尔表达式,程序将其转换成四元式输出(可按一定格式输出到指定文件中)。

资源截图

代码片段和文件信息

#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();

评论

共有 条评论