/****************************************************************************
Prolog to Wam Compiler                     INRIA Rocquencourt - ChLoE Project
Version 2.21                                               Daniel Diaz - 1994

File : call.c
Main : no_main
****************************************************************************/

#define DEBUG_LEVEL    0

#include "wam_engine.h"

#include "call.h"
#include "call.usr"


#define ASCII_PRED "otherwise"
#define PRED       X6F7468657277697365
#define ARITY      0

Begin_Public_Pred
      proceed

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "true"
#define PRED       X74727565
#define ARITY      0

Begin_Public_Pred
      proceed

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "false"
#define PRED       X66616C7365
#define ARITY      0

Begin_Public_Pred
      fail

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "fail"
#define PRED       X6661696C
#define ARITY      0

Begin_Public_Pred
      fail

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "repeat"
#define PRED       X726570656174
#define ARITY      0

Begin_Public_Pred
      try_me_else(1)
      proceed

label(1)
      trust_me_else_fail
      execute(Pred_Name(X726570656174,0),1,"repeat",0)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "for"
#define PRED       X666F72
#define ARITY      3

Begin_Public_Pred
      try_me_else(1)
      get_x_value(0,1)
      math_load_x_value(0,0)
      math_load_x_value(2,2)
      builtin_2(lte,0,2)
      proceed

label(1)
      trust_me_else_fail
      math_load_x_value(1,1)
      math_load_x_value(2,2)
      builtin_2(lt,1,2)
      math_load_x_value(1,1)
      function_1(inc,1,1)
      execute(Pred_Name(X666F72,3),1,"for",3)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "halt"
#define PRED       X68616C74
#define ARITY      0

Begin_Public_Pred
      put_integer(0,0)
      execute(Pred_Name(X68616C74,1),1,"halt",1)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "halt"
#define PRED       X68616C74
#define ARITY      1

Begin_Public_Pred
      pragma_c(Halt_1)
      proceed

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "halt_or_else"
#define PRED       X68616C745F6F725F656C7365
#define ARITY      1

Begin_Public_Pred
      get_x_variable(1,0)
      put_integer(0,0)
      execute(Pred_Name(X68616C745F6F725F656C7365,2),1,"halt_or_else",2)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "halt_or_else"
#define PRED       X68616C745F6F725F656C7365
#define ARITY      2

Begin_Public_Pred
      execute(Pred_Name(X68616C745F6F725F656C73655F2461757831,2),1,"halt_or_else_$aux1",2)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "halt_or_else_$aux1"
#define PRED       X68616C745F6F725F656C73655F2461757831
#define ARITY      2

Begin_Private_Pred
      try_me_else(1)
      put_constant(X24746F705F6C6576656C,2,"$top_level")
      put_integer(0,1)
      builtin_2(g_read,2,1)
      neck_cut
      execute(Pred_Name(X68616C74,1),1,"halt",1)

label(1)
      trust_me_else_fail
      put_x_value(1,0)
      execute(Pred_Name(X63616C6C,1),1,"call",1)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "abort"
#define PRED       X61626F7274
#define ARITY      0

Begin_Public_Pred
      allocate(0)
      call(Pred_Name(X6E6F6465627567,0),0,1,"nodebug",0)          /* begin sub 1 */
      put_integer(1,0)
      put_structure(X7468726F77,1,1,"throw")
      unify_constant(X61626F7274,"abort")
      deallocate
      execute(Pred_Name(X68616C745F6F725F656C7365,2),1,"halt_or_else",2)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "dbg_exec"
#define PRED       X6462675F65786563
#define ARITY      0

Begin_Public_Pred
      allocate(2)
      get_y_bc_reg(0)
      put_constant(X7C203A2D,0,"| :-")
      call(Pred_Name(X7772697465,1),0,1,"write",1)          /* begin sub 1 */
      put_y_variable(1,0)
      call(Pred_Name(X72656164,1),0,2,"read",1)          /* begin sub 2 */
      put_y_value(1,0)
      call(Pred_Name(X6462675F657865635F2461757832,1),1,3,"dbg_exec_$aux2",1)          /* begin sub 3 */
      cut_y(0)
      deallocate
      proceed

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "dbg_exec_$aux2"
#define PRED       X6462675F657865635F2461757832
#define ARITY      1

Begin_Private_Pred
      try_me_else(1)
      put_constant(X656E645F6F665F66696C65,1,"end_of_file")
      builtin_2(term_eq,0,1)
      proceed

label(1)
      retry_me_else(2)
      execute(Pred_Name(X63616C6C,1),1,"call",1)

label(2)
      trust_me_else_fail
      get_x_variable(2,0)
      put_constant(X7B5761726E696E673A207E77202D20676F616C206661696C65647D7E6E,0,"{Warning: ~w - goal failed}~n")
      put_list(1)
      unify_x_local_value(2)
      unify_nil
      execute(Pred_Name(X666F726D617461,2),0,"formata",2)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "^"
#define PRED       X5E
#define ARITY      2

Begin_Public_Pred
      put_x_value(1,0)
      execute(Pred_Name(X63616C6C,1),1,"call",1)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "call"
#define PRED       X63616C6C
#define ARITY      1

Begin_Public_Pred
      put_integer(CMN,2)
      get_x_bc_reg(1)
      execute(Pred_Name(X63616C6C31,3),1,"call1",3)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "call"
#define PRED       X63616C6C
#define ARITY      2

Begin_Public_Pred
      get_x_variable(2,1)
      get_x_bc_reg(1)
      execute(Pred_Name(X63616C6C31,3),1,"call1",3)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "call1"
