private void checkInvalidDeclarationModifier(DeclarationExpression expression, int modifier, String modName) { if ((expression.getVariableExpression().getModifiers() & modifier) != 0) { addError("Modifier '" + modName + "' not allowed here.", expression); } }
private boolean matchesCandidate(Expression arg) { return arg instanceof VariableExpression && ((VariableExpression) arg).getAccessedVariable() == candidate.getVariableExpression().getAccessedVariable(); }
@Override public void visitDeclarationExpression(DeclarationExpression expression) { if (expression.isMultipleAssignmentDeclaration()) { TupleExpression te = expression.getTupleExpression(); List<Expression> list = te.getExpressions(); for (Expression arg : list) { VariableExpression ve = (VariableExpression) arg; varStack.getLast().add(ve.getName()); } } else { VariableExpression ve = expression.getVariableExpression(); varStack.getLast().add(ve.getName()); } super.visitDeclarationExpression(expression); }
private void extractModelTypesFromStatement(final Statement code, final Map<String, ClassNode> model) { if (code instanceof BlockStatement) { BlockStatement block = (BlockStatement) code; for (Statement statement : block.getStatements()) { extractModelTypesFromStatement(statement, model); } } else if (code instanceof ExpressionStatement) { Expression expression = ((ExpressionStatement) code).getExpression(); if (expression instanceof DeclarationExpression) { VariableExpression var = ((DeclarationExpression) expression).getVariableExpression(); model.put(var.getName(), var.getOriginType()); } } }
private Expression copyLhsVariableExpressions(DeclarationExpression declExpr) { if (declExpr.isMultipleAssignmentDeclaration()) { ArgumentListExpression result = new ArgumentListExpression(); for (Expression expr : declExpr.getTupleExpression().getExpressions()) { result.addExpression(copyVarExpr((VariableExpression) expr)); } return result; } return copyVarExpr(declExpr.getVariableExpression()); }
@Override public void visitDeclarationExpression(DeclarationExpression expression) { if(expression.isMultipleAssignmentDeclaration()) return; VariableExpression variableExpression = expression.getVariableExpression(); if (isValueRecorderExpression(variableExpression)) { valueRecorderIndex++; expression.setLeftExpression(valueRecorderExpression()); } else if (isErrorCollectorExpression(variableExpression)) { errorCollectorIndex++; expression.setLeftExpression(errorCollectorExpression()); } super.visitDeclarationExpression(expression); }
public void visitDeclarationExpression(DeclarationExpression expression) { visitAnnotations(expression); // visit right side first to avoid the usage of a // variable before its declaration expression.getRightExpression().visit(this); if (expression.isMultipleAssignmentDeclaration()) { TupleExpression list = expression.getTupleExpression(); for (Expression e : list.getExpressions()) { declare((VariableExpression) e); } } else { declare(expression.getVariableExpression()); } }
@Override public void visitDeclarationExpression(DeclarationExpression expression) { super.visitDeclarationExpression(expression); if (expression.isMultipleAssignmentDeclaration()) return; checkInvalidDeclarationModifier(expression, ACC_ABSTRACT, "abstract"); checkInvalidDeclarationModifier(expression, ACC_NATIVE, "native"); checkInvalidDeclarationModifier(expression, ACC_PRIVATE, "private"); checkInvalidDeclarationModifier(expression, ACC_PROTECTED, "protected"); checkInvalidDeclarationModifier(expression, ACC_PUBLIC, "public"); checkInvalidDeclarationModifier(expression, ACC_STATIC, "static"); checkInvalidDeclarationModifier(expression, ACC_STRICT, "strictfp"); checkInvalidDeclarationModifier(expression, ACC_SYNCHRONIZED, "synchronized"); checkInvalidDeclarationModifier(expression, ACC_TRANSIENT, "transient"); checkInvalidDeclarationModifier(expression, ACC_VOLATILE, "volatile"); if (expression.getVariableExpression().getOriginType().equals(VOID_TYPE)) { addError("The variable '" + expression.getVariableExpression().getName() + "' has invalid type void", expression); } }
@Override public void visitDeclarationExpression(DeclarationExpression expression) { if (expression.isMultipleAssignmentDeclaration()) { TupleExpression tExpr = expression.getTupleExpression(); for (Expression nextExpr : tExpr.getExpressions()) { ClassNode declType = nextExpr.getType(); checkGenericsUsage(declType, declType.redirect()); } } else { ClassNode declType = expression.getVariableExpression().getType(); checkGenericsUsage(declType, declType.redirect()); } super.visitDeclarationExpression(expression); }
meta.declaredVariableExpression = declaration.getVariableExpression();
private void changeBaseScriptTypeFromDeclaration(final DeclarationExpression de, final AnnotationNode node) { if (de.isMultipleAssignmentDeclaration()) { addError("Annotation " + MY_TYPE_NAME + " not supported with multiple assignment notation.", de); return; } if (!(de.getRightExpression() instanceof EmptyExpression)) { addError("Annotation " + MY_TYPE_NAME + " not supported with variable assignment.", de); return; } Expression value = node.getMember("value"); if (value != null) { addError("Annotation " + MY_TYPE_NAME + " cannot have member 'value' if used on a declaration.", value); return; } ClassNode cNode = de.getDeclaringClass(); ClassNode baseScriptType = de.getVariableExpression().getType().getPlainNodeReference(); de.setRightExpression(new VariableExpression("this")); changeBaseScriptType(de, cNode, baseScriptType); }
private void changeBaseScriptTypeFromDeclaration(final SourceUnit source, final DeclarationExpression de, final AnnotationNode node) { if (de.isMultipleAssignmentDeclaration()) { addError("Annotation " + MY_TYPE_NAME + " not supported with multiple assignment notation.", de); return; } ClassNode cNode = de.getDeclaringClass(); ClassNode baseScriptType = de.getVariableExpression().getType().getPlainNodeReference(); if (baseScriptType.isScript()) { if (!(de.getRightExpression() instanceof EmptyExpression)) { addError("Annotation " + MY_TYPE_NAME + " not supported with variable assignment.", de); return; } de.setRightExpression(new VariableExpression("this")); } else { baseScriptType = BASE_SCRIPT_TYPE; } Expression value = node.getMember("value"); if (value != null) { addError("Annotation " + MY_TYPE_NAME + " cannot have member 'value' if used on a declaration.", value); return; } changeBaseScriptType(source, de, cNode, baseScriptType, node); }
assertNodeType(VARIABLE_DEF, varDef); DeclarationExpression de = (DeclarationExpression) declarationExpression(varDef); alist.addExpression(de.getVariableExpression());
return; VariableExpression ve = de.getVariableExpression(); variableName = ve.getName();
private static ASTNode getVariableInClosureList(ClosureListExpression closureList, String variable) { for (Object object : closureList.getExpressions()) { if (object instanceof DeclarationExpression) { DeclarationExpression declaration = (DeclarationExpression) object; if (variable.equals(declaration.getVariableExpression().getName())) { return declaration.getVariableExpression(); } } } return null; }
private void checkInvalidDeclarationModifier(DeclarationExpression expression, int modifier, String modName) { if ((expression.getVariableExpression().getModifiers() & modifier) != 0) { addError("Modifier '" + modName + "' not allowed here.", expression); } }
private static OffsetRange getDeclarationExpressionRange(DeclarationExpression expression, BaseDocument doc, int cursorOffset) { OffsetRange range; if (!expression.isMultipleAssignmentDeclaration()) { range = getVariableRange(expression.getVariableExpression(), doc, cursorOffset); } else { range = getRange(expression.getTupleExpression(), doc, cursorOffset); } return range; }
public void visitDeclarationExpression(DeclarationExpression expression) { // visit right side first to avoid the usage of a // variable before its declaration expression.getRightExpression().visit(this); // no need to visit left side, just get the variable name VariableExpression vex = expression.getVariableExpression(); vex.setInStaticContext(currentScope.isInStaticContext()); declare(vex); vex.setAccessedVariable(vex); }
public void visitDeclarationExpression(DeclarationExpression expression) { // visit right side first to avoid the usage of a // variable before its declaration expression.getRightExpression().visit(this); if (expression.isMultipleAssignmentDeclaration()) { TupleExpression list = expression.getTupleExpression(); for (Expression e : list.getExpressions()) { declare((VariableExpression) e); } } else { declare(expression.getVariableExpression()); } }
@Override public void run() { VariableExpression v = exp.getVariableExpression(); loc(exp); literal(v.getType()); literal(v.getName()); visitAssignmentOrCast(v, exp.getRightExpression()); } });