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: