我对解析器组合器非常感兴趣,尤其是那些能够处理左递归和歧义语法的组合器。我知道Nicholas Blumhardt的神话般的Superpower,但它无法处理这种语法。
我发现了一些像https://github.com/djspiewak/gll-combinators这样的 GLL 解析器组合库,但它使用 Scala,这对我来说是一个很大的不便(我不知道那种语言)。
我想知道C#(或Java)中是否有这些
非常感谢。
我对解析器组合器非常感兴趣,尤其是那些能够处理左递归和歧义语法的组合器。我知道Nicholas Blumhardt的神话般的Superpower,但它无法处理这种语法。
我发现了一些像https://github.com/djspiewak/gll-combinators这样的 GLL 解析器组合库,但它使用 Scala,这对我来说是一个很大的不便(我不知道那种语言)。
我想知道C#(或Java)中是否有这些
非常感谢。
我做了一个编译器项目,在带有 ANTLR 4 扩展的 IntelliJ IDE 上使用 Java,互联网上有很好的资源。这是官方的书“The Definitive ANTLR 4 Reference”,我觉得很好,他们也提供了很好的文档。
ANTLR 4具有处理左递归和歧义语法的能力,您可以使用 c# 和 Java 以及我认为的任何语言来实现编译器。您可以将他们的入门语法用于太多不同的语言。
编辑: ANTLR 4 是一个语言识别工具,一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件。它广泛用于构建语言、工具和框架。从语法中,ANTLR 生成一个可以构建和遍历解析树的解析器。它不是图书馆。