Package jp.ac.kobe_u.cs.prolog.builtin

Source Code of jp.ac.kobe_u.cs.prolog.builtin.PRED_$trace_init_0

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.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>'$trace_init'/0</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_$trace_init_0 extends Predicate {
    static SymbolTerm s1 = SymbolTerm.makeSymbol(":", 2);
    static SymbolTerm s2 = SymbolTerm.makeSymbol("jp.ac.kobe_u.cs.prolog.builtin");
    static SymbolTerm s3 = SymbolTerm.makeSymbol("$leap_flag", 1);
    static SymbolTerm s4 = SymbolTerm.makeSymbol("$current_leash", 1);
    static SymbolTerm s5 = SymbolTerm.makeSymbol("$current_spypoint", 3);
    static SymbolTerm s6 = SymbolTerm.makeSymbol("no");
    static Term[] s7 = {s6};
    static StructureTerm s8 = new StructureTerm(s3, s7);
    static Term[] s9 = {s2, s8};
    static StructureTerm s10 = new StructureTerm(s1, s9);
    static SymbolTerm s11 = SymbolTerm.makeSymbol("call");
    static Term[] s12 = {s11};
    static StructureTerm s13 = new StructureTerm(s4, s12);
    static Term[] s14 = {s2, s13};
    static StructureTerm s15 = new StructureTerm(s1, s14);
    static SymbolTerm s16 = SymbolTerm.makeSymbol("exit");
    static Term[] s17 = {s16};
    static StructureTerm s18 = new StructureTerm(s4, s17);
    static Term[] s19 = {s2, s18};
    static StructureTerm s20 = new StructureTerm(s1, s19);
    static SymbolTerm s21 = SymbolTerm.makeSymbol("redo");
    static Term[] s22 = {s21};
    static StructureTerm s23 = new StructureTerm(s4, s22);
    static Term[] s24 = {s2, s23};
    static StructureTerm s25 = new StructureTerm(s1, s24);
    static SymbolTerm s26 = SymbolTerm.makeSymbol("fail");
    static Term[] s27 = {s26};
    static StructureTerm s28 = new StructureTerm(s4, s27);
    static Term[] s29 = {s2, s28};
    static StructureTerm s30 = new StructureTerm(s1, s29);

    public PRED_$trace_init_0(Predicate cont) {
        this.cont = cont;
    }

    public PRED_$trace_init_0(){}

    public void setArgument(Term[] args, Predicate cont) {
        this.cont = cont;
    }

    public int arity() { return 0; }

    public String toString() {
        return "$trace_init";
    }

    public Predicate exec(Prolog engine) {
    // '$trace_init':-retractall('$leap_flag'(A)),retractall('$current_leash'(B)),retractall('$current_spypoint'(C,D,E)),assertz('$leap_flag'(no)),assertz('$current_leash'(call)),assertz('$current_leash'(exit)),assertz('$current_leash'(redo)),assertz('$current_leash'(fail)),!
        engine.setB0();
        Term a1, a2, a3, a4, a5, a6, a7;
        Predicate p1, p2, p3, p4, p5, p6, p7, p8;
    // '$trace_init':-['$get_level'(A),retractall('jp.ac.kobe_u.cs.prolog.builtin':'$leap_flag'(B)),retractall('jp.ac.kobe_u.cs.prolog.builtin':'$current_leash'(C)),retractall('jp.ac.kobe_u.cs.prolog.builtin':'$current_spypoint'(D,E,F)),assertz('jp.ac.kobe_u.cs.prolog.builtin':'$leap_flag'(no)),assertz('jp.ac.kobe_u.cs.prolog.builtin':'$current_leash'(call)),assertz('jp.ac.kobe_u.cs.prolog.builtin':'$current_leash'(exit)),assertz('jp.ac.kobe_u.cs.prolog.builtin':'$current_leash'(redo)),assertz('jp.ac.kobe_u.cs.prolog.builtin':'$current_leash'(fail)),'$cut'(A)]
        a1 = new VariableTerm(engine);
        //START inline expansion of $get_level(a(1))
        if (! a1.unify(new IntegerTerm(engine.B0), engine.trail)) {
            return engine.fail();
        }
        //END inline expansion
        Term[] y1 = {new VariableTerm(engine)};
        a2 = new StructureTerm(s3, y1);
        Term[] y2 = {s2, a2};
        a3 = new StructureTerm(s1, y2);
        Term[] y3 = {new VariableTerm(engine)};
        a4 = new StructureTerm(s4, y3);
        Term[] y4 = {s2, a4};
        a5 = new StructureTerm(s1, y4);
        Term[] y5 = {new VariableTerm(engine), new VariableTerm(engine), new VariableTerm(engine)};
        a6 = new StructureTerm(s5, y5);
        Term[] y6 = {s2, a6};
        a7 = new StructureTerm(s1, y6);
        p1 = new PRED_$cut_1(a1, cont);
        p2 = new PRED_assertz_1(s30, p1);
        p3 = new PRED_assertz_1(s25, p2);
        p4 = new PRED_assertz_1(s20, p3);
        p5 = new PRED_assertz_1(s15, p4);
        p6 = new PRED_assertz_1(s10, p5);
        p7 = new PRED_retractall_1(a7, p6);
        p8 = new PRED_retractall_1(a5, p7);
        return new PRED_retractall_1(a3, p8);
    }
}
TOP

Related Classes of jp.ac.kobe_u.cs.prolog.builtin.PRED_$trace_init_0

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.