Example usage for org.eclipse.jdt.core.dom ArrayAccess getIndex

List of usage examples for org.eclipse.jdt.core.dom ArrayAccess getIndex

Introduction

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

Prototype

public Expression getIndex() 

Source Link

Document

Returns the index expression of this array access expression.

Usage

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

License:Open Source License

@Override
public boolean visit(ArrayAccess node) {
    node.getArray().accept(this);
    this.fBuffer.append("[");//$NON-NLS-1$
    node.getIndex().accept(this);
    this.fBuffer.append("]");//$NON-NLS-1$
    return false;
}

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

License:Apache License

@Override
public boolean visit(ArrayAccess node) {
    boa.types.Ast.Expression.Builder b = boa.types.Ast.Expression.newBuilder();
    //      b.setPosition(pos.build());
    b.setKind(boa.types.Ast.Expression.ExpressionKind.ARRAYINDEX);
    node.getArray().accept(this);
    b.addExpressions(expressions.pop());
    node.getIndex().accept(this);
    b.addExpressions(expressions.pop());
    expressions.push(b.build());/*from  www.jav  a2 s .co m*/
    return false;
}

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

License:Open Source License

public void inferTypes(ASTNode node) {
    ArrayAccess aAccess = (ArrayAccess) node;
    // Expression exp1 = aAccess.getArray();
    Expression exp2 = aAccess.getIndex();

    if (!indexer.isSafe(exp2)) {
        ITypeBinding oldBinding = exp2.resolveTypeBinding();
        ITypeBinding newBinding = ppaEngine.getRegistry().getPrimitiveBinding("int", exp2);
        TypeFact tFact = new TypeFact(indexer.getMainIndex(exp2), oldBinding, TypeFact.UNKNOWN, newBinding,
                TypeFact.SUBTYPE, TypeFact.ARRAY_STRATEGY);
        ppaEngine.reportTypeFact(tFact);
    }/*from  ww w . jav a  2 s  .  c o m*/
}

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

License:Open Source License

public boolean isSafe(ASTNode node) {
    ArrayAccess aAccess = (ArrayAccess) node;
    Expression exp1 = aAccess.getArray();
    Expression exp2 = aAccess.getIndex();

    return (!indexer.isIndexable(exp1) || indexer.isSafe(exp1))
            && (!indexer.isIndexable(exp2) || indexer.isSafe(exp2));
}

From source file:coloredide.utils.CopiedNaiveASTFlattener.java

License:Open Source License

public boolean visit(ArrayAccess node) {
    node.getArray().accept(this);
    this.buffer.append("[");//$NON-NLS-1$
    node.getIndex().accept(this);
    this.buffer.append("]");//$NON-NLS-1$
    return false;
}

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

License:Open Source License

@Override
public boolean visit(ArrayAccess node) {
    handleTokenBefore(node.getIndex(), TokenNameLBRACKET,
            this.options.insert_space_before_opening_bracket_in_array_reference,
            this.options.insert_space_after_opening_bracket_in_array_reference);
    handleTokenAfter(node.getIndex(), TokenNameRBRACKET,
            this.options.insert_space_before_closing_bracket_in_array_reference, false);
    return true;//from w ww  .  j av  a  2  s. com
}

From source file:com.google.dart.java2dart.SyntaxTranslator.java

License:Open Source License

@Override
public boolean visit(org.eclipse.jdt.core.dom.ArrayAccess node) {
    Expression expression = translate(node.getArray());
    Expression index = translate(node.getIndex());
    return done(indexExpression(expression, index));
}

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

License:Open Source License

@Override
public boolean visit(ArrayAccess node) {
    buffer.append('[');
    printNilCheck(node.getArray(), true);
    buffer.append(' ');

    ITypeBinding binding = node.resolveTypeBinding();
    if (binding == null) {
        binding = Types.getTypeBinding(node);
    }/*from   w ww .j a v a2s  . com*/
    IOSTypeBinding arrayBinding = Types.resolveArrayType(binding);
    if (arrayBinding == null) {
        J2ObjC.error(node, "No IOSArrayBinding for " + binding.getName());
    } else {
        assert (arrayBinding instanceof IOSArrayTypeBinding);
        IOSArrayTypeBinding primitiveArray = (IOSArrayTypeBinding) arrayBinding;
        buffer.append(primitiveArray.getAccessMethod());
    }

    buffer.append(':');
    node.getIndex().accept(this);
    buffer.append(']');
    return false;
}

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

License:Open Source License

private void printArrayElementAssignment(Expression lhs, Expression rhs, Assignment.Operator op) {
    ArrayAccess aa = (ArrayAccess) lhs;
    String kind = getArrayAccessKind(aa);
    buffer.append('[');
    if (aa.getArray() instanceof ArrayAccess) {
        buffer.append(String.format("(IOS%sArray *) ", kind));
    }/*from ww  w. j a v a  2  s . c o m*/
    printNilCheck(aa.getArray(), true);
    buffer.append(" replace");
    buffer.append(kind);
    buffer.append("AtIndex:");
    aa.getIndex().accept(this);
    buffer.append(" with");
    buffer.append(kind);
    buffer.append(':');
    if (op == Operator.ASSIGN) {
        rhs.accept(this);
    } else {
        // Fetch value and apply operand; for example, "arr[i] += j" becomes
        // "[arr replaceIntAtIndex:i withInt:[arr intAtIndex:i] + j]", or
        // ... "withInt:(int) (((unsigned int) [arr intAtIndex:i]) >> j)]" for
        // unsigned right shift.
        String type = kind.toLowerCase();
        if (op == Operator.RIGHT_SHIFT_UNSIGNED_ASSIGN) {
            buffer.append("(");
            buffer.append(type);
            buffer.append(") (((unsigned ");
            buffer.append(type);
            buffer.append(") ");
        }
        buffer.append('[');
        aa.getArray().accept(this);
        buffer.append(' ');
        buffer.append(type);
        buffer.append("AtIndex:");
        aa.getIndex().accept(this);
        buffer.append(']');
        if (op == Operator.RIGHT_SHIFT_UNSIGNED_ASSIGN) {
            buffer.append(") >>");
        } else {
            buffer.append(' ');
            String s = op.toString();
            buffer.append(s.substring(0, s.length() - 1)); // strip trailing '='.
        }
        buffer.append(' ');
        rhs.accept(this);
        if (op == Operator.RIGHT_SHIFT_UNSIGNED_ASSIGN) {
            buffer.append(')');
        }
    }
    buffer.append(']');
}

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

License:Open Source License

private void printArrayIncrementOrDecrement(ArrayAccess access, String methodName) {
    buffer.append('[');
    printNilCheck(access.getArray(), true);
    buffer.append(' ');
    buffer.append(methodName);/* w  w  w.j  av  a  2 s.c om*/
    buffer.append(':');
    access.getIndex().accept(this);
    buffer.append(']');
}