% compiler: GNU Prolog 1.4.2
% file    : read_file.pl


file_name('/home/diaz/GP/src/src/Pl2Wam/read_file.pl').


predicate(read_file_init/1,128,static,private,monofile,global,[
    allocate(1),
    get_variable(y(0),0),
    put_structure(buff_clause/3,0),
    unify_void(3),
    call(retractall/1),
    put_structure(buff_aux_pred/3,0),
    unify_void(3),
    call(retractall/1),
    put_structure(buff_discontig_clause/3,0),
    unify_void(3),
    call(retractall/1),
    put_structure(buff_dyn_interf_clause/3,0),
    unify_void(3),
    call(retractall/1),
    put_structure(buff_exe_system/1,0),
    unify_void(1),
    call(retractall/1),
    put_structure(buff_exe_user/1,0),
    unify_void(1),
    call(retractall/1),
    put_structure(empty_dyn_pred/3,0),
    unify_void(3),
    call(retractall/1),
    put_structure(ensure_linked/2,0),
    unify_void(2),
    call(retractall/1),
    put_structure(pred_info/3,0),
    unify_void(3),
    call(retractall/1),
    put_structure(module_export/3,0),
    unify_void(3),
    call(retractall/1),
    put_structure(meta_pred/3,0),
    unify_void(3),
    call(retractall/1),
    put_atom(module,0),
    put_atom(user,1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_atom(module_already_seen,0),
    put_atom(f,1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_atom(default_kind,0),
    put_atom(user,1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_atom(reading_dyn_pred,0),
    put_atom(f,1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_atom(eof_reached,0),
    put_atom(f,1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_atom(open_file_stack,0),
    put_nil(1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_atom(if_stack,0),
    put_nil(1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_atom(where,0),
    put_integer(0,1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_atom(syn_error_nb,0),
    put_integer(0,1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_atom(in_lines,0),
    put_integer(0,1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_atom(in_bytes,0),
    put_integer(0,1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_value(y(0),0),
    deallocate,
    execute(open_new_prolog_file/1)]).


predicate(read_file_term/2,156,static,private,monofile,global,[
    put_atom(in_bytes,2),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(2),x(0)]),
    put_atom(in_lines,0),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(0),x(1)]),
    proceed]).


predicate(read_file_error_nb/1,163,static,private,monofile,global,[
    put_atom(syn_error_nb,1),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(1),x(0)]),
    proceed]).


predicate(open_new_prolog_file/1,169,static,private,monofile,global,[
    pragma_arity(2),
    get_current_choice(x(1)),
    allocate(5),
    get_variable(y(0),1),
    put_atom(open_file_stack,1),
    put_variable(y(1),2),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(1),x(2)]),
    put_variable(y(2),1),
    call(prolog_file_name/2),
    put_value(y(2),0),
    put_value(y(1),1),
    put_variable(y(3),2),
    put_variable(y(4),3),
    call(open_new_prolog_file1/4),
    cut(y(0)),
    put_atom(open_file_stack,0),
    put_structure((*)/2,2),
    unify_local_value(y(3)),
    unify_local_value(y(4)),
    put_list(1),
    unify_value(x(2)),
    unify_local_value(y(1)),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_unsafe_value(y(4),0),
    deallocate,
    execute('$open_new_prolog_file/1_$aux1'/1)]).


predicate('$open_new_prolog_file/1_$aux1'/1,169,static,private,monofile,local,[
    try_me_else(1),
    allocate(2),
    get_variable(y(0),0),
    put_value(y(0),0),
    put_atom(#,1),
    call(peek_char/2),
    call(repeat/0),
    put_value(y(0),0),
    put_variable(y(1),1),
    call(get_char/2),
    put_unsafe_value(y(1),0),
    deallocate,
    execute('$open_new_prolog_file/1_$aux2'/1),

label(1),
    trust_me_else_fail,
    proceed]).


predicate('$open_new_prolog_file/1_$aux2'/1,169,static,private,monofile,local,[
    switch_on_term(2,1,fail,fail,fail),

label(1),
    switch_on_atom([('\n',3),(end_of_file,5)]),

label(2),
    try_me_else(4),

label(3),
    get_atom('\n',0),
    proceed,

label(4),
    trust_me_else_fail,

label(5),
    get_atom(end_of_file,0),
    proceed]).


predicate(open_new_prolog_file1/4,183,static,private,monofile,global,[
    try_me_else(1),
    get_atom(user,0),
    get_atom(user,2),
    put_value(x(3),0),
    execute(current_input/1),

label(1),
    retry_me_else(2),
    get_value(x(2),0),
    put_structure(open/3,0),
    unify_local_value(x(2)),
    unify_atom(read),
    unify_local_value(x(3)),
    put_structure(existence_error/2,2),
    unify_atom(source_sink),
    unify_void(1),
    put_structure(error/2,1),
    unify_value(x(2)),
    unify_void(1),
    put_atom(fail,2),
    put_atom(open_new_prolog_file1,3),
    put_integer(4,4),
    put_atom(true,5),
    execute('$catch'/6),

label(2),
    retry_me_else(3),
    allocate(4),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    get_variable(y(3),3),
    put_value(y(0),0),
    call(is_relative_file_name/1),
    put_value(y(1),0),
    put_value(y(0),1),
    put_value(y(2),2),
    put_value(y(3),3),
    deallocate,
    execute(try_other_directory/4),

label(3),
    trust_me_else_fail,
    put_structure(existence_error/2,1),
    unify_atom(source_sink),
    unify_local_value(x(0)),
    put_structure(error/2,0),
    unify_value(x(1)),
    unify_structure((/)/2),
    unify_atom(open),
    unify_integer(3),
    put_atom(open_new_prolog_file1,1),
    put_integer(4,2),
    put_atom(true,3),
    execute('$throw'/4)]).


predicate(try_other_directory/4,203,static,private,monofile,global,[
    switch_on_term(2,fail,fail,1,fail),

label(1),
    try(3),
    trust(5),

label(2),
    try_me_else(4),

label(3),
    allocate(4),
    get_variable(y(0),1),
    get_variable(y(1),2),
    get_variable(y(2),3),
    get_list(0),
    unify_variable(x(0)),
    unify_void(1),
    get_structure((*)/2,0),
    unify_variable(x(0)),
    unify_void(1),
    put_variable(y(3),1),
    put_void(2),
    put_void(3),
    call(decompose_file_name/4),
    put_value(y(3),0),
    put_atom('',1),
    call_c('Pl_Blt_Term_Neq',[fast_call,boolean],[x(0),x(1)]),
    put_value(y(3),0),
    put_value(y(0),1),
    put_value(y(1),2),
    call(atom_concat/3),
    put_structure(open/3,0),
    unify_local_value(y(1)),
    unify_atom(read),
    unify_local_value(y(2)),
    put_void(1),
    put_atom(fail,2),
    put_atom(try_other_directory,3),
    put_integer(4,4),
    put_atom(true,5),
    deallocate,
    execute('$catch'/6),

label(4),
    trust_me_else_fail,

label(5),
    get_list(0),
    unify_void(1),
    unify_variable(x(0)),
    execute(try_other_directory/4)]).


predicate(close_last_prolog_file/0,218,static,private,monofile,global,[
    allocate(5),
    put_atom(open_file_stack,0),
    put_structure((*)/2,1),
    unify_void(1),
    unify_variable(y(0)),
    put_list(2),
    unify_value(x(1)),
    unify_variable(x(1)),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(0),x(2)]),
    put_atom(open_file_stack,0),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_atom(in_bytes,0),
    put_variable(y(1),1),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(0),x(1)]),
    put_atom(in_lines,0),
    put_variable(y(2),1),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(0),x(1)]),
    put_value(y(0),0),
    put_variable(y(3),1),
    call(character_count/2),
    put_value(y(0),0),
    put_variable(y(4),1),
    call(line_count/2),
    math_fast_load_value(y(1),0),
    math_fast_load_value(y(3),1),
    call_c('Pl_Fct_Fast_Add',[fast_call,x(2)],[x(0),x(1)]),
    math_fast_load_value(y(2),0),
    math_fast_load_value(y(4),1),
    call_c('Pl_Fct_Fast_Add',[fast_call,x(1)],[x(0),x(1)]),
    put_atom(in_bytes,0),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(2)]),
    put_atom(in_lines,0),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_value(y(0),0),
    deallocate,
    execute(close/1)]).


predicate(read_predicate/3,236,static,private,monofile,global,[
    allocate(3),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    call(repeat/0),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    call(read_predicate1/3),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    deallocate,
    execute('$read_predicate/3_$aux1'/3)]).


predicate('$read_predicate/3_$aux1'/3,236,static,private,monofile,local,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(1),
    put_atom(reading_dyn_pred,4),
    put_atom(f,5),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(4),x(5)]),
    put_atom(native_code,4),
    put_atom(t,5),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(4),x(5)]),
    cut(x(3)),
    execute(read_predicate_next/3),

label(1),
    trust_me_else_fail,
    proceed]).


predicate(read_predicate_next/3,249,static,private,monofile,global,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(1),
    allocate(4),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    get_variable(y(3),3),
    put_value(y(0),0),
    put_value(y(1),1),
    call('$read_predicate_next/3_$aux1'/2),
    cut(y(3)),
    put_value(y(2),0),
    get_list(0),
    unify_variable(x(0)),
    unify_void(1),
    get_structure((+)/2,0),
    unify_variable(x(2)),
    unify_void(1),
    put_value(y(0),0),
    put_value(y(1),1),
    call(add_dyn_interf_clause/3),
    put_value(y(2),0),
    put_value(y(0),1),
    put_value(y(1),2),
    call(create_exe_clauses_for_dyn_pred/3),
    fail,

label(1),
    retry_me_else(2),
    allocate(2),
    get_variable(y(0),2),
    get_variable(x(2),1),
    get_variable(y(1),3),
    put_value(x(0),1),
    put_atom(pub,0),
    call(test_pred_info/3),
    cut(y(1)),
    put_value(y(0),0),
    deallocate,
    execute(create_exe_clauses_for_pub_pred/1),

label(2),
    trust_me_else_fail,
    proceed]).


predicate('$read_predicate_next/3_$aux1'/2,249,static,private,monofile,local,[
    try_me_else(1),
    get_variable(x(2),1),
    put_value(x(0),1),
    put_atom(dyn,0),
    execute(test_pred_info/3),

label(1),
    trust_me_else_fail,
    get_variable(x(2),1),
    put_value(x(0),1),
    put_atom(multi,0),
    execute(test_pred_info/3)]).


predicate(read_predicate1/3,265,static,private,monofile,global,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(1),
    allocate(1),
    get_variable(x(4),0),
    get_variable(y(0),3),
    put_structure(buff_aux_pred/3,0),
    unify_local_value(x(4)),
    unify_local_value(x(1)),
    unify_local_value(x(2)),
    call(retract/1),
    cut(y(0)),
    deallocate,
    proceed,

label(1),
    retry_me_else(2),
    allocate(6),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    get_variable(y(3),3),
    put_atom(eof_reached,0),
    put_atom(f,1),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(0),x(1)]),
    cut(y(3)),
    call(repeat/0),
    put_value(y(0),0),
    put_value(y(1),1),
    put_variable(y(4),2),
    call(get_next_clause/3),
    put_value(y(4),0),
    get_structure((+)/2,0),
    unify_void(1),
    unify_variable(y(5)),
    put_structure(empty_dyn_pred/3,0),
    unify_local_value(y(0)),
    unify_local_value(y(1)),
    unify_void(1),
    call(retractall/1),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(4),2),
    call('$read_predicate1/3_$aux1'/3),
    put_value(y(0),0),
    put_value(y(1),1),
    call('$read_predicate1/3_$aux2'/2),
    cut(y(3)),
    put_value(y(5),0),
    put_atom(end_of_file,1),
    call_c('Pl_Blt_Term_Neq',[fast_call,boolean],[x(0),x(1)]),
    put_value(y(0),0),
    put_value(y(1),1),
    call(define_predicate/2),
    put_value(y(0),0),
    put_value(y(1),1),
    put_unsafe_value(y(4),2),
    put_value(y(2),3),
    deallocate,
    execute(group_clauses_by_pred/4),

label(2),
    retry_me_else(3),
    allocate(4),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_list(2),
    unify_variable(x(1)),
    unify_variable(y(2)),
    get_variable(y(3),3),
    put_structure(buff_discontig_clause/3,0),
    unify_local_value(y(0)),
    unify_local_value(y(1)),
    unify_value(x(1)),
    call(retract/1),
    cut(y(3)),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    deallocate,
    execute(recover_discontig_clauses/3),

label(3),
    retry_me_else(4),
    allocate(1),
    get_variable(x(4),0),
    get_list(2),
    unify_variable(x(2)),
    unify_nil,
    get_variable(y(0),3),
    put_atom(reading_dyn_pred,0),
    put_atom(t,3),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(3)]),
    put_structure(buff_dyn_interf_clause/3,0),
    unify_local_value(x(4)),
    unify_local_value(x(1)),
    unify_value(x(2)),
    call(retract/1),
    cut(y(0)),
    deallocate,
    proceed,

