解析 – Scala解析器:可用性,差异和组合?

我的问题是关于Scala解析器:

>哪些可用(在标准库和外部),
>他们之间有什么区别,
>他们共享一个通用的API和
>可以将不同的解析器组合来解析一个输入字符串吗?

我发现至少这些:

> Scala的“标准”解析器(似乎是一个LL解析器)
> Scala的Packrat parser(自2.8以来,是一个LALR解析器)
> Parboiled parser(PEG解析器?)
> Spiewak的GLL parser组合器

解决方法

只是想更新这个答案与指向parboiled项目的最新的迭代,称为parboiled2:

https://github.com/sirthias/parboiled2

parboiled2只针对Scala(而不是Scala Java),使用Scala宏,并且非常积极地维护。

相关文章

Scala的存在类型 存在类型也叫existential type,是对类型做抽象的一种方法。可以在你不知道具体类型的...
文章目录Option和SomeOption和NoneOption和模式匹配 在java 8中,为了避免NullPointerException,引入了...
文章目录泛类型型变协变逆变不变类型上界类型下界内部类抽象类型复合类型自类型隐式参数隐式转换多态方...
Scala的自定义类型标记 Scala中有很多千奇百怪的符号标记,看起来是那么的独特,就像是一杯dry martini...
文章目录面向对象的scalaUnified TypesClassesTraits 面向对象的scala 我们知道Scala是一种JVM语言,可...
文章目录默认参数值命名参数 scala的参数有两大特点: 默认参数值 命名参数 默认参数值 在Scala中,可以...