#define PRED       X63616C6C31
#define ARITY      3

Begin_Private_Pred
      try_me_else(1)
      allocate(0)
      builtin_1(var,0)
      neck_cut
      put_constant(X4572726F723A207661726961626C6520676976656E20617320676F616C,0,"Error: variable given as goal")
      call(Pred_Name(X7772697465,1),0,1,"write",1)          /* begin sub 1 */
      call(Pred_Name(X6E6C,0),0,2,"nl",0)          /* begin sub 2 */
      fail

label(1)
      retry_me_else(16)
      switch_on_term(G_label(4),G_label(2),fail,fail,G_label(3))

label(2)
      switch_on_constant(2,"[(true,5),(!,11)]")

label(3)
      switch_on_structure(3,"[((,)/2,7),((;)/2,9),((->)/2,13),((\+)/1,15)]")

label(4)
      try_me_else(6)

label(5)
      get_constant(X74727565,0,"true")
      neck_cut
      proceed

label(6)
      retry_me_else(8)

label(7)
      allocate(3)
      get_structure(X2C,2,0,",")
      unify_x_variable(0)
      unify_y_variable(2)
      get_y_variable(1,1)
      get_y_variable(0,2)
      neck_cut
      put_y_value(1,1)
      put_y_value(0,2)
      call(Pred_Name(X63616C6C31,3),1,3,"call1",3)          /* begin sub 3 */
      put_y_value(2,0)
      put_y_value(1,1)
      put_y_value(0,2)
      deallocate
      execute(Pred_Name(X63616C6C31,3),1,"call1",3)

label(8)
      retry_me_else(10)

label(9)
      get_structure(X3B,2,0,";")
      unify_x_variable(0)
      unify_x_variable(5)
      get_x_variable(4,1)
      get_x_variable(3,2)
      neck_cut
      pragma_c(Debug_Call("call_or_$aux",4,1);)
      put_x_value(5,1)
      put_x_value(4,2)
      execute(Pred_Name(X63616C6C5F6F72,4),1,"call_or",4)

label(10)
      retry_me_else(12)

label(11)
      get_constant(X21,0,"!")
      cut_x(1)
      proceed

label(12)
      retry_me_else(14)

label(13)
      allocate(4)
      get_structure(X2D3E,2,0,"->")
      unify_x_variable(0)
      unify_y_variable(2)
      get_y_variable(1,1)
      get_y_variable(0,2)
      get_y_bc_reg(3)
      cut_y(3)
      put_y_value(0,1)
      call(Pred_Name(X63616C6C,2),1,4,"call",2)          /* begin sub 4 */
      cut_y(3)
      put_y_value(2,0)
      put_y_value(1,1)
      put_y_value(0,2)
      deallocate
      execute(Pred_Name(X63616C6C31,3),1,"call1",3)

label(14)
      trust_me_else_fail

label(15)
      get_structure(X5C2B,1,0,"\\+")
      unify_x_variable(0)
      neck_cut
      put_x_value(2,1)
      get_x_bc_reg(2)
      execute(Pred_Name(X63616C6C315F2461757833,3),1,"call1_$aux3",3)

label(16)
      trust_me_else_fail
      pragma_c(Call1_3)
      proceed

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "call1_$aux3"
#define PRED       X63616C6C315F2461757833
#define ARITY      3

Begin_Private_Pred
      try_me_else(1)
      allocate(1)
      get_y_variable(0,2)
      call(Pred_Name(X63616C6C,2),1,1,"call",2)          /* begin sub 1 */
      cut_y(0)
      fail

label(1)
      trust_me_else_fail
      proceed

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "call_or"
#define PRED       X63616C6C5F6F72
#define ARITY      4

Begin_Private_Pred
      try_me_else(2)
      switch_on_term(G_label(1),fail,fail,fail,G_label(1))

label(1)
      get_structure(X2D3E,2,0,"->")
      unify_x_variable(0)
      unify_x_variable(7)
      get_x_variable(6,1)
      get_x_variable(5,2)
      get_x_variable(4,3)
      neck_cut
      put_x_value(7,1)
      put_x_value(6,2)
      put_x_value(5,3)
      get_x_bc_reg(5)
      execute(Pred_Name(X63616C6C5F6F725F2461757834,6),1,"call_or_$aux4",6)

label(2)
      retry_me_else(3)
      put_x_value(2,1)
      put_x_value(3,2)
      execute(Pred_Name(X63616C6C31,3),1,"call1",3)

label(3)
      trust_me_else_fail
      pragma_c(Debug_Has_Failed_Redo();)
      put_x_value(1,0)
      put_x_value(2,1)
      put_x_value(3,2)
      execute(Pred_Name(X63616C6C31,3),1,"call1",3)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "call_or_$aux4"
#define PRED       X63616C6C5F6F725F2461757834
#define ARITY      6

Begin_Private_Pred
      try_me_else(1)
      allocate(4)
      get_y_variable(2,1)
      get_y_variable(1,3)
      get_y_variable(0,4)
      get_y_variable(3,5)
      put_y_value(0,1)
      call(Pred_Name(X63616C6C,2),1,1,"call",2)          /* begin sub 1 */
      cut_y(3)
      put_y_value(2,0)
      put_y_value(1,1)
      put_y_value(0,2)
      deallocate
      execute(Pred_Name(X63616C6C31,3),1,"call1",3)

