| 1 19 20 package jode.expr; 21 import jode.type.Type; 22 import jode.type.ArrayType; 23 import jode.decompiler.TabbedPrintWriter; 24 25 public class ArrayLoadOperator extends Operator { 26 27 public ArrayLoadOperator(Type type) { 28 super(type, 0); 29 initOperands(2); 30 } 31 32 public int getPriority() { 33 return 950; 34 } 35 36 public void updateSubTypes() { 37 subExpressions[0].setType(Type.tSubType(Type.tArray(type))); 38 subExpressions[1].setType(Type.tSubType(Type.tInt)); 39 } 40 41 public void updateType() { 42 Type subType = Type.tSuperType(subExpressions[0].getType()) 43 .intersection(Type.tArray(type)); 44 if (!(subType instanceof ArrayType)) 45 updateParentType(Type.tError); 46 else 47 updateParentType(((ArrayType)subType).getElementType()); 48 } 49 50 public void dumpExpression(TabbedPrintWriter writer) 51 throws java.io.IOException { 52 subExpressions[0].dumpExpression(writer, 950); 53 writer.breakOp(); 54 writer.print("["); 55 subExpressions[1].dumpExpression(writer, 0); 56 writer.print("]"); 57 } 58 } 59 | Popular Tags |