【发布时间】:2011-01-21 21:22:40
【问题描述】:
我正在编写一种小型命令语言。该语言有一些简单的命令,可以组合成复杂的命令。例如,如果我们有命令fry an egg、make a sandwich、make coffee,我们可以创建一个新命令:
make a breakfast := fry an egg, make a sandwich, make coffee。
但有时,我只想要早餐咖啡,有时咖啡和三明治等。也就是说,make a breakfast 可以是命令集的任何子集:{fry an egg, make a sandwich, make coffee}
因此,我需要一个规则来定义给定简单命令集的幂集。是否有意义 ?我可以这样做吗?
【问题讨论】:
-
这对我来说很有意义,你可能可以这样做。但是如果没有看到要解析的现有语法和/或示例代码的某些部分,就很难说更多。
-
“规则”是什么意思?您使用的是哪种解析器?你的例子有一个缺陷:我不能煎两个鸡蛋。是否需要将这种限制纳入解析器?从根本上说,我不知道如何为我一半熟悉的解析器编写幂集规则,也不知道为什么要这样做。
标签: parsing language-agnostic grammar