程序代写代做代考 上机练习一:词法分析

上机练习一:词法分析
一个PASCAL语言子集(PL/0)词法分析器的设计与实现
PL/0语言的BNF描述(扩充的巴克斯范式表示法) → program
→ [][][]
→ const {,};
:=
→ var {,}; → procedure ([{,]});{;}
→ begin {;}end
:=
|if then [else ]
|while do
|call ([{,}])
|
|read ({,})
|write ({,})
|odd
→ [+|-]{}
{}
||()
→ =|<>|<|<=|>|>=
→ +|-
→ *|/
→ l{l|d} (注:l表示字母)
→ d{d}
注释: :程序 ;:块、程序体 ;:常量说明 ;:常量;
:变量说明 ;:分程序 ; :复合语句 ;:语句;
:表达式 ;:条件 ;:项 ; :因子 ;:加法运算符;
:乘法运算符; :关系运算符
odd:判断表达式的奇偶性。
要求:
按照P45的算法思想,使用循环分支方法实现PL/0语言的词法分析器,该词法分析器能够读入使用PL/0语言书写的源程序,输出单词符号串及其属性到一中间文件中,具有一定的错误处理能力,给出词法错误提示(需要输出错误所在的行列)。