计算机语法分析,电子科技大学-计算机学院-编译原理实验-语法分析.pdf

// SyntaxAnalyzer.cpp : 定义控制台应用程序的入口点。

//

#include

#include

#include

#define MAX_COUNT 1024

#define SIGN_UNDEFINED_ERR 1

#define SIGN_REDEFINED_ERR 2

#define SIGN_EXECUTE_ERR 3

#define NO_SIGN_ERR 4

#define SIGN_RESERVE_ERR 5

#define NO_PARA_ERR 6

/*types 是支持类型的集合*/

typedef enum { integer } types;

/*记录变量信息的结构体*/

typedef struct {

char vname[17];

char vproc[17];

bool vkind;

types vtype;

int vlev;

int vadr;

} varRecord;

/*记录过程信息的结构体*/

typedef struct {

char pname[17];

types ptype;

int plev;

int varNum;

int fadr;

int ladr;

int parameter;

bool parameterIsDefined;

} proRecord;

/**********文法产生式如下**********

A :程序 A->B

B :分程序 B->begin C;M end

C 说明与句表 C->DC'

C'->;DC'|ε

D 说明语句 D->E|J

E 变量说明 E->integer F

F 变量 F->G

G 标识符 G->HG'

G'->HG'|IG'|ε

H :字母 H->a|...|z|A|...|Z

I :数字 I->0|1|...|9

J :函数说明 J->integer function G(K);L

K :参数 K->F

L :函数体 L->begin C;M end

M 执行语句表 M->NM'

M'->;NM'|ε

N 执行语句 N->O|P|Q|W

O 读语句 O->read(F)

P :写语句 P->write(F)

Q 赋值语句 Q->F:=R

R :算术表达式 R->SR'

R'->-SR'|ε

S 项 S->TS'

S'->*TS'|ε

T :因子 T->F|U|Z

U :常数 U->V

V :无符号整数 V->IV'

V'->IV'|ε

W :条件语句 W->if X then N else N

X :条件表达式 X->RYR

Y :关系运

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值