Scala parser combinator