This issue may be expected operation, but I feel failure msg is inappropriate.
execute below parser in version 1.1.1 and 1.1.2.
import scala.util.parsing.combinator._
object Parser extends JavaTokenParsers {
def apply(str: String): ParseResult[List[Node]] = parseAll(top, str)
private def top: Parser[List[Node]] = repsep(node, '\n')
private def node: Parser[Node] = positioned(ident ~ ":" ~ ident ^^ {
case v0 ~ _ ~ v1 => Node(v0, v1)
})
}
parsed text (This text causes failure. An appropriate text is, for example, A : B.) is
In version 1.1.1, I got ':' expected but 'A' found. This failure message is expected message.
However, in version 1.1.2, I got end of input expected. This message loses information where is wrong point.
As a result that I checked difference of code between 1.1.1 and 1.1.2 lightly, I suspect that #108's change causes this. In addition, as far as I know, this problem occurs when using repsep (e.g. if parseAll uses node method directly, parser does not cause this problem)
Environment
scala version : 2.12.8
sbt version : 1.2.8
This issue may be expected operation, but I feel failure msg is inappropriate.
execute below parser in version 1.1.1 and 1.1.2.
parsed text (This text causes failure. An appropriate text is, for example,
A : B.) isIn version 1.1.1, I got
':' expected but 'A' found. This failure message is expected message.However, in version 1.1.2, I got
end of input expected. This message loses information where is wrong point.As a result that I checked difference of code between 1.1.1 and 1.1.2 lightly, I suspect that #108's change causes this. In addition, as far as I know, this problem occurs when using
repsep(e.g. ifparseAllusesnodemethod directly, parser does not cause this problem)Environment
scala version : 2.12.8
sbt version : 1.2.8