24得票2回答
如何获取TypeScript的语法树?

如何获取编译器的语法树?我们被分配了一个需要访问TypeScript语法树的项目(它是开源的,因此我们可以看到整个编译器的代码)。但是我们不知道如何获取它。我已经在互联网上阅读了一些文章,但我无法找到一个用户友好或用通俗易懂的语言写的文章。我相信有些人提到了我们需要做的第一步是找到解析步骤。但...

24得票4回答
GLR解析算法资源

我正在编写一个GLR解析器生成器,希望能够得到一些关于该算法的资源建议,包括互联网和纸质书籍(对于不熟悉极客术语的人来说是指书籍)。 我知道Bison可以生成GLR解析器,并且由于它是根据GPL发布的,我可以查看其代码,但最好还是有完整的算法描述。 那么,有没有人知道哪里有好的资源可以供我...

22得票2回答
Python解析器生成器的建议

我被分配了一个任务,需要为一个简单的类C语言创建一个解析器。我可以使用任何编程语言和工具来创建解析器,但是我同时也在学习Python,所以它是我的首选。 我的解析器必须满足一些限制。首先,它必须能够读取包含以下信息的文本文件:kind1 : spelling1 kind2 : spelling...

22得票3回答
选择解析器生成器

好的,我知道这个问题可能听起来很主观,但由于我有几个具体的选择标准,所以我认为它很适合SO。所以,这就是我在这里的原因... 我过去经常从事编译器/解释器构建(显然大多数是作为业余爱好),出于某种原因,我一直使用Lex/Yacc(或Flex/Bison,我对他们现在被称为什么感到非常困惑.....

21得票1回答
在词法分析器和语法分析器规则中否定的处理方法

在ANTLR的词法和语法规则中,如何使用否定元字符~?

20得票1回答
ANTLR相比XText有哪些特性是XText所不具备的?

我刚接触到一个非常好的工具Xtext,可以创建DSL以及用于编辑的IDE。在网上做了一些搜索,发现有人说它不能提供ANTLR的所有功能。我正在使用ANTLR作为我的解析器生成器。 我甚至不确定我需要使用ANTLR的哪些功能来编写完整的语言解析器,但ANTLR已经存在了很长时间,可能支持比Xt...

18得票2回答
解析器的性能:PEG vs LALR(1)或LL(k)

我看到有些说法声称一般情况下,优化的PEG解析器无法比优化的LALR(1)或LL(k)解析器更快。(当然,解析性能取决于特定语法。) 我想知道是否存在任何PEG解析器的特定限制,无论是普遍有效还是针对某些PEG语法子集,这些限制会使它们在性能方面劣于LALR(1)或LL(k)。 尤其是,我...

18得票2回答
柠檬是否具有功效?

对于语法解析器,我过去常用的是Bison,它有其优缺点。 上周,我在SqLite网站上注意到引擎使用了另外一个语法解析器:Lemon 阅读了一些简单的文档后感觉不错。 你对这个解析器有什么反馈吗? 在Google和维基百科上没有找到相关信息(只有一些例子和相同的教程)。它似乎并不很流行。...

18得票6回答
是否有针对Haskell或Scala等函数式语言的LL解析器生成器?

我注意到在创建函数式语言的LL分析器方面缺乏选项。我一直在寻找理想的解决方案,即使用类似ANTLR的LL(*)语法(稍微修改一下)生成Haskell分析器。然而,令人惊讶的是,我找到的每一个函数式语言目标的分析器生成器都是某种LR分析器。 我想将我正在开发的语言中的解析器从ANTLR转换为自...

16得票5回答
如何建立一个真值表生成器?

我想写一个真值表生成器作为个人项目。 这里有几个基于网页的在线工具 这里 和 这里。 (现有真值表生成器的示例截图) 我有以下问题: 如何解析诸如: ((P => Q) & (Q => R)) => (P => R) 这样的表达式? 我应该使用像 ANTLr 或 YACC ...