回 帖 发 新 帖 刷新版面

主题:用C语言描述的单词符号的词法分析程序

完成下述文法所描述的单词符号的词法分析程序。
  <标识符>--><字母>|<标识符><字母>|<标识符><数字>
  <无符号整数>--><数字>|<无符号整数><数字>
<分界符>-->+|-|*|/|;|(|)|{|}|<|<=|=|!=|>=|>|:=|<空格>
<字母>-->a|…|z|A|…|Z
<数字>-->0|…|9
<空格>-->’ ’
说明:
(1) 假定该语言对字母的大小写不敏感,由指定文件读入预分析的源程序,分析结果再写入指定文件;
(2) 假定语言的关键字为"begin","if","end","else","then","for","while","to","do","and","not","or","write";
程序的功能描述
从左至右扫描源程序的字符串,按照词法规则(正则文法规则)识别出一个个正确的单词,并转换成该单词相应的二元式(种别码、属性值)交给语法分析使用。
本程序规定输出用KeyWord代表关键字,Word代表普通标识符,Digit代表阿拉伯数字,SingleWord代表单分界符,DoubleWord代表双分界符,ERROR代表无法识别的字符。
例如读入下面一段程序:
if(i>1)
return 1;
else
return 0;
输出结果为:
KeyWord if
SingleWord (
Word i
SingleWord >
Digit 1
SingleWord )
Word return
Digit 1
SingleWord ;
KeyWord else
Word return
Digit 0
SingleWord ;  


请问大虾们该怎样写 在线等  急!!!

回复列表 (共2个回复)

沙发

去用lex生成一个吧

板凳

队和栈?

我来回复

您尚未登录,请登录后再回复。点此登录或注册