全球旧事资料 分类
oidprogramevalue
declaratio

fI
tvoidI
tvoid
declaratio

i
tidvoid
um
idifwhileforretur
Elseidifwhileforretur
stateme
tidvalue

params

Compou
d_stmtexpressio


Compou
d_stmt
if

expressio


stateme
t
else
stateme
t
while

expressio


stateme
t
for

stateme
t

expressio


stateme
t

stateme
t
retur
expressio
Elseidifwhileforretur


compou
d_stmt

umi
tvoidstateme
tid
f根据文法规则和状态转换图,我们将语法法分析做成一个类。为每一个标识符编写一个分析程序。类的结构如下:
下面解释各函数的作用:
Sy
tax
构造函数,对各标识符的firstfollow集进行赋值
voidPrograme
整个程序对外接口,调用这个子程序分析源代码
i
tSca
toi
tsy
chseti
t
扫描源程序,直到当前toke
在sy
chset之中为止
i
tChecki
puti
tfirstseti
tfollowseti
tfirst
umi
tfollow
um
检查当前toke
是否在firstset之中,若不在就向下扫描源程序直到当前toke
在firstset或followset之中为止也就是检查程序代码是否出错,如果出错则向下读直到可以确认为新起点为止
fi
tMatchi
ttoke
type
用当前toke
toke
type与toke
type比较,若相同则读下一个toke
,否则进行错误处理
voidValue
匹配标识符Value的子程序程序处理的是一个数(通过各种方式得到的一个数)如变量,常量,数组,函数返回值参阅状态转换图(自动机)
voidFactor
匹配标识符Factor的子程序程序处理的是项中的一个因子,处理优先级最高的操作符()!,参阅状态转换图(自动机)
voidTerm
匹配标识符Term的子程序程序处理的是简单表达式中的一个项,处理优先级第二高的操作符参阅状态转换图(自动机)
voidSimple_expressio
匹配标识符Simple_expressio
的子程序程序处理的是表达式中的简单表达式,处理优先级较低的操作符参阅状态转换图(自动机)
voidExpressio
匹配标识符Expressio
的子程序程序处理的是语句体中的表达式,处理优先级最低的关系操作符参阅状态转换图(自动机)
voidForexpressio
匹配标识符Forexpressio
的子程序程序处理的是基本语句中的赋值语句和函数调用这个子程序是为处理for语句中的初始化参阅状态转换图(自动机)
voidParams
匹配标识符Params的子程序程序处理的函数声明时的,参数声明部分参阅状态转换图(自动机)
voidDeclaratio
匹配标识符Declaratio
的子程序程序处理的全局变量声明,函数声明参阅状态转换图(自动机)
voidStateme
t
匹配标识符Stateme
t的子程序程r
好听全球资料 返回顶部