label(4),
    retry_me_else(5),
    allocate(5),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_list(2),
    unify_variable(y(2)),
    unify_nil,
    get_variable(y(3),3),
    put_atom(reading_dyn_pred,0),
    put_atom(t,1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_structure(empty_dyn_pred/3,0),
    unify_local_value(y(0)),
    unify_local_value(y(1)),
    unify_variable(y(4)),
    call(retract/1),
    put_value(y(0),0),
    put_value(y(1),1),
    call(define_predicate/2),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(4),2),
    put_value(y(2),3),
    call('$read_predicate1/3_$aux3'/4),
    cut(y(3)),
    deallocate,
    proceed,

label(5),
    retry_me_else(6),
    allocate(6),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    get_variable(y(3),3),
    put_atom(reading_dyn_pred,0),
    put_atom(f,1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_structure(buff_exe_system/1,0),
    unify_structure((+)/2),
    unify_variable(y(4)),
    unify_variable(y(5)),
    call(retract/1),
    put_value(y(0),0),
    get_atom('$exe_system',0),
    put_value(y(1),0),
    get_integer(0,0),
    put_value(y(2),0),
    get_list(0),
    unify_variable(x(0)),
    unify_nil,
    get_structure((+)/2,0),
    unify_value(y(4)),
    unify_structure((:-)/2),
    unify_local_value(y(0)),
    unify_value(y(5)),
    cut(y(3)),
    deallocate,
    proceed,

label(6),
    retry_me_else(7),
    allocate(6),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    get_variable(y(3),3),
    put_structure(buff_exe_user/1,0),
    unify_structure((+)/2),
    unify_variable(y(4)),
    unify_variable(y(5)),
    call(retract/1),
    put_value(y(0),0),
    get_atom('$exe_user',0),
    put_value(y(1),0),
    get_integer(0,0),
    put_value(y(2),0),
    get_list(0),
    unify_variable(x(0)),
    unify_nil,
    get_structure((+)/2,0),
    unify_value(y(4)),
    unify_structure((:-)/2),
    unify_local_value(y(0)),
    unify_value(y(5)),
    cut(y(3)),
    deallocate,
    proceed,

label(7),
    trust_me_else_fail,
    get_atom(end_of_file,0),
    get_integer(0,1),
    get_nil(2),
    cut(x(3)),
    proceed]).


predicate('$read_predicate1/3_$aux3'/4,299,static,private,monofile,local,[
    pragma_arity(5),
    get_current_choice(x(4)),
    try_me_else(1),
    put_atom(native_code,5),
    put_atom(t,6),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(5),x(6)]),
    cut(x(4)),
    execute(create_dyn_interf_clause/4),

label(1),
    trust_me_else_fail,
    get_structure((+)/2,3),
    unify_local_value(x(2)),
    unify_atom('$$empty$$predicate$$clause$$'),
    proceed]).


predicate('$read_predicate1/3_$aux2'/2,269,static,private,monofile,local,[
    pragma_arity(3),
    get_current_choice(x(2)),
    try_me_else(1),
    allocate(3),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    put_atom(def,0),
    put_value(y(0),1),
    put_value(y(1),2),
    call(test_pred_info/3),
    cut(y(2)),
    put_atom('discontiguous predicate ~q - clause ignored',0),
    put_structure((/)/2,2),
    unify_local_value(y(0)),
    unify_local_value(y(1)),
    put_list(1),
    unify_value(x(2)),
    unify_nil,
    call(warn/2),
    fail,

label(1),
    trust_me_else_fail,
    proceed]).


predicate('$read_predicate1/3_$aux1'/3,269,static,private,monofile,local,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(1),
    allocate(4),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    get_variable(y(3),3),
    put_atom(discontig,0),
    put_value(y(0),1),
    put_value(y(1),2),
    call(test_pred_info/3),
    cut(y(3)),
    put_structure(buff_discontig_clause/3,0),
    unify_local_value(y(0)),
    unify_local_value(y(1)),
    unify_local_value(y(2)),
    call(assertz/1),
    put_value(y(0),0),
    put_value(y(1),1),
    call(define_predicate/2),
    fail,

label(1),
    trust_me_else_fail,
    proceed]).


predicate(group_clauses_by_pred/4,330,static,private,monofile,global,[
    allocate(6),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_list(3),
    unify_local_value(x(2)),
    unify_variable(y(2)),
    put_variable(y(3),0),
    put_variable(y(4),1),
    put_variable(y(5),2),
    call(get_next_clause/3),
    put_value(y(0),0),
    put_unsafe_value(y(3),1),
    put_value(y(1),2),
    put_unsafe_value(y(4),3),
    put_unsafe_value(y(5),4),
    put_value(y(2),5),
    deallocate,
    execute('$group_clauses_by_pred/4_$aux1'/6)]).


predicate('$group_clauses_by_pred/4_$aux1'/6,330,static,private,monofile,local,[
    pragma_arity(7),
    get_current_choice(x(6)),
    try_me_else(1),
    get_value(x(1),0),
    get_value(x(3),2),
    cut(x(6)),
    put_value(x(1),0),
    put_value(x(3),1),
    put_value(x(4),2),
    put_value(x(5),3),
    execute(group_clauses_by_pred/4),

label(1),
    trust_me_else_fail,
    get_nil(5),
    put_value(x(1),0),
    put_value(x(3),1),
    put_value(x(4),2),
    execute('$group_clauses_by_pred/4_$aux2'/3)]).


predicate('$group_clauses_by_pred/4_$aux2'/3,330,static,private,monofile,local,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(1),
    get_atom(end_of_file,0),
    get_integer(0,1),
    cut(x(3)),
    proceed,

label(1),
    trust_me_else_fail,
    get_variable(x(3),0),
    put_structure(buff_clause/3,0),
    unify_local_value(x(3)),
    unify_local_value(x(1)),
    unify_local_value(x(2)),
    execute(asserta/1)]).


predicate(add_dyn_interf_clause/3,346,static,private,monofile,global,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(1),
    allocate(1),
    get_variable(x(2),0),
    get_variable(y(0),3),
    put_structure(buff_dyn_interf_clause/3,0),
    unify_local_value(x(2)),
    unify_local_value(x(1)),
    unify_void(1),
    put_atom(true,1),
    call(clause/2),
    cut(y(0)),
    deallocate,
    proceed,

label(1),
    trust_me_else_fail,
    allocate(3),
    get_variable(y(0),0),
    get_variable(y(1),1),
    put_value(y(0),0),
    put_value(y(1),1),
    put_variable(y(2),3),
    call(create_dyn_interf_clause/4),
    put_structure(buff_dyn_interf_clause/3,0),
    unify_local_value(y(0)),
    unify_local_value(y(1)),
    unify_local_value(y(2)),
    deallocate,
    execute(assertz/1)]).


predicate(create_dyn_interf_clause/4,356,static,private,monofile,global,[
    allocate(4),
    get_variable(y(0),0),
    get_variable(y(1),2),
    get_variable(y(2),3),
    put_variable(y(3),0),
    call(length/2),
    put_variable(x(0),1),
    put_list(2),
    unify_local_value(y(0)),
    unify_local_value(y(3)),
    call_c('Pl_Blt_Univ',[fast_call,boolean],[x(1),x(2)]),
    put_value(y(2),1),
    get_structure((+)/2,1),
    unify_local_value(y(1)),
    unify_structure((:-)/2),
    unify_value(x(0)),
    unify_structure(call/1),
    unify_value(x(0)),
    deallocate,
    proceed]).


predicate(recover_discontig_clauses/3,364,static,private,monofile,global,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(1),
    allocate(4),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_list(2),
    unify_variable(x(1)),
    unify_variable(y(2)),
    get_variable(y(3),3),
    put_structure(buff_discontig_clause/3,0),
    unify_local_value(y(0)),
    unify_local_value(y(1)),
    unify_value(x(1)),
    call(retract/1),
    cut(y(3)),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    deallocate,
    execute(recover_discontig_clauses/3),

label(1),
    trust_me_else_fail,
    get_nil(2),
    proceed]).


predicate(create_exe_clauses_for_dyn_pred/3,373,static,private,monofile,global,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    allocate(7),
    get_variable(y(1),1),
    get_variable(y(2),2),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_structure((+)/2,0),
    unify_variable(y(3)),
    unify_variable(y(4)),
    put_value(y(3),0),
    put_variable(y(5),1),
    call(get_file_name/2),
    put_value(y(1),0),
    put_value(y(2),1),
    put_structure((+)/2,2),
    unify_value(y(3)),
    unify_value(y(4)),
    put_variable(y(6),3),
    call(add_wrapper_to_dyn_clause/4),
    put_atom(system,0),
    put_structure('Pl_Emit_BC_Execute_Wrapper'/5,1),
    unify_local_value(y(1)),
    unify_local_value(y(2)),
    unify_atom(&),
    unify_local_value(y(6)),
    unify_local_value(y(2)),
    put_structure('$call_c'/2,2),
    unify_value(x(1)),
    unify_list,
    unify_atom(by_value),
    unify_nil,
    put_structure((',')/2,1),
    unify_value(x(2)),
    unify_structure('$add_clause_term'/2),
    unify_value(y(4)),
    unify_local_value(y(5)),
    put_value(y(3),2),
    call(handle_initialization/3),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    deallocate,
    execute(create_exe_clauses_for_dyn_pred/3)]).


predicate(create_exe_clauses_for_pub_pred/1,385,static,private,monofile,global,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    allocate(4),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(2)),
    get_structure((+)/2,0),
    unify_variable(y(0)),
    unify_variable(y(1)),
    put_value(y(0),0),
    put_variable(y(3),1),
    call(get_file_name/2),
    put_atom(system,0),
    put_structure('$add_clause_term'/2,1),
    unify_value(y(1)),
    unify_local_value(y(3)),
    put_value(y(0),2),
    call(handle_initialization/3),
    put_value(y(2),0),
    deallocate,
    execute(create_exe_clauses_for_pub_pred/1)]).


predicate(get_file_name/2,393,static,private,monofile,global,[
    get_structure((+)/2,0),
    unify_variable(x(0)),
    unify_void(1),
    get_list(0),
    unify_variable(x(0)),
    unify_void(1),
    get_structure((*)/2,0),
    unify_local_value(x(1)),
    unify_void(1),
    proceed]).


predicate(get_next_clause/3,398,static,private,monofile,global,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(1),
    allocate(2),
    get_variable(y(0),2),
    get_variable(x(2),0),
    get_variable(y(1),3),
    put_structure(buff_clause/3,0),
    unify_local_value(x(2)),
    unify_local_value(x(1)),
    unify_local_value(y(0)),
    call(retract/1),
    put_value(y(0),0),
    get_structure((+)/2,0),
    unify_variable(x(1)),
    unify_void(1),
    put_atom(where,0),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    cut(y(1)),
    deallocate,
    proceed,

label(1),
    trust_me_else_fail,
    allocate(9),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    get_variable(y(3),3),
    put_atom(open_file_stack,0),
    put_variable(y(4),1),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(0),x(1)]),
    put_value(y(4),0),
    get_list(0),
    unify_variable(x(0)),
    unify_void(1),
    get_structure((*)/2,0),
    unify_void(1),
    unify_variable(y(5)),
    put_structure(singletons/1,1),
    unify_variable(y(7)),
    put_structure(read_term/3,0),
    unify_value(y(5)),
    unify_variable(y(6)),
    unify_list,
    unify_value(x(1)),
    unify_nil,
    put_structure(syntax_error/1,2),
    unify_variable(y(8)),
    put_structure(error/2,1),
    unify_value(x(2)),
    unify_void(1),
    put_atom(after_syn_error,2),
    put_atom(any,3),
    put_integer(0,4),
    put_atom(false,5),
    call('$catch'/6),
    put_value(y(8),0),
    put_value(y(6),1),
    put_value(y(5),2),
    put_value(y(4),3),
    put_value(y(7),4),
    put_value(y(0),5),
    put_value(y(1),6),
    put_value(y(2),7),
    call('$get_next_clause/3_$aux1'/8),
    cut(y(3)),
    deallocate,
    proceed]).


