Kev*_*ith 6 scala parser-generator
通过这篇关于Parser Combinators的信息性很好的文章阅读,我看到了这段代码:
class DisParser[+A](left: Parser[A], right: Parser[A]) extends Parser[A] {
def apply(s: Stream[Character]) = left(s) match {
case res: Success => res
case _: Failure => right(s)
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试编译此代码时,我得到:
Parser.scala:19: error: class Success takes type parameters
case res: Success => res
^
one error found
Run Code Online (Sandbox Code Playgroud)
鉴于签名Parser:
case class Success[+A](value: A, rem: Stream[Character]) extends Result[A]
Run Code Online (Sandbox Code Playgroud)
如何更改case res: Success => res线条以提供Success正确的类型参数?
Success你在用哪个?这个(来自Parsers包的成功)还是这个(来自util的成功)?两者都采用类型参数,所以你需要把它作为
res @ Success(_, _) =>
Run Code Online (Sandbox Code Playgroud)
否则你将不得不处理删除警告.
| 归档时间: |
|
| 查看次数: |
8366 次 |
| 最近记录: |