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

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

#define DEBUG_LEVEL    0

#include "wam_engine.h"

#include "oper.h"
#include "oper.usr"


#define ASCII_PRED "op"
#define PRED       X6F70
#define ARITY      3

Begin_Public_Pred
      try_me_else(1)
      get_x_variable(4,0)
      get_x_variable(3,1)
      builtin_1(atom,2)
      neck_cut
      put_x_value(2,0)
      put_x_value(4,1)
      put_x_value(3,2)
      execute(Pred_Name(X6F7032,3),1,"op2",3)

label(1)
      trust_me_else_fail
      get_x_variable(4,0)
      get_x_variable(3,1)
      put_x_value(2,0)
      put_x_value(4,1)
      put_x_value(3,2)
      execute(Pred_Name(X6F7031,3),1,"op1",3)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "op1"
#define PRED       X6F7031
#define ARITY      3

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(3)
      get_list(0)
      unify_x_variable(0)
      unify_y_variable(2)
      get_y_variable(1,1)
      get_y_variable(0,2)
      put_y_value(1,1)
      put_y_value(0,2)
      call(Pred_Name(X6F7032,3),1,1,"op2",3)          /* begin sub 1 */
      put_y_value(2,0)
      put_y_value(1,1)
      put_y_value(0,2)
      deallocate
      execute(Pred_Name(X6F7031,3),1,"op1",3)

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "op2"
#define PRED       X6F7032
#define ARITY      3

Begin_Private_Pred
      pragma_c(Op2_3)
      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)
      call(Pred_Name(X246578655F315F2461757831,0),1,1,"$exe_1_$aux1",0)          /* begin sub 1 */
      cut_y(0)
      deallocate
      proceed

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY



#define ASCII_PRED "$exe_1_$aux1"
#define PRED       X246578655F315F2461757831
#define ARITY      0

Begin_Private_Pred
      try_me_else(1)
      allocate(0)
      put_integer(1200,0)
      put_constant(X786678,1,"xfx")
      put_list(2)
      unify_constant(X3A2D,":-")
      unify_nil
      call(Pred_Name(X6F70,3),1,1,"op",3)          /* begin sub 1 */
      put_integer(1200,0)
      put_constant(X6678,1,"fx")
      put_list(2)
      unify_constant(X3A2D,":-")
      unify_nil
      call(Pred_Name(X6F70,3),1,2,"op",3)          /* begin sub 2 */
      put_integer(1150,0)
      put_constant(X6678,1,"fx")
      put_list(3)
      unify_constant(X64796E616D6963,"dynamic")
      unify_nil
      put_list(2)
      unify_constant(X7075626C6963,"public")
      unify_x_value(3)
      call(Pred_Name(X6F70,3),1,3,"op",3)          /* begin sub 3 */
      put_integer(1100,0)
      put_constant(X786679,1,"xfy")
      put_list(2)
      unify_constant(X3B,";")
      unify_nil
      call(Pred_Name(X6F70,3),1,4,"op",3)          /* begin sub 4 */
      put_integer(1050,0)
      put_constant(X786679,1,"xfy")
      put_list(2)
      unify_constant(X2D3E,"->")
      unify_nil
      call(Pred_Name(X6F70,3),1,5,"op",3)          /* begin sub 5 */
      put_integer(1000,0)
      put_constant(X786679,1,"xfy")
      put_list(2)
      unify_constant(X2C,",")
      unify_nil
      call(Pred_Name(X6F70,3),1,6,"op",3)          /* begin sub 6 */
      put_integer(900,0)
      put_constant(X6679,1,"fy")
      put_list(2)
      unify_constant(X6E6F737079,"nospy")
      unify_nil
      put_list(3)
      unify_constant(X737079,"spy")
      unify_x_value(2)
      put_list(2)
      unify_constant(X5C2B,"\\+")
      unify_x_value(3)
      call(Pred_Name(X6F70,3),1,7,"op",3)          /* begin sub 7 */
      put_integer(700,0)
      put_constant(X786678,1,"xfx")
      put_list(2)
      unify_constant(X3E3D,">=")
      unify_nil
      put_list(3)
      unify_constant(X3E,">")
      unify_x_value(2)
      put_list(2)
      unify_constant(X3D3C,"=<")
      unify_x_value(3)
      put_list(3)
      unify_constant(X3C,"<")
      unify_x_value(2)
      put_list(2)
      unify_constant(X3D5C3D,"=\\=")
      unify_x_value(3)
      put_list(3)
      unify_constant(X3D3A3D,"=:=")
      unify_x_value(2)
      put_list(2)
      unify_constant(X403E3D,"@>=")
      unify_x_value(3)
      put_list(3)
      unify_constant(X403D3C,"@=<")
      unify_x_value(2)
      put_list(2)
      unify_constant(X403E,"@>")
      unify_x_value(3)
      put_list(3)
      unify_constant(X403C,"@<")
      unify_x_value(2)
      put_list(2)
      unify_constant(X5C3D3D,"\\==")
      unify_x_value(3)
      put_list(3)
      unify_constant(X3D3D,"==")
      unify_x_value(2)
      put_list(2)
      unify_constant(X3D2E2E,"=..")
      unify_x_value(3)
      put_list(3)
      unify_constant(X6973,"is")
      unify_x_value(2)
      put_list(2)
      unify_constant(X3D,"=")
      unify_x_value(3)
      call(Pred_Name(X6F70,3),1,8,"op",3)          /* begin sub 8 */
      put_integer(500,0)
      put_constant(X796678,1,"yfx")
      put_list(3)
      unify_constant(X5C2F,"\\/")
      unify_nil
      put_list(2)
      unify_constant(X2F5C,"/\\")
      unify_x_value(3)
      put_list(3)
      unify_constant(X2D,"-")
      unify_x_value(2)
      put_list(2)
      unify_constant(X2B,"+")
      unify_x_value(3)
      call(Pred_Name(X6F70,3),1,9,"op",3)          /* begin sub 9 */
      put_integer(500,0)
      put_constant(X6678,1,"fx")
      put_list(3)
      unify_constant(X2D,"-")
      unify_nil
      put_list(2)
      unify_constant(X2B,"+")
      unify_x_value(3)
      call(Pred_Name(X6F70,3),1,10,"op",3)          /* begin sub 10 */
      put_integer(400,0)
      put_constant(X796678,1,"yfx")
      put_list(2)
      unify_constant(X3E3E,">>")
      unify_nil
      put_list(3)
      unify_constant(X3C3C,"<<")
      unify_x_value(2)
      put_list(2)
      unify_constant(X2F2F,"//")
      unify_x_value(3)
      put_list(3)
      unify_constant(X2F,"/")
      unify_x_value(2)
      put_list(2)
      unify_constant(X2A,"*")
      unify_x_value(3)
      call(Pred_Name(X6F70,3),1,11,"op",3)          /* begin sub 11 */
      put_integer(300,0)
      put_constant(X786678,1,"xfx")
      put_list(2)
      unify_constant(X6D6F64,"mod")
      unify_nil
      call(Pred_Name(X6F70,3),1,12,"op",3)          /* begin sub 12 */
      put_integer(200,0)
      put_constant(X786679,1,"xfy")
      put_list(2)
      unify_constant(X5E,"^")
      unify_nil
      call(Pred_Name(X6F70,3),1,13,"op",3)          /* begin sub 13 */
      fail

