加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 09:45:25 所属栏目:安全 来源:网络整理
导读:我正在为一个主要在Scala写的应用程序写一个表达式解析器。我已经在Scala中构建了AST对象,现在需要编写解析器。我听说过Scala的内置解析器组合器以及ANTLR3,并且想知道:这将提供更好的性能和易于编写代码?至今: ANTLR专业人士 知名 快速 外部DSL ANTLRW
我正在为一个主要在Scala写的应用程序写一个表达式解析器。我已经在Scala中构建了AST对象,现在需要编写解析器。我听说过Scala的内置解析器组合器以及ANTLR3,并且想知道:这将提供更好的性能和易于编写代码?至今:

ANTLR专业人士

>知名
>快速
>外部DSL
> ANTLRWorks(用于解析器语法调试/测试的极好IDE)

ANTLR缺点

>基于Java(Scala interop可能是具有挑战性的,任何经验?)
>在运行时需要很大的依赖

解析器组合者专业

> Scala的一部分
>少一步建立步骤
>不需要运行时依赖;例如已经包含在Scala的运行时库中

解析器组合器缺点

>内部DSL(可能意味着较慢的执行?)
>没有ANTLRWorks(提供了不错的解析器测试和可视化功能)

有什么想法吗?

编辑:此表达式解析器解析代数/微积分表达式。它将在Android的应用程序Magnificalc中被使用,当它被完成。

解决方法

Scala的解析器组合器效率不高。他们不是设计的。他们很乐意做相对较小投入的小任务。

所以这真的取决于你的要求。 ANTLR不应存在任何互操作问题。从Java调用Scala可以变得毛茸茸,但是从Scala调用Java几乎总是可以工作。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读