简单的Scala解析器

时间:2013-11-25 21:47:28

标签: scala parser-generator

使用scala.util.parsing.combinator._包,如何创建一个与Parser匹配的简单abc

示例:

val parser = new Parser("abc")
val stream: Stream[Character] = Stream('a', 'b', 'c', 'd')   
println("parser(stream) : " + parser(stream))` 

打印出来:

  

成功(('a','b','c'),流('d'))

1 个答案:

答案 0 :(得分:1)

琐碎:

object MyParsers extends scala.util.parsing.combinator.RegexParsers {
  val parser: Parser[String] = "abc"
  // or more explicit: val parser = literal("abc")
}

但是,您可能需要Stream[Char]而不是Stream[Character]

您也可以使用acceptSeq("abc"),因为String可隐式转换为Iterable[Char],但效率会明显降低。