/**************************************************************************** Prolog to Wam Compiler INRIA Rocquencourt - ChLoE Project Version 2.21 Daniel Diaz - 1994 File : inline.c Main : no_main ****************************************************************************/ #define DEBUG_LEVEL 0 #include "wam_engine.h" #include "inline.h" #include "inline.usr" #define ASCII_PRED "=" #define PRED X3D #define ARITY 2 Begin_Public_Pred get_x_value(0,1) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "arg" #define PRED X617267 #define ARITY 3 Begin_Public_Pred builtin_3(arg,0,1,2) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "functor" #define PRED X66756E63746F72 #define ARITY 3 Begin_Public_Pred builtin_3(functor,0,1,2) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "=.." #define PRED X3D2E2E #define ARITY 2 Begin_Public_Pred builtin_2(term_univ,0,1) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "compare" #define PRED X636F6D70617265 #define ARITY 3 Begin_Public_Pred builtin_3(compare,0,1,2) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "==" #define PRED X3D3D #define ARITY 2 Begin_Public_Pred builtin_2(term_eq,0,1) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "\\==" #define PRED X5C3D3D #define ARITY 2 Begin_Public_Pred builtin_2(term_neq,0,1) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "@<" #define PRED X403C #define ARITY 2 Begin_Public_Pred builtin_2(term_lt,0,1) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "@=<" #define PRED X403D3C #define ARITY 2 Begin_Public_Pred builtin_2(term_lte,0,1) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "@>" #define PRED X403E #define ARITY 2 Begin_Public_Pred builtin_2(term_gt,0,1) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "@>=" #define PRED X403E3D #define ARITY 2 Begin_Public_Pred builtin_2(term_gte,0,1) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "var" #define PRED X766172 #define ARITY 1 Begin_Public_Pred builtin_1(var,0) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "nonvar" #define PRED X6E6F6E766172 #define ARITY 1 Begin_Public_Pred builtin_1(nonvar,0) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "atom" #define PRED X61746F6D #define ARITY 1 Begin_Public_Pred builtin_1(atom,0) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "integer" #define PRED X696E7465676572 #define ARITY 1 Begin_Public_Pred builtin_1(integer,0) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "number" #define PRED X6E756D626572 #define ARITY 1 Begin_Public_Pred builtin_1(number,0) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "atomic" #define PRED X61746F6D6963 #define ARITY 1 Begin_Public_Pred builtin_1(atomic,0) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "compound" #define PRED X636F6D706F756E64 #define ARITY 1 Begin_Public_Pred builtin_1(compound,0) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "callable" #define PRED X63616C6C61626C65 #define ARITY 1 Begin_Public_Pred builtin_1(callable,0) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "is" #define PRED X6973 #define ARITY 2 Begin_Public_Pred allocate(2) get_y_variable(1,0) put_x_value(1,0) put_y_variable(0,1) call(Pred_Name(X6576616C,2),1,1,"eval",2) /* begin sub 1 */ put_y_value(1,0) get_y_value(0,0) deallocate proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "=:=" #define PRED X3D3A3D #define ARITY 2 Begin_Public_Pred allocate(3) get_y_variable(2,1) put_y_variable(1,1) call(Pred_Name(X6576616C,2),1,1,"eval",2) /* begin sub 1 */ put_y_value(2,0) put_y_variable(0,1) call(Pred_Name(X6576616C,2),1,2,"eval",2) /* begin sub 2 */ math_load_y_value(1,1) math_load_y_value(0,0) builtin_2(eq,1,0) deallocate proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "=\\=" #define PRED X3D5C3D #define ARITY 2 Begin_Public_Pred allocate(3) get_y_variable(2,1) put_y_variable(1,1) call(Pred_Name(X6576616C,2),1,1,"eval",2) /* begin sub 1 */ put_y_value(2,0) put_y_variable(0,1) call(Pred_Name(X6576616C,2),1,2,"eval",2) /* begin sub 2 */ math_load_y_value(1,1) math_load_y_value(0,0) builtin_2(neq,1,0) deallocate proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "<" #define PRED X3C #define ARITY 2 Begin_Public_Pred allocate(3) get_y_variable(2,1) put_y_variable(1,1) call(Pred_Name(X6576616C,2),1,1,"eval",2) /* begin sub 1 */ put_y_value(2,0) put_y_variable(0,1) call(Pred_Name(X6576616C,2),1,2,"eval",2) /* begin sub 2 */ math_load_y_value(1,1) math_load_y_value(0,0) builtin_2(lt,1,0) deallocate proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "=<" #define PRED X3D3C #define ARITY 2 Begin_Public_Pred allocate(3) get_y_variable(2,1) put_y_variable(1,1) call(Pred_Name(X6576616C,2),1,1,"eval",2) /* begin sub 1 */ put_y_value(2,0) put_y_variable(0,1) call(Pred_Name(X6576616C,2),1,2,"eval",2) /* begin sub 2 */ math_load_y_value(1,1) math_load_y_value(0,0) builtin_2(lte,1,0) deallocate proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED ">" #define PRED X3E #define ARITY 2 Begin_Public_Pred allocate(3) get_y_variable(2,1) put_y_variable(1,1) call(Pred_Name(X6576616C,2),1,1,"eval",2) /* begin sub 1 */ put_y_value(2,0) put_y_variable(0,1) call(Pred_Name(X6576616C,2),1,2,"eval",2) /* begin sub 2 */ math_load_y_value(1,1) math_load_y_value(0,0) builtin_2(gt,1,0) deallocate proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED ">=" #define PRED X3E3D #define ARITY 2 Begin_Public_Pred allocate(3) get_y_variable(2,1) put_y_variable(1,1) call(Pred_Name(X6576616C,2),1,1,"eval",2) /* begin sub 1 */ put_y_value(2,0) put_y_variable(0,1) call(Pred_Name(X6576616C,2),1,2,"eval",2) /* begin sub 2 */ math_load_y_value(1,1) math_load_y_value(0,0) builtin_2(gte,1,0) deallocate proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "eval" #define PRED X6576616C #define ARITY 2 Begin_Public_Pred try_me_else(1) allocate(1) get_y_bc_reg(0) call(Pred_Name(X6576616C31,2),1,1,"eval1",2) /* begin sub 1 */ cut_y(0) deallocate proceed label(1) trust_me_else_fail allocate(1) get_y_variable(0,0) put_constant(X4572726F723A20,0,"Error: ") call(Pred_Name(X7772697465,1),0,2,"write",1) /* begin sub 2 */ put_y_value(0,0) call(Pred_Name(X7772697465,1),0,3,"write",1) /* begin sub 3 */ put_constant(X20496C6C6567616C2061726974686D657469632065787072657373696F6E,0," Illegal arithmetic expression") call(Pred_Name(X7772697465,1),0,4,"write",1) /* begin sub 4 */ call(Pred_Name(X6E6C,0),0,5,"nl",0) /* begin sub 5 */ fail End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "eval1" #define PRED X6576616C31 #define ARITY 2 Begin_Private_Pred try_me_else(1) builtin_1(var,0) neck_cut fail label(1) retry_me_else(2) get_x_value(0,1) builtin_1(integer,0) proceed label(2) trust_me_else_fail switch_on_term(G_label(4),fail,fail,G_label(5),G_label(3)) label(3) switch_on_structure(3,"[((+)/1,7),((-)/1,9),((+)/2,11),((-)/2,13),(* /2,15),(// /2,17),(mod/2,19),((/\)/2,21),((\/)/2,23),(^ /2,25),(\ /1,27),(<< /2,29),(>> /2,31)]") label(4) try_me_else(6) label(5) get_list(0) unify_x_variable(0) unify_nil execute(Pred_Name(X6576616C31,2),1,"eval1",2) label(6) retry_me_else(8) label(7) get_structure(X2B,1,0,"+") unify_x_variable(0) execute(Pred_Name(X6576616C31,2),1,"eval1",2) label(8) retry_me_else(10) label(9) allocate(2) get_structure(X2D,1,0,"-") unify_x_variable(0) get_y_variable(1,1) put_y_variable(0,1) call(Pred_Name(X6576616C31,2),1,1,"eval1",2) /* begin sub 1 */ math_load_y_value(0,0) function_1(neg,0,0) get_y_value(1,0) deallocate proceed label(10) retry_me_else(12) label(11) allocate(4) get_structure(X2B,2,0,"+") unify_x_variable(0) unify_y_variable(3) get_y_variable(2,1) put_y_variable(1,1) call(Pred_Name(X6576616C31,2),1,2,"eval1",2) /* begin sub 2 */ put_y_value(3,0) put_y_variable(0,1) call(Pred_Name(X6576616C31,2),1,3,"eval1",2) /* begin sub 3 */ math_load_y_value(1,1) math_load_y_value(0,0) function_2(add,0,1,0) get_y_value(2,0) deallocate proceed label(12) retry_me_else(14) label(13) allocate(4) get_structure(X2D,2,0,"-") unify_x_variable(0) unify_y_variable(3) get_y_variable(2,1) put_y_variable(1,1) call(Pred_Name(X6576616C31,2),1,4,"eval1",2) /* begin sub 4 */ put_y_value(3,0) put_y_variable(0,1) call(Pred_Name(X6576616C31,2),1,5,"eval1",2) /* begin sub 5 */ math_load_y_value(1,1) math_load_y_value(0,0) function_2(sub,0,1,0) get_y_value(2,0) deallocate proceed label(14) retry_me_else(16) label(15) allocate(4) get_structure(X2A,2,0,"*") unify_x_variable(0) unify_y_variable(3) get_y_variable(2,1) put_y_variable(1,1) call(Pred_Name(X6576616C31,2),1,6,"eval1",2) /* begin sub 6 */ put_y_value(3,0) put_y_variable(0,1) call(Pred_Name(X6576616C31,2),1,7,"eval1",2) /* begin sub 7 */ math_load_y_value(1,1) math_load_y_value(0,0) function_2(mul,0,1,0) get_y_value(2,0) deallocate proceed label(16) retry_me_else(18) label(17) allocate(4) get_structure(X2F2F,2,0,"//") unify_x_variable(0) unify_y_variable(3) get_y_variable(2,1) put_y_variable(1,1) call(Pred_Name(X6576616C31,2),1,8,"eval1",2) /* begin sub 8 */ put_y_value(3,0) put_y_variable(0,1) call(Pred_Name(X6576616C31,2),1,9,"eval1",2) /* begin sub 9 */ math_load_y_value(1,1) math_load_y_value(0,0) function_2(div,0,1,0) get_y_value(2,0) deallocate proceed label(18) retry_me_else(20) label(19) allocate(4) get_structure(X6D6F64,2,0,"mod") unify_x_variable(0) unify_y_variable(3) get_y_variable(2,1) put_y_variable(1,1) call(Pred_Name(X6576616C31,2),1,10,"eval1",2) /* begin sub 10 */ put_y_value(3,0) put_y_variable(0,1) call(Pred_Name(X6576616C31,2),1,11,"eval1",2) /* begin sub 11 */ math_load_y_value(1,1) math_load_y_value(0,0) function_2(mod,0,1,0) get_y_value(2,0) deallocate proceed label(20) retry_me_else(22) label(21) allocate(4) get_structure(X2F5C,2,0,"/\\") unify_x_variable(0) unify_y_variable(3) get_y_variable(2,1) put_y_variable(1,1) call(Pred_Name(X6576616C31,2),1,12,"eval1",2) /* begin sub 12 */ put_y_value(3,0) put_y_variable(0,1) call(Pred_Name(X6576616C31,2),1,13,"eval1",2) /* begin sub 13 */ math_load_y_value(1,1) math_load_y_value(0,0) function_2(and,0,1,0) get_y_value(2,0) deallocate proceed label(22) retry_me_else(24) label(23) allocate(4) get_structure(X5C2F,2,0,"\\/") unify_x_variable(0) unify_y_variable(3) get_y_variable(2,1) put_y_variable(1,1) call(Pred_Name(X6576616C31,2),1,14,"eval1",2) /* begin sub 14 */ put_y_value(3,0) put_y_variable(0,1) call(Pred_Name(X6576616C31,2),1,15,"eval1",2) /* begin sub 15 */ math_load_y_value(1,1) math_load_y_value(0,0) function_2(or,0,1,0) get_y_value(2,0) deallocate proceed label(24) retry_me_else(26) label(25) allocate(4) get_structure(X5E,2,0,"^") unify_x_variable(0) unify_y_variable(3) get_y_variable(2,1) put_y_variable(1,1) call(Pred_Name(X6576616C31,2),1,16,"eval1",2) /* begin sub 16 */ put_y_value(3,0) put_y_variable(0,1) call(Pred_Name(X6576616C31,2),1,17,"eval1",2) /* begin sub 17 */ math_load_y_value(1,1) math_load_y_value(0,0) function_2(xor,0,1,0) get_y_value(2,0) deallocate proceed label(26) retry_me_else(28) label(27) allocate(2) get_structure(X5C,1,0,"\\") unify_x_variable(0) get_y_variable(1,1) put_y_variable(0,1) call(Pred_Name(X6576616C31,2),1,18,"eval1",2) /* begin sub 18 */ math_load_y_value(0,0) function_1(not,0,0) get_y_value(1,0) deallocate proceed label(28) retry_me_else(30) label(29) allocate(4) get_structure(X3C3C,2,0,"<<") unify_x_variable(0) unify_y_variable(3) get_y_variable(2,1) put_y_variable(1,1) call(Pred_Name(X6576616C31,2),1,19,"eval1",2) /* begin sub 19 */ put_y_value(3,0) put_y_variable(0,1) call(Pred_Name(X6576616C31,2),1,20,"eval1",2) /* begin sub 20 */ math_load_y_value(1,1) math_load_y_value(0,0) function_2(shl,0,1,0) get_y_value(2,0) deallocate proceed label(30) trust_me_else_fail label(31) allocate(4) get_structure(X3E3E,2,0,">>") unify_x_variable(0) unify_y_variable(3) get_y_variable(2,1) put_y_variable(1,1) call(Pred_Name(X6576616C31,2),1,21,"eval1",2) /* begin sub 21 */ put_y_value(3,0) put_y_variable(0,1) call(Pred_Name(X6576616C31,2),1,22,"eval1",2) /* begin sub 22 */ math_load_y_value(1,1) math_load_y_value(0,0) function_2(shr,0,1,0) get_y_value(2,0) deallocate proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "g_assign" #define PRED X675F61737369676E #define ARITY 2 Begin_Public_Pred builtin_2(g_assign,0,1) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "g_assignb" #define PRED X675F61737369676E62 #define ARITY 2 Begin_Public_Pred builtin_2(g_assignb,0,1) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "g_link" #define PRED X675F6C696E6B #define ARITY 2 Begin_Public_Pred builtin_2(g_link,0,1) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "g_read" #define PRED X675F72656164 #define ARITY 2 Begin_Public_Pred builtin_2(g_read,0,1) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY #define ASCII_PRED "g_array_size" #define PRED X675F61727261795F73697A65 #define ARITY 2 Begin_Public_Pred builtin_2(g_array_size,0,1) proceed End_Pred #undef ASCII_PRED #undef PRED #undef ARITY Begin_Init_Tables(inline) Define_Atom(X5B5D,"[]") Define_Atom(X3D,"=") Define_Atom(X617267,"arg") Define_Atom(X66756E63746F72,"functor") Define_Atom(X3D2E2E,"=..") Define_Atom(X636F6D70617265,"compare") Define_Atom(X3D3D,"==") Define_Atom(X5C3D3D,"\\==") Define_Atom(X403C,"@<") Define_Atom(X403D3C,"@=<") Define_Atom(X403E,"@>") Define_Atom(X403E3D,"@>=") Define_Atom(X766172,"var") Define_Atom(X6E6F6E766172,"nonvar") Define_Atom(X61746F6D,"atom") Define_Atom(X696E7465676572,"integer") Define_Atom(X6E756D626572,"number") Define_Atom(X61746F6D6963,"atomic") Define_Atom(X636F6D706F756E64,"compound") Define_Atom(X63616C6C61626C65,"callable") Define_Atom(X6973,"is") Define_Atom(X3D3A3D,"=:=") Define_Atom(X3D5C3D,"=\\=") Define_Atom(X3C,"<") Define_Atom(X3D3C,"=<") Define_Atom(X3E,">") Define_Atom(X3E3D,">=") Define_Atom(X6576616C,"eval") Define_Atom(X4572726F723A20,"Error: ") Define_Atom(X20496C6C6567616C2061726974686D657469632065787072657373696F6E," Illegal arithmetic expression") Define_Atom(X6576616C31,"eval1") Define_Atom(X2B,"+") Define_Atom(X2D,"-") Define_Atom(X2A,"*") Define_Atom(X2F2F,"//") Define_Atom(X6D6F64,"mod") Define_Atom(X2F5C,"/\\") Define_Atom(X5C2F,"\\/") Define_Atom(X5E,"^") Define_Atom(X5C,"\\") Define_Atom(X3C3C,"<<") Define_Atom(X3E3E,">>") Define_Atom(X675F61737369676E,"g_assign") Define_Atom(X675F61737369676E62,"g_assignb") Define_Atom(X675F6C696E6B,"g_link") Define_Atom(X675F72656164,"g_read") Define_Atom(X675F61727261795F73697A65,"g_array_size") Define_Pred(X3D,2,1) Define_Pred(X617267,3,1) Define_Pred(X66756E63746F72,3,1) Define_Pred(X3D2E2E,2,1) Define_Pred(X636F6D70617265,3,1) Define_Pred(X3D3D,2,1) Define_Pred(X5C3D3D,2,1) Define_Pred(X403C,2,1) Define_Pred(X403D3C,2,1) Define_Pred(X403E,2,1) Define_Pred(X403E3D,2,1) Define_Pred(X766172,1,1) Define_Pred(X6E6F6E766172,1,1) Define_Pred(X61746F6D,1,1) Define_Pred(X696E7465676572,1,1) Define_Pred(X6E756D626572,1,1) Define_Pred(X61746F6D6963,1,1) Define_Pred(X636F6D706F756E64,1,1) Define_Pred(X63616C6C61626C65,1,1) Define_Pred(X6973,2,1) Define_Pred(X3D3A3D,2,1) Define_Pred(X3D5C3D,2,1) Define_Pred(X3C,2,1) Define_Pred(X3D3C,2,1) Define_Pred(X3E,2,1) Define_Pred(X3E3D,2,1) Define_Pred(X6576616C,2,1) Define_Pred(X6576616C31,2,0) Define_Switch_STC_Table(Swt_Table_Name(X6576616C31,2,3,stc),13) Define_Switch_STC(X2B,1,Label_Pred_Name(X6576616C31,2,7)) Define_Switch_STC(X2D,1,Label_Pred_Name(X6576616C31,2,9)) Define_Switch_STC(X2B,2,Label_Pred_Name(X6576616C31,2,11)) Define_Switch_STC(X2D,2,Label_Pred_Name(X6576616C31,2,13)) Define_Switch_STC(X2A,2,Label_Pred_Name(X6576616C31,2,15)) Define_Switch_STC(X2F2F,2,Label_Pred_Name(X6576616C31,2,17)) Define_Switch_STC(X6D6F64,2,Label_Pred_Name(X6576616C31,2,19)) Define_Switch_STC(X2F5C,2,Label_Pred_Name(X6576616C31,2,21)) Define_Switch_STC(X5C2F,2,Label_Pred_Name(X6576616C31,2,23)) Define_Switch_STC(X5E,2,Label_Pred_Name(X6576616C31,2,25)) Define_Switch_STC(X5C,1,Label_Pred_Name(X6576616C31,2,27)) Define_Switch_STC(X3C3C,2,Label_Pred_Name(X6576616C31,2,29)) Define_Switch_STC(X3E3E,2,Label_Pred_Name(X6576616C31,2,31)) Define_Pred(X675F61737369676E,2,1) Define_Pred(X675F61737369676E62,2,1) Define_Pred(X675F6C696E6B,2,1) Define_Pred(X675F72656164,2,1) Define_Pred(X675F61727261795F73697A65,2,1) Init_Usr_File End_Init_Tables Begin_Exec_Directives(inline) End_Exec_Directives