Scala 解析器组合器与构建工具 SBT 详解
一、Scala 解析器组合器构建四则计算器
在 Scala 中,我们可以利用解析器组合器来构建一个四则计算器。首先,为了能在 Scala REPL 中更方便地运行解析器,我们定义一个实用的特质 RunParser 。
import scala.util.parsing.combinator._
trait RunParser {
this: RegexParsers =>
type RootType
def root: Parser[RootType]
def run(in: String): ParseResult[RootType] = parseAll(root, in)
}
这个特质可以混入到任何继承自 RegexParsers 的类中。混入后,我们就能通过 MyParser.run("Thing to test") 来查看解析结果。
接下来,我们描述四则计算器的工作原理。一个求和表达式是一个乘积表达式后面跟着零个或多个 + 或 - 符号,再跟着一个乘积表达式;一个乘积表达式是一个因子后面跟着零个或多个 * 或 / 符号,再跟着另一个因子;因子可以是一个数字,也可以是用括号括起来的求和表达式。用 BNF 表示如下:
超级会员免费看
订阅专栏 解锁全文
27

被折叠的 条评论
为什么被折叠?



