一.题目:
设计一个语法制导翻译器,将算术表达式翻译成三元式。
二.设计思想:
设置堆栈,将字符和预算符号分别存储到堆栈当中,并且设置中间变量存储中间结果,
再一一从堆栈中将符号和预算符号取出,经过处理进行输出,形成三元式。
三.程序代码
#include "string.h"
#include "stdio.h"
char w; //当前单词(w)
int j=1;
int a[10]; //临时变量序号
struct TOKEN //单词的 TOKEN 结构
{
char t;
int i;
} ;
struct TOKEN word, sem[10]; //结构单词(word),语义栈(sem)
int i_sem;
struct QT //三元式结构
{
char w;
struct TOKEN word1;
struct TOKEN word2;
struct TOKEN temp;
};
char exp[50]; //原算术表达式区
int i=0; //原单词序号
struct QT qt[30]; //三元式区
int q=0; //三元式序号
int E();
int T();