Scala parser combinators vs ANTLR/Java生成的解析器?
2022-09-01 16:06:59
我正在为一个主要用Scala编写的应用程序编写一个表达式解析器。我已经在Scala中构建了AST对象,现在需要编写解析器。我听说过Scala的内置解析器组合器,还有ANTLR3,我想知道:哪个能提供更好的性能和易于编写代码?迄今:
安特洛专业人士
- 有名
- 快
- 外部 DSL
- ANTLRWorks(用于解析器语法调试/测试的出色IDE)
蚂蚁龙缺点
- 基于Java(Scala互操作可能具有挑战性,任何经验?
- 在运行时需要很大的依赖关系
解析器组合器优点
- Scala的一部分
- 减少一个构建步骤
- 无需运行时依赖关系;例如,已经包含在Scala的运行时库中
解析器组合器缺点
- 内部 DSL(可能意味着执行速度变慢?
- 没有ANTLRWorks(提供漂亮的解析器测试和可视化功能)
有什么想法吗?
编辑:此表达式解析器解析代数/微积分表达式。当它最终确定时,它将在Android的Magnificalc应用程序中使用。