CMM 解释器项目文档
一、背景
完成小组的基本信息:
姓名 学号 分工内容
蒋文忠
2013302580249
修改词法和语法分
析、完成中间代码生
成,和解释执行
黄章昊
2013302580262
负责词法分析和语法
分析,辅助解释执行
部分,负责最后的 UI
实现
二、文法描述
program -> stmt-sequence
stmt-sequence -> statement ; stmt-sequence | statement |ε
statement -> if-stmt | while-stmt | assign-stmt | read-stmt | write-stmt
| declare-stmt
stmt-block -> statement | { stmt-sequence }
if-stmt ->if(exp)then stmt-block |if(exp)then stmt-
blockelsestmt-block
while-stmt ->while(exp)stmt-block
assign-stmt -> variable=exp;
read-stmt ->readvariable;
write-stmt ->writeexp;
declare-stmt -> (int|real ) ( (identier[=exp ]) | (identier
[exp]) );
variable ->identier[[ exp]]
exp -> addtive-exp logical-op addtive-exp | addtive-exp
addtive-exp -> term add-op additive-exp | term
term -> factor mul-op term | factor
factor ->(exp)|number| variable | Add-op exp
logical-op ->>|<|>=|<=|<>|==
add-op ->+|-
mul-op ->*|/
评论0
最新资源