Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 在parboiled2中运行解析器_Scala_Parsing_Parboiled_Parboiled2 - Fatal编程技术网

Scala 在parboiled2中运行解析器

Scala 在parboiled2中运行解析器,scala,parsing,parboiled,parboiled2,Scala,Parsing,Parboiled,Parboiled2,parboiled2的文档提到以下内容以获得结果: 但是,在尝试这种方法时,我遇到了一个编译错误: 以下是解析器的概要: case class CsvParser(input: ParserInput, delimiter: String = ",") extends Parser { .. def file = zeroOrMore(line) ~ EOI } 尝试运行它的代码 val in = new StringBasedParserInput(readFile(fnam

parboiled2的文档提到以下内容以获得结果:

但是,在尝试这种方法时,我遇到了一个编译错误:

以下是解析器的概要:

case class CsvParser(input: ParserInput, delimiter: String = ",") extends Parser {
    ..
   def file = zeroOrMore(line) ~ EOI
}
尝试运行它的代码

val in = new StringBasedParserInput(readFile(fname))
val p = new CsvParser(in)
println(p.toString)
p.file.run
但不接受“运行”:


看起来问题出现在以下行中:

case class CsvParser(input: ParserInput, delimiter: String = ",") 
它可以通过显式地将
parserInput
声明为val来修复

case class CsvParser(val input: ParserInput, delimiter: String = ",") 

val in=new StringBasedParserInput(readFile(fname))
->不需要使用此构造函数。因此,您可以在csv解析器中传递字符串。它将自动转换
       ^
case class CsvParser(input: ParserInput, delimiter: String = ",") 
case class CsvParser(val input: ParserInput, delimiter: String = ",")