VC++问题!编译原理兼编程高手进~~!

来源:百度知道 编辑:UC知道 时间:2024/05/01 04:49:39
WHILE循环语句的翻译程序设计 (递归下降法、输出三地址表示)!要C++的源代码,能完全实现题目的要求,最好有注释!有珍藏的拿出来大家分享,没注释的话就留言,小弟诚心虚心请教~~!

我有做过,给你吧,记得加分哦

#include<iostream.h>
#include<stdio.h>
#include<string.h>

#define buf 20
#define MAXBUF 255

typedef struct Token
{
int label;
char name[buf];
int code;
}Token;

typedef struct Symbol_i
{
int symbol_i;
int state;
}Symbol_i;

int Getsymbol();
void ERROR();
void S(); //S->while (B) S | i=E
void B(); //B->E relop E
void relop(); //relop->< | = | >
void E(); //E->(E)F | iF | nF
void F(int A); //F->+EF | -EF | *EF | /EF | ε
void F();

char sym,ch;
int symbol_L=0,symbol_L1=0,symbol_L2=0,symbol_L3=0,symbol_L4=0;
int l,l1,l2,l3,l4;
int L_i=0,S_i=0,B_i=0,E_i=0,F_i=0,relop_i=0,i_i=0,n_i=0;
int k=0;
int re,n=0,t=0;
int i1=0,i2=0,i3=0,i4=0;
char *wh="while";
Token token1[MAXBUF],token2