List of usage examples for org.eclipse.jdt.core.dom PostfixExpression getOperand
public Expression getOperand()
From source file:at.bestsolution.fxide.jdt.corext.dom.ASTFlattener.java
License:Open Source License
@Override public boolean visit(PostfixExpression node) { node.getOperand().accept(this); this.fBuffer.append(node.getOperator().toString()); return false; }
From source file:boa.datagen.util.Java7Visitor.java
License:Apache License
@Override public boolean visit(PostfixExpression node) { boa.types.Ast.Expression.Builder b = boa.types.Ast.Expression.newBuilder(); // b.setPosition(pos.build()); if (node.getOperator() == PostfixExpression.Operator.DECREMENT) b.setKind(boa.types.Ast.Expression.ExpressionKind.OP_DEC); else if (node.getOperator() == PostfixExpression.Operator.INCREMENT) b.setKind(boa.types.Ast.Expression.ExpressionKind.OP_INC); node.getOperand().accept(this); b.addExpressions(expressions.pop()); b.setIsPostfix(true);//from ww w . j a v a 2 s .c o m expressions.push(b.build()); return false; }
From source file:ca.mcgill.cs.swevo.ppa.inference.PostfixInferenceStrategy.java
License:Open Source License
public boolean isSafe(ASTNode node) { PostfixExpression prefix = (PostfixExpression) node; Expression exp = prefix.getOperand(); return !indexer.isIndexable(exp) || indexer.isSafe(exp); }
From source file:ca.mcgill.cs.swevo.ppa.inference.PostfixInferenceStrategy.java
License:Open Source License
private void processOperators(PostfixExpression node, TypeFact newFact) { ITypeBinding newType = null;// w ww.j a va2 s . com Expression exp = node.getOperand(); boolean isPrimary = newFact != null && indexer.getMainIndex(node).equals(newFact.getIndex()); boolean isSafe = indexer.isSafe(exp) || (newFact != null && !isPrimary); if (isPrimary && !isSafe) { ITypeBinding newBinding = newFact.getNewType(); ITypeBinding oldBinding = exp.resolveTypeBinding(); TypeFact typeFact = new TypeFact(indexer.getMainIndex(exp), oldBinding, TypeFact.UNKNOWN, newBinding, TypeFact.SUBTYPE, TypeFact.UNARY_STRATEGY); ppaEngine.reportTypeFact(typeFact); newType = newBinding; } else if (!isSafe) { ITypeBinding newBinding = ppaEngine.getRegistry().getPrimitiveBinding("int", exp); ITypeBinding oldBinding = exp.resolveTypeBinding(); TypeFact typeFact = new TypeFact(indexer.getMainIndex(exp), oldBinding, TypeFact.UNKNOWN, newBinding, TypeFact.SUBTYPE, TypeFact.UNARY_STRATEGY); ppaEngine.reportTypeFact(typeFact); newType = newBinding; } if (newType != null && !isPrimary) { ITypeBinding oldBinding = node.resolveTypeBinding(); TypeFact typeFact = new TypeFact(indexer.getMainIndex(node), oldBinding, TypeFact.UNKNOWN, newType, TypeFact.SUBTYPE, TypeFact.BINARY_STRATEGY); ppaEngine.reportTypeFact(typeFact); // report new type for this expression. // fix this expression. } else if (isPrimary) { if (newType != null) { ppaEngine.getRegistry().fixUnary(node, newType); } else if (newFact != null) { ppaEngine.getRegistry().fixUnary(node, newFact.getNewType()); } } }
From source file:ca.mcgill.cs.swevo.ppa.inference.PostfixInferenceStrategy.java
License:Open Source License
@Override public List<PPAIndex> getSecondaryIndexes(ASTNode node) { List<PPAIndex> list = super.getSecondaryIndexes(node); PostfixExpression prefix = (PostfixExpression) node; Expression exp = prefix.getOperand(); if (indexer.isIndexable(exp)) { list.add(indexer.getMainIndex(exp)); }// ww w. j ava2s .c o m return list; }
From source file:coloredide.utils.CopiedNaiveASTFlattener.java
License:Open Source License
public boolean visit(PostfixExpression node) { node.getOperand().accept(this); this.buffer.append(node.getOperator().toString()); return false; }
From source file:com.bsiag.eclipse.jdt.java.formatter.SpacePreparator.java
License:Open Source License
@Override public boolean visit(PostfixExpression node) { if (this.options.insert_space_before_postfix_operator || this.options.insert_space_after_postfix_operator) { String operator = node.getOperator().toString(); int i = this.tm.firstIndexAfter(node.getOperand(), -1); while (!operator.equals(this.tm.toString(i))) { i++;// ww w . j ava 2 s. c o m } handleToken(this.tm.get(i), this.options.insert_space_before_postfix_operator, this.options.insert_space_after_postfix_operator); } return true; }
From source file:com.google.dart.java2dart.SyntaxTranslator.java
License:Open Source License
@Override public boolean visit(org.eclipse.jdt.core.dom.PostfixExpression node) { Expression operand = translate(node.getOperand()); // operator/*from w w w.j av a2 s. c o m*/ TokenType tokenType = null; org.eclipse.jdt.core.dom.PostfixExpression.Operator javaOperator = node.getOperator(); if (javaOperator == org.eclipse.jdt.core.dom.PostfixExpression.Operator.INCREMENT) { tokenType = TokenType.PLUS_PLUS; } if (javaOperator == org.eclipse.jdt.core.dom.PostfixExpression.Operator.DECREMENT) { tokenType = TokenType.MINUS_MINUS; } // done return done(postfixExpression(operand, tokenType)); }
From source file:com.google.devtools.j2cpp.gen.CppStatementGenerator.java
License:Open Source License
@Override public boolean visit(PostfixExpression node) { if (node.getOperand() instanceof ArrayAccess) { PostfixExpression.Operator op = node.getOperator(); if (op == PostfixExpression.Operator.INCREMENT || op == PostfixExpression.Operator.DECREMENT) { String methodName = op == PostfixExpression.Operator.INCREMENT ? "postIncr" : "postDecr"; printArrayIncrementOrDecrement((ArrayAccess) node.getOperand(), methodName); return false; }/*from w w w . ja v a2 s .com*/ } node.getOperand().accept(this); buffer.append(node.getOperator().toString()); return false; }
From source file:com.google.devtools.j2objc.ast.DebugASTPrinter.java
License:Apache License
@Override public boolean visit(PostfixExpression node) { node.getOperand().accept(this); sb.print(node.getOperator().toString()); return false; }