Nat*_*oos 25 java parsing scala parser-combinators antlr3
我正在为一个主要用Scala编写的应用程序编写表达式解析器.我在Scala中构建了AST对象,现在需要编写解析器.我听说过Scala的内置解析器组合器,以及ANTLR3,我想知道:哪个可以提供更好的性能和编写代码的简易性?至今:
ANTLR专业人士
ANTLR缺点
Parser combinator专业人士
解析器组合器缺点
有什么想法吗?
编辑:此表达式解析器解析代数/微积分表达式.它将在最终确定的Android应用程序Magnificalc中使用.
Eri*_*cht 16
Scala的解析器组合器效率不高.它们的设计并非如此.它们适用于输入相对较少的小任务.
所以它真的取决于你的要求.ANTLR不应该存在任何互操作问题.从Java调用Scala可能会变得毛茸茸,但从Scala调用Java几乎总是有效.
我不担心解析器组合器的性能限制,除非您计划解析几页长的代数表达式.Programming Scala一书确实提到了解析器组合器的更高效实现是可行的.也许有人会找到时间和精力来写一个.
我认为使用ANTLR你会谈到两个额外的构建步骤:ANTLR编译为Java,你需要将Scala和Java编译为字节码,而不仅仅是Scala.
| 归档时间: |
|
| 查看次数: |
5115 次 |
| 最近记录: |