[4282] | 1 | // License: GPL. For details, see LICENSE file.
|
---|
| 2 | package org.openstreetmap.josm.tools.template_engine;
|
---|
| 3 |
|
---|
| 4 | import static org.openstreetmap.josm.tools.I18n.tr;
|
---|
| 5 |
|
---|
| 6 | import org.openstreetmap.josm.tools.template_engine.Tokenizer.Token;
|
---|
| 7 | import org.openstreetmap.josm.tools.template_engine.Tokenizer.TokenType;
|
---|
| 8 |
|
---|
| 9 | public class ParseError extends Exception {
|
---|
| 10 |
|
---|
[8308] | 11 | private final transient Token unexpectedToken;
|
---|
[4282] | 12 |
|
---|
| 13 | public ParseError(Token unexpectedToken) {
|
---|
| 14 | super(tr("Unexpected token ({0}) on position {1}", unexpectedToken.getType(), unexpectedToken.getPosition()));
|
---|
| 15 | this.unexpectedToken = unexpectedToken;
|
---|
| 16 | }
|
---|
| 17 |
|
---|
| 18 | public ParseError(Token unexpectedToken, TokenType expected) {
|
---|
[8540] | 19 | super(tr("Unexpected token on position {0}. Expected {1}, found {2}",
|
---|
| 20 | unexpectedToken.getPosition(), expected, unexpectedToken.getType()));
|
---|
[4282] | 21 | this.unexpectedToken = unexpectedToken;
|
---|
| 22 | }
|
---|
| 23 |
|
---|
[4546] | 24 | public ParseError(int position, org.openstreetmap.josm.actions.search.SearchCompiler.ParseError e) {
|
---|
| 25 | super(tr("Error while parsing search expression on position {0}", position), e);
|
---|
[4282] | 26 | unexpectedToken = null;
|
---|
| 27 | }
|
---|
| 28 |
|
---|
[4546] | 29 | public ParseError(String message) {
|
---|
| 30 | super(message);
|
---|
| 31 | unexpectedToken = null;
|
---|
| 32 | }
|
---|
| 33 |
|
---|
[4282] | 34 | public Token getUnexpectedToken() {
|
---|
| 35 | return unexpectedToken;
|
---|
| 36 | }
|
---|
[4546] | 37 |
|
---|
| 38 | public static ParseError unexpectedChar(char expected, char found, int position) {
|
---|
| 39 | return new ParseError(tr("Unexpected char on {0}. Expected {1} found {2}", position, expected, found));
|
---|
| 40 | }
|
---|
[4282] | 41 | }
|
---|