예제 #1
0
파일: util.c 프로젝트: BluePanM/code
void
CRB_add_global_variable(CRB_Interpreter *inter, char *identifier,
                        CRB_Value *value)
{
    Variable    *new_variable;

    new_variable = crb_add_global_variable(inter, identifier);
    new_variable->value = *value;
}
예제 #2
0
파일: eval.c 프로젝트: lyyyuna/sim_car
static SIMCAR_Value *
get_identifier_lvalue(SIMCAR_Interpreter *inter, SIMCAR_LocalEnvironment *env,
                      char *identifier)
{
    Variable *new_var;
    Variable *left;

    left = crb_search_local_variable(env, identifier);
    if (left == NULL) {
        left = search_global_variable_from_env(inter, env, identifier);
    }
    if (left != NULL)
        return &left->value;

    if (env != NULL) {
        new_var = crb_add_local_variable(env, identifier);
        left = new_var;
    } else {
        new_var = crb_add_global_variable(inter, identifier);
        left = new_var;
    }

    return &left->value;
}