F64 global;

F64 CompileDemo(U8 *st)
{
        I64                      type;
        U8                      *machine_code;
        CCompCtrl       *cc = CompCtrlNew(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?

        CompCtrlDel(cc);

        return res;
}

CompileDemo("2 + Cos(pi)");
CompileDemo("1; 2 + 4");
CompileDemo("global = 1; global * 2; global / 3; Sin(global)");

//This is just like you typed-it on
//the cmd line.
ExePrint(
"I64 i;"
"for (i = 0; i < 10; i++) "
"  \"%%d\n\", i;"
);