List of usage examples for org.eclipse.jdt.core.dom ArrayAccess getIndex
public Expression getIndex()
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(']'); }