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: