parsing - 不包含 epsilon 转换的文法可以为空
问题描述
我在作业中被要求提供以下语法的可为空集:
E -> E' E A
A -> + | *
E -> num
E' -> num
但是,根据我的理解,如果在语法的某些生成的右侧存在一些 epsilon 值,则可以使用术语可空值。但在这里我没有这样的 epsilon 术语。
假设上述语法不包含任何可为空的值是否安全,例如:
nullable(E) = false
nullable(A) = false
nullable(E') = false
...
计算在语法产生中不包含任何 epsilon 转换的语法的可空值似乎很奇怪。
我希望有人可以向我伸出援手,以防我在解析和一般语法的讲座中遗漏了一些东西。但是根据我的阅读和理解,上述语法不应该包含任何持有值true的可为空集。
解决方案
推荐阅读
- java - 具有十六进制长数组的 CRC16 数据类型 java
- google-chrome - 我可以检测触摸键盘当前是否已部署并请求它吗?
- enterprise-architect - 如何在 Enterprise Architect 部署模型中对可重用的计算机配置进行建模
- javascript - Angular:无法使用 UrlMatcher 导航到子路由
- python - 我无法在 docker 中安装 opencv-contrib-python
- android - 从 MainActivity 访问数据库中的行有什么问题?
- c++ - 未加权无向图中的算子错误和边插入问题
- sql-server - 如何将现有的 SSRS 设置迁移到新服务器?
- javascript - 我的javascript函数在没有被调用的情况下运行是否有原因?
- javascript - 如何使用 d3-force 定义和使用自定义力?