问题描述
我正在制作一个带有 Scala 解析组合器的空闲时间项目,遵循 this guide,添加到带有 sbt 的项目中:
b= img(:,:,1)
g=img(:,2)
r=img(:,3)
我有一个可以编译的词法分析器,但解析器在这行代码中给了我这个错误:libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "2.0.0"
:
method ~ in class Parser has changed semantics in version SpecificScalaVersion(2,9,Final): The call-by-name argument is evaluated at most once per constructed Parser object,instead of on every need that arises during parsing.
这是import scala.util.parsing.input.Positional
sealed trait AbstractSyntaxTree extends Positional
sealed trait Instruction extends AbstractSyntaxTree
final case class Label(text: String) extends Instruction
package svm.parser
import scala.util.parsing.combinator.Parsers
import scala.util.parsing.input.{noposition,Position,Reader}
import svm.{ParserError,Location}
import svm.lexer._
object SVMParser extends Parsers {
def label: Parser[Label] = positioned {
identifier ~ COL() ^^ { case IDENTIFIER(s) ~ _ => Label(s) }
}
}
的输出:
sbt compile
我用错了 [error] -- [E114] Syntax Error: /home/ap/Documents/scala/simple-stack-virtual-machine/src/main/scala/svm/parser/SVMParser.scala:59:15
[error] 59 | identifier ~ COL() ^^ { case IDENTIFIER(s) ~ _ => Label(s) }
[error] | ^^^^^^^^^^^^
[error] | |method ~ in class Parser has changed semantics in version SpecificScalaVersion(2,instead of on every need that arises during parsing.
[error] Explanation
[error] ===========
[error] The |method ~ in class Parser is marked with @migration indicating it has changed semantics
[error] between versions and the -Xmigration settings is used to warn about constructs
[error] whose behavior may have changed since version change.
运算符?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)