有没有一种简化EBNF语法的自动方法?

时间:2018-02-16 03:21:47

标签: grammar bnf ebnf

我想处理Scala语法以创建数据结构,我想创建一个图形来对其进行建模。我遇到的问题是我想摆脱EBNF语法的一些语法糖,以便以有效的方式解析它。

例如,如果我有以下规则:

Expr ::= (Bindings | id | '_') '=>' Expr | Expr1

我想要相应的规则:

Expr ::= LeftExpr '=>' Expr | Expr1
LeftExpr ::= Bindings | id | '_'

我真正理解的是一个可以自动转换这些规则的工具,以便只使用OR运算符生成左关联规则,以避免手动执行。我认为可能是这样的事情,也许没有新的增加规则的语义意义,例如如果LeftExprFoo或其他任何名称,它都是相同的。

我查看了网络资源但这个论点太混乱了,以至于找不到合适的答案。任何帮助都很受欢迎,也只是一个与问题相关的链接(真的)。谢谢

0 个答案:

没有答案