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;"
);