predicate('$get_next_clause/3_$aux1'/8,403,static,private,monofile,local,[
    pragma_arity(9),
    get_current_choice(x(8)),
    try_me_else(1),
    allocate(13),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    get_variable(y(3),3),
    get_variable(y(4),4),
    get_variable(y(5),5),
    get_variable(y(6),6),
    get_variable(y(7),7),
    put_value(y(0),0),
    call_c('Pl_Blt_Var',[fast_call,boolean],[x(0)]),
    cut(x(8)),
    put_variable(y(8),0),
    put_void(1),
    call(last_read_start_line_column/2),
    put_structure(expand_term/2,0),
    unify_local_value(y(1)),
    unify_variable(y(9)),
    put_structure(error/2,1),
    unify_local_value(y(0)),
    unify_void(1),
    put_structure(dcg_error/1,2),
    unify_local_value(y(0)),
    put_atom(any,3),
    put_integer(0,4),
    put_atom(false,5),
    call('$catch'/6),
    put_value(y(2),0),
    put_variable(y(10),1),
    put_variable(y(11),2),
    call(stream_line_column/3),
    put_value(y(11),0),
    put_variable(y(12),1),
    put_value(y(10),2),
    call('$get_next_clause/3_$aux2'/3),
    put_structure((+)/2,1),
    unify_local_value(y(3)),
    unify_structure((-)/2),
    unify_local_value(y(8)),
    unify_local_value(y(12)),
    put_atom(where,0),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_value(y(9),0),
    put_value(y(4),2),
    put_value(y(5),3),
    put_value(y(6),4),
    put_value(y(7),5),
    deallocate,
    execute(get_next_clause1/6),

label(1),
    trust_me_else_fail,
    put_value(x(5),0),
    put_value(x(6),1),
    put_value(x(7),2),
    execute(get_next_clause/3)]).


predicate('$get_next_clause/3_$aux2'/3,403,static,private,monofile,local,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(1),
    get_integer(1,0),
    cut(x(3)),
    math_fast_load_value(x(2),0),
    call_c('Pl_Fct_Fast_Dec',[fast_call,x(0)],[x(0)]),
    get_value(x(1),0),
    proceed,

label(1),
    trust_me_else_fail,
    get_value(x(2),1),
    proceed]).


predicate(get_next_clause1/6,423,static,private,monofile,global,[
    pragma_arity(7),
    get_current_choice(x(6)),
    try_me_else(13),
    switch_on_term(3,4,fail,fail,1),

label(1),
    switch_on_structure([((:-)/1,2)]),

label(2),
    try(6),
    retry(8),
    retry(10),
    trust(12),

label(3),
    try_me_else(5),

label(4),
    allocate(3),
    get_atom(end_of_file,0),
    get_variable(y(0),3),
    get_variable(y(1),4),
    get_variable(y(2),5),
    call(close_last_prolog_file/0),
    put_atom(open_file_stack,1),
    put_variable(x(0),2),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(1),x(2)]),
    put_value(y(0),1),
    put_value(y(1),2),
    put_value(y(2),3),
    deallocate,
    execute('$get_next_clause1/6_$aux1'/4),

label(5),
    retry_me_else(7),

label(6),
    allocate(3),
    get_variable(y(0),3),
    get_variable(y(1),4),
    get_variable(y(2),5),
    get_structure((:-)/1,0),
    unify_structure(if/1),
    unify_variable(x(0)),
    cut(x(6)),
    put_atom(if_stack,2),
    put_variable(x(1),3),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(2),x(3)]),
    call('$get_next_clause1/6_$aux2'/2),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    deallocate,
    execute(get_next_clause/3),

label(7),
    retry_me_else(9),

label(8),
    allocate(3),
    get_variable(y(0),3),
    get_variable(y(1),4),
    get_variable(y(2),5),
    get_structure((:-)/1,0),
    unify_structure(elif/1),
    unify_variable(x(0)),
    cut(x(6)),
    call('$get_next_clause1/6_$aux3'/1),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    deallocate,
    execute(get_next_clause/3),

label(9),
    retry_me_else(11),

label(10),
    allocate(3),
    get_structure((:-)/1,0),
    unify_atom(else),
    get_variable(y(0),3),
    get_variable(y(1),4),
    get_variable(y(2),5),
    cut(x(6)),
    call('$get_next_clause1/6_$aux4'/0),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    deallocate,
    execute(get_next_clause/3),

label(11),
    trust_me_else_fail,

label(12),
    allocate(3),
    get_structure((:-)/1,0),
    unify_atom(endif),
    get_variable(y(0),3),
    get_variable(y(1),4),
    get_variable(y(2),5),
    cut(x(6)),
    call('$get_next_clause1/6_$aux5'/0),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    deallocate,
    execute(get_next_clause/3),

label(13),
    retry_me_else(14),
    put_atom(if_stack,1),
    put_structure(if/2,7),
    unify_void(1),
    unify_variable(x(0)),
    put_list(2),
    unify_value(x(7)),
    unify_void(1),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(1),x(2)]),
    put_integer(1,1),
    call_c('Pl_Blt_Term_Neq',[fast_call,boolean],[x(0),x(1)]),
    cut(x(6)),
    put_value(x(3),0),
    put_value(x(4),1),
    put_value(x(5),2),
    execute(get_next_clause/3),

label(14),
    retry_me_else(15),
    allocate(6),
    get_structure((:-)/1,0),
    unify_variable(y(0)),
    get_variable(y(1),1),
    get_variable(y(2),3),
    get_variable(y(3),4),
    get_variable(y(4),5),
    get_variable(y(5),6),
    put_value(x(2),0),
    put_atom(directive,1),
    call(display_singletons/2),
    put_value(y(0),0),
    call('$get_next_clause1/6_$aux6'/1),
    put_value(y(0),0),
    put_value(y(1),1),
    call('$get_next_clause1/6_$aux7'/2),
    cut(y(5)),
    put_value(y(2),0),
    put_value(y(3),1),
    put_value(y(4),2),
    deallocate,
    execute(get_next_clause/3),

label(15),
    retry_me_else(16),
    allocate(4),
    get_variable(y(0),2),
    get_variable(y(1),3),
    get_variable(y(2),4),
    get_structure((+)/2,5),
    unify_local_value(x(1)),
    unify_local_value(x(0)),
    put_atom(foreign_only,1),
    put_atom(f,2),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(1),x(2)]),
    cut(x(6)),
    put_variable(y(3),1),
    call('$get_next_clause1/6_$aux8'/2),
    put_value(y(3),0),
    call('$get_next_clause1/6_$aux9'/1),
    put_value(y(3),0),
    call('$get_next_clause1/6_$aux10'/1),
    put_value(y(3),0),
    put_value(y(1),1),
    put_value(y(2),2),
    call_c('Pl_Blt_Functor',[fast_call,boolean],[x(0),x(1),x(2)]),
    put_value(y(3),0),
    call(check_head_is_module_free/1),
    put_value(y(1),0),
    put_value(y(2),1),
    call(check_module_clash/2),
    put_value(y(1),0),
    put_value(y(2),1),
    call(check_predicate/2),
    put_value(y(0),0),
    put_structure((/)/2,1),
    unify_local_value(y(1)),
    unify_local_value(y(2)),
    deallocate,
    execute(display_singletons/2),

label(16),
    trust_me_else_fail,
    put_value(x(3),0),
    put_value(x(4),1),
    put_value(x(5),2),
    execute(get_next_clause/3)]).


predicate('$get_next_clause1/6_$aux10'/1,503,static,private,monofile,local,[
    pragma_arity(2),
    get_current_choice(x(1)),
    try_me_else(1),
    call_c('Pl_Blt_Callable',[fast_call,boolean],[x(0)]),
    cut(x(1)),
    proceed,

label(1),
    trust_me_else_fail,
    put_list(1),
    unify_local_value(x(0)),
    unify_nil,
    put_atom('head is not a callable (~q)',0),
    execute(error/2)]).


predicate('$get_next_clause1/6_$aux9'/1,503,static,private,monofile,local,[
    pragma_arity(2),
    get_current_choice(x(1)),
    try_me_else(1),
    call_c('Pl_Blt_Non_Var',[fast_call,boolean],[x(0)]),
    cut(x(1)),
    proceed,

label(1),
    trust_me_else_fail,
    put_atom('head is a variable',0),
    put_nil(1),
    execute(error/2)]).


predicate('$get_next_clause1/6_$aux8'/2,503,static,private,monofile,local,[
    try_me_else(1),
    get_structure((:-)/2,0),
    unify_local_value(x(1)),
    unify_void(1),
    proceed,

label(1),
    trust_me_else_fail,
    get_value(x(1),0),
    proceed]).


predicate('$get_next_clause1/6_$aux7'/2,493,static,private,monofile,local,[
    try_me_else(1),
    execute(handle_directive/2),

label(1),
    trust_me_else_fail,
    put_list(1),
    unify_local_value(x(0)),
    unify_nil,
    put_atom('invalid directive ~q',0),
    execute(error/2)]).


predicate('$get_next_clause1/6_$aux6'/1,493,static,private,monofile,local,[
    try_me_else(1),
    put_atom(foreign_only,0),
    put_atom(f,1),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(0),x(1)]),
    proceed,

label(1),
    trust_me_else_fail,
    put_atom(foreign,1),
    put_void(2),
    call_c('Pl_Blt_Functor',[fast_call,boolean],[x(0),x(1),x(2)]),
    proceed]).


predicate('$get_next_clause1/6_$aux5'/0,479,static,private,monofile,local,[
    pragma_arity(1),
    get_current_choice(x(0)),
    try_me_else(1),
    put_atom(if_stack,2),
    put_structure(if/2,1),
    unify_void(2),
    put_list(3),
    unify_value(x(1)),
    unify_variable(x(1)),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(2),x(3)]),
    cut(x(0)),
    put_atom(if_stack,0),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    proceed,

label(1),
    trust_me_else_fail,
    put_atom('unexpected endif directive',0),
    put_nil(1),
    execute(error/2)]).


predicate('$get_next_clause1/6_$aux4'/0,468,static,private,monofile,local,[
    pragma_arity(1),
    get_current_choice(x(0)),
    try_me_else(1),
    put_atom(if_stack,3),
    put_structure(if/2,2),
    unify_atom(then),
    unify_variable(x(1)),
    put_list(4),
    unify_value(x(2)),
    unify_variable(x(2)),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(3),x(4)]),
    cut(x(0)),
    put_integer(1,0),
    math_fast_load_value(x(1),1),
    call_c('Pl_Fct_Fast_Sub',[fast_call,x(1)],[x(0),x(1)]),
    put_atom(if_stack,0),
    put_structure(if/2,3),
    unify_atom(else),
    unify_local_value(x(1)),
    put_list(1),
    unify_value(x(3)),
    unify_value(x(2)),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    proceed,

label(1),
    trust_me_else_fail,
    put_atom('unexpected else directive',0),
    put_nil(1),
    execute(error/2)]).


predicate('$get_next_clause1/6_$aux3'/1,451,static,private,monofile,local,[
    pragma_arity(2),
    get_current_choice(x(1)),
    try_me_else(1),
    get_variable(x(3),0),
    put_atom(if_stack,4),
    put_structure(if/2,2),
    unify_atom(then),
    unify_variable(x(0)),
    put_list(5),
    unify_value(x(2)),
    unify_variable(x(2)),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(4),x(5)]),
    cut(x(1)),
    put_value(x(3),1),
    execute('$get_next_clause1/6_$aux11'/3),

label(1),
    trust_me_else_fail,
    put_atom('unexpected elif directive',0),
    put_nil(1),
    execute(error/2)]).


predicate('$get_next_clause1/6_$aux11'/3,451,static,private,monofile,local,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(1),
    get_integer(0,0),
    cut(x(3)),
    put_value(x(1),0),
    put_value(x(2),1),
    execute('$get_next_clause1/6_$aux12'/2),

label(1),
    trust_me_else_fail,
    put_atom(if_stack,0),
    put_structure(if/2,3),
    unify_atom(then),
    unify_integer(2),
    put_list(1),
    unify_value(x(3)),
    unify_local_value(x(2)),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    proceed]).


predicate('$get_next_clause1/6_$aux12'/2,451,static,private,monofile,local,[
    pragma_arity(3),
    get_current_choice(x(2)),
    try_me_else(1),
    allocate(2),
    get_variable(y(0),1),
    get_variable(y(1),2),
    put_structure(warn/2,3),
    unify_atom('elif directive caused exception: ~w'),
    unify_list,
    unify_variable(x(1)),
    unify_nil,
    put_structure((',')/2,2),
    unify_value(x(3)),
    unify_atom(fail),
    put_atom(any,3),
    put_integer(0,4),
    put_atom(false,5),
    call('$catch'/6),
    cut(y(1)),
    put_atom(if_stack,0),
    put_structure(if/2,2),
    unify_atom(then),
    unify_integer(1),
    put_list(1),
    unify_value(x(2)),
    unify_local_value(y(0)),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    deallocate,
    proceed,

label(1),
    trust_me_else_fail,
    put_atom(if_stack,0),
    put_structure(if/2,3),
    unify_atom(then),
    unify_integer(0),
    put_list(2),
    unify_value(x(3)),
    unify_local_value(x(1)),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(2)]),
    proceed]).