label(1)
      trust_me_else_fail
      pragma_c(Debug_Has_Failed_Redo();)
      put_x_value(2,0)
      put_x_value(3,1)
      put_x_value(4,2)
      execute(Pred_Name(X63616C6C31,3),1,"call1",3)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "catch"
#define PRED       X6361746368
#define ARITY      3

Begin_Public_Pred
      put_integer(CMN,3)
      execute(Pred_Name(X6361746368,4),1,"catch",4)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "catch"
#define PRED       X6361746368
#define ARITY      4

Begin_Public_Pred
      put_constant(X2462616C6C5F,5,"$ball_")
      put_constant(X246E6F5F62616C6C5F,4,"$no_ball_")
      builtin_2(g_assign,5,4)
      put_constant(X2468616E646C65725F,6,"$handler_")
      put_x_variable(4,5)
      builtin_2(g_read,6,5)
      execute(Pred_Name(X636174636831,5),1,"catch1",5)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "catch1"
#define PRED       X636174636831
#define ARITY      5

Begin_Private_Pred
      try_me_else(1)
      allocate(6)
      get_y_variable(5,0)
      get_y_variable(4,3)
      get_y_variable(0,4)
      get_y_bc_reg(3)
      put_y_variable(2,0)
      call(Pred_Name(X6765745F63757272656E745F42,1),1,1,"get_current_B",1)          /* begin sub 1 */
      put_constant(X2468616E646C65725F,1,"$handler_")
      put_y_unsafe_value(2,0)
      builtin_2(g_assign,1,0)
      put_y_value(5,0)
      put_y_value(4,1)
      call(Pred_Name(X63616C6C,2),1,2,"call",2)          /* begin sub 2 */
      put_y_variable(1,0)
      call(Pred_Name(X6765745F63757272656E745F42,1),1,3,"get_current_B",1)          /* begin sub 3 */
      put_y_value(3,0)
      put_y_value(2,1)
      put_y_value(1,2)
      call(Pred_Name(X6361746368315F2461757835,3),1,4,"catch1_$aux5",3)          /* begin sub 4 */
      put_constant(X2468616E646C65725F,1,"$handler_")
      put_y_value(0,0)
      builtin_2(g_assign,1,0)
      deallocate
      proceed

label(1)
      trust_me_else_fail
      get_x_variable(0,1)
      get_x_variable(1,2)
      get_x_variable(2,3)
      put_constant(X2468616E646C65725F,3,"$handler_")
      builtin_2(g_assign,3,4)
      put_constant(X2462616C6C5F,5,"$ball_")
      put_x_variable(3,4)
      builtin_2(g_read,5,4)
      put_constant(X246E6F5F62616C6C5F,4,"$no_ball_")
      builtin_2(term_neq,3,4)
      execute(Pred_Name(X6361746368315F2461757836,4),1,"catch1_$aux6",4)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "catch1_$aux5"
#define PRED       X6361746368315F2461757835
#define ARITY      3

Begin_Private_Pred
      try_me_else(1)
      math_load_x_value(2,2)
      math_load_x_value(1,1)
      builtin_2(gt,2,1)
      neck_cut
      put_x_value(1,0)
      execute(Pred_Name(X747261696C5F68616E646C6572,1),1,"trail_handler",1)

label(1)
      trust_me_else_fail
      cut_x(0)
      proceed

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "catch1_$aux6"
#define PRED       X6361746368315F2461757836
#define ARITY      4

Begin_Private_Pred
      try_me_else(1)
      get_x_value(3,0)
      neck_cut
      put_constant(X2462616C6C5F,3,"$ball_")
      put_constant(X246E6F5F62616C6C5F,0,"$no_ball_")
      builtin_2(g_assign,3,0)
      put_x_value(1,0)
      put_x_value(2,1)
      execute(Pred_Name(X63616C6C,2),1,"call",2)

label(1)
      trust_me_else_fail
      put_x_value(3,0)
      execute(Pred_Name(X756E77696E64,1),1,"unwind",1)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "trail_handler"
#define PRED       X747261696C5F68616E646C6572
#define ARITY      1

Begin_Private_Pred
      try_me_else(1)
      proceed

label(1)
      trust_me_else_fail
      put_constant(X2468616E646C65725F,1,"$handler_")
      builtin_2(g_assign,1,0)
      fail

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "throw"
#define PRED       X7468726F77
#define ARITY      1

Begin_Public_Pred
      put_constant(X2462616C6C5F,1,"$ball_")
      builtin_2(g_assign,1,0)
      execute(Pred_Name(X756E77696E64,1),1,"unwind",1)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "unwind"
#define PRED       X756E77696E64
#define ARITY      1

Begin_Private_Pred
      put_constant(X2468616E646C65725F,3,"$handler_")
      put_x_variable(1,2)
      builtin_2(g_read,3,2)
      execute(Pred_Name(X756E77696E645F2461757837,2),1,"unwind_$aux7",2)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "unwind_$aux7"
#define PRED       X756E77696E645F2461757837
#define ARITY      2

Begin_Private_Pred
      try_me_else(1)
      allocate(0)
      get_x_variable(3,0)
      math_load_x_value(1,1)
      put_integer(0,0)
      builtin_2(eq,1,0)
      neck_cut
      put_constant(X7E6E73797374656D206572726F72202D2063616E6E6F74206361746368207E777E6E,0,"~nsystem error - cannot catch ~w~n")
      put_structure(X7468726F77,1,2,"throw")
      unify_x_local_value(3)
      put_list(1)
      unify_x_value(2)
      unify_nil
      call(Pred_Name(X666F726D617461,2),0,1,"formata",2)          /* begin sub 1 */
      put_integer(2,0)
      put_constant(X61626F7274,1,"abort")
      deallocate
      execute(Pred_Name(X68616C745F6F725F656C7365,2),1,"halt_or_else",2)

