Scalaで、具体的な型階層を徐々に構築するパーサーを作成しようとしています。私は始めました:
private def word = regex(new Regex("[a-zA-Z][a-zA-Z0-9-]*"))
private def quicktoken: Parser[Quicktoken] = "/" ~> word <~ "/" <~ (space?) ^^ { new Quicktoken(_) }
大丈夫です。/hello/はクイックトークンに解析されます
次に、クイックトークンを複合式に追加します。クラスがあります
class MatchTokenPart(word:String,quicktoken:RewriteWord){
}
書けると思っていたのに…
private def matchTokenPartContent: Parser[MatchTokenPart] = word<~equals~quicktoken ^^ { case word~quicktoken => new MatchTokenPart(word, quicktoken)}
しかし、それは機能しません。単語はOption[String]型で、quicktokenはString型であると書かれています。私は何が欠けていますか?