predicate('$get_next_clause1/6_$aux2'/2,441,static,private,monofile,local,[
    pragma_arity(3),
    get_current_choice(x(2)),
    try_me_else(1),
    allocate(2),
    get_variable(y(0),1),
    get_variable(y(1),2),
    put_structure(warn/2,3),
    unify_atom('if directive caused exception: ~w'),
    unify_list,
    unify_variable(x(1)),
    unify_nil,
    put_structure((',')/2,2),
    unify_value(x(3)),
    unify_atom(fail),
    put_atom(any,3),
    put_integer(0,4),
    put_atom(false,5),
    call('$catch'/6),
    cut(y(1)),
    put_atom(if_stack,0),
    put_structure(if/2,2),
    unify_atom(then),
    unify_integer(1),
    put_list(1),
    unify_value(x(2)),
    unify_local_value(y(0)),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    deallocate,
    proceed,

label(1),
    trust_me_else_fail,
    put_atom(if_stack,0),
    put_structure(if/2,3),
    unify_atom(then),
    unify_integer(0),
    put_list(2),
    unify_value(x(3)),
    unify_local_value(x(1)),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(2)]),
    proceed]).


predicate('$get_next_clause1/6_$aux1'/4,423,static,private,monofile,local,[
    pragma_arity(5),
    get_current_choice(x(4)),
    try_me_else(1),
    get_nil(0),
    cut(x(4)),
    get_atom(end_of_file,1),
    get_integer(0,2),
    get_structure((+)/2,3),
    unify_void(1),
    unify_atom(end_of_file),
    put_atom(eof_reached,0),
    put_atom(t,1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    execute('$get_next_clause1/6_$aux13'/0),

label(1),
    trust_me_else_fail,
    put_value(x(1),0),
    put_value(x(2),1),
    put_value(x(3),2),
    execute(get_next_clause/3)]).


predicate('$get_next_clause1/6_$aux13'/0,423,static,private,monofile,local,[
    pragma_arity(1),
    get_current_choice(x(0)),
    try_me_else(1),
    put_atom(if_stack,1),
    put_nil(2),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(1),x(2)]),
    cut(x(0)),
    proceed,

label(1),
    trust_me_else_fail,
    put_atom('endif directive expected',0),
    put_nil(1),
    execute(error/2)]).


predicate(after_syn_error/0,529,static,private,monofile,global,[
    allocate(3),
    put_atom(syn_error_nb,1),
    put_variable(x(0),2),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(1),x(2)]),
    math_fast_load_value(x(0),0),
    call_c('Pl_Fct_Fast_Inc',[fast_call,x(1)],[x(0)]),
    put_atom(syn_error_nb,0),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_void(0),
    put_variable(y(0),1),
    put_variable(y(1),2),
    put_variable(y(2),3),
    call(syntax_error_info/4),
    put_atom(open_file_stack,0),
    put_variable(x(2),1),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(0),x(1)]),
    put_atom(where,0),
    put_structure((+)/2,1),
    unify_value(x(2)),
    unify_structure((-)/2),
    unify_local_value(y(0)),
    unify_local_value(y(0)),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_atom('syntax error',0),
    put_unsafe_value(y(1),1),
    put_atom('~a',2),
    put_list(3),
    unify_local_value(y(2)),
    unify_nil,
    deallocate,
    execute(disp_msg/4)]).


predicate(dcg_error/1,541,static,private,monofile,global,[
    allocate(2),
    get_variable(y(0),0),
    put_variable(y(1),0),
    put_void(1),
    call(last_read_start_line_column/2),
    put_atom(open_file_stack,0),
    put_variable(x(2),1),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(0),x(1)]),
    put_atom(where,0),
    put_structure((+)/2,1),
    unify_value(x(2)),
    unify_structure((-)/2),
    unify_local_value(y(1)),
    unify_local_value(y(1)),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_atom('DCG error raised: ~w',0),
    put_list(1),
    unify_local_value(y(0)),
    unify_nil,
    deallocate,
    execute(error/2)]).


predicate(display_singletons/2,550,static,private,monofile,global,[
    pragma_arity(3),
    get_current_choice(x(2)),
    try_me_else(1),
    allocate(2),
    get_variable(y(0),1),
    put_atom(singl_warn,1),
    put_atom(t,3),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(1),x(3)]),
    cut(x(2)),
    put_variable(y(1),1),
    call(get_singletons/2),
    put_unsafe_value(y(1),0),
    put_value(y(0),1),
    deallocate,
    execute('$display_singletons/2_$aux1'/2),

label(1),
    trust_me_else_fail,
    proceed]).


predicate('$display_singletons/2_$aux1'/2,550,static,private,monofile,local,[
    pragma_arity(3),
    get_current_choice(x(2)),
    try_me_else(1),
    get_nil(0),
    cut(x(2)),
    proceed,

label(1),
    trust_me_else_fail,
    get_variable(x(2),1),
    put_list(1),
    unify_local_value(x(0)),
    unify_list,
    unify_local_value(x(2)),
    unify_nil,
    put_atom('singleton variables ~w for ~q',0),
    execute(warn/2)]).


predicate(get_singletons/2,563,static,private,monofile,global,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    get_nil(1),
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    allocate(2),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_structure((=)/2,0),
    unify_variable(x(0)),
    unify_void(1),
    put_variable(y(1),2),
    call('$get_singletons/2_$aux1'/3),
    put_value(y(0),0),
    put_unsafe_value(y(1),1),
    deallocate,
    execute(get_singletons/2)]).


predicate('$get_singletons/2_$aux1'/3,565,static,private,monofile,local,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(1),
    allocate(3),
    get_variable(y(0),1),
    get_variable(y(1),2),
    get_variable(y(2),3),
    put_integer(0,1),
    put_integer(1,2),
    put_void(3),
    put_atom('_',4),
    call(sub_atom/5),
    cut(y(2)),
    put_value(y(0),0),
    get_value(y(1),0),
    deallocate,
    proceed,

label(1),
    trust_me_else_fail,
    get_list(1),
    unify_local_value(x(0)),
    unify_local_value(x(2)),
    proceed]).


predicate(handle_directive/2,577,static,private,monofile,global,[
    get_variable(x(2),1),
    get_variable(x(3),0),
    put_list(4),
    unify_variable(x(0)),
    unify_variable(x(1)),
    call_c('Pl_Blt_Univ',[fast_call,boolean],[x(3),x(4)]),
    execute(handle_directive/3)]).


predicate(foreign_get_options/1,728,static,private,monofile,global,[
    pragma_arity(2),
    get_current_choice(x(1)),
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    allocate(2),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_variable(y(1),1),
    call(foreign_get_options1/1),
    cut(y(1)),
    put_value(y(0),0),
    deallocate,
    execute(foreign_get_options/1)]).


