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


file_name('/home/diaz/GP/src/src/BipsPl/atom.pl').


predicate('$use_atom'/0,42,static,private,monofile,built_in,[
    proceed]).


predicate(atom_length/2,45,static,private,monofile,built_in,[
    call_c('Pl_Set_Bip_Name_Untagged_2',[by_value],[atom_length,2]),
    call_c('Pl_Atom_Length_2',[boolean],[x(0),x(1)]),
    proceed]).


predicate(atom_concat/3,52,static,private,monofile,built_in,[
    call_c('Pl_Set_Bip_Name_Untagged_2',[by_value],[atom_concat,3]),
    call_c('Pl_Atom_Concat_3',[boolean],[x(0),x(1),x(2)]),
    proceed]).


predicate('$atom_concat_alt'/0,56,static,private,monofile,built_in,[
    call_c('Pl_Atom_Concat_Alt_0',[boolean],[]),
    proceed]).


predicate(sub_atom/5,61,static,private,monofile,built_in,[
    call_c('Pl_Set_Bip_Name_Untagged_2',[by_value],[sub_atom,5]),
    call_c('Pl_Sub_Atom_5',[boolean],[x(0),x(1),x(2),x(3),x(4)]),
    proceed]).


predicate('$sub_atom_alt'/0,66,static,private,monofile,built_in,[
    call_c('Pl_Sub_Atom_Alt_0',[boolean],[]),
    proceed]).


predicate(atom_chars/2,72,static,private,monofile,built_in,[
    call_c('Pl_Set_Bip_Name_Untagged_2',[by_value],[atom_chars,2]),
    call_c('Pl_Atom_Chars_2',[boolean],[x(0),x(1)]),
    proceed]).


predicate(atom_codes/2,79,static,private,monofile,built_in,[
    call_c('Pl_Set_Bip_Name_Untagged_2',[by_value],[atom_codes,2]),
    call_c('Pl_Atom_Codes_2',[boolean],[x(0),x(1)]),
    proceed]).


predicate(number_atom/2,86,static,private,monofile,built_in,[
    call_c('Pl_Set_Bip_Name_Untagged_2',[by_value],[number_atom,2]),
    call_c('Pl_Number_Atom_2',[boolean],[x(0),x(1)]),
    proceed]).


predicate(number_chars/2,93,static,private,monofile,built_in,[
    call_c('Pl_Set_Bip_Name_Untagged_2',[by_value],[number_chars,2]),
    call_c('Pl_Number_Chars_2',[boolean],[x(0),x(1)]),
    proceed]).


predicate(number_codes/2,100,static,private,monofile,built_in,[
    call_c('Pl_Set_Bip_Name_Untagged_2',[by_value],[number_codes,2]),
    call_c('Pl_Number_Codes_2',[boolean],[x(0),x(1)]),
    proceed]).


predicate(char_code/2,107,static,private,monofile,built_in,[
    call_c('Pl_Set_Bip_Name_Untagged_2',[by_value],[char_code,2]),
    call_c('Pl_Char_Code_2',[boolean],[x(0),x(1)]),
    proceed]).


predicate(name/2,114,static,private,monofile,built_in,[
    call_c('Pl_Set_Bip_Name_Untagged_2',[by_value],[name,2]),
    call_c('Pl_Name_2',[boolean],[x(0),x(1)]),
    proceed]).


predicate(lower_upper/2,121,static,private,monofile,built_in,[
    call_c('Pl_Set_Bip_Name_Untagged_2',[by_value],[lower_upper,2]),
    call_c('Pl_Lower_Upper_2',[boolean],[x(0),x(1)]),
    proceed]).


predicate(current_atom/1,128,static,private,monofile,built_in,[
    call_c('Pl_Set_Bip_Name_Untagged_2',[by_value],[current_atom,1]),
    execute('$current_atom'/1)]).


predicate('$current_atom'/1,133,static,private,monofile,built_in,[
    put_integer(1,1),
    call_c('Pl_Current_Atom_2',[boolean],[x(0),x(1)]),
    proceed]).


predicate('$current_atom_any'/1,136,static,private,monofile,built_in,[
    put_integer(0,1),
    call_c('Pl_Current_Atom_2',[boolean],[x(0),x(1)]),
    proceed]).


predicate('$current_atom_alt'/0,140,static,private,monofile,built_in,[
    call_c('Pl_Current_Atom_Alt_0',[boolean],[]),
    proceed]).


