Differences From Artifact [baaa1d71de4dc9d8]:
- File
polemy/eval.d
- 2010-11-08 08:45:51 - part of checkin [8d297342aa] on branch trunk - Replaced Token.Kind with bool quoted (user: kinaba) [annotate]
To Artifact [003971cb94b55966]:
- File
polemy/eval.d
- 2010-11-08 11:42:14 - part of checkin [5e407d7cf8] on branch trunk - Lexer Refactored so that it can accpet multi-symbol token (user: kinaba) [annotate]
173 ctxNeo.add(p, args[i]); 173 ctxNeo.add(p, args[i]);
174 return eval(e.funbody, ctxNeo); 174 return eval(e.funbody, ctxNeo);
175 }); 175 });
176 } 176 }
177 throw new PolemyRuntimeException(sprintf!"Unknown Kind of Expression %s 177 throw new PolemyRuntimeException(sprintf!"Unknown Kind of Expression %s
178 } 178 }
179 179
180 /* <
181 unittest 180 unittest
182 { 181 {
183 auto r = evalString(`var x = 21; x = x + x*x;`); 182 auto r = evalString(`var x = 21; x = x + x*x;`);
184 assert( r.val == new IntValue(BigInt(21+21*21)) ); 183 assert( r.val == new IntValue(BigInt(21+21*21)) );
185 assert( r.ctx["x"] == new IntValue(BigInt(21+21*21)) ); 184 assert( r.ctx["x"] == new IntValue(BigInt(21+21*21)) );
186 assert( !collectException(r.ctx["x"]) ); 185 assert( !collectException(r.ctx["x"]) );
187 assert( collectException(r.ctx["y"]) ); 186 assert( collectException(r.ctx["y"]) );
................................................................................................................................................................................
225 if(x<2) 224 if(x<2)
226 { 1; } 225 { 1; }
227 else 226 else
228 { fib(x-1) + fib(x-2); }; 227 { fib(x-1) + fib(x-2); };
229 }; 228 };
230 print(fib(10));`); 229 print(fib(10));`);
231 } 230 }
232 */ <