Files
TempleOS-Rijn/SparrowOS/Demo/CompileDemo.CPP
T
2018-09-08 21:45:28 +02:00

38 lines
698 B
C++

F64 glbl;
F64 CompileDemo(U8 *st)
{
I64 type;
U8 *code;
CLex *lx=LexNew(st,LF_DONT_FREE_BUF);
F64 result=0;
Lex(lx); //Gotta get it started
"Compile \"%s\"\n",st;
do {
if (code=CmpExpression(lx,&type)) {
if (type!=IT_F64)
result=ToF64(Call(code));
else
result=Call(code)(F64);
ExpressionDel(code);
}
"result=%9.4f\n",result;
if (lx->token==';')
Lex(lx);
} while (lx->token!=TK_EOF); //end of file?
LexDel(lx);
return result;
}
CompileDemo("2+Cos(ã)");
CompileDemo("1;2+4");
CompileDemo("glbl=1;glbl*2;glbl/3;Sin(glbl)");
//This is just like you typed-it on
//the cmd line.
ExePutS(
"I64 i;"
"for (i=0;i<10;i++) "
" \"%d\n\",i;"
);