Вот мой первый файл scala с именем Node.scala
class Node extends NodeType
{
object Node {
val E = new Node(NodeType.E)
}
Вот мой NodeType.scala
class NodeType extends Enumeration {
val PROGRAM = new NodeType()
val DECLARATIONS = new NodeType()
val DECLARATION = new NodeType()
val TYPE = new NodeType()
val STATEMENTSEQUENCE = new NodeType()
val STATEMENT = new NodeType()
val ASSIGNMENT = new NodeType()
val IFSTATEMENT = new NodeType()
val WHILESTATEMENT = new NodeType()
val WRITEINT = new NodeType()
val ELSECLAUSE = new NodeType()
val EXPRESSION = new NodeType()
val SIMPLEEXPRESSION = new NodeType()
val TERM = new NodeType()
val FACTOR = new NodeType()
val E = new NodeType()
class NodeType extends Val
implicit def convertValue(v: Value): NodeType = v.asInstanceOf[NodeType]
}
Я получаю ошибку в NodeType, и когда курсор подсвечивается, он говорит, что не найден тип NodeType
val E = new Node(NodeType.E)
Это пытается получить доступ к сопутствующему объекту с именем NodeType и получить его поле E.
То, что вы определили как NodeType, не является сопутствующим объектом, это класс. Подумайте о сопутствующих объектах, таких как статическая часть класса в Java-терминах. Вы пытаетесь получить доступ к "статической" части NodeType, которая не существует, потому что объект-компаньон для NodeType не определен.
Кроме того, почему вы пытаетесь построить новый узел с аргументом? Класс node принимает 0 параметров.
Возможно, вы могли бы попытаться объяснить нам, что вы пытаетесь моделировать.