Tag: 解析器组合器

Scala解析器组合器与ANTLR / Java生成的解析器?

我正在为一个主要用Scala编写的应用程序编写表达式解析器。 我在Scala中构建了AST对象,现在需要编写解析器。 我听说过Scala的内置解析器组合器,以及ANTLR3,我想知道:哪个可以提供更好的性能和编写代码的简易性? 至今: ANTLR专业人士 知名 快速 外部DSL ANTLRWorks(用于解析器语法调试/测试的优秀IDE) ANTLR缺点 基于Java(Scala互操作可能具有挑战性,任何经验?) 在运行时需要很大的依赖关系 Parser combinator专业人士 Scala的一部分 少一个构建步骤 不需要运行时依赖; 例如,已经包含在Scala的运行时库中 解析器组合器缺点 内部DSL(可能意味着执行速度较慢?) 没有ANTLRWorks(提供很好的解析器测试和可视化function) 有什么想法吗? 编辑:此表达式解析器解析代数/微积分表达式。 它将在最终确定的Android应用程序Magnificalc中使用。