安徽科技学院程序设计在线考试系统Ver2.3

诚信考试,杜绝作弊!

问题 A: 算术表达式

内存限制:512 MB 时间限制:1 S 标准输入输出
题目类型:传统 评测方式:文本比较

题目描述

已知算术表达式文法G[E]:
E → E + T|T
T → T * F|F
F → ( E )|i
判断是否为LL(1)文法;如果是请编写一个递归下降LL(1)分析程序,
判断文法G所能接受的串。如果不是转换为LL(1)文法后,编写一个递归下降LL(1)分析程序。
Input 输入多行由终止符构成的算术表达式,输入EOF结束。
Output 判断每行输入的算术表达式,如果表达式在语法结构上是合法的,输出"syntax correct";否则输出"syntax error"。

输入样例 复制

i+i#
i+i+i++#

输出样例 复制

syntax correct
syntax error

数据范围与提示

消除左递归后的文法
E →TE1
E1→+TE1 | ε
T → FT1
T1→*F T1 | ε
F→(E)|i