简介:本次课程为大连理工大学软件学院《编译原理》第四次上机实践课,主要内容包括词法分析器设计与实现、语法分析基础等,旨在提升学生的编译技术应用能力。
采用非递归构造预测分析表的方法对输入串进行语法分析:
使用的文法如下:
- E -> TE | ε
- T -> FT | ε
- F -> (E) | id
对于任意给定的输入串(词法记号流)进行语法分析,可以使用非递归预测分析方法。该方法应对错误时需要有相应的处理功能:当出现错误时能提示,并且能在一定程度上忽略尽量少的记号来进行接下来的分析。可参考书上的同步记号集合来处理。
可能出现的问题包括:
- idid*id
- id**id
- (id+id, +id*+id
输入串以#结尾,在输出推导过程中使用到的产生式时应显示如下格式:例如,对于输入 id+id*id# 应输出:
E -> TE
T -> FT
F -> id
E->+ TE
T -> FT
如果在分析过程中遇到错误,则应在输出中体现是跳过某些记号、还是弹栈以及具体弹出的非终结符或终结符,同时给出相应的错误提示信息。例如,在处理 idid*id 时,应指出发生了何种类型的语法错误,并说明采取了怎样的纠正措施以继续分析过程。