public Object visit(ArrayLocation location) { Expression e1 = location.getIndex(); Expression e2 = location.getArray(); e1.accept(this); e2.accept(this); if (Type.isInt(e1)) { if (e2.getSemanticType() instanceof ArrayType) { ArrayType e3 = (ArrayType) e2.getSemanticType(); location.setSemanticType(e3.getElemType()); return null; } else { return location; } } return location; }
@Override public Object visit(ArrayLocation location) throws SemanticError { location.getArray().accept(this); location.getIndex().accept(this); return null; }