Example usage for org.eclipse.jdt.core.dom PostfixExpression getOperand

List of usage examples for org.eclipse.jdt.core.dom PostfixExpression getOperand

Introduction

In this page you can find the example usage for org.eclipse.jdt.core.dom PostfixExpression getOperand.

Prototype

public Expression getOperand() 

Source Link

Document

Returns the operand of this postfix expression.

Usage

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;
}