我有一个家庭作业,在给定语句定义的语法的情况下,我应该在其中检测语句中的歧义。
例子:
Grammar: S -> S + S | S * S | id
Statement: id * id + id
上面的陈述是模棱两可的,因为两个解析树是可能的。
到目前为止,我有以下歧义:
1) 运算符优先级(上例) 2) if-else 悬空案例 3)无限循环(上面的例子是左递归的) 4) 关联性
你能告诉我更多可行的方法吗?
我必须使用 lex 和 bison (yacc) 设计这个解析器,并在 2 天内提交它,所以任何指针都会对语法和语句中的歧义有所帮助。