首页 > 解决方案 > 不包含 epsilon 转换的文法可以为空

问题描述

我在作业中被要求提供以下语法的可为集:

E  -> E' E A
A  -> + | *
E  -> num
E' -> num

但是,根据我的理解,如果在语法的某些生成的右侧存在一些 epsilon 值,则可以使用术语可空值。但在这里我没有这样的 epsilon 术语。

假设上述语法不包含任何可为的值是否安全,例如:

nullable(E) = false
nullable(A) = false
nullable(E') = false
...

计算在语法产生中不包含任何 epsilon 转换的语法的可空值似乎很奇怪。

我希望有人可以向我伸出援手,以防我在解析和一般语法的讲座中遗漏了一些东西。但是根据我的阅读和理解,上述语法不应该包含任何持有值true的可为集。

标签: parsinggrammarnullable

解决方案


推荐阅读