Я написал парсер из библиотеки комбинаторов. Мне нужна общая функция, которая преобразует любой размер гнезда ~ в список. Как это сделать?
Вот мой пример парсера, который я использую (у моего реального парсера очень длинная цепочка ~, поэтому я хочу избежать моего текущего решения, которое представлено в комментарии ниже).
object CombinatorParser extends RegexParsers {
lazy val a = "a"
lazy val b = "b"
lazy val c = "c"
lazy val content = a ~ b ~ c // ^^ {case a~b => a::b::c::Nil work but I want something more general that work for any ~ length.
}
object CombinatorTesting {
def main(args:Array[String]) {
val testChar = "abc"
val output = CombinatorParser.parseAll(CombinatorParser.content, testChar)
println(output) // ((a~b)~c) but I want List(a,b,c)
}
}