label(1)
      trust_me_else_fail
      allocate(0)
      put_x_value(1,0)
      call(Pred_Name(X7365745F63757272656E745F42,1),1,2,"set_current_B",1)          /* begin sub 2 */
      fail

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "catch_signal"
#define PRED       X63617463685F7369676E616C
#define ARITY      1

Begin_Public_Pred
      pragma_c(Catch_Signal_1)
      proceed

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "signal_handler"
#define PRED       X7369676E616C5F68616E646C6572
#define ARITY      1

Begin_Public_Pred
      get_x_variable(1,0)
      put_structure(X7369676E616C,1,0,"signal")
      unify_x_local_value(1)
      execute(Pred_Name(X7468726F77,1),1,"throw",1)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "top_level"
#define PRED       X746F705F6C6576656C
#define ARITY      2

Begin_Public_Pred
      allocate(3)
      get_y_variable(1,1)
      put_y_variable(2,1)
      get_integer(CMN,1)
      call(Pred_Name(X746F705F6C6576656C5F2461757838,1),1,1,"top_level_$aux8",1)          /* begin sub 1 */
      put_constant(X24746F705F6C6576656C,1,"$top_level")
      put_y_variable(0,0)
      builtin_2(g_read,1,0)
      math_load_y_value(0,0)
      function_1(inc,0,0)
      put_constant(X24746F705F6C6576656C,1,"$top_level")
      builtin_2(g_assign,1,0)
      put_y_value(2,0)
      put_y_value(1,1)
      call(Pred_Name(X746F705F6C6576656C31,2),1,2,"top_level1",2)          /* begin sub 2 */
      put_constant(X24746F705F6C6576656C,1,"$top_level")
      put_y_unsafe_value(0,0)
      builtin_2(g_assign,1,0)
      deallocate
      proceed

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "top_level_$aux8"
#define PRED       X746F705F6C6576656C5F2461757838
#define ARITY      1

Begin_Private_Pred
      try_me_else(1)
      put_constant(X74727565,1,"true")
      builtin_2(term_eq,0,1)
      neck_cut
      execute(Pred_Name(X76657273696F6E,0),0,"version",0)

label(1)
      trust_me_else_fail
      proceed

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "top_level1"
#define PRED       X746F705F6C6576656C31
#define ARITY      2

Begin_Private_Pred
      get_x_variable(3,0)
      get_x_variable(4,1)
      put_structure(X746F705F6C6576656C32,1,0,"top_level2")
      unify_x_local_value(3)
      put_x_variable(5,1)
      put_structure(X2461667465725F7468726F77,3,2,"$after_throw")
      unify_x_value(5)
      unify_x_local_value(3)
      unify_x_local_value(4)
      execute(Pred_Name(X6361746368,4),1,"catch",4)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "$after_throw"
#define PRED       X2461667465725F7468726F77
#define ARITY      3

Begin_Public_Pred
      execute(Pred_Name(X2461667465725F7468726F775F2461757839,3),1,"$after_throw_$aux9",3)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "$after_throw_$aux9"
#define PRED       X2461667465725F7468726F775F2461757839
#define ARITY      3

Begin_Private_Pred
      try_me_else(1)
      allocate(3)
      get_y_variable(2,0)
      get_y_variable(1,1)
      get_y_variable(0,2)
      put_y_value(0,1)
      put_constant(X74727565,0,"true")
      builtin_2(term_eq,1,0)
      neck_cut
      call(Pred_Name(X6E6F6465627567,0),0,1,"nodebug",0)          /* begin sub 1 */
      call(Pred_Name(X7365656E,0),0,2,"seen",0)          /* begin sub 2 */
      put_constant(X7E6E7B7E777D7E6E,0,"~n{~w}~n")
      put_list(1)
      unify_y_local_value(2)
      unify_nil
      call(Pred_Name(X666F726D617461,2),0,3,"formata",2)          /* begin sub 3 */
      put_y_value(1,0)
      put_y_value(0,1)
      deallocate
      execute(Pred_Name(X746F705F6C6576656C31,2),1,"top_level1",2)

label(1)
      trust_me_else_fail
      put_constant(X24746F705F6C6576656C,3,"$top_level")
      put_x_variable(1,2)
      builtin_2(g_read,3,2)
      math_load_x_value(1,1)
      function_1(dec,1,1)
      put_constant(X24746F705F6C6576656C,2,"$top_level")
      builtin_2(g_assign,2,1)
      execute(Pred_Name(X7468726F77,1),1,"throw",1)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "top_level2"
#define PRED       X746F705F6C6576656C32
#define ARITY      1

Begin_Public_Pred
      allocate(4)
      get_y_variable(3,0)
      get_y_bc_reg(2)
      call(Pred_Name(X726570656174,0),1,1,"repeat",0)          /* begin sub 1 */
      call(Pred_Name(X77726974655F64656275675F696E64696361746F72,0),1,2,"write_debug_indicator",0)          /* begin sub 2 */
      put_constant(X7C203F2D20,0,"| ?- ")
      call(Pred_Name(X7772697465,1),0,3,"write",1)          /* begin sub 3 */
      put_y_variable(1,0)
      put_structure(X7661726961626C655F6E616D6573,1,2,"variable_names")
      unify_y_variable(0)
      put_list(1)
      unify_x_value(2)
      unify_nil
      call(Pred_Name(X726561645F7465726D,2),0,4,"read_term",2)          /* begin sub 4 */
      put_y_value(3,0)
      put_y_unsafe_value(2,1)
      put_y_unsafe_value(1,2)
      put_y_value(0,3)
      deallocate
      execute(Pred_Name(X746F705F6C6576656C325F246175783130,4),1,"top_level2_$aux10",4)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "top_level2_$aux10"