predicate(foreign_get_options1/1,735,static,private,monofile,global,[
    switch_on_term(3,fail,fail,fail,1),

label(1),
    switch_on_structure([(fct_name/1,4),(return/1,6),(bip_name/1,2),(bip_name/2,10),(choice_size/1,14)]),

label(2),
    try(8),
    trust(12),

label(3),
    try_me_else(5),

label(4),
    get_structure(fct_name/1,0),
    unify_variable(x(1)),
    call_c('Pl_Blt_Atom',[fast_call,boolean],[x(1)]),
    put_atom(foreign_fct_name,0),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    proceed,

label(5),
    retry_me_else(7),

label(6),
    allocate(1),
    get_structure(return/1,0),
    unify_variable(y(0)),
    put_value(y(0),0),
    call_c('Pl_Blt_Atom',[fast_call,boolean],[x(0)]),
    put_value(y(0),0),
    call('$foreign_get_options1/1_$aux1'/1),
    put_atom(foreign_return,0),
    put_value(y(0),1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    deallocate,
    proceed,

label(7),
    retry_me_else(9),

label(8),
    get_structure(bip_name/1,0),
    unify_variable(x(0)),
    call_c('Pl_Blt_Non_Var',[fast_call,boolean],[x(0)]),
    get_atom(none,0),
    put_atom(foreign_bip,0),
    put_structure((/)/2,1),
    unify_atom(''),
    unify_integer(-1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    proceed,

label(9),
    retry_me_else(11),

label(10),
    get_structure(bip_name/2,0),
    unify_variable(x(3)),
    unify_variable(x(2)),
    call_c('Pl_Blt_Atom',[fast_call,boolean],[x(3)]),
    call_c('Pl_Blt_Integer',[fast_call,boolean],[x(2)]),
    put_atom(foreign_bip,0),
    put_structure((/)/2,1),
    unify_value(x(3)),
    unify_value(x(2)),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    proceed,

label(11),
    retry_me_else(13),

label(12),
    get_structure(bip_name/1,0),
    unify_structure((/)/2),
    unify_variable(x(3)),
    unify_variable(x(2)),
    call_c('Pl_Blt_Atom',[fast_call,boolean],[x(3)]),
    call_c('Pl_Blt_Integer',[fast_call,boolean],[x(2)]),
    put_atom(foreign_bip,0),
    put_structure((/)/2,1),
    unify_value(x(3)),
    unify_value(x(2)),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    proceed,

label(13),
    trust_me_else_fail,

label(14),
    get_structure(choice_size/1,0),
    unify_variable(x(1)),
    call_c('Pl_Blt_Integer',[fast_call,boolean],[x(1)]),
    put_atom(foreign_choice_size,0),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    proceed]).


predicate('$foreign_get_options1/1_$aux1'/1,739,static,private,monofile,local,[
    switch_on_term(2,1,fail,fail,fail),

label(1),
    switch_on_atom([(none,3),(boolean,5),(jump,7)]),

label(2),
    try_me_else(4),

label(3),
    get_atom(none,0),
    proceed,

label(4),
    retry_me_else(6),

label(5),
    get_atom(boolean,0),
    proceed,

label(6),
    trust_me_else_fail,

label(7),
    get_atom(jump,0),
    proceed]).


predicate(foreign_check_types/4,769,static,private,monofile,global,[
    pragma_arity(5),
    get_current_choice(x(4)),
    try_me_else(1),
    get_nil(3),
    get_value(x(1),0),
    cut(x(4)),
    proceed,

label(1),
    trust_me_else_fail,
    allocate(5),
    get_variable(y(0),1),
    get_variable(y(1),2),
    get_list(3),
    unify_variable(x(1)),
    unify_variable(y(3)),
    get_structure((',')/2,1),
    unify_variable(x(2)),
    unify_variable(y(2)),
    math_fast_load_value(x(0),0),
    call_c('Pl_Fct_Fast_Inc',[fast_call,x(0)],[x(0)]),
    get_variable(y(4),0),
    put_value(y(4),1),
    put_value(y(1),3),
    put_variable(x(0),4),
    call_c('Pl_Blt_Arg',[fast_call,boolean],[x(1),x(3),x(4)]),
    call_c('Pl_Blt_Non_Var',[fast_call,boolean],[x(0)]),
    put_value(y(2),1),
    call('$foreign_check_types/4_$aux1'/3),
    put_value(y(2),0),
    call_c('Pl_Blt_Non_Var',[fast_call,boolean],[x(0)]),
    put_value(y(2),0),
    call(foreign_check_arg/1),
    put_unsafe_value(y(4),0),
    put_value(y(0),1),
    put_value(y(1),2),
    put_value(y(3),3),
    deallocate,
    execute(foreign_check_types/4)]).


predicate('$foreign_check_types/4_$aux1'/3,772,static,private,monofile,local,[
    switch_on_term(2,9,fail,fail,1),

label(1),
    switch_on_structure([((+)/1,3),((-)/1,5),((?)/1,7)]),

label(2),
    try_me_else(4),

label(3),
    get_structure((+)/1,0),
    unify_local_value(x(1)),
    get_atom(in,2),
    proceed,

label(4),
    retry_me_else(6),

label(5),
    get_structure((-)/1,0),
    unify_local_value(x(1)),
    get_atom(out,2),
    proceed,

label(6),
    retry_me_else(8),

label(7),
    get_structure((?)/1,0),
    unify_local_value(x(1)),
    get_atom(in_out,2),
    proceed,

label(8),
    trust_me_else_fail,

label(9),
    get_atom(term,0),
    get_atom(term,1),
    get_atom(in,2),
    proceed]).


predicate(foreign_check_arg/1,790,static,private,monofile,global,[
    switch_on_term(2,1,fail,fail,fail),

label(1),
    switch_on_atom([(integer,3),(positive,5),(float,7),(number,9),(atom,11),(boolean,13),(char,15),(in_char,17),(code,19),(in_code,21),(byte,23),(in_byte,25),(string,27),(chars,29),(codes,31),(term,33)]),

label(2),
    try_me_else(4),

label(3),
    get_atom(integer,0),
    proceed,

label(4),
    retry_me_else(6),

label(5),
    get_atom(positive,0),
    proceed,

label(6),
    retry_me_else(8),

label(7),
    get_atom(float,0),
    proceed,

label(8),
    retry_me_else(10),

label(9),
    get_atom(number,0),
    proceed,

label(10),
    retry_me_else(12),

label(11),
    get_atom(atom,0),
    proceed,

label(12),
    retry_me_else(14),

label(13),
    get_atom(boolean,0),
    proceed,

label(14),
    retry_me_else(16),

label(15),
    get_atom(char,0),
    proceed,

label(16),
    retry_me_else(18),

label(17),
    get_atom(in_char,0),
    proceed,

label(18),
    retry_me_else(20),

label(19),
    get_atom(code,0),
    proceed,

label(20),
    retry_me_else(22),

label(21),
    get_atom(in_code,0),
    proceed,

label(22),
    retry_me_else(24),

label(23),
    get_atom(byte,0),
    proceed,

label(24),
    retry_me_else(26),

label(25),
    get_atom(in_byte,0),
    proceed,

label(26),
    retry_me_else(28),

label(27),
    get_atom(string,0),
    proceed,

label(28),
    retry_me_else(30),

label(29),
    get_atom(chars,0),
    proceed,

label(30),
    retry_me_else(32),

label(31),
    get_atom(codes,0),
    proceed,

label(32),
    trust_me_else_fail,

label(33),
    get_atom(term,0),
    proceed]).


predicate(handle_initialization/3,817,static,private,monofile,global,[
    switch_on_term(2,1,fail,fail,fail),

label(1),
    switch_on_atom([(system,3),(user,5)]),

label(2),
    try_me_else(4),

label(3),
    get_atom(system,0),
    put_structure(buff_exe_system/1,0),
    unify_structure((+)/2),
    unify_local_value(x(2)),
    unify_local_value(x(1)),
    execute(assertz/1),

label(4),
    trust_me_else_fail,

label(5),
    get_atom(user,0),
    put_structure(buff_exe_user/1,0),
    unify_structure((+)/2),
    unify_local_value(x(2)),
    unify_local_value(x(1)),
    execute(assertz/1)]).


predicate(exec_directive/1,826,static,private,monofile,global,[
    pragma_arity(2),
    get_current_choice(x(1)),
    try_me_else(1),
    allocate(1),
    get_variable(y(0),1),
    put_structure(exec_directive_exception/2,2),
    unify_local_value(x(0)),
    unify_variable(x(1)),
    put_atom(any,3),
    put_integer(0,4),
    put_atom(false,5),
    call('$catch'/6),
    cut(y(0)),
    deallocate,
    proceed,

label(1),
    trust_me_else_fail,
    put_list(1),
    unify_local_value(x(0)),
    unify_nil,
    put_atom('directive failed (~q)',0),
    execute(warn/2)]).


predicate(exec_directive_exception/2,832,static,private,monofile,global,[
    get_variable(x(2),1),
    put_list(1),
    unify_local_value(x(0)),
    unify_list,
    unify_local_value(x(2)),
    unify_nil,
    put_atom('directive failed (~q) with exception (~q)',0),
    execute(warn/2)]).


predicate(used_bips_via_call/0,837,static,private,monofile,global,[
    allocate(0),
    put_void(0),
    put_void(1),
    put_void(2),
    call(op/3),
    put_void(0),
    put_void(1),
    call(char_conversion/2),
    put_void(0),
    put_void(1),
    call(set_prolog_flag/2),
    put_void(0),
    put_void(1),
    deallocate,
    execute(expand_term/2)]).


predicate(add_empty_dyn/2,846,static,private,monofile,global,[
    pragma_arity(3),
    get_current_choice(x(2)),
    switch_on_term(2,3,fail,5,1),

label(1),
    switch_on_structure([((',')/2,7),((/)/2,9)]),

label(2),
    try_me_else(4),

label(3),
    get_nil(0),
    cut(x(2)),
    proceed,

label(4),
    retry_me_else(6),

label(5),
    allocate(2),
    get_variable(y(1),1),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    cut(x(2)),
    put_value(y(1),1),
    call(add_empty_dyn/2),
    put_value(y(0),0),
    put_value(y(1),1),
    deallocate,
    execute(add_empty_dyn/2),

label(6),
    retry_me_else(8),

label(7),
    allocate(2),
    get_variable(y(1),1),
    get_structure((',')/2,0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    cut(x(2)),
    put_value(y(1),1),
    call(add_empty_dyn/2),
    put_value(y(0),0),
    put_value(y(1),1),
    deallocate,
    execute(add_empty_dyn/2),

label(8),
    trust_me_else_fail,

label(9),
    get_variable(x(2),1),
    get_structure((/)/2,0),
    unify_variable(x(0)),
    unify_variable(x(1)),
    execute('$add_empty_dyn/2_$aux1'/3)]).


predicate('$add_empty_dyn/2_$aux1'/3,859,static,private,monofile,local,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(1),
    allocate(1),
    get_variable(x(2),0),
    get_variable(y(0),3),
    put_structure(empty_dyn_pred/3,0),
    unify_local_value(x(2)),
    unify_local_value(x(1)),
    unify_void(1),
    put_void(1),
    call(clause/2),
    cut(y(0)),
    deallocate,
    proceed,

label(1),
    trust_me_else_fail,
    get_variable(x(3),0),
    put_structure(empty_dyn_pred/3,0),
    unify_local_value(x(3)),
    unify_local_value(x(1)),
    unify_local_value(x(2)),
    execute(assertz/1)]).


predicate(add_ensure_linked/1,869,static,private,monofile,global,[
    pragma_arity(2),
    get_current_choice(x(1)),
    switch_on_term(3,4,fail,6,1),

label(1),
    switch_on_structure([((',')/2,8),((/)/2,2)]),

label(2),
    try(10),
    trust(12),

label(3),
    try_me_else(5),

label(4),
    get_nil(0),
    cut(x(1)),
    proceed,

label(5),
    retry_me_else(7),

label(6),
    allocate(1),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    cut(x(1)),
    call(add_ensure_linked/1),
    put_value(y(0),0),
    deallocate,
    execute(add_ensure_linked/1),

label(7),
    retry_me_else(9),

label(8),
    allocate(1),
    get_structure((',')/2,0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    cut(x(1)),
    call(add_ensure_linked/1),
    put_value(y(0),0),
    deallocate,
    execute(add_ensure_linked/1),

label(9),
    retry_me_else(11),

label(10),
    allocate(1),
    get_structure((/)/2,0),
    unify_variable(x(3)),
    unify_variable(x(2)),
    get_variable(y(0),1),
    put_structure(ensure_linked/2,0),
    unify_value(x(3)),
    unify_value(x(2)),
    put_atom(true,1),
    call(clause/2),
    cut(y(0)),
    deallocate,
    proceed,

label(11),
    trust_me_else_fail,

label(12),
    get_structure((/)/2,0),
    unify_variable(x(2)),
    unify_variable(x(1)),
    put_structure(ensure_linked/2,0),
    unify_value(x(2)),
    unify_value(x(1)),
    execute(assertz/1)]).


predicate(add_module_export_info/2,891,static,private,monofile,global,[
    pragma_arity(3),
    get_current_choice(x(2)),
    switch_on_term(3,4,fail,6,1),

label(1),
    switch_on_structure([((',')/2,8),((/)/2,2)]),

label(2),
    try(10),
    trust(12),

label(3),
    try_me_else(5),

label(4),
    get_nil(0),
    cut(x(2)),
    proceed,

label(5),
    retry_me_else(7),

label(6),
    allocate(2),
    get_variable(y(1),1),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    cut(x(2)),
    put_value(y(1),1),
    call(add_module_export_info/2),
    put_value(y(0),0),
    put_value(y(1),1),
    deallocate,
    execute(add_module_export_info/2),

label(7),
    retry_me_else(9),

label(8),
    allocate(2),
    get_variable(y(1),1),
    get_structure((',')/2,0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    cut(x(2)),
    put_value(y(1),1),
    call(add_module_export_info/2),
    put_value(y(0),0),
    put_value(y(1),1),
    deallocate,
    execute(add_module_export_info/2),

label(9),
    retry_me_else(11),

label(10),
    allocate(4),
    get_structure((/)/2,0),
    unify_variable(y(0)),
    unify_variable(y(1)),
    get_variable(y(2),2),
    put_structure(module_export/3,0),
    unify_value(y(0)),
    unify_value(y(1)),
    unify_variable(y(3)),
    put_atom(true,1),
    call(clause/2),
    cut(y(2)),
    put_atom('predicate ~w already exported from module ~w',0),
    put_structure((/)/2,2),
    unify_value(y(0)),
    unify_value(y(1)),
    put_list(1),
    unify_value(x(2)),
    unify_list,
    unify_value(y(3)),
    unify_nil,
    deallocate,
    execute(error/2),

label(11),
    trust_me_else_fail,

label(12),
    allocate(2),
    get_structure((/)/2,0),
    unify_variable(y(0)),
    unify_variable(y(1)),
    put_structure(module_export/3,0),
    unify_value(y(0)),
    unify_value(y(1)),
    unify_local_value(x(1)),
    call(assertz/1),
    put_value(y(0),0),
    put_value(y(1),1),
    deallocate,
    execute('$add_module_export_info/2_$aux1'/2)]).


predicate('$add_module_export_info/2_$aux1'/2,908,static,private,monofile,local,[
    pragma_arity(3),
    get_current_choice(x(2)),
    try_me_else(1),
    allocate(3),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    put_atom(def,0),
    put_value(y(0),1),
    put_value(y(1),2),
    call(test_pred_info/3),
    cut(y(2)),
    put_value(y(0),0),
    put_value(y(1),1),
    deallocate,
    execute(check_module_clash/2),

label(1),
    trust_me_else_fail,
    proceed]).


predicate(check_module_name/2,917,static,private,monofile,global,[
    pragma_arity(3),
    get_current_choice(x(2)),
    try_me_else(1),
    get_atom(true,1),
    call_c('Pl_Blt_Var',[fast_call,boolean],[x(0)]),
    cut(x(2)),
    proceed,

label(1),
    retry_me_else(2),
    call_c('Pl_Blt_Atom',[fast_call,boolean],[x(0)]),
    cut(x(2)),
    proceed,

label(2),
    trust_me_else_fail,
    put_list(1),
    unify_local_value(x(0)),
    unify_nil,
    put_atom('invalid module name (~q) should be an atom',0),
    execute(error/2)]).


predicate(check_head_is_module_free/1,937,static,private,monofile,global,[
    pragma_arity(2),
    get_current_choice(x(1)),
    try_me_else(1),
    get_structure((:)/2,0),
    unify_variable(x(3)),
    unify_variable(x(2)),
    cut(x(1)),
    put_structure((:)/2,0),
    unify_value(x(3)),
    unify_value(x(2)),
    put_list(1),
    unify_value(x(0)),
    unify_nil,
    put_atom('module qualification is not allowed for the head of a clause (~w)',0),
    execute(error/2),

label(1),
    trust_me_else_fail,
    proceed]).


predicate(check_module_clash/2,946,static,private,monofile,global,[
    pragma_arity(3),
    get_current_choice(x(2)),
    try_me_else(1),
    allocate(4),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    put_structure(module_export/3,0),
    unify_local_value(y(0)),
    unify_local_value(y(1)),
    unify_variable(y(3)),
    put_atom(true,1),
    call(clause/2),
    put_atom(module,1),
    put_variable(x(0),2),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(1),x(2)]),
    put_value(y(3),1),
    call_c('Pl_Blt_Term_Neq',[fast_call,boolean],[x(1),x(0)]),
    cut(y(2)),
    put_structure((/)/2,2),
    unify_local_value(y(0)),
    unify_local_value(y(1)),
    put_list(1),
    unify_value(x(2)),
    unify_list,
    unify_value(x(0)),
    unify_list,
    unify_value(y(3)),
    unify_nil,
    put_atom('clash on ~q - defined in module ~q (here) and imported from ~w',0),
    deallocate,
    execute(error/2),

label(1),
    trust_me_else_fail,
    proceed]).


predicate(get_owner_module/3,958,static,private,monofile,global,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(1),
    allocate(2),
    get_variable(y(0),2),
    get_variable(x(2),0),
    get_variable(y(1),3),
    put_structure(module_export/3,0),
    unify_local_value(x(2)),
    unify_local_value(x(1)),
    unify_local_value(y(0)),
    put_atom(true,1),
    call(clause/2),
    put_value(y(0),0),
    put_atom(system,1),
    call_c('Pl_Blt_Term_Neq',[fast_call,boolean],[x(0),x(1)]),
    cut(y(1)),
    deallocate,
    proceed,

label(1),
    trust_me_else_fail,
    proceed]).


predicate(is_exported/2,966,static,private,monofile,global,[
    pragma_arity(3),
    get_current_choice(x(2)),
    allocate(1),
    get_variable(x(3),0),
    get_variable(y(0),2),
    put_structure(module_export/3,0),
    unify_local_value(x(3)),
    unify_local_value(x(1)),
    unify_void(1),
    put_atom(true,1),
    call(clause/2),
    cut(y(0)),
    deallocate,
    proceed]).


predicate(get_module_of_cur_pred/1,972,static,private,monofile,global,[
    allocate(3),
    get_variable(y(0),0),
    put_variable(y(1),0),
    put_variable(y(2),1),
    call(cur_pred/2),
    put_unsafe_value(y(1),0),
    put_unsafe_value(y(2),1),
    put_value(y(0),2),
    deallocate,
    execute('$get_module_of_cur_pred/1_$aux1'/3)]).


predicate('$get_module_of_cur_pred/1_$aux1'/3,972,static,private,monofile,local,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(1),
    allocate(2),
    get_variable(y(0),2),
    get_variable(x(2),1),
    get_variable(y(1),3),
    put_value(x(0),1),
    put_atom(bpl,0),
    call(test_pred_info/3),
    cut(y(1)),
    put_value(y(0),0),
    get_atom(system,0),
    deallocate,
    proceed,

label(1),
    retry_me_else(2),
    allocate(2),
    get_variable(y(0),2),
    get_variable(x(2),1),
    get_variable(y(1),3),
    put_value(x(0),1),
    put_atom(bfd,0),
    call(test_pred_info/3),
    cut(y(1)),
    put_value(y(0),0),
    get_atom(system,0),
    deallocate,
    proceed,

label(2),
    trust_me_else_fail,
    put_atom(module,0),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(0),x(2)]),
    proceed]).


