TERM bpx_string_2_term(char *s) { TERM term, vars; int result; REQUIRE_HEAP(2); term = (TERM)(heap_top); NEW_HEAP_FREE; vars = (TERM)(heap_top); NEW_HEAP_FREE; result = bp_string_2_term(s, term, vars); if (result != BP_TRUE) { bpx_raise("parsing failed -- %s", s); } return term; }
static void parse_switch_req(const char *msg, int src) { const char *p; TERM op1, op2; int i; swids[src] = MALLOC(sizeof(int) * N(src)); p = msg; for (i = 0; i < N(src); i++) { op1 = bpx_build_var(); op2 = bpx_build_var(); bp_string_2_term(p, op1, op2); swids[src][i] = prism_sw_id_register(op1); while (*(p++) != '\0') ; } }