3
我正在學習編寫一個簡單的解析器 - 組合器。我從下到上編寫規則並編寫單元測試,以便隨時進行驗證。但是,我在使用repsep()和空格作爲分隔符時被阻止。scala:解析器幫助
object MyParser extends RegexParsers {
lazy val listVal:Parser[List[String]]=elem('{')<~repsep("""\d+""".r,"""\s+""".r)~>elem('}')
}
該規則被簡化以說明問題。當我喂與分析器 「{1 2 3}」 時,它總是抱怨說,它不匹配:
[1.4]失敗:`} '預期,但2發現
I'我想知道按照我所描述的方式編寫規則的正確方法是什麼?
感謝
aka將'repsep(「」「\ d +」「」。r ...)'改爲'rep(「」「\ d +」「」r)'? – svrist 2010-09-27 13:05:01