【文件属性】:
文件名称:pl0语法分析器
文件大小:754KB
文件格式:ZIP
更新时间:2015-08-01 03:43:30
pl0 语法分析器 编译原理
是pl0的语法分析器,编译原理实验;
用C写的。
/语法分析过程中
/利用词法分析的结果进行分析
/严格按照PL0程序定义来编写
/
/<程序> ::= <程序首部> <分程序>.
/<程序首部> ::= PROGRAM <标识符>;
/<分程序> ::= [<常量说明部分>][<变量说明部分>][<过程说明部分>]<语句部分>
/<常量说明部分> ::= CONST <常量定义>{,<常量定义>};
/<常量定义> ::= <标识符>=<无符号整数>
/<变量说明部分> ::= VAR <标识符>{,<标识符>};
/<过程说明部分> ::= <过程首部>;<分程序>;【原课件中没有最后的分号,经分析应该有分号】
/<过程首部> ::= PROCEDURE <标识符>
/<语句部分> ::= <语句>|<复合语句>
/<复合语句> ::= BEGIN <语句>{;<语句>} END【符合语句应该注意的是,END前距离END最近的那条语句一定没有分号,其他语句必须有分号】
/<语句>::= <赋值语句>|<条件语句>|<当型 循环语句>|<过程调用语句>|<读语句>|<写语句>|<复合语句>
/<赋值语句> ::= <标识符>:=<表达式>
/<读语句> ::= READ(<标识符>{,<标识符>})
/<写语句> ::= WRITE(<表达式>{,<表达式>})
/<过程调用语句> ::= CALL <标识符>【原课件中有分号,实际不应该有】
/<条件语句> ::= IF <条件> THEN <语句>
/<当型循环语句> ::= WHILE <条件> DO <语句>
/<因子> ::= <标识符>|<常量>|(<表达式>)
/<项> ::= <因子>{<乘法运算符><因子>}
/<乘法运算符> ::= *|/
/<表达式> ::= [+|-]<项>{<加法运算符><项>}
/<加法运算符> ::= +|-
/<条件> ::= <表达式><关系运算符><表达式>|ODD <表达式>
/<关系运算符> ::= #|=|>|>=|<|<=
【文件预览】:
实验
----PL0语法分析器()
--------PL0语法分析器.ncb(2.6MB)
--------PL0语法分析器.sln(925B)
--------PL0语法分析器()
--------Debug()
--------PL0语法分析器.suo(8KB)
网友评论
- 感觉写得好厉害,不过还是得自己改一下才能满足要求
- vs的程序必须用vs运行
- 写的十分详细,里面有部分的变量和程序名使用了拼音
- 感觉写得好厉害,不过还是得自己改一下才能满足要求
- 详细实现就得这么多,赞一个
- 东西挺好的,太详细了,不过挺难改好的
- 嗯,需要自己改改才能满足要求
- 挺好的,不过过于详细,也不符合我的实验要求,需要自己改一改
- 太详细了,我就是参考下吧,还是自己写吧,里面有1000多行,碉堡了
- 有比较详细的实现