#define PRED       X746F705F6C6576656C325F246175783130
#define ARITY      4

Begin_Private_Pred
      try_me_else(1)
      allocate(1)
      get_y_variable(0,1)
      put_constant(X656E645F6F665F66696C65,0,"end_of_file")
      builtin_2(term_eq,2,0)
      neck_cut
      call(Pred_Name(X6E6F6465627567,0),0,1,"nodebug",0)          /* begin sub 1 */
      call(Pred_Name(X6E6C,0),0,2,"nl",0)          /* begin sub 2 */
      cut_y(0)
      deallocate
      proceed

label(1)
      trust_me_else_fail
      allocate(7)
      get_y_variable(6,0)
      get_y_variable(5,2)
      get_y_variable(4,3)
      put_y_variable(2,0)
      call(Pred_Name(X63707574696D65,1),0,3,"cputime",1)          /* begin sub 3 */
      put_y_value(6,0)
      put_y_value(5,1)
      put_y_value(4,2)
      put_y_variable(1,3)
      call(Pred_Name(X746F705F6C6576656C325F246175783131,4),1,4,"top_level2_$aux11",4)          /* begin sub 4 */
      put_y_variable(3,0)
      call(Pred_Name(X63707574696D65,1),0,5,"cputime",1)          /* begin sub 5 */
      math_load_y_value(3,1)
      math_load_y_value(2,0)
      function_2(sub,3,1,0)
      put_constant(X7E6E287E64206D7329207E617E6E,0,"~n(~d ms) ~a~n")
      put_list(2)
      unify_y_local_value(1)
      unify_nil
      put_list(1)
      unify_x_value(3)
      unify_x_value(2)
      call(Pred_Name(X666F726D617461,2),0,6,"formata",2)          /* begin sub 6 */
      put_y_variable(0,0)
      call(Pred_Name(X64656275675F6D6F6465,1),0,7,"debug_mode",1)          /* begin sub 7 */
      put_y_value(0,0)
      call(Pred_Name(X64656275675F6D6F6465,1),0,8,"debug_mode",1)          /* begin sub 8 */
      fail

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "top_level2_$aux11"
#define PRED       X746F705F6C6576656C325F246175783131
#define ARITY      4

Begin_Private_Pred
      try_me_else(1)
      allocate(2)
      get_x_variable(4,0)
      get_y_variable(0,3)
      get_y_bc_reg(1)
      put_x_value(1,0)
      put_x_value(2,1)
      put_x_value(4,2)
      call(Pred_Name(X65786563,3),1,1,"exec",3)          /* begin sub 1 */
      cut_y(1)
      put_y_value(0,0)
      get_constant(X796573,0,"yes")
      deallocate
      proceed

label(1)
      trust_me_else_fail
      get_constant(X6E6F,3,"no")
      proceed

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "write_debug_indicator"
#define PRED       X77726974655F64656275675F696E64696361746F72
#define ARITY      0

Begin_Private_Pred
      allocate(1)
      put_y_variable(0,0)
      call(Pred_Name(X64656275675F6D6F6465,1),0,1,"debug_mode",1)          /* begin sub 1 */
      put_y_unsafe_value(0,0)
      deallocate
      execute(Pred_Name(X77726974655F64656275675F696E64696361746F72,1),1,"write_debug_indicator",1)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "write_debug_indicator"
#define PRED       X77726974655F64656275675F696E64696361746F72
#define ARITY      1

Begin_Private_Pred
      switch_on_term(G_label(2),G_label(1),fail,fail,fail)

label(1)
      switch_on_constant(1,"[(debug,3),(trace,5),(nodebug,7)]")

label(2)
      try_me_else(4)

label(3)
      allocate(0)
      get_constant(X6465627567,0,"debug")
      put_constant(X7B64656275677D,0,"{debug}")
      call(Pred_Name(X7772697465,1),0,1,"write",1)          /* begin sub 1 */
      deallocate
      execute(Pred_Name(X6E6C,0),0,"nl",0)

label(4)
      retry_me_else(6)

label(5)
      allocate(0)
      get_constant(X7472616365,0,"trace")
      put_constant(X7B74726163657D,0,"{trace}")
      call(Pred_Name(X7772697465,1),0,2,"write",1)          /* begin sub 2 */
      deallocate
      execute(Pred_Name(X6E6C,0),0,"nl",0)

label(6)
      trust_me_else_fail

label(7)
      get_constant(X6E6F6465627567,0,"nodebug")
      proceed

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "exec"
#define PRED       X65786563
#define ARITY      3

Begin_Private_Pred
      allocate(5)
      get_y_variable(4,0)
      get_y_variable(2,1)
      get_y_variable(3,2)
      put_y_variable(1,0)
      call(Pred_Name(X6765745F63757272656E745F42,1),1,1,"get_current_B",1)          /* begin sub 1 */
      put_y_value(4,0)
      put_y_value(3,1)
      call(Pred_Name(X63616C6C,2),1,2,"call",2)          /* begin sub 2 */
      put_y_variable(0,0)
      call(Pred_Name(X6765745F63757272656E745F42,1),1,3,"get_current_B",1)          /* begin sub 3 */
      put_y_value(2,0)
      call(Pred_Name(X77726974655F736F6C7574696F6E,1),1,4,"write_solution",1)          /* begin sub 4 */
      put_y_unsafe_value(1,0)
      put_y_unsafe_value(0,1)
      deallocate
      execute(Pred_Name(X657865635F246175783132,2),1,"exec_$aux12",2)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "exec_$aux12"
