Parsing scala中的AST解析器数据类型问题

Parsing scala中的AST解析器数据类型问题,parsing,scala,abstract-syntax-tree,Parsing,Scala,Abstract Syntax Tree,这是我的密码: 这段代码是为类pascal语言解析器编写的。我在这些方面有个问题:178181193。当我用关键字[Any]定义了语法时,我成功地运行了它!但当我用traits和“case类”中的一个替换该关键字时,它会通知我有错误!我想我不理解使用代码时的含义:解析器[??]。有人能帮我解决这些问题吗 line 181: def val_type : Parser[Type] = primitive| array_type | string_type line 193: def ident_

这是我的密码:

这段代码是为类pascal语言解析器编写的。我在这些方面有个问题:178181193。当我用关键字[Any]定义了语法时,我成功地运行了它!但当我用traits和“case类”中的一个替换该关键字时,它会通知我有错误!我想我不理解使用代码时的含义:解析器[??]。有人能帮我解决这些问题吗

line 181: def val_type : Parser[Type] = primitive| array_type | string_type

line 193: def ident_list  : Parser[List[Id]] = ident ~(rep(","~> ident))
更新: 以下是相应的错误:

line 181: type mismatch;  found   : MPRecognizer.this.Parser[Any]  required:   MPRecognizer.this.Parser[Type]
line 193: type mismatch;  found   : MPRecognizer.this.Parser[MPRecognizer.this.~[String,List[String]]]  required: MPRecognizer.this.Parser[Id]

您需要向我们显示原始代码,而不是通过使所有内容返回解析器[Any]修改的代码


错误消息告诉您,并非所有备选方案都会生成
类型的实例。例如,检查方法
primitive
array\u type
string\u type
是否都返回
解析器[type]
。将类型注释添加到每个注释中,如果在修改的定义中出现类型错误,请以相同的方式进一步缩小其范围。

Any不是关键字,而是类型。因此,我不明白您想对
特征
案例类
做什么,您能进一步解释一下吗?请发布完整的错误信息,否则很难帮助您。这是我的想法!在第一周,我创建了一个定义的语法,没有特征和案例类,以完成我职责中的第一阶段和第二阶段!现在我在第三阶段遇到了麻烦!如果您能提供帮助,请阅读此文件: