00001: package clogs.ast; 00002: 00003: import clogs.util.Optional; 00004: 00005: 00006: public class ExpArrayAccess extends Exp 00007: { 00008: public final Exp array; 00009: public final Exp index; 00010: 00011: 00012: public ExpArrayAccess (Exp array, Exp index) 00013: { 00014: this (new Optional<Type> (), array, index); 00015: } 00016: 00017: 00018: ExpArrayAccess (Optional<Type> to, Exp array, Exp index) 00019: { 00020: super (to); 00021: clogs.util.NonNull.check (array, index); 00022: this.array = array; 00023: this.index = index; 00024: } 00025: 00026: 00027: public Exp setType (Type type) 00028: { 00029: return new ExpArrayAccess (new Optional<Type> (type), array, index); 00030: } 00031: } 00032: