Example usage for org.eclipse.jdt.core.dom PrefixExpression getOperator

List of usage examples for org.eclipse.jdt.core.dom PrefixExpression getOperator

Introduction

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

Prototype

public PrefixExpression.Operator getOperator() 

Source Link

Document

Returns the operator of this prefix expression.

Usage

From source file:at.bestsolution.fxide.jdt.corext.dom.ASTFlattener.java

License:Open Source License

@Override
public boolean visit(PrefixExpression node) {
    this.fBuffer.append(node.getOperator().toString());
    node.getOperand().accept(this);
    return false;
}

From source file:boa.datagen.util.Java7Visitor.java

License:Apache License

@Override
public boolean visit(PrefixExpression node) {
    boa.types.Ast.Expression.Builder b = boa.types.Ast.Expression.newBuilder();
    //      b.setPosition(pos.build());
    if (node.getOperator() == PrefixExpression.Operator.DECREMENT)
        b.setKind(boa.types.Ast.Expression.ExpressionKind.OP_DEC);
    else if (node.getOperator() == PrefixExpression.Operator.INCREMENT)
        b.setKind(boa.types.Ast.Expression.ExpressionKind.OP_INC);
    else if (node.getOperator() == PrefixExpression.Operator.PLUS)
        b.setKind(boa.types.Ast.Expression.ExpressionKind.OP_ADD);
    else if (node.getOperator() == PrefixExpression.Operator.MINUS)
        b.setKind(boa.types.Ast.Expression.ExpressionKind.OP_SUB);
    else if (node.getOperator() == PrefixExpression.Operator.COMPLEMENT)
        b.setKind(boa.types.Ast.Expression.ExpressionKind.BIT_NOT);
    else if (node.getOperator() == PrefixExpression.Operator.NOT)
        b.setKind(boa.types.Ast.Expression.ExpressionKind.LOGICAL_NOT);
    node.getOperand().accept(this);
    b.addExpressions(expressions.pop());
    expressions.push(b.build());/*from w  w  w.  ja  va  2s.  co  m*/
    return false;
}

From source file:ca.mcgill.cs.swevo.ppa.inference.PrefixInferenceStrategy.java

License:Open Source License