#define PRED       X657865635F246175783132
#define ARITY      2

Begin_Private_Pred
      try_me_else(1)
      allocate(1)
      math_load_x_value(1,1)
      math_load_x_value(0,0)
      builtin_2(gt,1,0)
      neck_cut
      put_constant(X203F20,0," ? ")
      call(Pred_Name(X7772697465,1),0,1,"write",1)          /* begin sub 1 */
      put_y_variable(0,0)
      call(Pred_Name(X726561645F636F6D6D616E64,1),1,2,"read_command",1)          /* begin sub 2 */
      put_y_unsafe_value(0,1)
      put_integer(10,0)
      builtin_2(term_eq,1,0)
      deallocate
      proceed

label(1)
      trust_me_else_fail
      proceed

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "read_command"
#define PRED       X726561645F636F6D6D616E64
#define ARITY      1

Begin_Private_Pred
      allocate(2)
      get_y_variable(1,0)
      put_y_variable(0,0)
      call(Pred_Name(X67657430,1),0,1,"get0",1)          /* begin sub 1 */
      put_y_value(0,0)
      call(Pred_Name(X736B69705F756E74696C5F72657475726E,1),1,2,"skip_until_return",1)          /* begin sub 2 */
      put_y_value(1,0)
      put_y_unsafe_value(0,1)
      deallocate
      execute(Pred_Name(X726561645F636F6D6D616E645F246175783133,2),1,"read_command_$aux13",2)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "read_command_$aux13"
#define PRED       X726561645F636F6D6D616E645F246175783133
#define ARITY      2

Begin_Private_Pred
      try_me_else(1)
      put_integer(10,2)
      builtin_2(term_eq,1,2)
      neck_cut
      get_x_value(1,0)
      proceed

label(1)
      retry_me_else(2)
      allocate(1)
      get_y_variable(0,0)
      put_integer(59,0)
      builtin_2(term_neq,1,0)
      neck_cut
      put_constant(X416374696F6E2028223B2220666F72206D6F72652063686F696365732C20,0,"Action (\";\" for more choices, ")
      call(Pred_Name(X7772697465,1),0,1,"write",1)          /* begin sub 1 */
      put_constant(X6F7468657277697365203C72657475726E3E293A20,0,"otherwise <return>): ")
      call(Pred_Name(X7772697465,1),0,2,"write",1)          /* begin sub 2 */
      put_y_value(0,0)
      deallocate
      execute(Pred_Name(X726561645F636F6D6D616E64,1),1,"read_command",1)

label(2)
      trust_me_else_fail
      get_x_value(1,0)
      proceed

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "skip_until_return"
#define PRED       X736B69705F756E74696C5F72657475726E
#define ARITY      1

Begin_Private_Pred
      execute(Pred_Name(X736B69705F756E74696C5F72657475726E5F246175783134,1),1,"skip_until_return_$aux14",1)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "skip_until_return_$aux14"
#define PRED       X736B69705F756E74696C5F72657475726E5F246175783134
#define ARITY      1

Begin_Private_Pred
      try_me_else(1)
      put_integer(10,1)
      builtin_2(term_eq,0,1)
      neck_cut
      proceed

label(1)
      trust_me_else_fail
      allocate(1)
      put_y_variable(0,0)
      call(Pred_Name(X67657430,1),0,1,"get0",1)          /* begin sub 1 */
      put_y_unsafe_value(0,0)
      deallocate
      execute(Pred_Name(X736B69705F756E74696C5F72657475726E,1),1,"skip_until_return",1)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "write_solution"
#define PRED       X77726974655F736F6C7574696F6E
#define ARITY      1

