Scala 在parboiled2中运行解析器
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
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 = ",")