private static int getLine(ASTNode node) { return node.getLineNumber() > 0 ? node.getLineNumber() : node.getLastLineNumber(); }
private TextPosition startOf(String token, ASTNode node) { // try to compensate for the fact that getLastLineNumber() is sometimes wrong int lastLineIndex = Math.max(node.getLineNumber(), node.getLastLineNumber()) - 1; for (int lineIndex = lastLineIndex; lineIndex >= 0; lineIndex--) { int columnIndex = lineIndex == lastLineIndex ? lines[lineIndex].lastIndexOf(token, node.getColumnNumber() - 1) : lines[lineIndex].lastIndexOf(token); if (columnIndex != -1) return TextPosition.create(lineIndex + 1, columnIndex + 1); } throw new IllegalArgumentException(String.format("token %s not found in expression", token)); } }
private static boolean hasPlausibleSourcePosition(ASTNode node) { return node.getLineNumber() > 0 && node.getColumnNumber() > 0 && node.getLastLineNumber() >= node.getLineNumber() && node.getLastColumnNumber() > (node.getLineNumber() == node.getLastLineNumber() ? node.getColumnNumber() : 0); }
/** * Tells if the source position for the given AST node is plausible. * Does not imply that the source position is correct. * * @param node an AST node * @return <tt>true</tt> iff the AST node has a plausible source position */ public static boolean hasPlausibleSourcePosition(ASTNode node) { return node.getLineNumber() > 0 && node.getLastLineNumber() >= node.getLineNumber() && node.getColumnNumber() > 0 && node.getLastColumnNumber() > node.getColumnNumber(); }
protected String getLocationText() { String answer = ". "; if (node != null) { answer += "At [" + node.getLineNumber() + ":" + node.getColumnNumber() + "] "; } if (module != null) { answer += module.getDescription(); } if (answer.equals(". ")) { return ""; } return answer; } }
public static TextPosition startOf(ASTNode node) { return create(node.getLineNumber(), node.getColumnNumber()); }
@Override public void addError(final String msg, final ASTNode expr) { Long err = ((long) expr.getLineNumber()) << 16 + expr.getColumnNumber(); if ((DEBUG_GENERATED_CODE && expr.getLineNumber() < 0) || !typeCheckingContext.reportedErrors.contains(err)) { typeCheckingContext.getErrorCollector().addErrorAndContinue(new SyntaxErrorMessage( new SyntaxException(msg + '\n', expr.getLineNumber(), expr.getColumnNumber(), expr.getLastLineNumber(), expr.getLastColumnNumber()), typeCheckingContext.source) ); typeCheckingContext.reportedErrors.add(err); } }
@Override public void addError(final String msg, final ASTNode expr) { sourceUnit.addError(new IncorrectTypeHintException(mn, msg, usage.getLineNumber(), usage.getColumnNumber())); } };
/** * Sets the source position using another ASTNode. * The sourcePosition consists of a line/column pair for * the start and a line/column pair for the end of the * expression or statement * * @param node - the node used to configure the position information */ public void setSourcePosition(ASTNode node) { this.columnNumber = node.getColumnNumber(); this.lastLineNumber = node.getLastLineNumber(); this.lastColumnNumber = node.getLastColumnNumber(); this.lineNumber = node.getLineNumber(); }
public SyntaxException(String message, ASTNode node) { this(message, node.getLineNumber(), node.getColumnNumber(), node.getLastLineNumber(), node.getLastColumnNumber()); }
protected void addStaticTypeError(final String msg, final ASTNode expr) { if (expr.getColumnNumber() > 0 && expr.getLineNumber() > 0) { addError(StaticTypesTransformation.STATIC_ERROR_PREFIX + msg, expr); } else { if (DEBUG_GENERATED_CODE) { addError(StaticTypesTransformation.STATIC_ERROR_PREFIX + "Error in generated code [" + expr.getText() + "] - " + msg, expr); } // ignore errors which are related to unknown source locations // because they are likely related to generated code } }
public void throwParserException() throws SyntaxException { final ASTNode node = getNode(); throw new SyntaxException(getMessage(), node.getLineNumber(), node.getColumnNumber(), node.getLastLineNumber(), node.getLastColumnNumber()); }
public static void copySourcePosition(ASTNode from, ASTNode to) { to.setLineNumber(from.getLineNumber()); to.setLastLineNumber(from.getLastLineNumber()); to.setColumnNumber(from.getColumnNumber()); to.setLastColumnNumber(from.getLastColumnNumber()); }
private static void addUnsupportedError(ASTNode node, SourceUnit unit) { unit.getErrorCollector().addErrorAndContinue( new SyntaxErrorMessage( new SyntaxException("The @Category transformation does not support instance "+ (node instanceof FieldNode?"fields":"properties") + " but found ["+getName(node)+"]", node.getLineNumber(), node.getColumnNumber() ), unit )); }
public void addError(String msg, ASTNode expr) { this.source.getErrorCollector().addErrorAndContinue( new SyntaxErrorMessage( new SyntaxException(msg + '\n', expr.getLineNumber(), expr.getColumnNumber(), expr.getLastLineNumber(), expr.getLastColumnNumber()), this.source) ); }
/** * Adds a new syntax error to the source unit and then continues. * * @param message the message * @param node the node for the error report * @param source the source unit for the error report */ protected void addError(String message, ASTNode node, SourceUnit source) { source.getErrorCollector().addErrorAndContinue(new SyntaxErrorMessage(new SyntaxException( message, node.getLineNumber(), node.getColumnNumber(), node.getLastLineNumber(), node.getLastColumnNumber() ), source)); }
protected void addError(String msg, ASTNode expr) { this.errorCollector.addErrorAndContinue( new SyntaxErrorMessage(new SyntaxException(msg + " in @" + this.reportClass.getName() + '\n', expr.getLineNumber(), expr.getColumnNumber(), expr.getLastLineNumber(), expr.getLastColumnNumber()), this.source) ); }
/** * Reports an error back to the source unit. * * @param msg the error message * @param expr the expression that caused the error message. */ protected void addError(String msg, ASTNode expr) { sourceUnit.getErrorCollector().addErrorAndContinue( new SyntaxErrorMessage(new SyntaxException(msg + '\n', expr.getLineNumber(), expr.getColumnNumber(), expr.getLastLineNumber(), expr.getLastColumnNumber()), sourceUnit) ); }
public void addError(String msg, ASTNode expr) { sourceUnit.getErrorCollector().addErrorAndContinue(new SyntaxErrorMessage( new SyntaxException(msg + '\n', expr.getLineNumber(), expr.getColumnNumber(), expr.getLastLineNumber(), expr.getLastColumnNumber()), sourceUnit) ); }
public void addError(String msg, ASTNode expr) { SourceUnit source = getSourceUnit(); source.getErrorCollector().addErrorAndContinue( new SyntaxErrorMessage(new SyntaxException(msg + '\n', expr.getLineNumber(), expr.getColumnNumber(), expr.getLastLineNumber(), expr.getLastColumnNumber()), source) ); }