Begin_Private_Pred
      switch_on_term(G_label(1),G_label(2),fail,G_label(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_x_variable(0)
      unify_y_variable(0)
      get_structure(X3D,2,0,"=")
      unify_x_variable(2)
      unify_y_variable(1)
      put_constant(X7E6E7E61203D20,0,"~n~a = ")
      put_list(1)
      unify_x_value(2)
      unify_nil
      call(Pred_Name(X666F726D617461,2),0,1,"formata",2)          /* begin sub 1 */
      put_y_value(1,0)
      put_structure(X71756F746564,1,3,"quoted")
      unify_constant(X74727565,"true")
      put_structure(X6E756D62657276617273,1,1,"numbervars")
      unify_constant(X66616C7365,"false")
      put_list(2)
      unify_x_value(1)
      unify_nil
      put_list(1)
      unify_x_value(3)
      unify_x_value(2)
      call(Pred_Name(X77726974655F7465726D,2),0,2,"write_term",2)          /* begin sub 2 */
      put_y_value(0,0)
      deallocate
      execute(Pred_Name(X77726974655F736F6C7574696F6E,1),1,"write_solution",1)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "get_current_B"
#define PRED       X6765745F63757272656E745F42
#define ARITY      1

Begin_Public_Pred
      pragma_c(Get_Current_B_1)
      proceed

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "set_current_B"
#define PRED       X7365745F63757272656E745F42
#define ARITY      1

Begin_Public_Pred
      pragma_c(Set_Current_B_1)
      proceed

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "$exe_1"
#define PRED       X246578655F31
#define ARITY      0

Begin_Private_Pred
      allocate(1)
      get_y_bc_reg(0)
      put_integer(2,0)
      call(Pred_Name(X63617463685F7369676E616C,1),1,1,"catch_signal",1)          /* begin sub 1 */
      put_integer(3,0)
      call(Pred_Name(X63617463685F7369676E616C,1),1,2,"catch_signal",1)          /* begin sub 2 */
      cut_y(0)
      deallocate
      proceed

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY


Begin_Init_Tables(call)

 Define_Atom(X5B5D,"[]")
 Define_Atom(X6F7468657277697365,"otherwise")
 Define_Atom(X74727565,"true")
 Define_Atom(X66616C7365,"false")
 Define_Atom(X6661696C,"fail")
 Define_Atom(X726570656174,"repeat")
 Define_Atom(X666F72,"for")
 Define_Atom(X68616C74,"halt")
 Define_Atom(X68616C745F6F725F656C7365,"halt_or_else")
 Define_Atom(X68616C745F6F725F656C73655F2461757831,"halt_or_else_$aux1")
 Define_Atom(X24746F705F6C6576656C,"$top_level")
 Define_Atom(X61626F7274,"abort")
 Define_Atom(X7468726F77,"throw")
 Define_Atom(X6462675F65786563,"dbg_exec")
 Define_Atom(X7C203A2D,"| :-")
 Define_Atom(X6462675F657865635F2461757832,"dbg_exec_$aux2")
 Define_Atom(X656E645F6F665F66696C65,"end_of_file")
 Define_Atom(X7B5761726E696E673A207E77202D20676F616C206661696C65647D7E6E,"{Warning: ~w - goal failed}~n")
 Define_Atom(X5E,"^")
 Define_Atom(X63616C6C,"call")
 Define_Atom(X63616C6C31,"call1")
 Define_Atom(X4572726F723A207661726961626C6520676976656E20617320676F616C,"Error: variable given as goal")
 Define_Atom(X2C,",")
 Define_Atom(X3B,";")
 Define_Atom(X21,"!")
 Define_Atom(X2D3E,"->")
 Define_Atom(X5C2B,"\\+")
 Define_Atom(X63616C6C315F2461757833,"call1_$aux3")
 Define_Atom(X63616C6C5F6F72,"call_or")
 Define_Atom(X63616C6C5F6F725F2461757834,"call_or_$aux4")
 Define_Atom(X6361746368,"catch")
 Define_Atom(X2462616C6C5F,"$ball_")
 Define_Atom(X246E6F5F62616C6C5F,"$no_ball_")
 Define_Atom(X2468616E646C65725F,"$handler_")
 Define_Atom(X636174636831,"catch1")
 Define_Atom(X6361746368315F2461757835,"catch1_$aux5")
 Define_Atom(X6361746368315F2461757836,"catch1_$aux6")
 Define_Atom(X747261696C5F68616E646C6572,"trail_handler")
 Define_Atom(X756E77696E64,"unwind")
 Define_Atom(X756E77696E645F2461757837,"unwind_$aux7")
 Define_Atom(X7E6E73797374656D206572726F72202D2063616E6E6F74206361746368207E777E6E,"~nsystem error - cannot catch ~w~n")
 Define_Atom(X63617463685F7369676E616C,"catch_signal")
 Define_Atom(X7369676E616C5F68616E646C6572,"signal_handler")
 Define_Atom(X7369676E616C,"signal")
 Define_Atom(X746F705F6C6576656C,"top_level")
 Define_Atom(X746F705F6C6576656C5F2461757838,"top_level_$aux8")
 Define_Atom(X746F705F6C6576656C31,"top_level1")
 Define_Atom(X746F705F6C6576656C32,"top_level2")
 Define_Atom(X2461667465725F7468726F77,"$after_throw")
 Define_Atom(X2461667465725F7468726F775F2461757839,"$after_throw_$aux9")
 Define_Atom(X7E6E7B7E777D7E6E,"~n{~w}~n")
 Define_Atom(X7C203F2D20,"| ?- ")
 Define_Atom(X7661726961626C655F6E616D6573,"variable_names")
 Define_Atom(X746F705F6C6576656C325F246175783130,"top_level2_$aux10")
 Define_Atom(X7E6E287E64206D7329207E617E6E,"~n(~d ms) ~a~n")
 Define_Atom(X746F705F6C6576656C325F246175783131,"top_level2_$aux11")
 Define_Atom(X796573,"yes")
 Define_Atom(X6E6F,"no")
 Define_Atom(X77726974655F64656275675F696E64696361746F72,"write_debug_indicator")
 Define_Atom(X6465627567,"debug")
 Define_Atom(X7B64656275677D,"{debug}")
 Define_Atom(X7472616365,"trace")
 Define_Atom(X7B74726163657D,"{trace}")
 Define_Atom(X6E6F6465627567,"nodebug")
 Define_Atom(X65786563,"exec")
 Define_Atom(X657865635F246175783132,"exec_$aux12")
 Define_Atom(X203F20," ? ")
 Define_Atom(X726561645F636F6D6D616E64,"read_command")
 Define_Atom(X726561645F636F6D6D616E645F246175783133,"read_command_$aux13")
 Define_Atom(X416374696F6E2028223B2220666F72206D6F72652063686F696365732C20,"Action (\";\" for more choices, ")
 Define_Atom(X6F7468657277697365203C72657475726E3E293A20,"otherwise <return>): ")
 Define_Atom(X736B69705F756E74696C5F72657475726E,"skip_until_return")
 Define_Atom(X736B69705F756E74696C5F72657475726E5F246175783134,"skip_until_return_$aux14")
 Define_Atom(X77726974655F736F6C7574696F6E,"write_solution")
 Define_Atom(X3D,"=")
 Define_Atom(X7E6E7E61203D20,"~n~a = ")
 Define_Atom(X71756F746564,"quoted")
 Define_Atom(X6E756D62657276617273,"numbervars")
 Define_Atom(X6765745F63757272656E745F42,"get_current_B")
 Define_Atom(X7365745F63757272656E745F42,"set_current_B")
 Define_Atom(X246578655F31,"$exe_1")


 Define_Pred(X6F7468657277697365,0,1)

 Define_Pred(X74727565,0,1)

 Define_Pred(X66616C7365,0,1)

 Define_Pred(X6661696C,0,1)

 Define_Pred(X726570656174,0,1)

 Define_Pred(X666F72,3,1)

 Define_Pred(X68616C74,0,1)

 Define_Pred(X68616C74,1,1)

 Define_Pred(X68616C745F6F725F656C7365,1,1)

 Define_Pred(X68616C745F6F725F656C7365,2,1)

 Define_Pred(X68616C745F6F725F656C73655F2461757831,2,0)

 Define_Pred(X61626F7274,0,1)

 Define_Pred(X6462675F65786563,0,1)

 Define_Pred(X6462675F657865635F2461757832,1,0)

 Define_Pred(X5E,2,1)

 Define_Pred(X63616C6C,1,1)

 Define_Pred(X63616C6C,2,1)

 Define_Pred(X63616C6C31,3,0)
 Define_Switch_CST_Table(Swt_Table_Name(X63616C6C31,3,2,cst),2)
     Define_Switch_CST(X74727565,Label_Pred_Name(X63616C6C31,3,5))
     Define_Switch_CST(X21,Label_Pred_Name(X63616C6C31,3,11))
 Define_Switch_STC_Table(Swt_Table_Name(X63616C6C31,3,3,stc),4)
     Define_Switch_STC(X2C,2,Label_Pred_Name(X63616C6C31,3,7))
     Define_Switch_STC(X3B,2,Label_Pred_Name(X63616C6C31,3,9))
     Define_Switch_STC(X2D3E,2,Label_Pred_Name(X63616C6C31,3,13))
     Define_Switch_STC(X5C2B,1,Label_Pred_Name(X63616C6C31,3,15))

 Define_Pred(X63616C6C315F2461757833,3,0)

 Define_Pred(X63616C6C5F6F72,4,0)

 Define_Pred(X63616C6C5F6F725F2461757834,6,0)

 Define_Pred(X6361746368,3,1)

 Define_Pred(X6361746368,4,1)

 Define_Pred(X636174636831,5,0)

 Define_Pred(X6361746368315F2461757835,3,0)

 Define_Pred(X6361746368315F2461757836,4,0)

 Define_Pred(X747261696C5F68616E646C6572,1,0)

 Define_Pred(X7468726F77,1,1)

 Define_Pred(X756E77696E64,1,0)

 Define_Pred(X756E77696E645F2461757837,2,0)

 Define_Pred(X63617463685F7369676E616C,1,1)

 Define_Pred(X7369676E616C5F68616E646C6572,1,1)

 Define_Pred(X746F705F6C6576656C,2,1)

 Define_Pred(X746F705F6C6576656C5F2461757838,1,0)

 Define_Pred(X746F705F6C6576656C31,2,0)

 Define_Pred(X2461667465725F7468726F77,3,1)

 Define_Pred(X2461667465725F7468726F775F2461757839,3,0)

 Define_Pred(X746F705F6C6576656C32,1,1)

 Define_Pred(X746F705F6C6576656C325F246175783130,4,0)

 Define_Pred(X746F705F6C6576656C325F246175783131,4,0)

 Define_Pred(X77726974655F64656275675F696E64696361746F72,0,0)

 Define_Pred(X77726974655F64656275675F696E64696361746F72,1,0)
 Define_Switch_CST_Table(Swt_Table_Name(X77726974655F64656275675F696E64696361746F72,1,1,cst),3)
     Define_Switch_CST(X6465627567,Label_Pred_Name(X77726974655F64656275675F696E64696361746F72,1,3))
     Define_Switch_CST(X7472616365,Label_Pred_Name(X77726974655F64656275675F696E64696361746F72,1,5))
     Define_Switch_CST(X6E6F6465627567,Label_Pred_Name(X77726974655F64656275675F696E64696361746F72,1,7))

 Define_Pred(X65786563,3,0)

 Define_Pred(X657865635F246175783132,2,0)

 Define_Pred(X726561645F636F6D6D616E64,1,0)

 Define_Pred(X726561645F636F6D6D616E645F246175783133,2,0)

 Define_Pred(X736B69705F756E74696C5F72657475726E,1,0)

 Define_Pred(X736B69705F756E74696C5F72657475726E5F246175783134,1,0)

 Define_Pred(X77726974655F736F6C7574696F6E,1,0)

 Define_Pred(X6765745F63757272656E745F42,1,1)

 Define_Pred(X7365745F63757272656E745F42,1,1)

 Define_Pred(X246578655F31,0,0)

 Init_Usr_File

End_Init_Tables


Begin_Exec_Directives(call)


 Exec_Directive(1,Pred_Name(X246578655F31,0))

End_Exec_Directives


syntax highlighted by Code2HTML, v. 0.9.1