List of usage examples for org.eclipse.jdt.core.dom Assignment getLeftHandSide
public Expression getLeftHandSide()
From source file:at.bestsolution.fxide.jdt.corext.dom.ASTFlattener.java
License:Open Source License
@Override public boolean visit(Assignment node) { node.getLeftHandSide().accept(this); this.fBuffer.append(node.getOperator().toString()); node.getRightHandSide().accept(this); return false; }
From source file:boa.datagen.util.Java7Visitor.java
License:Apache License
@Override public boolean visit(Assignment node) { boa.types.Ast.Expression.Builder b = boa.types.Ast.Expression.newBuilder(); // b.setPosition(pos.build()); node.getLeftHandSide().accept(this); b.addExpressions(expressions.pop()); node.getRightHandSide().accept(this); b.addExpressions(expressions.pop()); if (node.getOperator() == Assignment.Operator.ASSIGN) b.setKind(boa.types.Ast.Expression.ExpressionKind.ASSIGN); else if (node.getOperator() == Assignment.Operator.BIT_AND_ASSIGN) b.setKind(boa.types.Ast.Expression.ExpressionKind.ASSIGN_BITAND); else if (node.getOperator() == Assignment.Operator.BIT_OR_ASSIGN) b.setKind(boa.types.Ast.Expression.ExpressionKind.ASSIGN_BITOR); else if (node.getOperator() == Assignment.Operator.BIT_XOR_ASSIGN) b.setKind(boa.types.Ast.Expression.ExpressionKind.ASSIGN_BITXOR); else if (node.getOperator() == Assignment.Operator.DIVIDE_ASSIGN) b.setKind(boa.types.Ast.Expression.ExpressionKind.ASSIGN_DIV); else if (node.getOperator() == Assignment.Operator.LEFT_SHIFT_ASSIGN) b.setKind(boa.types.Ast.Expression.ExpressionKind.ASSIGN_LSHIFT); else if (node.getOperator() == Assignment.Operator.MINUS_ASSIGN) b.setKind(boa.types.Ast.Expression.ExpressionKind.ASSIGN_SUB); else if (node.getOperator() == Assignment.Operator.PLUS_ASSIGN) b.setKind(boa.types.Ast.Expression.ExpressionKind.ASSIGN_ADD); else if (node.getOperator() == Assignment.Operator.REMAINDER_ASSIGN) b.setKind(boa.types.Ast.Expression.ExpressionKind.ASSIGN_MOD); else if (node.getOperator() == Assignment.Operator.RIGHT_SHIFT_SIGNED_ASSIGN) b.setKind(boa.types.Ast.Expression.ExpressionKind.ASSIGN_RSHIFT); else if (node.getOperator() == Assignment.Operator.RIGHT_SHIFT_UNSIGNED_ASSIGN) b.setKind(boa.types.Ast.Expression.ExpressionKind.ASSIGN_UNSIGNEDRSHIFT); else if (node.getOperator() == Assignment.Operator.TIMES_ASSIGN) b.setKind(boa.types.Ast.Expression.ExpressionKind.ASSIGN_MULT); expressions.push(b.build());//w ww . j a va 2 s . com return false; }
From source file:ca.mcgill.cs.swevo.ppa.inference.AssignInferenceStrategy.java
License:Open Source License
private boolean isLeftSafe(ASTNode node) { boolean leftSafe = true; Assignment assign = (Assignment) node; Expression left = assign.getLeftHandSide(); if (indexer.isIndexable(left)) { leftSafe = indexer.isSafe(left); }/*from w ww .j a va 2s. c om*/ return leftSafe; }
From source file:ca.mcgill.cs.swevo.ppa.inference.AssignInferenceStrategy.java
License:Open Source License
public void inferTypes(ASTNode node) { Assignment assign = (Assignment) node; Expression left = assign.getLeftHandSide(); Expression right = assign.getRightHandSide(); ITypeBinding leftBinding = PPABindingsUtil.getTypeBinding(left); ITypeBinding rightBinding = PPABindingsUtil.getTypeBinding(right); boolean isLeftSafe = isLeftSafe(node); boolean isRightSafe = isRightSafe(node); int leftValue = PPABindingsUtil.getSafetyValue(leftBinding); int rightValue = PPABindingsUtil.getSafetyValue(rightBinding); if ((isLeftSafe && isRightSafe) || (leftValue == rightValue)) { return;/*w w w. j a v a 2s .c o m*/ } else if (!isRightSafe && leftValue > rightValue) { TypeFact tFact = new TypeFact(indexer.getMainIndex(right), rightBinding, TypeFact.UNKNOWN, leftBinding, TypeFact.SUBTYPE, TypeFact.ASSIGN_STRATEGY); ppaEngine.reportTypeFact(tFact); } else if (!isLeftSafe && rightValue > leftValue) { TypeFact tFact = new TypeFact(indexer.getMainIndex(left), leftBinding, TypeFact.UNKNOWN, rightBinding, TypeFact.SUPERTYPE, TypeFact.ASSIGN_STRATEGY); ppaEngine.reportTypeFact(tFact); } }
From source file:ca.mcgill.cs.swevo.ppa.inference.AssignInferenceStrategy.java
License:Open Source License
public boolean isSafe(ASTNode node) { Assignment assign = (Assignment) node; boolean leftSafe = true; boolean rightSafe = true; Expression left = assign.getLeftHandSide(); Expression right = assign.getRightHandSide(); leftSafe = indexer.isSafe(left);//from w w w . j a v a2 s . c o m rightSafe = indexer.isSafe(right); return leftSafe && rightSafe; }
From source file:ca.mcgill.cs.swevo.ppa.inference.AssignInferenceStrategy.java
License:Open Source License
public List<PPAIndex> getSecondaryIndexes(ASTNode node) { Assignment assign = (Assignment) node; List<PPAIndex> indexes = new ArrayList<PPAIndex>(); Expression left = assign.getLeftHandSide(); Expression right = assign.getRightHandSide(); if (indexer.isIndexable(left)) { PPAIndex tempIndex = indexer.getMainIndex(left); indexes.add(tempIndex);//from w w w. j av a2s. co m } if (indexer.isIndexable(right)) { PPAIndex tempIndex = indexer.getMainIndex(right); indexes.add(tempIndex); } return indexes; }
From source file:coloredide.utils.CopiedNaiveASTFlattener.java
License:Open Source License
public boolean visit(Assignment node) { node.getLeftHandSide().accept(this); this.buffer.append(node.getOperator().toString()); node.getRightHandSide().accept(this); return false; }
From source file:com.android.ide.eclipse.adt.internal.refactorings.extractstring.ReplaceStringsVisitor.java
License:Open Source License
/** * Examines if the StringLiteral is part of a assignment to a variable that * is a string. We need to lookup the variable to find its type, either in the * enclosing method or class type.//from w w w. ja v a 2 s. c o m */ private boolean examineAssignment(StringLiteral node) { Assignment assignment = findParentClass(node, Assignment.class); if (assignment != null) { Expression left = assignment.getLeftHandSide(); ITypeBinding typeBinding = left.resolveTypeBinding(); return isJavaString(typeBinding); } return false; }
From source file:com.google.dart.java2dart.SyntaxTranslator.java
License:Open Source License
@Override public boolean visit(org.eclipse.jdt.core.dom.Assignment node) { Expression left = translate(node.getLeftHandSide()); Expression right = translate(node.getRightHandSide()); // operator//from ww w . jav a 2 s. c o m TokenType tokenType = null; org.eclipse.jdt.core.dom.Assignment.Operator javaOperator = node.getOperator(); if (javaOperator == org.eclipse.jdt.core.dom.Assignment.Operator.ASSIGN) { tokenType = TokenType.EQ; } if (javaOperator == org.eclipse.jdt.core.dom.Assignment.Operator.PLUS_ASSIGN) { tokenType = TokenType.PLUS_EQ; } if (javaOperator == org.eclipse.jdt.core.dom.Assignment.Operator.MINUS_ASSIGN) { tokenType = TokenType.MINUS_EQ; } if (javaOperator == org.eclipse.jdt.core.dom.Assignment.Operator.TIMES_ASSIGN) { tokenType = TokenType.STAR_EQ; } if (javaOperator == org.eclipse.jdt.core.dom.Assignment.Operator.DIVIDE_ASSIGN) { tokenType = TokenType.SLASH_EQ; } if (javaOperator == org.eclipse.jdt.core.dom.Assignment.Operator.REMAINDER_ASSIGN) { tokenType = TokenType.PERCENT_EQ; } if (javaOperator == org.eclipse.jdt.core.dom.Assignment.Operator.LEFT_SHIFT_ASSIGN) { tokenType = TokenType.LT_LT_EQ; } if (javaOperator == org.eclipse.jdt.core.dom.Assignment.Operator.RIGHT_SHIFT_SIGNED_ASSIGN || javaOperator == org.eclipse.jdt.core.dom.Assignment.Operator.RIGHT_SHIFT_UNSIGNED_ASSIGN) { tokenType = TokenType.GT_GT_EQ; } if (javaOperator == org.eclipse.jdt.core.dom.Assignment.Operator.BIT_XOR_ASSIGN) { tokenType = TokenType.CARET_EQ; } if (javaOperator == org.eclipse.jdt.core.dom.Assignment.Operator.BIT_OR_ASSIGN) { tokenType = TokenType.BAR_EQ; } if (javaOperator == org.eclipse.jdt.core.dom.Assignment.Operator.BIT_AND_ASSIGN) { tokenType = TokenType.AMPERSAND_EQ; } Assert.isNotNull(tokenType, "No token for: " + javaOperator); // done return done(new AssignmentExpression(left, new Token(tokenType, 0), right)); }
From source file:com.google.devtools.j2cpp.gen.CppStatementGenerator.java
License:Open Source License
@Override public boolean visit(Assignment node) { Operator op = node.getOperator();//from w w w. j a va 2s .co m Expression lhs = node.getLeftHandSide(); Expression rhs = node.getRightHandSide(); if (op == Operator.PLUS_ASSIGN && Types.isJavaStringType(lhs.resolveTypeBinding())) { boolean needClosingParen = printAssignmentLhs(lhs); // Change "str1 += str2" to "str1 = str1 + str2". buffer.append(" = "); printStringConcatenation(lhs, rhs, Collections.<Expression>emptyList(), needClosingParen); if (needClosingParen) { buffer.append(")"); } } else if (op == Operator.REMAINDER_ASSIGN && (isFloatingPoint(lhs) || isFloatingPoint(rhs))) { lhs.accept(this); buffer.append(" = fmod("); lhs.accept(this); buffer.append(", "); rhs.accept(this); buffer.append(")"); } else if (lhs instanceof ArrayAccess) { printArrayElementAssignment(lhs, rhs, op); } else if (op == Operator.RIGHT_SHIFT_UNSIGNED_ASSIGN) { lhs.accept(this); buffer.append(" = "); printUnsignedRightShift(lhs, rhs); } else { IVariableBinding var = Types.getVariableBinding(lhs); boolean useWriter = false; if (var != null && var.getDeclaringClass() != null) { // Test with toString, as var may have been have a renamed type. String declaringClassName = var.getDeclaringClass().toString(); String methodsClassName = Types.getTypeBinding(getOwningType(node)).toString(); useWriter = Types.isStaticVariable(var) && !declaringClassName.equals(methodsClassName); } if (useWriter) { // convert static var assignment to its writer message buffer.append('['); if (lhs instanceof QualifiedName) { QualifiedName qn = (QualifiedName) lhs; qn.getQualifier().accept(this); } else { buffer.append(NameTable.getFullName(var.getDeclaringClass())); } buffer.append(" set"); buffer.append(NameTable.capitalize(var.getName())); String typeName = NameTable.javaTypeToCpp(var.getType(), false); String param = CppSourceFileGenerator.parameterKeyword(typeName, var.getType()); buffer.append(NameTable.capitalize(param)); buffer.append(':'); rhs.accept(this); buffer.append(']'); return false; } else { boolean needClosingParen = printAssignmentLhs(lhs); buffer.append(' '); buffer.append(op.toString()); buffer.append(' '); if (Types.isJavaObjectType(Types.getTypeBinding(lhs)) && Types.getTypeBinding(rhs).isInterface()) { // The compiler doesn't know that NSObject is the root of all // objects used by transpiled code, so add a cast. buffer.append("(NSObject *) "); } if (useReferenceCounting && !isNewAssignment(node) && var != null && Types.isStaticVariable(var) && !var.getType().isPrimitive() && !Types.isWeakReference(var) && rhs.getNodeType() != ASTNode.NULL_LITERAL) { buffer.append('['); rhs.accept(this); buffer.append(" retain]"); } else { boolean needRetainRhs = needClosingParen && !isNewAssignment(node) && !Types.isWeakReference(var); if (rhs instanceof NullLiteral) { needRetainRhs = false; } if (needRetainRhs) { buffer.append("["); } rhs.accept(this); if (needRetainRhs) { buffer.append(" retain]"); } if (needClosingParen) { buffer.append(")"); } } return false; } } return false; }