Skip to content

ScalaParserException should indicate line or char number of syntax error #104

@RichardBradley

Description

@RichardBradley

I have a source code file which compiles and runs fine, but which crashes scalariform (called via Scalastyle).

The error includes only a Token "pos", which as far as I can tell is just the index of the current token in the array of tokens after the file was lexed. This is next to no help in diagnosing the problem, as I can't figure out which part of the file is confusing scalariform

My current error looks like:

Expected token ARROW but got Token(RBRACE,},11265,})
scalariform.parser.ScalaParser.scalariform$parser$ScalaParser$$accept(ScalaParser.scala:80)
scalariform.parser.ScalaParser.scalariform$parser$ScalaParser$$caseBlock(ScalaParser.scala:896)
scalariform.parser.ScalaParser$$anonfun$39.apply(ScalaParser.scala:885)
scalariform.parser.ScalaParser$$anonfun$39.apply(ScalaParser.scala:885)
scalariform.parser.ScalaParser.tokenSeparated(ScalaParser.scala:170)
scalariform.parser.ScalaParser.caseSeparated(ScalaParser.scala:179)
scalariform.parser.ScalaParser.scalariform$parser$ScalaParser$$caseClauses(ScalaParser.scala:884)
scalariform.parser.ScalaParser$$anonfun$38.apply(ScalaParser.scala:875)
scalariform.parser.ScalaParser$$anonfun$38.apply(ScalaParser.scala:875)
scalariform.parser.ScalaParser.inBraces(ScalaParser.scala:31)
scalariform.parser.ScalaParser.scalariform$parser$ScalaParser$$blockExpr(ScalaParser.scala:874)
scalariform.parser.ScalaParser$$anonfun$scalariform$parser$ScalaParser$$argumentExprs$1.applyOrElse(ScalaParser.scala:862)
scalariform.parser.ScalaParser$$anonfun$scalariform$parser$ScalaParser$$argumentExprs$1.applyOrElse(ScalaParser.scala:861)
scala.PartialFunction$Lifted.apply(PartialFunction.scala:218)
scala.PartialFunction$Lifted.apply(PartialFunction.scala:214)
scala.PartialFunction$.condOpt(PartialFunction.scala:281)
scalariform.parser.ScalaParser.scalariform$parser$ScalaParser$$argumentExprs(ScalaParser.scala:861)
scalariform.parser.ScalaParser.simpleExprRest(ScalaParser.scala:835)
Scalariform.parser.ScalaParser.simpleExpr(ScalaParser.scala:806)

It would be far more helpful if this error included a line number or a char index. A token index is next to useless AFAICT.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions