private void recordFinalVars(Expression leftExpression) { if (leftExpression instanceof VariableExpression) { VariableExpression var = (VariableExpression) leftExpression; if (Modifier.isFinal(var.getModifiers())) { declaredFinalVariables.add(var); } } else if (leftExpression instanceof TupleExpression) { TupleExpression te = (TupleExpression) leftExpression; for (Expression next : te.getExpressions()) { if (next instanceof Variable) { declaredFinalVariables.add((Variable) next); } } } }
private void checkInvalidDeclarationModifier(DeclarationExpression expression, int modifier, String modName) { if ((expression.getVariableExpression().getModifiers() & modifier) != 0) { addError("Modifier '" + modName + "' not allowed here.", expression); } }
variableName = ve.getName(); fieldNode = new FieldNode(variableName, ve.getModifiers(), ve.getType(), null, de.getRightExpression()); fieldNode.setSourcePosition(de); cNode.addField(fieldNode);
private void checkInvalidDeclarationModifier(DeclarationExpression expression, int modifier, String modName) { if ((expression.getVariableExpression().getModifiers() & modifier) != 0) { addError("Modifier '" + modName + "' not allowed here.", expression); } }
public void visitExpressionStatement(ExpressionStatement statement){ Expression expression = statement.getExpression(); if(expression instanceof DeclarationExpression){ List<AnnotationNode> fa = expression.getAnnotations(); for(AnnotationNode n: fa){ if("Field".equals(n.getClassNode().getName()) || Field.class.equals(n.getClassNode().getTypeClass())){ //short-circuit and ignore the field declaration return; } } DeclarationExpression de = (DeclarationExpression) expression; if((de.getVariableExpression().getModifiers() & ACC_STATIC) !=0) { //static declarations are implied fields return; } } runnable.set(true); } public void visitReturnStatement(ReturnStatement statement){
public void visitExpressionStatement(ExpressionStatement statement){ Expression expression = statement.getExpression(); if(expression instanceof DeclarationExpression){ List<AnnotationNode> fa = expression.getAnnotations(); for(AnnotationNode n: fa){ if("Field".equals(n.getClassNode().getName()) || Field.class.equals(n.getClassNode().getTypeClass())){ //short-circuit and ignore the field declaration return; } } DeclarationExpression de = (DeclarationExpression) expression; if((de.getVariableExpression().getModifiers() & ACC_STATIC) !=0) { //static declarations are implied fields return; } } runnable.set(true); } public void visitReturnStatement(ReturnStatement statement){
public void visitDeclarationExpression(DeclarationExpression expr){ if(inRunMethod && !expr.isMultipleAssignmentDeclaration() && context.isEmpty()){ VariableExpression ve = expr.getVariableExpression(); if((ve.getModifiers() & ACC_STATIC) !=0){ boolean isField = false; List<AnnotationNode> nodes = expr.getAnnotations(); if(nodes!=null){ for(AnnotationNode node:nodes){ if(node.getClassNode().getName().equals("Field")){ isField=true; } } } //automatically add @Field annotation to static variable declarations if(!isField){ expr.addAnnotation(new AnnotationNode(new ClassNode(Field.class))); } } } super.visitDeclarationExpression(expr); } }
public void visitDeclarationExpression(DeclarationExpression expr){ if(inRunMethod && !expr.isMultipleAssignmentDeclaration() && context.isEmpty()){ VariableExpression ve = expr.getVariableExpression(); if((ve.getModifiers() & ACC_STATIC) !=0){ boolean isField = false; List<AnnotationNode> nodes = expr.getAnnotations(); if(nodes!=null){ for(AnnotationNode node:nodes){ if(node.getClassNode().getName().equals("Field")){ isField=true; } } } //automatically add @Field annotation to static variable declarations if(!isField){ expr.addAnnotation(new AnnotationNode(new ClassNode(Field.class))); } } } super.visitDeclarationExpression(expr); } }
variableName = ve.getName(); fieldNode = new FieldNode(variableName, ve.getModifiers(), ve.getType(), null, de.getRightExpression()); fieldNode.setSourcePosition(de); cNode.addField(fieldNode);