这是我的第一个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
答案 0 :(得分:3)
val E = new Node(NodeType.E)
这是尝试访问名为NodeType的伴随对象并获取其字段E。
您定义的NodeType不是伴随对象,而是一个类。想想伴侣对象,比如Java术语中类的静态部分。您正试图访问"静态" NodeType的一部分由于尚未定义NodeType的伴随对象而不存在。
此外,为什么要尝试使用参数构造新的Node?您的节点类占用0个参数。
也许您可以尝试向我们解释您想要建模的内容。