我正在尝试使用Scala分析器组合器编写一个CSV分析器。 语法基于RFC4180 。 我想出了以下代码。 它几乎可以工作,但我无法正确分离不同的logging。 我错过了什么? object CSV extends RegexParsers { def COMMA = "," def DQUOTE = "\"" def DQUOTE2 = "\"\"" ^^ { case _ => "\"" } def CR = "\r" def LF = "\n" def CRLF = "\r\n" def TXT = "[^\",\r\n]".r def file: Parser[List[List[String]]] = ((record~((CRLF~>record)*))<~(CRLF?)) ^^ { case r~rs […]