Esempio n. 1
0
File: bpx.c Progetto: edechter/PRISM
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;
}
Esempio n. 2
0
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') ;
    }
}