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