У меня есть вышеприведенное странное сообщение об ошибке, которое я не понимаю: «значение Parsers не является членом пакета scala.util.parsing.combinator».
Я пытаюсь изучить комбинаторы Parser, шаг за шагом пишу парсер C. Я начал с токена, поэтому у меня есть классы:
import util.parsing.combinator.JavaTokenParsers
object CeeParser extends JavaTokenParsers {
def token: Parser[CeeExpr] = ident ^^ (x => Token(x))
}
abstract class CeeExpr
case class Token(name: String) extends CeeExpr
Это настолько просто, насколько я мог это сделать.
Приведенный ниже код работает нормально, но если я раскомментирую закомментированную строку, я получу приведенное выше сообщение об ошибке:
object Play {
def main(args: Array[String]) {
//val parser: _root_.scala.util.parsing.combinator.Parsers.Parser[CeeExpr] CeeParser.token
val x = CeeParser.token
print(x)
}
}
Если это проблема с моей настройкой, я использую scala 2.7.6 через плагин scala для intellij. Кто-нибудь может пролить свет на это? Сообщение неверно, Parsers
является членом scala.util.parsing.combinator
.
--- Следовать за
Этот человек http://www.scala-lang.org/node/5475 кажется иметь ту же проблему, но я не понимаю ответа, который ему дали. Кто-нибудь может это объяснить?