predicate(set_flag_for_preds/2,985,static,private,monofile,global,[
    pragma_arity(3),
    get_current_choice(x(2)),
    switch_on_term(2,3,fail,5,1),

label(1),
    switch_on_structure([((',')/2,7),((/)/2,9)]),

label(2),
    try_me_else(4),

label(3),
    get_nil(0),
    cut(x(2)),
    proceed,

label(4),
    retry_me_else(6),

label(5),
    allocate(2),
    get_variable(y(1),1),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    cut(x(2)),
    put_value(y(1),1),
    call(set_flag_for_preds/2),
    put_value(y(0),0),
    put_value(y(1),1),
    deallocate,
    execute(set_flag_for_preds/2),

label(6),
    retry_me_else(8),

label(7),
    allocate(2),
    get_variable(y(1),1),
    get_structure((',')/2,0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    cut(x(2)),
    put_value(y(1),1),
    call(set_flag_for_preds/2),
    put_value(y(0),0),
    put_value(y(1),1),
    deallocate,
    execute(set_flag_for_preds/2),

label(8),
    trust_me_else_fail,

label(9),
    get_variable(x(4),1),
    get_structure((/)/2,0),
    unify_variable(x(0)),
    unify_variable(x(1)),
    get_variable(x(3),2),
    call_c('Pl_Blt_Atom',[fast_call,boolean],[x(0)]),
    call_c('Pl_Blt_Integer',[fast_call,boolean],[x(1)]),
    put_value(x(4),2),
    execute('$set_flag_for_preds/2_$aux1'/4)]).


predicate('$set_flag_for_preds/2_$aux1'/4,998,static,private,monofile,local,[
    pragma_arity(5),
    get_current_choice(x(4)),
    try_me_else(1),
    allocate(3),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),4),
    put_atom(def,0),
    put_value(y(0),1),
    put_value(y(1),2),
    call(test_pred_info/3),
    cut(y(2)),
    put_atom('directive occurs after definition of ~q - directive ignored',0),
    put_structure((/)/2,2),
    unify_local_value(y(0)),
    unify_local_value(y(1)),
    put_list(1),
    unify_value(x(2)),
    unify_nil,
    deallocate,
    execute(warn/2),

label(1),
    trust_me_else_fail,
    allocate(4),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    get_variable(y(3),3),
    put_value(y(2),0),
    put_value(y(0),1),
    put_value(y(1),2),
    call('$set_flag_for_preds/2_$aux2'/3),
    cut(y(3)),
    put_value(y(2),0),
    put_value(y(0),1),
    put_value(y(1),2),
    deallocate,
    execute(set_pred_info/3)]).


predicate('$set_flag_for_preds/2_$aux2'/3,998,static,private,monofile,local,[
    try_me_else(6),
    switch_on_term(2,1,fail,fail,fail),

label(1),
    switch_on_atom([(bpl,3),(bfd,5)]),

label(2),
    try_me_else(4),

label(3),
    get_atom(bpl,0),
    put_atom(bfd,0),
    execute(unset_pred_info/3),

label(4),
    trust_me_else_fail,

label(5),
    get_atom(bfd,0),
    put_atom(bpl,0),
    execute(unset_pred_info/3),

label(6),
    trust_me_else_fail,
    proceed]).


predicate(define_predicate/2,1015,static,private,monofile,global,[
    pragma_arity(3),
    get_current_choice(x(2)),
    try_me_else(1),
    allocate(3),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    put_atom(def,0),
    put_value(y(0),1),
    put_value(y(1),2),
    call(set_pred_info/3),
    put_atom(bpl,0),
    put_value(y(0),1),
    put_value(y(1),2),
    call(test_pred_info/3),
    cut(y(2)),
    deallocate,
    proceed,

label(1),
    retry_me_else(2),
    allocate(1),
    get_variable(x(3),1),
    get_variable(y(0),2),
    put_value(x(0),1),
    put_value(x(3),2),
    put_atom(bfd,0),
    call(test_pred_info/3),
    cut(y(0)),
    deallocate,
    proceed,

label(2),
    retry_me_else(3),
    get_variable(x(3),1),
    put_atom(default_kind,1),
    put_atom(built_in,4),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(1),x(4)]),
    cut(x(2)),
    put_value(x(0),1),
    put_value(x(3),2),
    put_atom(bpl,0),
    execute(set_pred_info/3),

label(3),
    retry_me_else(4),
    get_variable(x(3),1),
    put_atom(default_kind,1),
    put_atom(built_in_fd,4),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(1),x(4)]),
    cut(x(2)),
    put_value(x(0),1),
    put_value(x(3),2),
    put_atom(bfd,0),
    execute(set_pred_info/3),

label(4),
    trust_me_else_fail,
    proceed]).


predicate(flag_bit/2,1035,static,private,monofile,global,[
    switch_on_term(2,1,fail,fail,fail),

label(1),
    switch_on_atom([(def,3),(dyn,5),(pub,7),(bpl,9),(bfd,11),(discontig,13),(cut,15),(meta,17),(multi,19)]),

label(2),
    try_me_else(4),

label(3),
    get_atom(def,0),
    get_integer(0,1),
    proceed,

label(4),
    retry_me_else(6),

label(5),
    get_atom(dyn,0),
    get_integer(1,1),
    proceed,

label(6),
    retry_me_else(8),

label(7),
    get_atom(pub,0),
    get_integer(2,1),
    proceed,

label(8),
    retry_me_else(10),

label(9),
    get_atom(bpl,0),
    get_integer(3,1),
    proceed,

label(10),
    retry_me_else(12),

label(11),
    get_atom(bfd,0),
    get_integer(4,1),
    proceed,

label(12),
    retry_me_else(14),

label(13),
    get_atom(discontig,0),
    get_integer(5,1),
    proceed,

label(14),
    retry_me_else(16),

label(15),
    get_atom(cut,0),
    get_integer(6,1),
    proceed,

label(16),
    retry_me_else(18),

label(17),
    get_atom(meta,0),
    get_integer(7,1),
    proceed,

label(18),
    trust_me_else_fail,

label(19),
    get_atom(multi,0),
    get_integer(8,1),
    proceed]).


predicate(set_pred_info/3,1048,static,private,monofile,global,[
    pragma_arity(4),
    get_current_choice(x(3)),
    allocate(5),
    get_variable(y(0),1),
    get_variable(y(1),2),
    get_variable(y(2),3),
    put_variable(y(3),1),
    call(flag_bit/2),
    put_value(y(0),0),
    put_value(y(1),1),
    put_variable(y(4),2),
    call('$set_pred_info/3_$aux1'/3),
    cut(y(2)),
    math_fast_load_value(y(4),0),
    put_integer(1,1),
    math_fast_load_value(y(3),2),
    call_c('Pl_Fct_Fast_Shl',[fast_call,x(1)],[x(1),x(2)]),
    call_c('Pl_Fct_Fast_Or',[fast_call,x(1)],[x(0),x(1)]),
    put_structure(pred_info/3,0),
    unify_local_value(y(0)),
    unify_local_value(y(1)),
    unify_local_value(x(1)),
    deallocate,
    execute(assertz/1)]).


predicate('$set_pred_info/3_$aux1'/3,1048,static,private,monofile,local,[
    try_me_else(1),
    get_variable(x(3),0),
    put_structure(pred_info/3,0),
    unify_local_value(x(3)),
    unify_local_value(x(1)),
    unify_local_value(x(2)),
    execute(retract/1),

label(1),
    trust_me_else_fail,
    get_integer(0,2),
    proceed]).


predicate(unset_pred_info/3,1059,static,private,monofile,global,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(1),
    allocate(5),
    get_variable(y(0),1),
    get_variable(y(1),2),
    get_variable(y(2),3),
    put_variable(y(3),1),
    call(flag_bit/2),
    put_structure(pred_info/3,0),
    unify_local_value(y(0)),
    unify_local_value(y(1)),
    unify_variable(y(4)),
    call(retract/1),
    cut(y(2)),
    math_fast_load_value(y(4),0),
    put_integer(1,1),
    math_fast_load_value(y(3),2),
    call_c('Pl_Fct_Fast_Shl',[fast_call,x(1)],[x(1),x(2)]),
    call_c('Pl_Fct_Fast_Not',[fast_call,x(1)],[x(1)]),
    call_c('Pl_Fct_Fast_And',[fast_call,x(1)],[x(0),x(1)]),
    put_structure(pred_info/3,0),
    unify_local_value(y(0)),
    unify_local_value(y(1)),
    unify_local_value(x(1)),
    deallocate,
    execute(assertz/1),

label(1),
    trust_me_else_fail,
    proceed]).


predicate(test_pred_info/3,1070,static,private,monofile,global,[
    allocate(4),
    get_variable(y(0),1),
    get_variable(y(1),2),
    put_variable(y(2),1),
    call(flag_bit/2),
    put_structure(pred_info/3,0),
    unify_local_value(y(0)),
    unify_local_value(y(1)),
    unify_variable(y(3)),
    put_void(1),
    call(clause/2),
    math_fast_load_value(y(3),0),
    put_integer(1,1),
    math_fast_load_value(y(2),2),
    call_c('Pl_Fct_Fast_Shl',[fast_call,x(1)],[x(1),x(2)]),
    call_c('Pl_Fct_Fast_And',[fast_call,x(0)],[x(0),x(1)]),
    put_integer(0,1),
    call_c('Pl_Blt_Fast_Gt',[fast_call,boolean],[x(0),x(1)]),
    deallocate,
    proceed]).


predicate(check_predicate/2,1078,static,private,monofile,global,[
    pragma_arity(3),
    get_current_choice(x(2)),
    try_me_else(1),
    allocate(3),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    put_atom(redef_error,0),
    put_atom(t,1),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(0),x(1)]),
    put_value(y(0),0),
    put_value(y(1),1),
    call(control_construct/2),
    cut(y(2)),
    put_atom('redefining control construct ~q',0),
    put_structure((/)/2,2),
    unify_local_value(y(0)),
    unify_local_value(y(1)),
    put_list(1),
    unify_value(x(2)),
    unify_nil,
    deallocate,
    execute(error/2),

label(1),
    retry_me_else(2),
    allocate(3),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    put_atom(redef_error,0),
    put_atom(t,1),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(0),x(1)]),
    put_value(y(0),0),
    put_value(y(1),1),
    call(bip/2),
    cut(y(2)),
    put_atom('redefining built-in predicate ~q',0),
    put_structure((/)/2,2),
    unify_local_value(y(0)),
    unify_local_value(y(1)),
    put_list(1),
    unify_value(x(2)),
    unify_nil,
    deallocate,
    execute(error/2),

label(2),
    retry_me_else(3),
    allocate(3),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    put_atom(susp_warn,0),
    put_atom(t,1),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(0),x(1)]),
    put_value(y(0),0),
    put_value(y(1),1),
    call(suspicious_predicate/2),
    cut(y(2)),
    put_atom('suspicious predicate ~q',0),
    put_structure((/)/2,2),
    unify_local_value(y(0)),
    unify_local_value(y(1)),
    put_list(1),
    unify_value(x(2)),
    unify_nil,
    deallocate,
    execute(warn/2),

label(3),
    retry_me_else(4),
    allocate(3),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    put_value(y(0),0),
    call('$aux_name'/1),
    cut(y(2)),
    put_atom('using system auxiliary predicate ~q',0),
    put_structure((/)/2,2),
    unify_local_value(y(0)),
    unify_local_value(y(1)),
    put_list(1),
    unify_value(x(2)),
    unify_nil,
    deallocate,
    execute(warn/2),

label(4),
    trust_me_else_fail,
    proceed]).


predicate(bip/2,1101,static,private,monofile,global,[
    pragma_arity(3),
    get_current_choice(x(2)),
    allocate(1),
    get_variable(y(0),2),
    put_atom(built_in,2),
    call('$predicate_property1'/3),
    cut(y(0)),
    deallocate,
    proceed]).


