如何在Scala中解析为类型

如何在Scala中解析为类型,scala,parser-combinators,Scala,Parser Combinators,我正试图用Scala编写一个解析器,逐步建立一个具体的类型层次结构。我从以下几点开始: private def word = regex(new Regex("[a-zA-Z][a-zA-Z0-9-]*")) private def quicktoken: Parser[Quicktoken] = "/" ~> word <~ "/" <~ (space?) ^^ { new Quicktoken(_) } 我本以为我可以写 private def matchToke

我正试图用Scala编写一个解析器,逐步建立一个具体的类型层次结构。我从以下几点开始:

private def word   = regex(new Regex("[a-zA-Z][a-zA-Z0-9-]*")) 
private def quicktoken: Parser[Quicktoken] = "/" ~> word <~ "/" <~ (space?) ^^ { new Quicktoken(_) } 
我本以为我可以写

private def matchTokenPartContent: Parser[MatchTokenPart] = word<~equals~quicktoken ^^ { case word~quicktoken => new MatchTokenPart(word, quicktoken)}
private def matchTokenPartContent:Parser[MatchTokenPart]=word new MatchTokenPart(word,quicktoken)}

但它不起作用。它表示word是Option[String]类型,quicktoken是String类型。我遗漏了什么?

另一个优先问题:
a
private def matchTokenPartContent: Parser[MatchTokenPart] = word<~equals~quicktoken ^^ { case word~quicktoken => new MatchTokenPart(word, quicktoken)}