void _parse_integer(code *code, mpz_t value) { mpz_set_ui(value, 0); while (_is_numeric(code->source[code->pos])) { mpz_mul_ui(value, value, 10); mpz_add_ui(value, value, code->source[code->pos] - '0'); code->pos++; } }
void _parse_value(code *code, mpz_t value, map* vars) { if (_is_numeric(code->source[code->pos])) { _parse_integer(code, value); } else { char *var = malloc(1024 * sizeof(char)); _parse_variable_name(code, var); map_get(vars, var, value); free(var); } }
static int _is_alNum(char c) { return _is_alpha(c) || _is_numeric(c); }