predicate(atom_property/2,147,static,private,monofile,built_in,[
    allocate(2),
    get_variable(y(0),0),
    get_variable(y(1),1),
    call_c('Pl_Set_Bip_Name_Untagged_2',[by_value],[atom_property,2]),
    put_value(y(0),0),
    call('$current_atom'/1),
    put_value(y(0),0),
    put_value(y(1),1),
    deallocate,
    execute('$atom_property1'/2)]).


predicate('$atom_property_any'/2,152,static,private,monofile,built_in,[
    allocate(2),
    get_variable(y(0),0),
    get_variable(y(1),1),
    put_value(y(0),0),
    call('$current_atom_any'/1),
    put_value(y(0),0),
    put_value(y(1),1),
    deallocate,
    execute('$atom_property1'/2)]).


predicate('$atom_property1'/2,159,static,private,monofile,built_in,[
    pragma_arity(3),
    get_current_choice(x(2)),
    allocate(3),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    put_value(y(1),0),
    call('$check_atom_prop'/1),
    cut(y(2)),
    put_value(y(0),0),
    put_variable(x(2),1),
    put_variable(x(3),7),
    put_variable(x(4),8),
    put_variable(x(5),9),
    put_variable(x(6),10),
    call_c('Pl_Atom_Property_6',[],[x(0),x(1),x(7),x(8),x(9),x(10)]),
    put_value(y(1),0),
    put_value(y(0),1),
    deallocate,
    execute('$atom_property2'/7)]).


predicate('$check_atom_prop'/1,166,static,private,monofile,built_in,[
    try_me_else(1),
    call_c('Pl_Blt_Var',[fast_call,boolean],[x(0)]),
    proceed,

label(1),
    retry_me_else(18),
    switch_on_term(4,2,fail,fail,3),

label(2),
    switch_on_atom([(prefix_op,9),(infix_op,11),(postfix_op,13),(needs_quotes,15),(needs_scan,17)]),

label(3),
    switch_on_structure([(length/1,5),(hash/1,7)]),

label(4),
    try_me_else(6),

label(5),
    get_structure(length/1,0),
    unify_void(1),
    proceed,

label(6),
    retry_me_else(8),

label(7),
    get_structure(hash/1,0),
    unify_void(1),
    proceed,

label(8),
    retry_me_else(10),

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

label(10),
    retry_me_else(12),

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

label(12),
    retry_me_else(14),

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

label(14),
    retry_me_else(16),

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

label(16),
    trust_me_else_fail,

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

label(18),
    trust_me_else_fail,
    put_value(x(0),1),
    put_atom(atom_property,0),
    execute('$pl_err_domain'/2)]).


predicate('$atom_property2'/7,189,static,private,monofile,built_in,[
    switch_on_term(3,1,fail,fail,2),

label(1),
    switch_on_atom([(prefix_op,8),(infix_op,10),(postfix_op,12),(needs_quotes,14),(needs_scan,16)]),

label(2),
    switch_on_structure([(length/1,4),(hash/1,6)]),

label(3),
    try_me_else(5),

label(4),
    get_structure(length/1,0),
    unify_variable(x(0)),
    call_c('Pl_Atom_Length_2',[boolean],[x(1),x(0)]),
    proceed,

label(5),
    retry_me_else(7),

label(6),
    get_structure(hash/1,0),
    unify_variable(x(0)),
    call_c('Pl_Term_Hash_2',[boolean],[x(1),x(0)]),
    proceed,

label(7),
    retry_me_else(9),

label(8),
    get_atom(prefix_op,0),
    get_integer(1,2),
    proceed,

label(9),
    retry_me_else(11),

label(10),
    get_atom(infix_op,0),
    get_integer(1,3),
    proceed,

label(11),
    retry_me_else(13),

label(12),
    get_atom(postfix_op,0),
    get_integer(1,4),
    proceed,

label(13),
    retry_me_else(15),

label(14),
    get_atom(needs_quotes,0),
    get_integer(1,5),
    proceed,

label(15),
    trust_me_else_fail,

label(16),
    get_atom(needs_scan,0),
    get_integer(1,6),
    proceed]).


predicate(new_atom/1,208,static,private,monofile,built_in,[
    call_c('Pl_Set_Bip_Name_Untagged_2',[by_value],[new_atom,1]),
    put_atom(atom_,1),
    call_c('Pl_New_Atom_2',[boolean],[x(1),x(0)]),
    proceed]).


predicate(new_atom/2,212,static,private,monofile,built_in,[
    call_c('Pl_Set_Bip_Name_Untagged_2',[by_value],[new_atom,2]),
    call_c('Pl_New_Atom_2',[boolean],[x(0),x(1)]),
    proceed]).
