internal IfExpression(Cons args, Env env, Interpreter interpreter, Loc loc) { this.loc = loc; this.interpreter = interpreter; Int32 len = Cons.Length(args); if (len < 2 || len > 3) { throw new Exception("Wrong number of args for if"); } test = interpreter.analyze(args.first, env, loc); brtrue = interpreter.analyze(Cons.Second(args), env, loc); if (len == 3) { brfalse = interpreter.analyze(Cons.Third(args), env, loc); } else { brfalse = new QuoteExpr(null); } }
internal IfExpression(Cons args,Env env,Interpreter interpreter,Loc loc) { this.loc = loc; this.interpreter = interpreter; Int32 len = Cons.Length(args); if(len < 2 || len > 3) throw new Exception("Wrong number of args for if"); test = interpreter.analyze(args.first,env,loc); brtrue = interpreter.analyze(Cons.Second(args),env,loc); if(len == 3) brfalse = interpreter.analyze(Cons.Third(args),env,loc); else brfalse = new QuoteExpr(null); }