0
我有以下解析器:添加repitition作爲案例類(Scala的解析器)名單
import scala.util.parsing.combinator.RegexParsers
class SimpleParser extends RegexParsers {
override val skipWhitespace = false
private val eol = sys.props("line.separator")
def word: Parser[String] = "[a-z]+".r ^^ { _.toString }
def freq: Parser[List[String]] = repsep(word, eol) ^^ {
case word => word
}
}
object TestSimpleParser extends SimpleParser {
def main(args: Array[String]) = {
parse(freq,
"""mike
|john
|sara
""".stripMargin) match {
case Success(matched,_) => println(matched)
case Failure(msg,_) => println(msg)
case Error(msg,_) => println(msg)
}
}
}
這個執行的結果將是List(mike, john, sara)
,但它不是我想要的。
我想有以下案例類:
case class SomeEntity(list: List[String])
而結果將是以下幾點:
SomeEntity(List(mike), List(john), List(sara)).
我想因爲有新詞加入儘可能多的列表線。 請不要把注意力放在列表中只有一個單詞的事實上。這只是我的問題的簡化版本。 那麼,我應該在解析器或案例類中更改哪些內容?
不幸的是,沒有。它應該有SomeEntity(List(mike),List(john),List(sara))。這只是我的問題的一個簡化版本,所以請不要在這裏查看列表中的一個單詞。 – perc
@perc簽名 –
你能否告訴我應該在案例分類中改變什麼? – perc