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