package jp.ac.kobe_u.cs.prolog.builtin;
import jp.ac.kobe_u.cs.prolog.lang.IntegerTerm;
import jp.ac.kobe_u.cs.prolog.lang.ListTerm;
import jp.ac.kobe_u.cs.prolog.lang.Predicate;
import jp.ac.kobe_u.cs.prolog.lang.Prolog;
import jp.ac.kobe_u.cs.prolog.lang.StructureTerm;
import jp.ac.kobe_u.cs.prolog.lang.SymbolTerm;
import jp.ac.kobe_u.cs.prolog.lang.Term;
import jp.ac.kobe_u.cs.prolog.lang.VariableTerm;
/*
This file is generated by Prolog Cafe.
PLEASE DO NOT EDIT!
*/
/**
<code>'$parse_tokens_before_op'/5</code> defined in builtins.pl<br>
@author Mutsunori Banbara (banbara@kobe-u.ac.jp)
@author Naoyuki Tamura (tamura@kobe-u.ac.jp)
@version 1.0
*/
class PRED_$parse_tokens_before_op_5 extends Predicate {
static SymbolTerm s1 = SymbolTerm.makeSymbol(" ");
static SymbolTerm s2 = SymbolTerm.makeSymbol("end_of_file");
static IntegerTerm si3 = new IntegerTerm(0);
static SymbolTerm s4 = SymbolTerm.makeSymbol("number", 1);
static SymbolTerm s5 = SymbolTerm.makeSymbol("atom", 1);
static SymbolTerm s6 = SymbolTerm.makeSymbol("-");
static Term[] s7 = {s6};
static StructureTerm s8 = new StructureTerm(s5, s7);
static IntegerTerm si9 = new IntegerTerm(-1);
static SymbolTerm s10 = SymbolTerm.makeSymbol("var", 2);
static SymbolTerm s11 = SymbolTerm.makeSymbol("string", 1);
static SymbolTerm s12 = SymbolTerm.makeSymbol("(");
static IntegerTerm si13 = new IntegerTerm(1201);
static SymbolTerm s14 = SymbolTerm.makeSymbol(")");
static SymbolTerm s15 = SymbolTerm.makeSymbol("{");
static SymbolTerm s16 = SymbolTerm.makeSymbol("[");
static SymbolTerm s17 = SymbolTerm.makeSymbol("fx");
static IntegerTerm si18 = new IntegerTerm(1);
static SymbolTerm s19 = SymbolTerm.makeSymbol("fy");
static Predicate _$parse_tokens_before_op_5_sub_1 = new PRED_$parse_tokens_before_op_5_sub_1();
static Predicate _$parse_tokens_before_op_5_sub_2 = new PRED_$parse_tokens_before_op_5_sub_2();
static Predicate _$parse_tokens_before_op_5_sub_3 = new PRED_$parse_tokens_before_op_5_sub_3();
static Predicate _$parse_tokens_before_op_5_sub_4 = new PRED_$parse_tokens_before_op_5_sub_4();
static Predicate _$parse_tokens_before_op_5_sub_5 = new PRED_$parse_tokens_before_op_5_sub_5();
static Predicate _$parse_tokens_before_op_5_sub_6 = new PRED_$parse_tokens_before_op_5_sub_6();
static Predicate _$parse_tokens_before_op_5_sub_7 = new PRED_$parse_tokens_before_op_5_sub_7();
static Predicate _$parse_tokens_before_op_5_sub_8 = new PRED_$parse_tokens_before_op_5_sub_8();
static Predicate _$parse_tokens_before_op_5_sub_9 = new PRED_$parse_tokens_before_op_5_sub_9();
static Predicate _$parse_tokens_before_op_5_sub_10 = new PRED_$parse_tokens_before_op_5_sub_10();
static Predicate _$parse_tokens_before_op_5_sub_11 = new PRED_$parse_tokens_before_op_5_sub_11();
static Predicate _$parse_tokens_before_op_5_sub_12 = new PRED_$parse_tokens_before_op_5_sub_12();
static Predicate _$parse_tokens_before_op_5_1 = new PRED_$parse_tokens_before_op_5_1();
static Predicate _$parse_tokens_before_op_5_2 = new PRED_$parse_tokens_before_op_5_2();
static Predicate _$parse_tokens_before_op_5_3 = new PRED_$parse_tokens_before_op_5_3();
static Predicate _$parse_tokens_before_op_5_4 = new PRED_$parse_tokens_before_op_5_4();
static Predicate _$parse_tokens_before_op_5_5 = new PRED_$parse_tokens_before_op_5_5();
static Predicate _$parse_tokens_before_op_5_6 = new PRED_$parse_tokens_before_op_5_6();
static Predicate _$parse_tokens_before_op_5_7 = new PRED_$parse_tokens_before_op_5_7();
static Predicate _$parse_tokens_before_op_5_8 = new PRED_$parse_tokens_before_op_5_8();
static Predicate _$parse_tokens_before_op_5_9 = new PRED_$parse_tokens_before_op_5_9();
static Predicate _$parse_tokens_before_op_5_10 = new PRED_$parse_tokens_before_op_5_10();
static Predicate _$parse_tokens_before_op_5_11 = new PRED_$parse_tokens_before_op_5_11();
static Predicate _$parse_tokens_before_op_5_12 = new PRED_$parse_tokens_before_op_5_12();
static Predicate _$parse_tokens_before_op_5_13 = new PRED_$parse_tokens_before_op_5_13();
public Term arg1, arg2, arg3, arg4, arg5;
public PRED_$parse_tokens_before_op_5(Term a1, Term a2, Term a3, Term a4, Term a5, Predicate cont) {
arg1 = a1;
arg2 = a2;
arg3 = a3;
arg4 = a4;
arg5 = a5;
this.cont = cont;
}
public PRED_$parse_tokens_before_op_5(){}
public void setArgument(Term[] args, Predicate cont) {
arg1 = args[0];
arg2 = args[1];
arg3 = args[2];
arg4 = args[3];
arg5 = args[4];
this.cont = cont;
}
public int arity() { return 5; }
public String toString() {
return "$parse_tokens_before_op(" + arg1 + "," + arg2 + "," + arg3 + "," + arg4 + "," + arg5 + ")";
}
public Predicate exec(Prolog engine) {
engine.aregs[1] = arg1;
engine.aregs[2] = arg2;
engine.aregs[3] = arg3;
engine.aregs[4] = arg4;
engine.aregs[5] = arg5;
engine.cont = cont;
engine.setB0();
return engine.jtry(_$parse_tokens_before_op_5_1, _$parse_tokens_before_op_5_sub_1);
}
}
class PRED_$parse_tokens_before_op_5_sub_1 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
return engine.retry(_$parse_tokens_before_op_5_2, _$parse_tokens_before_op_5_sub_2);
}
}
class PRED_$parse_tokens_before_op_5_sub_2 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
return engine.retry(_$parse_tokens_before_op_5_3, _$parse_tokens_before_op_5_sub_3);
}
}
class PRED_$parse_tokens_before_op_5_sub_3 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
return engine.retry(_$parse_tokens_before_op_5_4, _$parse_tokens_before_op_5_sub_4);
}
}
class PRED_$parse_tokens_before_op_5_sub_4 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
return engine.retry(_$parse_tokens_before_op_5_5, _$parse_tokens_before_op_5_sub_5);
}
}
class PRED_$parse_tokens_before_op_5_sub_5 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
return engine.retry(_$parse_tokens_before_op_5_6, _$parse_tokens_before_op_5_sub_6);
}
}
class PRED_$parse_tokens_before_op_5_sub_6 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
return engine.retry(_$parse_tokens_before_op_5_7, _$parse_tokens_before_op_5_sub_7);
}
}
class PRED_$parse_tokens_before_op_5_sub_7 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
return engine.retry(_$parse_tokens_before_op_5_8, _$parse_tokens_before_op_5_sub_8);
}
}
class PRED_$parse_tokens_before_op_5_sub_8 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
return engine.retry(_$parse_tokens_before_op_5_9, _$parse_tokens_before_op_5_sub_9);
}
}
class PRED_$parse_tokens_before_op_5_sub_9 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
return engine.retry(_$parse_tokens_before_op_5_10, _$parse_tokens_before_op_5_sub_10);
}
}
class PRED_$parse_tokens_before_op_5_sub_10 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
return engine.retry(_$parse_tokens_before_op_5_11, _$parse_tokens_before_op_5_sub_11);
}
}
class PRED_$parse_tokens_before_op_5_sub_11 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
return engine.retry(_$parse_tokens_before_op_5_12, _$parse_tokens_before_op_5_sub_12);
}
}
class PRED_$parse_tokens_before_op_5_sub_12 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
return engine.trust(_$parse_tokens_before_op_5_13);
}
}
class PRED_$parse_tokens_before_op_5_1 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
// '$parse_tokens_before_op'(A,B,C,D,E):-'C'(D,' ',F),!,'$parse_tokens_before_op'(A,B,C,F,E)
Term a1, a2, a3, a4, a5, a6, a7;
Predicate p1, p2;
Predicate cont;
a1 = engine.aregs[1];
a2 = engine.aregs[2];
a3 = engine.aregs[3];
a4 = engine.aregs[4];
a5 = engine.aregs[5];
cont = engine.cont;
// '$parse_tokens_before_op'(A,B,C,D,E):-['$get_level'(F),'C'(D,' ',G),'$cut'(F),'$parse_tokens_before_op'(A,B,C,G,E)]
a6 = new VariableTerm(engine);
//START inline expansion of $get_level(a(6))
if (! a6.unify(new IntegerTerm(engine.B0), engine.trail)) {
return engine.fail();
}
//END inline expansion
a7 = new VariableTerm(engine);
p1 = new PRED_$parse_tokens_before_op_5(a1, a2, a3, a7, a5, cont);
p2 = new PRED_$cut_1(a6, p1);
return new PRED_C_3(a4, s1, a7, p2);
}
}
class PRED_$parse_tokens_before_op_5_2 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
// '$parse_tokens_before_op'(A,end_of_file,0,B,C):-'C'(B,end_of_file,C),!
Term a1, a2, a3, a4, a5, a6;
Predicate p1;
Predicate cont;
a1 = engine.aregs[1];
a2 = engine.aregs[2];
a3 = engine.aregs[3];
a4 = engine.aregs[4];
a5 = engine.aregs[5];
cont = engine.cont;
// '$parse_tokens_before_op'(A,end_of_file,0,B,C):-['$get_level'(D),'C'(B,end_of_file,C),'$cut'(D)]
a2 = a2.dereference();
if (a2.isSymbol()){
if (! a2.equals(s2))
return engine.fail();
} else if (a2.isVariable()){
((VariableTerm) a2).bind(s2, engine.trail);
} else {
return engine.fail();
}
a3 = a3.dereference();
if (a3.isInteger()){
if (((IntegerTerm) a3).intValue() != 0)
return engine.fail();
} else if (a3.isVariable()){
((VariableTerm) a3).bind(si3, engine.trail);
} else {
return engine.fail();
}
a6 = new VariableTerm(engine);
//START inline expansion of $get_level(a(6))
if (! a6.unify(new IntegerTerm(engine.B0), engine.trail)) {
return engine.fail();
}
//END inline expansion
p1 = new PRED_$cut_1(a6, cont);
return new PRED_C_3(a4, s2, a5, p1);
}
}
class PRED_$parse_tokens_before_op_5_3 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
// '$parse_tokens_before_op'(A,B,0,C,D):-'C'(C,number(B),D),!
Term a1, a2, a3, a4, a5, a6, a7;
Predicate p1;
Predicate cont;
a1 = engine.aregs[1];
a2 = engine.aregs[2];
a3 = engine.aregs[3];
a4 = engine.aregs[4];
a5 = engine.aregs[5];
cont = engine.cont;
// '$parse_tokens_before_op'(A,B,0,C,D):-['$get_level'(E),'C'(C,number(B),D),'$cut'(E)]
a3 = a3.dereference();
if (a3.isInteger()){
if (((IntegerTerm) a3).intValue() != 0)
return engine.fail();
} else if (a3.isVariable()){
((VariableTerm) a3).bind(si3, engine.trail);
} else {
return engine.fail();
}
a6 = new VariableTerm(engine);
//START inline expansion of $get_level(a(6))
if (! a6.unify(new IntegerTerm(engine.B0), engine.trail)) {
return engine.fail();
}
//END inline expansion
Term[] y1 = {a2};
a7 = new StructureTerm(s4, y1);
p1 = new PRED_$cut_1(a6, cont);
return new PRED_C_3(a4, a7, a5, p1);
}
}
class PRED_$parse_tokens_before_op_5_4 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
// '$parse_tokens_before_op'(A,B,0,C,D):-'C'(C,atom(-),E),'C'(E,number(F),D),!,B is-F
Term a1, a2, a3, a4, a5, a6, a7, a8, a9;
Predicate p1, p2, p3;
Predicate cont;
a1 = engine.aregs[1];
a2 = engine.aregs[2];
a3 = engine.aregs[3];
a4 = engine.aregs[4];
a5 = engine.aregs[5];
cont = engine.cont;
// '$parse_tokens_before_op'(A,B,0,C,D):-['$get_level'(E),'C'(C,atom(-),F),'C'(F,number(G),D),'$cut'(E),'$multi'(-1,G,B)]
a3 = a3.dereference();
if (a3.isInteger()){
if (((IntegerTerm) a3).intValue() != 0)
return engine.fail();
} else if (a3.isVariable()){
((VariableTerm) a3).bind(si3, engine.trail);
} else {
return engine.fail();
}
a6 = new VariableTerm(engine);
//START inline expansion of $get_level(a(6))
if (! a6.unify(new IntegerTerm(engine.B0), engine.trail)) {
return engine.fail();
}
//END inline expansion
a7 = new VariableTerm(engine);
a8 = new VariableTerm(engine);
Term[] y1 = {a8};
a9 = new StructureTerm(s4, y1);
p1 = new PRED_$multi_3(si9, a8, a2, cont);
p2 = new PRED_$cut_1(a6, p1);
p3 = new PRED_C_3(a7, a9, a5, p2);
return new PRED_C_3(a4, s8, a7, p3);
}
}
class PRED_$parse_tokens_before_op_5_5 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
// '$parse_tokens_before_op'(A,B,0,C,D):-'C'(C,var(E,B),D),!
Term a1, a2, a3, a4, a5, a6, a7;
Predicate p1;
Predicate cont;
a1 = engine.aregs[1];
a2 = engine.aregs[2];
a3 = engine.aregs[3];
a4 = engine.aregs[4];
a5 = engine.aregs[5];
cont = engine.cont;
// '$parse_tokens_before_op'(A,B,0,C,D):-['$get_level'(E),'C'(C,var(F,B),D),'$cut'(E)]
a3 = a3.dereference();
if (a3.isInteger()){
if (((IntegerTerm) a3).intValue() != 0)
return engine.fail();
} else if (a3.isVariable()){
((VariableTerm) a3).bind(si3, engine.trail);
} else {
return engine.fail();
}
a6 = new VariableTerm(engine);
//START inline expansion of $get_level(a(6))
if (! a6.unify(new IntegerTerm(engine.B0), engine.trail)) {
return engine.fail();
}
//END inline expansion
Term[] y1 = {new VariableTerm(engine), a2};
a7 = new StructureTerm(s10, y1);
p1 = new PRED_$cut_1(a6, cont);
return new PRED_C_3(a4, a7, a5, p1);
}
}
class PRED_$parse_tokens_before_op_5_6 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
// '$parse_tokens_before_op'(A,B,0,C,D):-'C'(C,string(B),D),!
Term a1, a2, a3, a4, a5, a6, a7;
Predicate p1;
Predicate cont;
a1 = engine.aregs[1];
a2 = engine.aregs[2];
a3 = engine.aregs[3];
a4 = engine.aregs[4];
a5 = engine.aregs[5];
cont = engine.cont;
// '$parse_tokens_before_op'(A,B,0,C,D):-['$get_level'(E),'C'(C,string(B),D),'$cut'(E)]
a3 = a3.dereference();
if (a3.isInteger()){
if (((IntegerTerm) a3).intValue() != 0)
return engine.fail();
} else if (a3.isVariable()){
((VariableTerm) a3).bind(si3, engine.trail);
} else {
return engine.fail();
}
a6 = new VariableTerm(engine);
//START inline expansion of $get_level(a(6))
if (! a6.unify(new IntegerTerm(engine.B0), engine.trail)) {
return engine.fail();
}
//END inline expansion
Term[] y1 = {a2};
a7 = new StructureTerm(s11, y1);
p1 = new PRED_$cut_1(a6, cont);
return new PRED_C_3(a4, a7, a5, p1);
}
}
class PRED_$parse_tokens_before_op_5_7 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
// '$parse_tokens_before_op'(A,B,0,C,D):-'C'(C,'(',E),!,'$parse_tokens'(B,1201,E,F),'$parse_tokens_expect'(')',F,D)
Term a1, a2, a3, a4, a5, a6, a7, a8;
Predicate p1, p2, p3;
Predicate cont;
a1 = engine.aregs[1];
a2 = engine.aregs[2];
a3 = engine.aregs[3];
a4 = engine.aregs[4];
a5 = engine.aregs[5];
cont = engine.cont;
// '$parse_tokens_before_op'(A,B,0,C,D):-['$get_level'(E),'C'(C,'(',F),'$cut'(E),'$parse_tokens'(B,1201,F,G),'$parse_tokens_expect'(')',G,D)]
a3 = a3.dereference();
if (a3.isInteger()){
if (((IntegerTerm) a3).intValue() != 0)
return engine.fail();
} else if (a3.isVariable()){
((VariableTerm) a3).bind(si3, engine.trail);
} else {
return engine.fail();
}
a6 = new VariableTerm(engine);
//START inline expansion of $get_level(a(6))
if (! a6.unify(new IntegerTerm(engine.B0), engine.trail)) {
return engine.fail();
}
//END inline expansion
a7 = new VariableTerm(engine);
a8 = new VariableTerm(engine);
p1 = new PRED_$parse_tokens_expect_3(s14, a8, a5, cont);
p2 = new PRED_$parse_tokens_4(a2, si13, a7, a8, p1);
p3 = new PRED_$cut_1(a6, p2);
return new PRED_C_3(a4, s12, a7, p3);
}
}
class PRED_$parse_tokens_before_op_5_8 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
// '$parse_tokens_before_op'(A,B,0,C,D):-'C'(C,'{',E),!,'$parse_tokens_skip_spaces'(E,F),'$parse_tokens_brace'(B,F,D)
Term a1, a2, a3, a4, a5, a6, a7, a8;
Predicate p1, p2, p3;
Predicate cont;
a1 = engine.aregs[1];
a2 = engine.aregs[2];
a3 = engine.aregs[3];
a4 = engine.aregs[4];
a5 = engine.aregs[5];
cont = engine.cont;
// '$parse_tokens_before_op'(A,B,0,C,D):-['$get_level'(E),'C'(C,'{',F),'$cut'(E),'$parse_tokens_skip_spaces'(F,G),'$parse_tokens_brace'(B,G,D)]
a3 = a3.dereference();
if (a3.isInteger()){
if (((IntegerTerm) a3).intValue() != 0)
return engine.fail();
} else if (a3.isVariable()){
((VariableTerm) a3).bind(si3, engine.trail);
} else {
return engine.fail();
}
a6 = new VariableTerm(engine);
//START inline expansion of $get_level(a(6))
if (! a6.unify(new IntegerTerm(engine.B0), engine.trail)) {
return engine.fail();
}
//END inline expansion
a7 = new VariableTerm(engine);
a8 = new VariableTerm(engine);
p1 = new PRED_$parse_tokens_brace_3(a2, a8, a5, cont);
p2 = new PRED_$parse_tokens_skip_spaces_2(a7, a8, p1);
p3 = new PRED_$cut_1(a6, p2);
return new PRED_C_3(a4, s15, a7, p3);
}
}
class PRED_$parse_tokens_before_op_5_9 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
// '$parse_tokens_before_op'(A,B,0,C,D):-'C'(C,'[',E),!,'$parse_tokens_skip_spaces'(E,F),'$parse_tokens_list'(B,F,D)
Term a1, a2, a3, a4, a5, a6, a7, a8;
Predicate p1, p2, p3;
Predicate cont;
a1 = engine.aregs[1];
a2 = engine.aregs[2];
a3 = engine.aregs[3];
a4 = engine.aregs[4];
a5 = engine.aregs[5];
cont = engine.cont;
// '$parse_tokens_before_op'(A,B,0,C,D):-['$get_level'(E),'C'(C,'[',F),'$cut'(E),'$parse_tokens_skip_spaces'(F,G),'$parse_tokens_list'(B,G,D)]
a3 = a3.dereference();
if (a3.isInteger()){
if (((IntegerTerm) a3).intValue() != 0)
return engine.fail();
} else if (a3.isVariable()){
((VariableTerm) a3).bind(si3, engine.trail);
} else {
return engine.fail();
}
a6 = new VariableTerm(engine);
//START inline expansion of $get_level(a(6))
if (! a6.unify(new IntegerTerm(engine.B0), engine.trail)) {
return engine.fail();
}
//END inline expansion
a7 = new VariableTerm(engine);
a8 = new VariableTerm(engine);
p1 = new PRED_$parse_tokens_list_3(a2, a8, a5, cont);
p2 = new PRED_$parse_tokens_skip_spaces_2(a7, a8, p1);
p3 = new PRED_$cut_1(a6, p2);
return new PRED_C_3(a4, s16, a7, p3);
}
}
class PRED_$parse_tokens_before_op_5_10 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
// '$parse_tokens_before_op'(A,B,0,C,D):-'C'(C,atom(E),F),'C'(F,'(',G),!,'$parse_tokens_skip_spaces'(G,H),'$parse_tokens_args'(I,H,D),B=..[E|I]
Term a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13;
Predicate p1, p2, p3, p4, p5;
Predicate cont;
a1 = engine.aregs[1];
a2 = engine.aregs[2];
a3 = engine.aregs[3];
a4 = engine.aregs[4];
a5 = engine.aregs[5];
cont = engine.cont;
// '$parse_tokens_before_op'(A,B,0,C,D):-['$get_level'(E),'C'(C,atom(F),G),'C'(G,'(',H),'$cut'(E),'$parse_tokens_skip_spaces'(H,I),'$parse_tokens_args'(J,I,D),'$univ'(B,[F|J])]
a3 = a3.dereference();
if (a3.isInteger()){
if (((IntegerTerm) a3).intValue() != 0)
return engine.fail();
} else if (a3.isVariable()){
((VariableTerm) a3).bind(si3, engine.trail);
} else {
return engine.fail();
}
a6 = new VariableTerm(engine);
//START inline expansion of $get_level(a(6))
if (! a6.unify(new IntegerTerm(engine.B0), engine.trail)) {
return engine.fail();
}
//END inline expansion
a7 = new VariableTerm(engine);
Term[] y1 = {a7};
a8 = new StructureTerm(s5, y1);
a9 = new VariableTerm(engine);
a10 = new VariableTerm(engine);
a11 = new VariableTerm(engine);
a12 = new VariableTerm(engine);
a13 = new ListTerm(a7, a12);
p1 = new PRED_$univ_2(a2, a13, cont);
p2 = new PRED_$parse_tokens_args_3(a12, a11, a5, p1);
p3 = new PRED_$parse_tokens_skip_spaces_2(a10, a11, p2);
p4 = new PRED_$cut_1(a6, p3);
p5 = new PRED_C_3(a9, s12, a10, p4);
return new PRED_C_3(a4, a8, a9, p5);
}
}
class PRED_$parse_tokens_before_op_5_11 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
// '$parse_tokens_before_op'(A,B,C,D,E):-'C'(D,atom(F),G),current_op(C,fx,F),C=<A,'$parse_tokens_skip_spaces'(G,H),'$parse_tokens_peep_next'(I,H,J),'$parse_tokens_is_starter'(I),'$dummy_14_builtins.pl'(I),!,K is C-1,'$parse_tokens'(L,K,J,E),functor(B,F,1),arg(1,B,L)
Term a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14;
Predicate p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11;
Predicate cont;
a1 = engine.aregs[1];
a2 = engine.aregs[2];
a3 = engine.aregs[3];
a4 = engine.aregs[4];
a5 = engine.aregs[5];
cont = engine.cont;
// '$parse_tokens_before_op'(A,B,C,D,E):-['$get_level'(F),'C'(D,atom(G),H),current_op(C,fx,G),'$less_or_equal'(C,A),'$parse_tokens_skip_spaces'(H,I),'$parse_tokens_peep_next'(J,I,K),'$parse_tokens_is_starter'(J),'$dummy_14_builtins.pl'(J),'$cut'(F),'$minus'(C,1,L),'$parse_tokens'(M,L,K,E),functor(B,G,1),arg(1,B,M)]
a6 = new VariableTerm(engine);
//START inline expansion of $get_level(a(6))
if (! a6.unify(new IntegerTerm(engine.B0), engine.trail)) {
return engine.fail();
}
//END inline expansion
a7 = new VariableTerm(engine);
Term[] y1 = {a7};
a8 = new StructureTerm(s5, y1);
a9 = new VariableTerm(engine);
a10 = new VariableTerm(engine);
a11 = new VariableTerm(engine);
a12 = new VariableTerm(engine);
a13 = new VariableTerm(engine);
a14 = new VariableTerm(engine);
p1 = new PRED_arg_3(si18, a2, a14, cont);
p2 = new PRED_functor_3(a2, a7, si18, p1);
p3 = new PRED_$parse_tokens_4(a14, a13, a12, a5, p2);
p4 = new PRED_$minus_3(a3, si18, a13, p3);
p5 = new PRED_$cut_1(a6, p4);
p6 = new PRED_$dummy_14_builtins$002Epl_1(a11, p5);
p7 = new PRED_$parse_tokens_is_starter_1(a11, p6);
p8 = new PRED_$parse_tokens_peep_next_3(a11, a10, a12, p7);
p9 = new PRED_$parse_tokens_skip_spaces_2(a9, a10, p8);
p10 = new PRED_$less_or_equal_2(a3, a1, p9);
p11 = new PRED_current_op_3(a3, s17, a7, p10);
return new PRED_C_3(a4, a8, a9, p11);
}
}
class PRED_$parse_tokens_before_op_5_12 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
// '$parse_tokens_before_op'(A,B,C,D,E):-'C'(D,atom(F),G),current_op(C,fy,F),C=<A,'$parse_tokens_skip_spaces'(G,H),'$parse_tokens_peep_next'(I,H,J),'$parse_tokens_is_starter'(I),'$dummy_15_builtins.pl'(I),!,'$parse_tokens'(K,C,J,E),functor(B,F,1),arg(1,B,K)
Term a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13;
Predicate p1, p2, p3, p4, p5, p6, p7, p8, p9, p10;
Predicate cont;
a1 = engine.aregs[1];
a2 = engine.aregs[2];
a3 = engine.aregs[3];
a4 = engine.aregs[4];
a5 = engine.aregs[5];
cont = engine.cont;
// '$parse_tokens_before_op'(A,B,C,D,E):-['$get_level'(F),'C'(D,atom(G),H),current_op(C,fy,G),'$less_or_equal'(C,A),'$parse_tokens_skip_spaces'(H,I),'$parse_tokens_peep_next'(J,I,K),'$parse_tokens_is_starter'(J),'$dummy_15_builtins.pl'(J),'$cut'(F),'$parse_tokens'(L,C,K,E),functor(B,G,1),arg(1,B,L)]
a6 = new VariableTerm(engine);
//START inline expansion of $get_level(a(6))
if (! a6.unify(new IntegerTerm(engine.B0), engine.trail)) {
return engine.fail();
}
//END inline expansion
a7 = new VariableTerm(engine);
Term[] y1 = {a7};
a8 = new StructureTerm(s5, y1);
a9 = new VariableTerm(engine);
a10 = new VariableTerm(engine);
a11 = new VariableTerm(engine);
a12 = new VariableTerm(engine);
a13 = new VariableTerm(engine);
p1 = new PRED_arg_3(si18, a2, a13, cont);
p2 = new PRED_functor_3(a2, a7, si18, p1);
p3 = new PRED_$parse_tokens_4(a13, a3, a12, a5, p2);
p4 = new PRED_$cut_1(a6, p3);
p5 = new PRED_$dummy_15_builtins$002Epl_1(a11, p4);
p6 = new PRED_$parse_tokens_is_starter_1(a11, p5);
p7 = new PRED_$parse_tokens_peep_next_3(a11, a10, a12, p6);
p8 = new PRED_$parse_tokens_skip_spaces_2(a9, a10, p7);
p9 = new PRED_$less_or_equal_2(a3, a1, p8);
p10 = new PRED_current_op_3(a3, s19, a7, p9);
return new PRED_C_3(a4, a8, a9, p10);
}
}
class PRED_$parse_tokens_before_op_5_13 extends PRED_$parse_tokens_before_op_5 {
public Predicate exec(Prolog engine) {
// '$parse_tokens_before_op'(A,B,0,C,D):-'C'(C,atom(B),D)
Term a1, a2, a3, a4, a5, a6;
Predicate cont;
a1 = engine.aregs[1];
a2 = engine.aregs[2];
a3 = engine.aregs[3];
a4 = engine.aregs[4];
a5 = engine.aregs[5];
cont = engine.cont;
// '$parse_tokens_before_op'(A,B,0,C,D):-['C'(C,atom(B),D)]
a3 = a3.dereference();
if (a3.isInteger()){
if (((IntegerTerm) a3).intValue() != 0)
return engine.fail();
} else if (a3.isVariable()){
((VariableTerm) a3).bind(si3, engine.trail);
} else {
return engine.fail();
}
Term[] y1 = {a2};
a6 = new StructureTerm(s5, y1);
return new PRED_C_3(a4, a6, a5, cont);
}
}