use of org.wso2.ballerinalang.compiler.parser.Parser in project ballerina by ballerina-lang.
the class BallerinaParserErrorStrategy method reportError.
public void reportError(Parser parser, RecognitionException e) {
if (inErrorRecoveryMode(parser)) {
return;
}
beginErrorCondition(parser);
if (e instanceof NoViableAltException) {
reportNoViableAlternative(parser, (NoViableAltException) e);
} else if (e instanceof InputMismatchException) {
reportInputMismatch(parser, (InputMismatchException) e);
} else if (e instanceof FailedPredicateException) {
reportFailedPredicate(parser, (FailedPredicateException) e);
} else {
setContextException(parser);
DiagnosticPos pos = getPosition(getMissingSymbol(parser));
dlog.error(pos, DiagnosticCode.INVALID_TOKEN, e.getMessage());
}
}
use of org.wso2.ballerinalang.compiler.parser.Parser in project ballerina by ballerina-lang.
the class BallerinaParserErrorStrategy method reportFailedPredicate.
@Override
public void reportFailedPredicate(Parser parser, FailedPredicateException e) {
setContextException(parser);
DiagnosticPos pos = getPosition(getMissingSymbol(parser));
dlog.error(pos, DiagnosticCode.FAILED_PREDICATE, e.getMessage());
}
use of org.wso2.ballerinalang.compiler.parser.Parser in project ballerina by ballerina-lang.
the class BallerinaParserErrorStrategy method reportMissingToken.
@Override
public void reportMissingToken(Parser parser) {
if (parser.getContext().exception != null || inErrorRecoveryMode(parser)) {
return;
}
beginErrorCondition(parser);
setContextException(parser);
Token token = parser.getCurrentToken();
IntervalSet expecting = getExpectedTokens(parser);
String missingToken = expecting.toString(parser.getVocabulary());
DiagnosticPos pos = getPosition(getMissingSymbol(parser));
dlog.error(pos, DiagnosticCode.MISSING_TOKEN, missingToken, getTokenErrorDisplay(token));
}
use of org.wso2.ballerinalang.compiler.parser.Parser in project ballerina by ballerina-lang.
the class BallerinaParserErrorStrategy method reportNoViableAlternative.
@Override
public void reportNoViableAlternative(Parser parser, NoViableAltException e) {
setContextException(parser);
String offendingToken = e.getOffendingToken().getText();
DiagnosticPos pos = getPosition(e.getOffendingToken());
dlog.error(pos, DiagnosticCode.INVALID_TOKEN, escapeWSAndQuote(offendingToken));
}
use of org.wso2.ballerinalang.compiler.parser.Parser in project ballerina by ballerina-lang.
the class BLangParserListener method exitAnyJoinCondition.
@Override
public void exitAnyJoinCondition(BallerinaParser.AnyJoinConditionContext ctx) {
if (ctx.exception != null) {
return;
}
List<String> workerNames = new ArrayList<>();
if (ctx.Identifier() != null) {
workerNames = ctx.Identifier().stream().map(TerminalNode::getText).collect(Collectors.toList());
}
int joinCount = 0;
Long longObject;
if ((longObject = getIntegerLiteral(ctx, ctx.integerLiteral())) != null) {
try {
joinCount = longObject.intValue();
} catch (NumberFormatException ex) {
// When ctx.IntegerLiteral() is not a string or missing, compilation fails due to NumberFormatException.
// Hence catching the error and ignore. Still Parser complains about missing IntegerLiteral.
}
}
this.pkgBuilder.addJoinCondition(getWS(ctx), "SOME", workerNames, joinCount);
}
Aggregations