babelJcc(OP, L, R) :- ( OP =:= 12 -> L =:= R ; OP =:= 13 -> L \= R ; OP =:= 14 -> L > R ; OP =:= 15 -> L =< R ; OP =:= 16 -> L < R ; OP =:= 17 -> L >= R ). :-foreign(babel_ptrR(-integer, +integer, +integer)). :-foreign(babel_ptrE(+integer, +integer, +integer)). babelPtrR(E, P, L) :- babel_ptrR(T, P, L), E is T. babelPtrL(P, E, L) :- babel_ptrE(P, E, L). babelAssign(Var, Val) :- Var is Val. babelAssignStr(Var, Val) :- Var = Val. babelAssignBool(Var, Val) :- Var = Val. babelArrayL([_|T], 0, X, [X|T]). babelArrayL([H|T], I, X, [H|R]):- I > -1, NI is I-1, babelArrayL(T, NI, X, R), !. babelArrayL(L, _, _, L). babelArrayR(X, [X|_], 0). babelArrayR(X, [_|T], I):- I > 0, NI is I-1, babelArrayR(X, T, NI), !. :- foreign(babel_c_0(+integer, -integer)). :- foreign(babel_c_1(+string, +integer)). foo(__RETRES3) :- babel_c_0(23 , TMP), write(TMP),nl, babelAssign(A, TMP), babel_c_1('%d\n', A),babelAssign(__RETRES3, 0). foo1(N, T) :- BabelExp_0 is N + 1, babelAssign(T, BabelExp_0).