我目前正在寻找从 BNF 语法(ocamlyacc
具有优先级和关联性的文件)生成 Scala 代码的词法分析器/解析器。我很困惑,因为我几乎没有发现如何去做。
对于解析,我发现scala-bison
(我有很多麻烦)。所有其他工具都只是导入到 Scala 中的 Java 解析器(如ANTLR
)。
对于词法分析,我一无所获。
我还找到了著名的 Scala解析器组合器,但是(如果我错了,请纠正我),即使它们非常吸引人,它们也会消耗大量时间和内存,主要是由于回溯。
所以我有两个主要问题:
- 为什么人们似乎只专注于 _parser 组合器?
- 与 Scala 一起使用的最佳词法分析器/解析器生成器建议是什么?