2013-01-19 1 views

답변

4

RegexParsers 또는 그 자손 중 하나와 작업하고 있다고 가정합니다. 그렇다면 String에서 Parser[String]으로 암시 적 변환을하면 reduce(_ | _)이 자동으로 실행되지 않습니다. 명시 적으로 다음과 같이 첫 번째 목록에있는 모든 항목을 변환하면 :

val anyPrimitive = primitives2.map(literal).reduce(_ | _) 

당신은 완벽하게 될 것이다 미세 제외하고이 약간과 같이 오류 메시지를 혼란 당신을 떠날 것이다 :

scala> parser.parseAll(parser.anyPrimitive, "a") 
res8: parser.ParseResult[Any] = 
[1.1] failure: `z' expected but `a' found 

a 
^ 

보다 명확한 오류 메시지가 필요하면 fold 접근 방식을 사용하여 고유 한 시작 값을 제공해야합니다.

관련 문제