1.针对算术表达式文法:
          E→TE’
          E’ → +TE’|ε
          T→FT’
          T’ →*FT’ |ε
          F→(E) |i
为其编写递归下降子程序,判定某个算术表达式是否正确:如j+k*m,j*k+m
输入:其输入数据应该为词法分析器输出的记号形式:i+i*i,i*i+i
输出:分析结果:算术表达式结构正确或结构错误。
给定文法(PASCAL语言标识符定义文法)
          type→simple|↑id|array[simple] of type
          Simple→integer|char|num dotdot num
其中:dotdot表示..
编写递归下降子程序,判定一个句子结构是否正确:array [3..5]of integer
输入:其输入数据应该为词法分析器输出的单词序列:array [ num dotdot num ] of integer
输出:分析结果
2. 这个和上面那个类似,只不过把字符换成了字符串,当时写第一个的时候觉得match()这个函数有点多余,因为写的比较快也没深入思考,写这个的时候才意识到,其实match()也承担了判错的责任,还是有很大作用的
3. 这个有个左递归把simple()代入到第一行的文法里思路就很清晰了
2022-04-14
,若文件或内容有错误或已失效,请在下方留言。
- 最新
- 最热
只看作者