有什么方法可以用自定义(e)bnf解析源字符串并将AST作为json吗?让我解释一下我需要什么:
发布于 2013-11-15 10:26:15
"EBNF作为词汇“是荒谬的。但您的问题的其余部分可以解释为:“我能让EBNF驱动的解析器生成JSON格式的AST吗?”
好的。
大多数解析器生成器都接受(E)BNF和“解析”。它们中的大多数不会自动生成AST;它们让程序员定义每个规则应该如何生成树节点。那些不适合你的任务。
有些人只使用BNF和源文件ANTLR4 (我认为)和我们的自动生成as作为数据结构。这两种方法都不直接生成JSON,但在这两种情况下,应该直接编写(一次)通用树遍历器来释放JSON。
DMS的BNF将仅使用BNF规则处理任何上下文无关的语法。ANTLR4处理大多数语法,但对可以编写的内容有限制(例如,某些类型的左递归是verboten),并要求在语法不是LL(1)的情况下添加额外的消歧信息。
DMS将直接导出XML。见this example。
https://stackoverflow.com/questions/19998440
复制相似问题