predicate(control_construct/2,1109,static,private,monofile,global,[
    switch_on_term(2,1,fail,fail,fail),

label(1),
    switch_on_atom([((','),3),((;),5),((->),7),(!,9),(fail,11),(true,13),(call,15),(catch,17),(throw,19)]),

label(2),
    try_me_else(4),

label(3),
    get_atom(',',0),
    get_integer(2,1),
    proceed,

label(4),
    retry_me_else(6),

label(5),
    get_atom(;,0),
    get_integer(2,1),
    proceed,

label(6),
    retry_me_else(8),

label(7),
    get_atom(->,0),
    get_integer(2,1),
    proceed,

label(8),
    retry_me_else(10),

label(9),
    get_atom(!,0),
    get_integer(0,1),
    proceed,

label(10),
    retry_me_else(12),

label(11),
    get_atom(fail,0),
    get_integer(0,1),
    proceed,

label(12),
    retry_me_else(14),

label(13),
    get_atom(true,0),
    get_integer(0,1),
    proceed,

label(14),
    retry_me_else(16),

label(15),
    get_atom(call,0),
    get_integer(1,1),
    proceed,

label(16),
    retry_me_else(18),

label(17),
    get_atom(catch,0),
    get_integer(3,1),
    proceed,

label(18),
    trust_me_else_fail,

label(19),
    get_atom(throw,0),
    get_integer(1,1),
    proceed]).


predicate(suspicious_predicate/2,1123,static,private,monofile,global,[
    switch_on_term(3,1,fail,fail,fail),

label(1),
    switch_on_atom([((:),4),((:-),2),((-->),10),({},12),((+),14),((-),16),((*),18),((/),20),((//),22)]),

label(2),
    try(6),
    trust(8),

label(3),
    try_me_else(5),

label(4),
    get_atom(:,0),
    get_integer(2,1),
    proceed,

label(5),
    retry_me_else(7),

label(6),
    get_atom(:-,0),
    get_integer(1,1),
    proceed,

label(7),
    retry_me_else(9),

label(8),
    get_atom(:-,0),
    get_integer(2,1),
    proceed,

label(9),
    retry_me_else(11),

label(10),
    get_atom(-->,0),
    get_integer(2,1),
    proceed,

label(11),
    retry_me_else(13),

label(12),
    get_atom({},0),
    math_fast_load_value(x(1),0),
    put_integer(2,1),
    call_c('Pl_Blt_Fast_Lt',[fast_call,boolean],[x(0),x(1)]),
    proceed,

label(13),
    retry_me_else(15),

label(14),
    get_atom(+,0),
    get_integer(2,1),
    proceed,

label(15),
    retry_me_else(17),

label(16),
    get_atom(-,0),
    get_integer(2,1),
    proceed,

label(17),
    retry_me_else(19),

label(18),
    get_atom(*,0),
    get_integer(2,1),
    proceed,

label(19),
    retry_me_else(21),

label(20),
    get_atom(/,0),
    get_integer(2,1),
    proceed,

label(21),
    trust_me_else_fail,

label(22),
    get_atom(//,0),
    get_integer(2,1),
    proceed]).


predicate(warn/2,1137,static,private,monofile,global,[
    put_value(x(0),2),
    put_value(x(1),3),
    put_atom(warning,0),
    put_integer(0,1),
    execute(disp_msg/4)]).


predicate(error/2,1143,static,private,monofile,global,[
    pragma_arity(3),
    get_current_choice(x(2)),
    allocate(1),
    get_variable(y(0),2),
    put_value(x(0),2),
    put_value(x(1),3),
    put_atom('fatal error',0),
    put_integer(0,1),
    call(disp_msg/4),
    call(repeat/0),
    put_value(y(0),0),
    call('$error/2_$aux1'/1),
    deallocate,
    execute(abort/0)]).


predicate('$error/2_$aux1'/1,1143,static,private,monofile,local,[
    pragma_arity(2),
    get_current_choice(x(1)),
    try_me_else(1),
    allocate(1),
    get_variable(y(0),1),
    call(close_last_prolog_file/0),
    cut(y(0)),
    fail,

label(1),
    trust_me_else_fail,
    cut(x(0)),
    proceed]).


predicate(disp_msg/4,1155,static,private,monofile,global,[
    allocate(4),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    get_variable(y(3),3),
    put_value(y(3),0),
    call(numbervars/1),
    put_atom(where,1),
    put_variable(x(0),2),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(1),x(2)]),
    put_value(y(1),1),
    call('$disp_msg/4_$aux1'/2),
    put_atom('~a: ',0),
    put_list(1),
    unify_local_value(y(0)),
    unify_nil,
    call(format/2),
    put_value(y(2),0),
    put_value(y(3),1),
    call(format/2),
    put_atom(user_output,0),
    deallocate,
    execute(nl/1)]).


predicate('$disp_msg/4_$aux1'/2,1155,static,private,monofile,local,[
    pragma_arity(3),
    get_current_choice(x(2)),
    try_me_else(1),
    allocate(2),
    get_variable(y(0),1),
    get_structure((+)/2,0),
    unify_variable(x(0)),
    unify_variable(y(1)),
    put_value(y(1),1),
    get_structure((-)/2,1),
    unify_void(2),
    cut(x(2)),
    put_void(1),
    call(disp_file_name/2),
    put_value(y(1),0),
    call(disp_lines/1),
    put_value(y(0),0),
    deallocate,
    execute(disp_column/1),

label(1),
    trust_me_else_fail,
    proceed]).


predicate(disp_file_name/2,1172,static,private,monofile,global,[
    pragma_arity(3),
    get_current_choice(x(2)),
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    get_atom('',1),
    cut(x(2)),
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    allocate(2),
    get_atom(' including ',1),
    get_list(0),
    unify_variable(x(1)),
    unify_variable(x(0)),
    get_structure((*)/2,1),
    unify_variable(y(0)),
    unify_void(1),
    put_variable(y(1),1),
    call(disp_file_name/2),
    put_atom('~a~a',0),
    put_list(1),
    unify_local_value(y(1)),
    unify_list,
    unify_value(y(0)),
    unify_nil,
    deallocate,
    execute(format/2)]).


predicate(disp_lines/1,1182,static,private,monofile,global,[
    pragma_arity(2),
    get_current_choice(x(1)),
    switch_on_term(3,fail,fail,fail,1),

label(1),
    switch_on_structure([((-)/2,2)]),

label(2),
    try(4),
    trust(6),

label(3),
    try_me_else(5),

label(4),
    get_structure((-)/2,0),
    unify_variable(x(0)),
    unify_value(x(0)),
    cut(x(1)),
    put_list(1),
    unify_value(x(0)),
    unify_nil,
    put_atom(':~d',0),
    execute(format/2),

label(5),
    trust_me_else_fail,

label(6),
    get_structure((-)/2,0),
    unify_variable(x(2)),
    unify_variable(x(0)),
    put_list(1),
    unify_value(x(2)),
    unify_list,
    unify_value(x(0)),
    unify_nil,
    put_atom(':~d-~d',0),
    execute(format/2)]).


predicate(disp_column/1,1191,static,private,monofile,global,[
    pragma_arity(2),
    get_current_choice(x(1)),
    try_me_else(1),
    math_fast_load_value(x(0),2),
    put_integer(0,3),
    call_c('Pl_Blt_Fast_Gt',[fast_call,boolean],[x(2),x(3)]),
    cut(x(1)),
    put_list(1),
    unify_local_value(x(0)),
    unify_nil,
    put_atom(':~d: ',0),
    execute(format/2),

label(1),
    trust_me_else_fail,
    put_atom(': ',0),
    execute(write/1)]).


predicate(exception/1,1203,static,private,monofile,global,[
    pragma_arity(2),
    get_current_choice(x(1)),
    try_me_else(9),
    switch_on_term(3,fail,fail,fail,1),

label(1),
    switch_on_structure([(error/2,2)]),

label(2),
    try(4),
    retry(6),
    trust(8),

label(3),
    try_me_else(5),

label(4),
    allocate(3),
    get_structure(error/2,0),
    unify_variable(x(0)),
    unify_void(1),
    get_structure(syntax_error/1,0),
    unify_void(1),
    cut(x(1)),
    put_void(0),
    put_variable(y(0),1),
    put_variable(y(1),2),
    put_variable(y(2),3),
    call(syntax_error_info/4),
    put_atom(open_file_stack,0),
    put_variable(x(2),1),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(0),x(1)]),
    put_atom(where,0),
    put_structure((+)/2,1),
    unify_value(x(2)),
    unify_structure((-)/2),
    unify_local_value(y(0)),
    unify_local_value(y(0)),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_atom('syntax error: ~a (char:~d)',0),
    put_list(1),
    unify_local_value(y(2)),
    unify_list,
    unify_local_value(y(1)),
    unify_nil,
    deallocate,
    execute(error/2),

label(5),
    retry_me_else(7),

label(6),
    get_structure(error/2,0),
    unify_variable(x(0)),
    unify_void(1),
    get_structure(existence_error/2,0),
    unify_atom(source_sink),
    unify_variable(x(0)),
    cut(x(1)),
    put_list(1),
    unify_value(x(0)),
    unify_nil,
    put_atom('cannot open file ~a - does not exist',0),
    execute(error/2),

label(7),
    trust_me_else_fail,

label(8),
    get_structure(error/2,0),
    unify_variable(x(0)),
    unify_void(1),
    get_structure(permission_error/3,0),
    unify_atom(open),
    unify_atom(source_sink),
    unify_variable(x(0)),
    cut(x(1)),
    put_list(1),
    unify_value(x(0)),
    unify_nil,
    put_atom('cannot open file ~a - permission error',0),
    execute(error/2),

label(9),
    trust_me_else_fail,
    put_list(1),
    unify_local_value(x(0)),
    unify_nil,
    put_atom('exception raised: ~q',0),
    execute(error/2)]).


predicate(handle_directive/3,582,static,private,monofile,global,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(43),
    switch_on_term(3,1,fail,fail,fail),

label(1),
    switch_on_atom([(public,4),(dynamic,6),(multifile,8),(discontiguous,10),(built_in,12),(built_in_fd,14),(ensure_linked,16),(encoding,18),(ensure_loaded,20),(include,22),(op,24),(char_conversion,26),(set_prolog_flag,28),(initialization,30),(module,32),(use_module,34),(meta_predicate,36),(foreign,2)]),

label(2),
    try(38),
    retry(40),
    trust(42),

label(3),
    try_me_else(5),

label(4),
    get_atom(public,0),
    cut(x(3)),
    put_nil(0),
    call_c('Pl_Blt_Term_Neq',[fast_call,boolean],[x(1),x(0)]),
    put_value(x(1),0),
    put_atom(pub,1),
    execute(set_flag_for_preds/2),

label(5),
    retry_me_else(7),

label(6),
    allocate(2),
    get_atom(dynamic,0),
    get_variable(y(0),1),
    get_variable(y(1),2),
    cut(x(3)),
    put_value(y(0),0),
    put_nil(1),
    call_c('Pl_Blt_Term_Neq',[fast_call,boolean],[x(0),x(1)]),
    put_value(y(0),0),
    put_atom(dyn,1),
    call(set_flag_for_preds/2),
    put_value(y(0),0),
    put_atom(pub,1),
    call(set_flag_for_preds/2),
    put_value(y(0),0),
    put_value(y(1),1),
    deallocate,
    execute(add_empty_dyn/2),

label(7),
    retry_me_else(9),

label(8),
    allocate(2),
    get_atom(multifile,0),
    get_variable(y(0),1),
    get_variable(y(1),2),
    cut(x(3)),
    put_value(y(0),0),
    put_nil(1),
    call_c('Pl_Blt_Term_Neq',[fast_call,boolean],[x(0),x(1)]),
    put_value(y(0),0),
    put_atom(multi,1),
    call(set_flag_for_preds/2),
    put_value(y(0),0),
    put_value(y(1),1),
    deallocate,
    execute(add_empty_dyn/2),

label(9),
    retry_me_else(11),

label(10),
    get_atom(discontiguous,0),
    cut(x(3)),
    put_nil(0),
    call_c('Pl_Blt_Term_Neq',[fast_call,boolean],[x(1),x(0)]),
    put_value(x(1),0),
    put_atom(discontig,1),
    execute(set_flag_for_preds/2),

label(11),
    retry_me_else(13),

label(12),
    allocate(1),
    get_atom(built_in,0),
    get_variable(y(0),3),
    cut(y(0)),
    put_value(x(1),0),
    call('$handle_directive/3_$aux1'/1),
    cut(y(0)),
    deallocate,
    proceed,

label(13),
    retry_me_else(15),

label(14),
    get_atom(built_in_fd,0),
    cut(x(3)),
    put_value(x(1),0),
    execute('$handle_directive/3_$aux2'/1),

label(15),
    retry_me_else(17),

label(16),
    get_atom(ensure_linked,0),
    cut(x(3)),
    put_value(x(1),0),
    execute('$handle_directive/3_$aux3'/1),

label(17),
    retry_me_else(19),

label(18),
    get_atom(encoding,0),
    cut(x(3)),
    put_atom('encoding directive not supported - directive ignored',0),
    put_nil(1),
    execute(warn/2),

label(19),
    retry_me_else(21),

label(20),
    get_atom(ensure_loaded,0),
    cut(x(3)),
    put_atom('ensure_loaded directive not supported - directive ignored',0),
    put_nil(1),
    execute(warn/2),

label(21),
    retry_me_else(23),

label(22),
    get_atom(include,0),
    get_list(1),
    unify_variable(x(0)),
    unify_nil,
    cut(x(3)),
    execute(open_new_prolog_file/1),

label(23),
    retry_me_else(25),

label(24),
    allocate(4),
    get_atom(op,0),
    get_list(1),
    unify_variable(y(0)),
    unify_list,
    unify_variable(y(1)),
    unify_list,
    unify_variable(y(2)),
    unify_nil,
    get_variable(y(3),2),
    cut(x(3)),
    put_structure(op/3,0),
    unify_value(y(0)),
    unify_value(y(1)),
    unify_value(y(2)),
    call(exec_directive/1),
    put_atom(system,0),
    put_structure(op/3,1),
    unify_value(y(0)),
    unify_value(y(1)),
    unify_value(y(2)),
    put_value(y(3),2),
    deallocate,
    execute(handle_initialization/3),

label(25),
    retry_me_else(27),

label(26),
    allocate(3),
    get_atom(char_conversion,0),
    get_list(1),
    unify_variable(y(0)),
    unify_list,
    unify_variable(y(1)),
    unify_nil,
    get_variable(y(2),2),
    cut(x(3)),
    put_structure(char_conversion/2,0),
    unify_value(y(0)),
    unify_value(y(1)),
    call(exec_directive/1),
    put_atom(system,0),
    put_structure(char_conversion/2,1),
    unify_value(y(0)),
    unify_value(y(1)),
    put_value(y(2),2),
    deallocate,
    execute(handle_initialization/3),

label(27),
    retry_me_else(29),

label(28),
    allocate(3),
    get_atom(set_prolog_flag,0),
    get_list(1),
    unify_variable(y(0)),
    unify_list,
    unify_variable(y(1)),
    unify_nil,
    get_variable(y(2),2),
    cut(x(3)),
    put_structure(set_prolog_flag/2,0),
    unify_value(y(0)),
    unify_value(y(1)),
    call(exec_directive/1),
    call('$handle_directive/3_$aux4'/0),
    put_atom(system,0),
    put_structure(set_prolog_flag/2,1),
    unify_value(y(0)),
    unify_value(y(1)),
    put_value(y(2),2),
    deallocate,
    execute(handle_initialization/3),

label(29),
    retry_me_else(31),

label(30),
    get_atom(initialization,0),
    get_list(1),
    unify_variable(x(1)),
    unify_nil,
    cut(x(3)),
    put_atom(user,0),
    execute(handle_initialization/3),

label(31),
    retry_me_else(33),

label(32),
    get_atom(module,0),
    get_list(1),
    unify_variable(x(0)),
    unify_list,
    unify_variable(x(1)),
    unify_nil,
    cut(x(3)),
    execute('$handle_directive/3_$aux5'/2),

label(33),
    retry_me_else(35),

label(34),
    allocate(2),
    get_atom(use_module,0),
    get_list(1),
    unify_variable(y(0)),
    unify_list,
    unify_variable(y(1)),
    unify_nil,
    cut(x(3)),
    put_value(y(0),0),
    put_atom(false,1),
    call(check_module_name/2),
    put_value(y(1),0),
    put_value(y(0),1),
    deallocate,
    execute(add_module_export_info/2),

label(35),
    retry_me_else(37),

label(36),
    get_atom(meta_predicate,0),
    get_list(1),
    unify_variable(x(0)),
    unify_nil,
    cut(x(3)),
    execute('$handle_directive/3_$aux6'/1),

label(37),
    retry_me_else(39),

label(38),
    get_atom(foreign,0),
    get_list(1),
    unify_variable(x(0)),
    unify_nil,
    cut(x(3)),
    put_list(1),
    unify_value(x(0)),
    unify_list,
    unify_nil,
    unify_nil,
    put_atom(foreign,0),
    execute(handle_directive/3),

label(39),
    retry_me_else(41),

label(40),
    get_atom(foreign,0),
    put_atom(call_c,0),
    put_atom(f,1),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(0),x(1)]),
    cut(x(3)),
    put_atom('foreign directive ignored (not allowed in this mode)',0),
    put_nil(1),
    execute(warn/2),

