编译原理 此法分析器

来源:百度知道 编辑:UC知道 时间:2024/05/08 02:02:59
一.语言定义
1) 字符集
<字符集>→<字母>|<数字>|<单界符>
<字母>→A|B|…|Z|a|b|…|z
<数字>→0|1|2|3|…|9
<单界符>→+|-|*|/|=|<|>|(|)|[|]|:|.|;|,|”
2) 单词集
<单词集>→<保留字>|<双界符>|<标识符>|<常数>
<保留字>→and|array|begin|call|case|char|constant|do|else|end|
for|if|input|integer|not|of|or|output|procedure|program|
read|real|repeat|set|then|to|until|var|while|write
<双界符>→<>|<=|>=|:=|..|/*|*/
<标识符>→<字母>|<标识符><字母>|<标识符><数字>
<常数>→<整数>|<字符常数>
<整数>→<数字>|<整数><数字>
<字符常数>→用双引号引起来的任意字符串
二.要求
1. 词法分析器作一遍扫描
2. 保留字一字一类,其种别码依字典顺序取1到30
标识符种别码为34,值为该符号串在符号表中的位置(行号)
整型常数种别码为36,值为该常数在符号表中的位置(行号)
字符串常数种别码为38,值为该常数在符号表中的位置(

哈哈 我刚做过这个实验 不过你的语言是是PASCAL的好像
我只会写C语言的...我把我的C语言的发给你可以么?
你把QQ号用信息发过来吧
不过其实如果你用清华大学的《编译原理》的话最后就有PASCAL版本和C版本的 不过包括词法分析和语意分析等 是一个大程序 你自己需要修改...