00001: package clogs.ast;
00002: 
00003: import clogs.util.List;
00004: 
00005: 
00006: public class StatIf extends Stat
00007: {
00008:   public final Exp exp;
00009:   public final Stat statT;
00010:   public final Stat statF;
00011: 
00012: 
00013:   public StatIf (Exp exp, Stat statT, Stat statF)
00014:   {
00015:     this (List.<String>nil (), exp, statT, statF);
00016:   }
00017: 
00018: 
00019:   StatIf (List<String> labels, Exp exp, Stat statT, Stat statF)
00020:   {
00021:     super (labels);
00022:     clogs.util.NonNull.check (exp, statT, statF);
00023:     this.exp = exp;
00024:     this.statT = statT;
00025:     this.statF = statF;
00026:   }
00027: 
00028: 
00029:   public Stat removeLabels ()
00030:   {
00031:     return new StatIf (List.<String> nil (), exp, statT, statF);
00032:   }
00033: 
00034: 
00035:   public Stat addLabel (String label)
00036:   {
00037:     return new StatIf (labels.cons (label), exp, statT, statF);
00038:   }
00039: }
00040: