有没有办法使用 antlr4 语法生成生成器?

Is there a way to generate builder using the antlr4 grammar?

我知道可以根据 antl4 语法生成词法分析器和解析器,但是有没有一种方法可以使用 antlr4 语法生成构建器?这样客户端可以使用构建器来构造语法中指定的可能结构,而服务器可以使用生成的解析器来解析结构。

有,是的。这样的句子生成器可以遍历 ATN 并根据语法创建句子(参见我的 antlr4-vscode extension 如何实现)。然而,除非你有一个没有递归或迭代的非常简单的语法,否则你可能无法生成一组固定的句子,因为有不定式的可能组合。