首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >源+ (E)BNF = ast.json

源+ (E)BNF = ast.json
EN

Stack Overflow用户
提问于 2013-11-15 10:05:16
回答 1查看 1.2K关注 0票数 1

有什么方法可以用自定义(e)bnf解析源字符串并将AST作为json吗?让我解释一下我需要什么:

  • 我有源字符串和bnf语法(也是字符串)。
  • 我把EBNF当作莱克星。
  • 添加源。
  • 获取AST并将其保存为JSON。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19998440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档