label(41),
    trust_me_else_fail,

label(42),
    allocate(7),
    get_atom(foreign,0),
    get_list(1),
    unify_variable(y(0)),
    unify_list,
    unify_variable(y(1)),
    unify_nil,
    get_variable(y(2),2),
    cut(x(3)),
    put_value(y(0),0),
    call_c('Pl_Blt_Callable',[fast_call,boolean],[x(0)]),
    put_value(y(1),0),
    call_c('Pl_Blt_List',[fast_call,boolean],[x(0)]),
    put_value(y(0),0),
    put_variable(y(3),1),
    put_variable(y(4),2),
    call_c('Pl_Blt_Functor',[fast_call,boolean],[x(0),x(1),x(2)]),
    put_value(y(3),0),
    put_value(y(4),1),
    call('$handle_directive/3_$aux7'/2),
    put_value(y(3),0),
    put_value(y(4),1),
    call(define_predicate/2),
    put_atom(foreign_fct_name,0),
    put_value(y(3),1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_atom(foreign_return,0),
    put_atom(boolean,1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_atom(foreign_bip,0),
    put_structure((/)/2,1),
    unify_local_value(y(3)),
    unify_local_value(y(4)),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_atom(foreign_choice_size,0),
    put_integer(-1,1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_value(y(1),0),
    call(foreign_get_options/1),
    put_integer(0,0),
    put_value(y(4),1),
    put_value(y(0),2),
    put_variable(y(5),3),
    call(foreign_check_types/4),
    put_atom(foreign_fct_name,0),
    put_variable(x(4),1),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(0),x(1)]),
    put_atom(foreign_return,0),
    put_variable(x(3),1),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(0),x(1)]),
    put_atom(foreign_bip,0),
    put_variable(x(2),1),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(0),x(1)]),
    put_atom(foreign_choice_size,0),
    put_variable(x(1),5),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(0),x(5)]),
    put_structure(args/5,0),
    unify_value(x(4)),
    unify_value(x(3)),
    unify_value(x(2)),
    unify_value(x(1)),
    unify_local_value(y(5)),
    put_variable(y(6),1),
    call(no_internal_transf/2),
    put_variable(x(0),1),
    put_value(y(3),2),
    put_value(y(4),3),
    call_c('Pl_Blt_Functor',[fast_call,boolean],[x(1),x(2),x(3)]),
    put_structure((+)/2,1),
    unify_local_value(y(2)),
    unify_structure((:-)/2),
    unify_value(x(0)),
    unify_structure('$foreign_call_c'/1),
    unify_local_value(y(6)),
    put_structure(buff_discontig_clause/3,0),
    unify_local_value(y(3)),
    unify_local_value(y(4)),
    unify_value(x(1)),
    call(assertz/1),
    put_structure((/)/2,0),
    unify_atom('$force_foreign_link'),
    unify_integer(0),
    deallocate,
    execute(add_ensure_linked/1),

label(43),
    trust_me_else_fail,
    allocate(2),
    get_variable(y(0),0),
    put_value(x(1),0),
    put_variable(y(1),1),
    call(length/2),
    put_atom('unknown directive ~q - maybe use initialization/1 - directive ignored',0),
    put_structure((/)/2,2),
    unify_local_value(y(0)),
    unify_local_value(y(1)),
    put_list(1),
    unify_value(x(2)),
    unify_nil,
    deallocate,
    execute(warn/2)]).


predicate('$handle_directive/3_$aux7'/2,699,static,private,monofile,local,[
    pragma_arity(3),
    get_current_choice(x(2)),
    try_me_else(1),
    allocate(3),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    put_atom(pub,0),
    put_value(y(0),1),
    put_value(y(1),2),
    call(test_pred_info/3),
    cut(y(2)),
    put_atom('foreign predicate ~q should not be public/dynamic',0),
    put_structure((/)/2,2),
    unify_local_value(y(0)),
    unify_local_value(y(1)),
    put_list(1),
    unify_value(x(2)),
    unify_nil,
    deallocate,
    execute(error/2),

label(1),
    trust_me_else_fail,
    proceed]).


predicate('$handle_directive/3_$aux6'/1,681,static,private,monofile,local,[
    pragma_arity(2),
    get_current_choice(x(1)),
    try_me_else(1),
    allocate(3),
    get_variable(y(0),0),
    put_value(y(0),0),
    call_c('Pl_Blt_Callable',[fast_call,boolean],[x(0)]),
    cut(x(1)),
    put_value(y(0),0),
    put_variable(y(1),1),
    put_variable(y(2),2),
    call_c('Pl_Blt_Functor',[fast_call,boolean],[x(0),x(1),x(2)]),
    put_structure((/)/2,0),
    unify_local_value(y(1)),
    unify_local_value(y(2)),
    put_atom(meta,1),
    call(set_flag_for_preds/2),
    put_structure(meta_pred/3,0),
    unify_local_value(y(1)),
    unify_local_value(y(2)),
    unify_local_value(y(0)),
    deallocate,
    execute(assertz/1),

label(1),
    trust_me_else_fail,
    put_list(1),
    unify_local_value(x(0)),
    unify_nil,
    put_atom('invalide directive meta_predicate/1 ~w',0),
    execute(error/2)]).


predicate('$handle_directive/3_$aux5'/2,665,static,private,monofile,local,[
    pragma_arity(3),
    get_current_choice(x(2)),
    try_me_else(1),
    allocate(2),
    get_variable(y(0),0),
    get_variable(y(1),1),
    put_atom(module_already_seen,0),
    put_atom(f,1),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(0),x(1)]),
    cut(x(2)),
    put_value(y(0),0),
    put_atom(false,1),
    call(check_module_name/2),
    put_atom(module_already_seen,0),
    put_atom(t,1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_atom(module,0),
    put_value(y(0),1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_value(y(1),0),
    put_value(y(0),1),
    deallocate,
    execute(add_module_export_info/2),

label(1),
    trust_me_else_fail,
    put_atom('directive module/2 already declared',0),
    put_nil(1),
    execute(error/2)]).


predicate('$handle_directive/3_$aux4'/0,651,static,private,monofile,local,[
    pragma_arity(1),
    get_current_choice(x(0)),
    try_me_else(1),
    allocate(1),
    get_variable(y(0),0),
    put_atom(singleton_warning,0),
    put_atom(off,1),
    call(current_prolog_flag/2),
    cut(y(0)),
    put_atom(singl_warn,0),
    put_atom(f,1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    deallocate,
    proceed,

label(1),
    trust_me_else_fail,
    put_atom(singl_warn,0),
    put_atom(t,1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    proceed]).


predicate('$handle_directive/3_$aux3'/1,621,static,private,monofile,local,[
    pragma_arity(2),
    get_current_choice(x(1)),
    try_me_else(1),
    put_atom(native_code,0),
    put_atom(f,2),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(0),x(2)]),
    cut(x(1)),
    put_atom('ensure_linked directive ignored in byte-code compilation mode',0),
    put_nil(1),
    execute(warn/2),

label(1),
    trust_me_else_fail,
    put_nil(1),
    call_c('Pl_Blt_Term_Neq',[fast_call,boolean],[x(0),x(1)]),
    execute(add_ensure_linked/1)]).


predicate('$handle_directive/3_$aux2'/1,613,static,private,monofile,local,[
    try_me_else(1),
    put_nil(1),
    call_c('Pl_Blt_Term_Eq',[fast_call,boolean],[x(0),x(1)]),
    put_atom(default_kind,0),
    put_atom(built_in_fd,1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    proceed,

label(1),
    trust_me_else_fail,
    put_nil(1),
    call_c('Pl_Blt_Term_Neq',[fast_call,boolean],[x(0),x(1)]),
    put_atom(bfd,1),
    execute(set_flag_for_preds/2)]).


predicate('$handle_directive/3_$aux1'/1,605,static,private,monofile,local,[
    try_me_else(1),
    put_nil(1),
    call_c('Pl_Blt_Term_Eq',[fast_call,boolean],[x(0),x(1)]),
    put_atom(default_kind,0),
    put_atom(built_in,1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    proceed,

label(1),
    trust_me_else_fail,
    put_nil(1),
    call_c('Pl_Blt_Term_Neq',[fast_call,boolean],[x(0),x(1)]),
    put_atom(bpl,1),
    execute(set_flag_for_preds/2)]).


directive(126,system,[
    put_integer(200,0),
    put_atom(fx,1),
    put_atom(?,2),
    execute(op/3)]).
