キーワードを使って単語の繰り返しを終わらせる方法を見つけようとしています。例:
class CAQueryLanguage extends JavaTokenParsers {
def expression = ("START" ~ words ~ "END") ^^ { x =>
println("expression: " + x);
x
}
def words = rep(word) ^^ { x =>
println("words: " + x)
x
}
def word = """\w+""".r
}
実行すると
val caql = new CAQueryLanguage
caql.parseAll(caql.expression, "START one two END")
を出力し、パーサーが入力内のキーワードを消費したwords: List(one, two, END)
ことを示し、式パーサーが一致できなくなります。と一致しないようにしたいと思います。これにより、正常に解析できるようになります。words
END
END
words
expression