Scala Parser Combinator定义问题

时间:2015-05-01 17:32:13

标签: scala parsing

我几天前刚开始使用Scala,想写我的第一个解析器。

有问题的代码如下:

  val withoutZero: Parser[List[String]] = ("1" | "2" | "3" | "4").+
  val withZero: Parser[String] = "0" | withoutZero

我要解析的数字字符串可以有多个零和其他数字,但我想为它定义两个函数。

与Zero结合必须保留String(不是List [String]或其他任何东西)。目前我只解析一个零,因为(" 0")。+没有解决。

我的问题: 我如何能够将withZero Parser调整为多个零和 将它与withoutZero Parser结合起来仍然保留了Parser [String]

1 个答案:

答案 0 :(得分:1)

我认为这适用于write(const char * data)

0+ | (1|2|3|4)+

它将val withZero: Parser[String] = (literal("0").+ | withoutZero) ^^ (_.mkString) 的列表从某个解析器加入到单个String