Ejemplo n.º 1
0
OpValue OpList::gen_icode(ICodeGenerator *gen)
{
    assert(NULL != gen);
    for (size_t i = 0, sz = _list.size(); i < sz; ++i)
    {
        Op *op = _list.at(i);
		assert(NULL != op);
        op->gen_icode(gen);
    }
    return gen->void_operand();
}
Ejemplo n.º 2
0
OpValue InvokeOp::gen_icode(ICodeGenerator *gen)
{
    assert(NULL != gen);

    OpValue func = _func->gen_icode(gen);
    const size_t sz = _args.size();
    for (size_t i = 0; i < sz; ++i)
    {
        Op *p = _args.at(i);
        gen->push_param(p->gen_icode(gen), p->get_source_line());
    }
    return gen->invoke_op(func, sz, get_source_line());
}