private void processOperators(PrefixExpression node, TypeFact newFact) {
    ITypeBinding newType = null;/* w ww . java 2  s. c om*/
    Expression exp = node.getOperand();
    boolean isPrimary = newFact != null && indexer.getMainIndex(node).equals(newFact.getIndex());
    boolean isSafe = indexer.isSafe(exp) || (newFact != null && !isPrimary);

    if (node.getOperator() != PrefixExpression.Operator.NOT) {
        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;
        }
    } else if (!isSafe) {
        ITypeBinding newBinding = ppaEngine.getRegistry().getPrimitiveBinding("boolean", 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:coloredide.utils.CopiedNaiveASTFlattener.java

License:Open Source License

public boolean visit(PrefixExpression node) {
    this.buffer.append(node.getOperator().toString());
    node.getOperand().accept(this);
    return false;
}

From source file:com.bsiag.eclipse.jdt.java.formatter.SpacePreparator.java

License:Open Source License

@Override
public boolean visit(PrefixExpression node) {
    Operator operator = node.getOperator();
    if (operator.equals(Operator.INCREMENT) || operator.equals(Operator.DECREMENT)) {
        handleOperator(operator.toString(), node.getOperand(), this.options.insert_space_before_prefix_operator,
                this.options.insert_space_after_prefix_operator);
    } else {/*from  w  w  w. j  ava  2 s. co m*/
        handleOperator(operator.toString(), node.getOperand(), this.options.insert_space_before_unary_operator,
                this.options.insert_space_after_unary_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.PrefixExpression node) {
    Expression operand = translate(node.getOperand());
    // operator//from www  .  ja  v  a2 s  .  com
    TokenType tokenType = null;
    org.eclipse.jdt.core.dom.PrefixExpression.Operator javaOperator = node.getOperator();
    if (javaOperator == org.eclipse.jdt.core.dom.PrefixExpression.Operator.PLUS) {
        return done(operand);
    }
    if (javaOperator == org.eclipse.jdt.core.dom.PrefixExpression.Operator.INCREMENT) {
        tokenType = TokenType.PLUS_PLUS;
    }
    if (javaOperator == org.eclipse.jdt.core.dom.PrefixExpression.Operator.DECREMENT) {
        tokenType = TokenType.MINUS_MINUS;
    }
    if (javaOperator == org.eclipse.jdt.core.dom.PrefixExpression.Operator.MINUS) {
        tokenType = TokenType.MINUS;
    }
    if (javaOperator == org.eclipse.jdt.core.dom.PrefixExpression.Operator.NOT) {
        tokenType = TokenType.BANG;
    }
    if (javaOperator == org.eclipse.jdt.core.dom.PrefixExpression.Operator.COMPLEMENT) {
        tokenType = TokenType.TILDE;
    }
    Assert.isNotNull(tokenType, "No token for: " + javaOperator);
    // done
    return done(prefixExpression(tokenType, operand));
}

From source file:com.google.devtools.j2cpp.gen.CppStatementGenerator.java

License:Open Source License

@Override
public boolean visit(PrefixExpression node) {
    if (node.getOperand() instanceof ArrayAccess) {
        PrefixExpression.Operator op = node.getOperator();
        if (op == PrefixExpression.Operator.INCREMENT || op == PrefixExpression.Operator.DECREMENT) {
            String methodName = op == PrefixExpression.Operator.INCREMENT ? "incr" : "decr";
            printArrayIncrementOrDecrement((ArrayAccess) node.getOperand(), methodName);
            return false;
        }/*ww  w.  java  2 s  .c o  m*/
    }
    buffer.append(node.getOperator().toString());
    node.getOperand().accept(this);
    return false;
}

From source file:com.google.devtools.j2objc.ast.DebugASTPrinter.java

License:Apache License

@Override
public boolean visit(PrefixExpression node) {
    sb.print(node.getOperator().toString());
    node.getOperand().accept(this);
    return false;
}

From source file:com.google.googlejavaformat.java.JavaInputAstVisitor.java

License:Apache License

/** Visitor method for {@link PrefixExpression}s. */
@Override/* www  .  j  av a2  s . co  m*/
public boolean visit(PrefixExpression node) {
    sync(node);
    String op = node.getOperator().toString();
    builder.op(op);
    // Keep prefixes unambiguous.
    Expression operand = node.getOperand();
    if ((op.equals("+") || op.equals("-")) && operand.getNodeType() == ASTNode.PREFIX_EXPRESSION
            && ((PrefixExpression) operand).getOperator().toString().startsWith(op)) {
        builder.space();
    }
    operand.accept(this);
    return false;
}

From source file:com.ibm.wala.cast.java.translator.jdt.JDTJava2CAstTranslator.java

License:Open Source License

private CAstNode visit(PrefixExpression n, WalkContext context) {
    PrefixExpression.Operator op = n.getOperator();

    if (op == PrefixExpression.Operator.DECREMENT || op == PrefixExpression.Operator.INCREMENT) {
        CAstOperator castOp = (n.getOperator() == PrefixExpression.Operator.DECREMENT) ? CAstOperator.OP_SUB
                : CAstOperator.OP_ADD;/*from  w  w  w .ja v a2 s  .  c o  m*/
        return makeNode(context, fFactory, n, CAstNode.ASSIGN_PRE_OP, visitNode(n.getOperand(), context),
                fFactory.makeConstant(1), castOp);
    } else if (op == PrefixExpression.Operator.PLUS) {
        return visitNode(n.getOperand(), context); // drop useless unary plus operator
    } else if (op == PrefixExpression.Operator.MINUS) {
        CAstNode zero;
        if (JDT2CAstUtils.isLongOrLess(n.getOperand().resolveTypeBinding()))
            zero = fFactory.makeConstant(0L);
        else
            zero = fFactory.makeConstant(0.0);
        return makeNode(context, fFactory, n, CAstNode.BINARY_EXPR, CAstOperator.OP_SUB, zero,
                visitNode(n.getOperand(), context));
    } else { // ! and ~
        CAstOperator castOp = (n.getOperator() == PrefixExpression.Operator.NOT) ? CAstOperator.OP_NOT
                : CAstOperator.OP_BITNOT;
        return makeNode(context, fFactory, n, CAstNode.UNARY_EXPR, castOp, visitNode(n.getOperand(), context));
    }
}