F64 glbl; F64 CompileDemo(U8 *st) { I64 type; U8 *machine_code; CCmpCtrl *cc=CmpCtrlNew(st,CCF_DONT_FREE_BUF); F64 res=0; Lex(cc); //Gotta get it started "Compile \"%s\"\n" ,st; do { if (machine_code=LexExpression2Bin(cc,&type)) { if (type!=RT_F64) res=ToF64(Call(machine_code)); else res=Call(machine_code)(F64); Free(machine_code); } "res=%9.4f\n",res; if (cc->token==';') Lex(cc); } while (cc->token!=TK_EOF); //end of file? CmpCtrlDel(cc); return res; } CompileDemo("2+Cos(pi)"); CompileDemo("1;2+4"); CompileDemo("glbl=1;glbl*2;glbl/3;Sin(glbl)"); //This is just like you typed-it on //the cmd line. ExePrint( "I64 i;" "for (i=0;i<10;i++) " " \"%%d\n\",i;" );