label(1)
      trust_me_else_fail
      proceed

End_Pred

#undef ASCII_PRED
#undef PRED
#undef ARITY


Begin_Init_Tables(oper)

 Define_Atom(X5B5D,"[]")
 Define_Atom(X6F70,"op")
 Define_Atom(X6F7031,"op1")
 Define_Atom(X6F7032,"op2")
 Define_Atom(X246578655F31,"$exe_1")
 Define_Atom(X246578655F315F2461757831,"$exe_1_$aux1")
 Define_Atom(X786678,"xfx")
 Define_Atom(X3A2D,":-")
 Define_Atom(X6678,"fx")
 Define_Atom(X64796E616D6963,"dynamic")
 Define_Atom(X7075626C6963,"public")
 Define_Atom(X786679,"xfy")
 Define_Atom(X3B,";")
 Define_Atom(X2D3E,"->")
 Define_Atom(X2C,",")
 Define_Atom(X6679,"fy")
 Define_Atom(X6E6F737079,"nospy")
 Define_Atom(X737079,"spy")
 Define_Atom(X5C2B,"\\+")
 Define_Atom(X3E3D,">=")
 Define_Atom(X3E,">")
 Define_Atom(X3D3C,"=<")
 Define_Atom(X3C,"<")
 Define_Atom(X3D5C3D,"=\\=")
 Define_Atom(X3D3A3D,"=:=")
 Define_Atom(X403E3D,"@>=")
 Define_Atom(X403D3C,"@=<")
 Define_Atom(X403E,"@>")
 Define_Atom(X403C,"@<")
 Define_Atom(X5C3D3D,"\\==")
 Define_Atom(X3D3D,"==")
 Define_Atom(X3D2E2E,"=..")
 Define_Atom(X6973,"is")
 Define_Atom(X3D,"=")
 Define_Atom(X796678,"yfx")
 Define_Atom(X5C2F,"\\/")
 Define_Atom(X2F5C,"/\\")
 Define_Atom(X2D,"-")
 Define_Atom(X2B,"+")
 Define_Atom(X3E3E,">>")
 Define_Atom(X3C3C,"<<")
 Define_Atom(X2F2F,"//")
 Define_Atom(X2F,"/")
 Define_Atom(X2A,"*")
 Define_Atom(X6D6F64,"mod")
 Define_Atom(X5E,"^")


 Define_Pred(X6F70,3,1)

 Define_Pred(X6F7031,3,0)

 Define_Pred(X6F7032,3,0)

 Define_Pred(X246578655F31,0,0)

 Define_Pred(X246578655F315F2461757831,0,0)

 Init_Usr_File

End_Init_Tables


Begin_Exec_Directives(oper)


 Exec_Directive(1,Pred_Name(X246578655F31,0))

End_Exec_Directives
