У меня есть вышеприведенное странное сообщение об ошибке, которое я не понимаю "значение 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 , кажется, имеет ту же проблему, но я не понимаю ответ, который ему дали. Кто-нибудь может это объяснить?