From: <jom...@us...> - 2015-12-03 23:17:24
|
Revision: 1859 http://sourceforge.net/p/jason/svn/1859 Author: jomifred Date: 2015-12-03 23:17:22 +0000 (Thu, 03 Dec 2015) Log Message: ----------- initial implementation of name spaces Modified Paths: -------------- trunk/applications/as-unit-test/src/jason/tests/TestAll.java trunk/src/jason/asSemantics/TransitionSystem.java trunk/src/jason/asSemantics/Unifier.java trunk/src/jason/asSyntax/Atom.java trunk/src/jason/asSyntax/Literal.java trunk/src/jason/asSyntax/LiteralImpl.java trunk/src/jason/asSyntax/PlanLibrary.java trunk/src/jason/asSyntax/Pred.java trunk/src/jason/asSyntax/PredicateIndicator.java trunk/src/jason/asSyntax/Structure.java trunk/src/jason/asSyntax/parser/AS2JavaParser.jcc trunk/src/jason/asSyntax/parser/as2j.java trunk/src/jason/asSyntax/parser/as2jConstants.java trunk/src/jason/asSyntax/parser/as2jTokenManager.java trunk/src/jason/bb/BeliefBase.java trunk/src/jason/bb/DefaultBeliefBase.java trunk/src/jason/infra/centralised/RunCentralisedMAS.java trunk/src/test/TestAll.java Added Paths: ----------- trunk/src/jason/stdlib/name_space.java trunk/src/test/NSTest.java Modified: trunk/applications/as-unit-test/src/jason/tests/TestAll.java =================================================================== --- trunk/applications/as-unit-test/src/jason/tests/TestAll.java 2015-12-03 12:09:15 UTC (rev 1858) +++ trunk/applications/as-unit-test/src/jason/tests/TestAll.java 2015-12-03 23:17:22 UTC (rev 1859) @@ -30,6 +30,7 @@ TestUnnamedVar.class, TestCopyTerm.class, TestNegatedVar.class, - TestTRO.class + TestTRO.class, + TestNS.class }) public class TestAll { } Modified: trunk/src/jason/asSemantics/TransitionSystem.java =================================================================== --- trunk/src/jason/asSemantics/TransitionSystem.java 2015-12-03 12:09:15 UTC (rev 1858) +++ trunk/src/jason/asSemantics/TransitionSystem.java 2015-12-03 23:17:22 UTC (rev 1859) @@ -230,7 +230,7 @@ // the semantic rules are referred to in comments in the functions below - private String kqmlReceivedFunctor = Config.get().getKqmlFunctor(); + private final String kqmlReceivedFunctor = Config.get().getKqmlFunctor(); private void applyProcMsg() throws JasonException { confP.step = State.SelEv; Modified: trunk/src/jason/asSemantics/Unifier.java =================================================================== --- trunk/src/jason/asSemantics/Unifier.java 2015-12-03 12:09:15 UTC (rev 1858) +++ trunk/src/jason/asSemantics/Unifier.java 2015-12-03 23:17:22 UTC (rev 1859) @@ -279,6 +279,10 @@ if (!t1s.getFunctor().equals(t2s.getFunctor())) return false; + // different name space + if (t1s.getNS() != null && t2s.getNS() != null && !unifiesNoUndo(t1s.getNS(),t2s.getNS())) + return false; + // unify inner terms // do not use iterator! (see ListTermImpl class) for (int i = 0; i < ts; i++) Modified: trunk/src/jason/asSyntax/Atom.java =================================================================== --- trunk/src/jason/asSyntax/Atom.java 2015-12-03 12:09:15 UTC (rev 1858) +++ trunk/src/jason/asSyntax/Atom.java 2015-12-03 23:17:22 UTC (rev 1859) @@ -23,6 +23,8 @@ package jason.asSyntax; +import jason.asSemantics.Unifier; + import java.util.logging.Level; import java.util.logging.Logger; @@ -38,15 +40,33 @@ private static Logger logger = Logger.getLogger(Atom.class.getName()); private final String functor; // immutable field + private final Atom ns; // name space public Atom(String functor) { if (functor == null) - logger.log(Level.WARNING, "An atom functor should not be null!", new Exception()); + logger.log(Level.WARNING, "The functor of an atom functor should not be null!", new Exception()); this.functor = functor; + this.ns = DefaultNS; } + public Atom(Atom namespace, String functor) { + if (functor == null) + logger.log(Level.WARNING, "The functor of an atom functor should not be null!", new Exception()); + this.functor = functor; + this.ns = namespace; + } + public Atom(Literal l) { + this(l.getNS(), l); + } + + public Atom(Literal l, Unifier u) { + this((Atom)l.getNS().capply(u), l); + } + + public Atom(Atom namespace, Literal l) { this.functor = l.getFunctor(); + this.ns = namespace; predicateIndicatorCache = l.predicateIndicatorCache; hashCodeCache = l.hashCodeCache; srcInfo = l.srcInfo; @@ -55,6 +75,10 @@ public String getFunctor() { return functor; } + + public Atom getNS() { + return ns; + } public Term clone() { return this; // since this object is immutable @@ -72,7 +96,7 @@ if (o instanceof Atom) { Atom a = (Atom)o; //System.out.println(getFunctor() +" ==== " + a.getFunctor() + " is "+ (a.isAtom())); // && getFunctor().equals(a.getFunctor()))); - return a.isAtom() && getFunctor().equals(a.getFunctor()); + return a.isAtom() && getFunctor().equals(a.getFunctor()) && getNS().equals(a.getNS()); } return false; } @@ -100,15 +124,19 @@ if (t.isVar()) return -1; if (t instanceof Literal) { - Literal tAsLit = (Literal)t; - final int ma = getArity(); - final int oa = tAsLit.getArity(); - if (ma < oa) - return -1; - else if (ma > oa) - return 1; - else - return getFunctor().compareTo(tAsLit.getFunctor()); + Literal tAsLit = (Literal)t; + if (getNS().equals(tAsLit.getNS())) { // same ns + final int ma = getArity(); + final int oa = tAsLit.getArity(); + if (ma < oa) + return -1; + else if (ma > oa) + return 1; + else + return getFunctor().compareTo(tAsLit.getFunctor()); + } else { + return getNS().compareTo(tAsLit.getNS()); + } } return super.compareTo(t); @@ -116,18 +144,26 @@ @Override protected int calcHashCode() { - return getFunctor().hashCode(); + if (getNS() == null) { + System.out.println("*** "+this); + return 0; + } + return getFunctor().hashCode() + getNS().hashCode(); } @Override public String toString() { - return functor; + if (ns == DefaultNS) + return functor; + else + return getNS() + "::" + functor; } /** get as XML */ public Element getAsDOM(Document document) { Element u = (Element) document.createElement("structure"); u.setAttribute("functor",getFunctor()); + u.setAttribute("name-space", getNS().toString()); return u; } } Modified: trunk/src/jason/asSyntax/Literal.java =================================================================== --- trunk/src/jason/asSyntax/Literal.java 2015-12-03 12:09:15 UTC (rev 1858) +++ trunk/src/jason/asSyntax/Literal.java 2015-12-03 23:17:22 UTC (rev 1859) @@ -73,9 +73,11 @@ public static final boolean LPos = true; public static final boolean LNeg = false; - public static final Literal LTrue = new TrueLiteral(); - public static final Literal LFalse = new FalseLiteral(); + public static final Atom DefaultNS = new DefaultNameSpace(); + public static final Literal LTrue = new TrueLiteral(); + public static final Literal LFalse = new FalseLiteral(); + protected PredicateIndicator predicateIndicatorCache = null; // to not compute it all the time (it is used many many times) /** creates a new literal by parsing a string -- ASSyntax.parseLiteral or createLiteral are preferred. */ @@ -96,15 +98,18 @@ /** returns the functor of this literal */ public abstract String getFunctor(); + /** returns the name spaceof this literal */ + public abstract Atom getNS(); + @Override public boolean isLiteral() { return true; } - /** returns functor symbol "/" arity */ + /** returns name space :: functor symbol / arity */ public PredicateIndicator getPredicateIndicator() { if (predicateIndicatorCache == null) { - predicateIndicatorCache = new PredicateIndicator(getFunctor(),getArity()); + predicateIndicatorCache = new PredicateIndicator(getNS(), getFunctor(), getArity()); } return predicateIndicatorCache; } @@ -558,4 +563,17 @@ return LogExpr.EMPTY_UNIF_LIST.iterator(); } } + + private static final class DefaultNameSpace extends Atom { + public DefaultNameSpace() { + super("default"); + } + protected int calcHashCode() { + return getFunctor().hashCode(); + }; + + public String toString() { + return getFunctor(); + }; + } } Modified: trunk/src/jason/asSyntax/LiteralImpl.java =================================================================== --- trunk/src/jason/asSyntax/LiteralImpl.java 2015-12-03 12:09:15 UTC (rev 1858) +++ trunk/src/jason/asSyntax/LiteralImpl.java 2015-12-03 23:17:22 UTC (rev 1859) @@ -68,6 +68,12 @@ type = pos; } + /** creates a literal based on another but in another name space and signal */ + public LiteralImpl(Atom namespace, boolean pos, Literal l) { + super(namespace, l); + type = pos; + } + protected LiteralImpl(String functor, int terms) { super(functor, terms); } Modified: trunk/src/jason/asSyntax/PlanLibrary.java =================================================================== --- trunk/src/jason/asSyntax/PlanLibrary.java 2015-12-03 12:09:15 UTC (rev 1858) +++ trunk/src/jason/asSyntax/PlanLibrary.java 2015-12-03 23:17:22 UTC (rev 1859) @@ -144,7 +144,7 @@ add(p,false); } - private String kqmlReceivedFunctor = Config.get().getKqmlFunctor(); + private final String kqmlReceivedFunctor = Config.get().getKqmlFunctor(); /** * Adds a plan into the plan library, either before or after all other Modified: trunk/src/jason/asSyntax/Pred.java =================================================================== --- trunk/src/jason/asSyntax/Pred.java 2015-12-03 12:09:15 UTC (rev 1858) +++ trunk/src/jason/asSyntax/Pred.java 2015-12-03 23:17:22 UTC (rev 1859) @@ -49,9 +49,16 @@ public Pred(String functor) { super(functor); } + public Pred(Atom namespace, String functor) { + super(namespace, functor); + } public Pred(Literal l) { - super(l); + this(l.getNS(), l); + } + + public Pred(Atom namespace, Literal l) { + super(namespace, l); if (l.hasAnnot()) { annots = l.getAnnots().cloneLT(); Modified: trunk/src/jason/asSyntax/PredicateIndicator.java =================================================================== --- trunk/src/jason/asSyntax/PredicateIndicator.java 2015-12-03 12:09:15 UTC (rev 1858) +++ trunk/src/jason/asSyntax/PredicateIndicator.java 2015-12-03 23:17:22 UTC (rev 1859) @@ -9,6 +9,8 @@ */ public final class PredicateIndicator implements Comparable<PredicateIndicator>, Serializable { + + private final Atom ns; // name space private final String functor; private final int arity; private final int hash; @@ -16,14 +18,26 @@ public PredicateIndicator(String functor, int arity) { this.functor = functor; this.arity = arity; + this.ns = Literal.DefaultNS; hash = calcHash(); } + public PredicateIndicator(Atom namespace, String functor, int arity) { + this.functor = functor; + this.arity = arity; + this.ns = namespace; + hash = calcHash(); + } public PredicateIndicator(String prefix, PredicateIndicator pi) { this.functor = prefix + pi.functor; this.arity = pi.arity; + this.ns = Literal.DefaultNS; hash = calcHash(); } + public Atom getNS() { + return ns; + } + public String getFunctor() { return functor; } @@ -37,7 +51,7 @@ if (o == this) return true; if (o != null && o instanceof PredicateIndicator && o.hashCode() == this.hashCode()) { final PredicateIndicator pi = (PredicateIndicator)o; - return arity == pi.arity && functor.equals(pi.functor); + return arity == pi.arity && functor.equals(pi.functor) && ns.equals(pi.getNS()); } return false; } @@ -49,8 +63,12 @@ @Override public int compareTo(PredicateIndicator pi) { - int c = this.functor.compareTo(pi.functor); + int c = this.ns.compareTo(pi.ns); if (c != 0) return c; + + c = this.functor.compareTo(pi.functor); + if (c != 0) return c; + if (pi.arity > this.arity) return -1; if (this.arity > pi.arity) return 1; return 0; @@ -59,10 +77,14 @@ private int calcHash() { int t = 31 * arity; if (functor != null) t = 31 * t + functor.hashCode(); + if (ns != Literal.DefaultNS) t = t + 71 * ns.hashCode(); return t; } public String toString() { - return functor + "/" + arity; + if (ns == Literal.DefaultNS) + return functor + "/" + arity; + else + return ns + "::" + functor + "/" + arity; } } Modified: trunk/src/jason/asSyntax/Structure.java =================================================================== --- trunk/src/jason/asSyntax/Structure.java 2015-12-03 12:09:15 UTC (rev 1858) +++ trunk/src/jason/asSyntax/Structure.java 2015-12-03 23:17:22 UTC (rev 1859) @@ -63,8 +63,18 @@ this.terms = new ArrayList<Term>(5); } + public Structure(Atom ns, String functor) { + //this.functor = (functor == null ? null : functor.intern()); // it does not improve performance in test i did! + super(ns, functor); + this.terms = new ArrayList<Term>(5); + } + public Structure(Literal l) { - super(l); + this(l.getNS(), l); + } + + public Structure(Atom namespace, Literal l) { + super(namespace, l); final int tss = l.getArity(); terms = new ArrayList<Term>(tss); for (int i = 0; i < tss; i++) @@ -74,7 +84,7 @@ // used by capply protected Structure(Literal l, Unifier u) { - super(l); + super(l, u); final int tss = l.getArity(); terms = new ArrayList<Term>(tss); for (int i = 0; i < tss; i++) @@ -436,6 +446,10 @@ public String toString() { StringBuilder s = new StringBuilder(); + if (getNS() != DefaultNS) { + s.append(getNS()); + s.append("::"); + } if (getFunctor() != null) s.append(getFunctor()); if (getArity() > 0) { Modified: trunk/src/jason/asSyntax/parser/AS2JavaParser.jcc =================================================================== --- trunk/src/jason/asSyntax/parser/AS2JavaParser.jcc 2015-12-03 12:09:15 UTC (rev 1858) +++ trunk/src/jason/asSyntax/parser/AS2JavaParser.jcc 2015-12-03 23:17:22 UTC (rev 1859) @@ -591,47 +591,62 @@ /* Literal */ Literal literal() : - { Pred F; Token k; boolean type = Literal.LPos; } + { Pred F = null; Pred V; Token k; boolean type = Literal.LPos; Atom NS = Literal.DefaultNS; Token tns; } { ( ( [ <TK_NEG> { type = Literal.LNeg; } ] - (F=pred() { + + [ LOOKAHEAD(10) + tns = <ATOM> "::" { if (!tns.image.equals("default")) + NS = new Atom(tns.image); + } + ] + (F=pred() + | V = var() + [ + "::" F = pred() + ] + { VarTerm vt = (VarTerm)V; + vt.setNegated(type); + if (F == null) { // no namespace + return vt; + } else { + NS = vt; + } + } + ) + ) + | k=<TK_TRUE> { return Literal.LTrue; } + | k=<TK_FALSE> { return Literal.LFalse; } + ) + { if (F.getFunctor().indexOf(".") >= 0) { if (F.hasAnnot()) throw new ParseException(getSourceRef(F)+" Internal actions cannot have annotations."); if (type == Literal.LNeg) throw new ParseException(getSourceRef(F)+" Internal actions cannot be negated."); - try { - return new InternalActionLiteral(F, curAg); + try { + return new InternalActionLiteral(F, curAg); } catch (Exception e) { if (getArithFunction(F) == null) // it is not a registered function - logger.warning(getSourceRef(F)+" warning: The internal action class for '"+F+"' was not loaded! Error: "+e); + logger.warning(getSourceRef(F)+" warning: The internal action class for '"+F+"' was not loaded! Error: "+e); } } - return new LiteralImpl(type,F); + return new LiteralImpl(NS, type, F); } - | F = var() { - VarTerm vt = (VarTerm)F; - vt.setNegated(type); - return vt; - } - ) - ) - | k=<TK_TRUE> { return Literal.LTrue; } - | k=<TK_FALSE> { return Literal.LFalse; } - ) } /* Annotated Formulae */ -Pred pred() : { Token K; Pred p; List l; ListTerm lt; Term b; } +Pred pred() : { Token K; Pred p; List l; ListTerm lt; Term b; } { ( - K=<ATOM> + K=<ATOM> | K=<TK_BEGIN> | K=<TK_END> - ) { p = new Pred(K.image); + ) + { p = new Pred(K.image); p.setSrcInfo(new SourceInfo(asSource, K.beginLine)); } Modified: trunk/src/jason/asSyntax/parser/as2j.java =================================================================== --- trunk/src/jason/asSyntax/parser/as2j.java 2015-12-03 12:09:15 UTC (rev 1858) +++ trunk/src/jason/asSyntax/parser/as2j.java 2015-12-03 23:17:22 UTC (rev 1859) @@ -883,7 +883,7 @@ /* Literal */ final public Literal literal() throws ParseException { - Pred F; Token k; boolean type = Literal.LPos; + Pred F = null; Pred V; Token k; boolean type = Literal.LPos; Atom NS = Literal.DefaultNS; Token tns; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case VAR: case TK_NEG: @@ -900,34 +900,42 @@ jj_la1[32] = jj_gen; ; } + if (jj_2_4(10)) { + tns = jj_consume_token(ATOM); + jj_consume_token(47); + if (!tns.image.equals("default")) + NS = new Atom(tns.image); + } else { + ; + } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case TK_BEGIN: case TK_END: case ATOM: F = pred(); - if (F.getFunctor().indexOf(".") >= 0) { - if (F.hasAnnot()) - {if (true) throw new ParseException(getSourceRef(F)+" Internal actions cannot have annotations.");} - if (type == Literal.LNeg) - {if (true) throw new ParseException(getSourceRef(F)+" Internal actions cannot be negated.");} - try { - {if (true) return new InternalActionLiteral(F, curAg);} - } catch (Exception e) { - if (getArithFunction(F) == null) // it is not a registered function - logger.warning(getSourceRef(F)+" warning: The internal action class for '"+F+"' was not loaded! Error: "+e); - } - } - {if (true) return new LiteralImpl(type,F);} break; case VAR: case UNNAMEDVAR: - F = var(); - VarTerm vt = (VarTerm)F; + V = var(); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case 47: + jj_consume_token(47); + F = pred(); + break; + default: + jj_la1[33] = jj_gen; + ; + } + VarTerm vt = (VarTerm)V; vt.setNegated(type); - {if (true) return vt;} + if (F == null) { // no namespace + {if (true) return vt;} + } else { + NS = vt; + } break; default: - jj_la1[33] = jj_gen; + jj_la1[34] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -941,16 +949,29 @@ {if (true) return Literal.LFalse;} break; default: - jj_la1[34] = jj_gen; + jj_la1[35] = jj_gen; jj_consume_token(-1); throw new ParseException(); } + if (F.getFunctor().indexOf(".") >= 0) { + if (F.hasAnnot()) + {if (true) throw new ParseException(getSourceRef(F)+" Internal actions cannot have annotations.");} + if (type == Literal.LNeg) + {if (true) throw new ParseException(getSourceRef(F)+" Internal actions cannot be negated.");} + try { + {if (true) return new InternalActionLiteral(F, curAg);} + } catch (Exception e) { + if (getArithFunction(F) == null) // it is not a registered function + logger.warning(getSourceRef(F)+" warning: The internal action class for '"+F+"' was not loaded! Error: "+e); + } + } + {if (true) return new LiteralImpl(NS, type, F);} throw new Error("Missing return statement in function"); } /* Annotated Formulae */ final public Pred pred() throws ParseException { - Token K; Pred p; List l; ListTerm lt; Term b; + Token K; Pred p; List l; ListTerm lt; Term b; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case ATOM: K = jj_consume_token(ATOM); @@ -962,7 +983,7 @@ K = jj_consume_token(TK_END); break; default: - jj_la1[35] = jj_gen; + jj_la1[36] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -976,16 +997,16 @@ p.setTerms(l); break; default: - jj_la1[36] = jj_gen; + jj_la1[37] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case 48: + case 49: lt = list(); p.setAnnots(lt); break; default: - jj_la1[37] = jj_gen; + jj_la1[38] = jj_gen; ; } {if (true) return p;} @@ -1000,14 +1021,14 @@ label_9: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case 47: + case 48: ; break; default: - jj_la1[38] = jj_gen; + jj_la1[39] = jj_gen; break label_9; } - jj_consume_token(47); + jj_consume_token(48); v = term(); listTerms.add(v); } @@ -1019,7 +1040,7 @@ final public Term term() throws ParseException { Object o; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case 48: + case 49: o = list(); break; case 30: @@ -1042,7 +1063,7 @@ o = log_expr(); break; default: - jj_la1[39] = jj_gen; + jj_la1[40] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1052,7 +1073,7 @@ final public ListTermImpl list() throws ParseException { ListTermImpl lt = new ListTermImpl(); ListTerm last; Token K; Term f; - jj_consume_token(48); + jj_consume_token(49); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case VAR: case TK_TRUE: @@ -1068,26 +1089,26 @@ case 37: case 38: case 42: - case 48: + case 49: f = term_in_list(); last = lt.append(f); lt.setSrcInfo(f.getSrcInfo()); label_10: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case 47: + case 48: ; break; default: - jj_la1[40] = jj_gen; + jj_la1[41] = jj_gen; break label_10; } - jj_consume_token(47); + jj_consume_token(48); f = term_in_list(); last = last.append(f); } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case 49: - jj_consume_token(49); + case 50: + jj_consume_token(50); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case VAR: K = jj_consume_token(VAR); @@ -1097,26 +1118,26 @@ K = jj_consume_token(UNNAMEDVAR); last.setNext(UnnamedVar.create(K.image)); break; - case 48: + case 49: f = list(); last = last.concat((ListTerm)f); break; default: - jj_la1[41] = jj_gen; + jj_la1[42] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[42] = jj_gen; + jj_la1[43] = jj_gen; ; } break; default: - jj_la1[43] = jj_gen; + jj_la1[44] = jj_gen; ; } - jj_consume_token(50); + jj_consume_token(51); {if (true) return lt;} throw new Error("Missing return statement in function"); } @@ -1125,7 +1146,7 @@ final public Term term_in_list() throws ParseException { Object o; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case 48: + case 49: o = list(); break; case VAR: @@ -1149,7 +1170,7 @@ o = rule_plan_term(); break; default: - jj_la1[44] = jj_gen; + jj_la1[45] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1162,13 +1183,13 @@ Object t1, t2; t1 = log_expr_trm(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case 49: - jj_consume_token(49); + case 50: + jj_consume_token(50); t2 = log_expr(); {if (true) return new LogExpr((LogicalFormula)t1,LogicalOp.or,(LogicalFormula)t2);} break; default: - jj_la1[45] = jj_gen; + jj_la1[46] = jj_gen; ; } {if (true) return t1;} @@ -1179,13 +1200,13 @@ Object t1, t2; t1 = log_expr_factor(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case 51: - jj_consume_token(51); + case 52: + jj_consume_token(52); t2 = log_expr_trm(); {if (true) return new LogExpr((LogicalFormula)t1,LogicalOp.and,(LogicalFormula)t2);} break; default: - jj_la1[46] = jj_gen; + jj_la1[47] = jj_gen; ; } {if (true) return t1;} @@ -1217,7 +1238,7 @@ {if (true) return t;} break; default: - jj_la1[47] = jj_gen; + jj_la1[48] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1254,54 +1275,54 @@ op1 = string(); break; default: - jj_la1[48] = jj_gen; + jj_la1[49] = jj_gen; jj_consume_token(-1); throw new ParseException(); } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 45: case 46: - case 52: case 53: case 54: case 55: case 56: case 57: + case 58: switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 45: jj_consume_token(45); operator = RelationalOp.lt; break; - case 52: - jj_consume_token(52); + case 53: + jj_consume_token(53); operator = RelationalOp.lte; break; case 46: jj_consume_token(46); operator = RelationalOp.gt; break; - case 53: - jj_consume_token(53); - operator = RelationalOp.gte; - break; case 54: jj_consume_token(54); - operator = RelationalOp.eq; + operator = RelationalOp.gte; break; case 55: jj_consume_token(55); - operator = RelationalOp.dif; + operator = RelationalOp.eq; break; case 56: jj_consume_token(56); - operator = RelationalOp.unify; + operator = RelationalOp.dif; break; case 57: jj_consume_token(57); + operator = RelationalOp.unify; + break; + case 58: + jj_consume_token(58); operator = RelationalOp.literalBuilder; break; default: - jj_la1[49] = jj_gen; + jj_la1[50] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1323,14 +1344,14 @@ case STRING: op2 = string(); break; - case 48: + case 49: op2 = list(); break; case 30: op2 = rule_plan_term(); break; default: - jj_la1[50] = jj_gen; + jj_la1[51] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1341,7 +1362,7 @@ {if (true) return new RelExpr((Term)op1, operator, (Term)op2);} break; default: - jj_la1[51] = jj_gen; + jj_la1[52] = jj_gen; ; } {if (true) return op1;} @@ -1361,7 +1382,7 @@ ; break; default: - jj_la1[52] = jj_gen; + jj_la1[53] = jj_gen; break label_11; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1374,7 +1395,7 @@ op = ArithmeticOp.minus; break; default: - jj_la1[53] = jj_gen; + jj_la1[54] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1400,21 +1421,21 @@ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case TK_INTDIV: case TK_INTMOD: - case 58: case 59: + case 60: ; break; default: - jj_la1[54] = jj_gen; + jj_la1[55] = jj_gen; break label_12; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case 58: - jj_consume_token(58); + case 59: + jj_consume_token(59); op = ArithmeticOp.times; break; - case 59: - jj_consume_token(59); + case 60: + jj_consume_token(60); op = ArithmeticOp.div; break; case TK_INTDIV: @@ -1426,7 +1447,7 @@ op = ArithmeticOp.mod; break; default: - jj_la1[55] = jj_gen; + jj_la1[56] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1448,8 +1469,8 @@ t1 = arithm_expr_simple(); op = ArithmeticOp.none; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case 60: - jj_consume_token(60); + case 61: + jj_consume_token(61); op = ArithmeticOp.pow; t2 = arithm_expr_factor(); if (!(t1 instanceof NumberTerm)) { @@ -1461,7 +1482,7 @@ {if (true) return new ArithExpr((NumberTerm)t1, op, (NumberTerm)t2);} break; default: - jj_la1[56] = jj_gen; + jj_la1[57] = jj_gen; ; } {if (true) return t1;} @@ -1511,7 +1532,7 @@ {if (true) return t;} break; default: - jj_la1[57] = jj_gen; + jj_la1[58] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1546,17 +1567,17 @@ v = UnnamedVar.create(K.image); break; default: - jj_la1[58] = jj_gen; + jj_la1[59] = jj_gen; jj_consume_token(-1); throw new ParseException(); } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case 48: + case 49: lt = list(); v.setAnnots(lt); break; default: - jj_la1[59] = jj_gen; + jj_la1[60] = jj_gen; ; } {if (true) return v;} @@ -1593,97 +1614,37 @@ finally { jj_save(2, xla); } } - final private boolean jj_3R_117() { - if (jj_3R_106()) return true; - return false; + final private boolean jj_2_4(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_4(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(3, xla); } } - final private boolean jj_3R_83() { - if (jj_scan_token(57)) return true; + final private boolean jj_3R_118() { + if (jj_3R_107()) return true; return false; } - final private boolean jj_3R_82() { - if (jj_scan_token(56)) return true; - return false; - } - - final private boolean jj_3R_116() { + final private boolean jj_3R_117() { if (jj_scan_token(41)) return true; return false; } - final private boolean jj_3R_81() { - if (jj_scan_token(55)) return true; - return false; - } - - final private boolean jj_3R_80() { - if (jj_scan_token(54)) return true; - return false; - } - - final private boolean jj_3R_79() { - if (jj_scan_token(53)) return true; - return false; - } - - final private boolean jj_3R_78() { - if (jj_scan_token(46)) return true; - return false; - } - - final private boolean jj_3R_77() { - if (jj_scan_token(52)) return true; - return false; - } - - final private boolean jj_3R_76() { - if (jj_scan_token(45)) return true; - return false; - } - - final private boolean jj_3R_72() { + final private boolean jj_3R_65() { Token xsp; xsp = jj_scanpos; - if (jj_3R_76()) { + if (jj_3R_71()) { jj_scanpos = xsp; - if (jj_3R_77()) { - jj_scanpos = xsp; - if (jj_3R_78()) { - jj_scanpos = xsp; - if (jj_3R_79()) { - jj_scanpos = xsp; - if (jj_3R_80()) { - jj_scanpos = xsp; - if (jj_3R_81()) { - jj_scanpos = xsp; - if (jj_3R_82()) { - jj_scanpos = xsp; - if (jj_3R_83()) return true; + if (jj_3R_72()) return true; } - } - } - } - } - } - } xsp = jj_scanpos; - if (jj_3R_84()) { - jj_scanpos = xsp; - if (jj_3R_85()) { - jj_scanpos = xsp; - if (jj_3R_86()) { - jj_scanpos = xsp; - if (jj_3R_87()) return true; - } - } - } + if (jj_3R_73()) jj_scanpos = xsp; return false; } - final private boolean jj_3R_71() { - if (jj_3R_74()) return true; + final private boolean jj_3R_116() { + if (jj_3R_123()) return true; return false; } @@ -1692,11 +1653,6 @@ return false; } - final private boolean jj_3R_70() { - if (jj_3R_73()) return true; - return false; - } - final private boolean jj_3R_114() { if (jj_3R_121()) return true; return false; @@ -1707,48 +1663,36 @@ return false; } - final private boolean jj_3R_112() { - if (jj_3R_119()) return true; - return false; - } - - final private boolean jj_3R_64() { + final private boolean jj_3R_107() { Token xsp; xsp = jj_scanpos; - if (jj_3R_70()) { - jj_scanpos = xsp; - if (jj_3R_71()) return true; - } - xsp = jj_scanpos; - if (jj_3R_72()) jj_scanpos = xsp; - return false; - } - - final private boolean jj_3R_106() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_112()) { - jj_scanpos = xsp; if (jj_3R_113()) { jj_scanpos = xsp; if (jj_3R_114()) { jj_scanpos = xsp; - if (jj_3R_115()) return true; + if (jj_3R_115()) { + jj_scanpos = xsp; + if (jj_3R_116()) return true; } } } xsp = jj_scanpos; - if (jj_3R_116()) jj_scanpos = xsp; + if (jj_3R_117()) jj_scanpos = xsp; xsp = jj_scanpos; - if (jj_3R_117()) jj_scanpos = xsp; + if (jj_3R_118()) jj_scanpos = xsp; return false; } - final private boolean jj_3R_99() { - if (jj_3R_106()) return true; + final private boolean jj_3R_100() { + if (jj_3R_107()) return true; return false; } + final private boolean jj_3R_57() { + if (jj_3R_65()) return true; + return false; + } + final private boolean jj_3R_45() { if (jj_scan_token(40)) return true; return false; @@ -1771,6 +1715,12 @@ return false; } + final private boolean jj_3R_56() { + if (jj_scan_token(TK_NOT)) return true; + if (jj_3R_49()) return true; + return false; + } + final private boolean jj_3R_31() { if (jj_scan_token(36)) return true; return false; @@ -1802,6 +1752,16 @@ return false; } + final private boolean jj_3R_49() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_56()) { + jj_scanpos = xsp; + if (jj_3R_57()) return true; + } + return false; + } + final private boolean jj_3R_29() { if (jj_scan_token(39)) return true; return false; @@ -1823,6 +1783,12 @@ return false; } + final private boolean jj_3R_50() { + if (jj_scan_token(52)) return true; + if (jj_3R_36()) return true; + return false; + } + final private boolean jj_3_2() { Token xsp; xsp = jj_scanpos; @@ -1835,6 +1801,14 @@ return false; } + final private boolean jj_3R_36() { + if (jj_3R_49()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_50()) jj_scanpos = xsp; + return false; + } + final private boolean jj_3R_16() { Token xsp; xsp = jj_scanpos; @@ -1851,7 +1825,7 @@ return false; } - final private boolean jj_3R_65() { + final private boolean jj_3R_66() { if (jj_scan_token(30)) return true; Token xsp; xsp = jj_scanpos; @@ -1859,48 +1833,13 @@ xsp = jj_scanpos; if (jj_3_3()) jj_scanpos = xsp; xsp = jj_scanpos; - if (jj_3R_99()) jj_scanpos = xsp; + if (jj_3R_100()) jj_scanpos = xsp; if (jj_scan_token(31)) return true; return false; } - final private boolean jj_3R_56() { - if (jj_3R_64()) return true; - return false; - } - - final private boolean jj_3R_55() { - if (jj_scan_token(TK_NOT)) return true; - if (jj_3R_49()) return true; - return false; - } - - final private boolean jj_3R_49() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_55()) { - jj_scanpos = xsp; - if (jj_3R_56()) return true; - } - return false; - } - - final private boolean jj_3R_50() { - if (jj_scan_token(51)) return true; - if (jj_3R_36()) return true; - return false; - } - - final private boolean jj_3R_36() { - if (jj_3R_49()) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_50()) jj_scanpos = xsp; - return false; - } - final private boolean jj_3R_37() { - if (jj_scan_token(49)) return true; + if (jj_scan_token(50)) return true; if (jj_3R_20()) return true; return false; } @@ -1913,21 +1852,13 @@ return false; } - final private boolean jj_3R_53() { - if (jj_scan_token(TK_LABEL_AT)) return true; + final private boolean jj_3R_70() { + if (jj_3R_66()) return true; return false; } - final private boolean jj_3R_43() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_53()) jj_scanpos = xsp; - if (jj_3R_16()) return true; - return false; - } - final private boolean jj_3R_69() { - if (jj_3R_65()) return true; + if (jj_3R_75()) return true; return false; } @@ -1937,279 +1868,228 @@ } final private boolean jj_3R_67() { - if (jj_3R_73()) return true; - return false; - } - - final private boolean jj_3R_66() { if (jj_3R_39()) return true; return false; } - final private boolean jj_3R_60() { + final private boolean jj_3R_61() { Token xsp; xsp = jj_scanpos; - if (jj_3R_66()) { - jj_scanpos = xsp; if (jj_3R_67()) { jj_scanpos = xsp; if (jj_3R_68()) { jj_scanpos = xsp; - if (jj_3R_69()) return true; + if (jj_3R_69()) { + jj_scanpos = xsp; + if (jj_3R_70()) return true; } } } return false; } - final private boolean jj_3R_95() { + final private boolean jj_3R_96() { if (jj_3R_39()) return true; return false; } - final private boolean jj_3R_94() { + final private boolean jj_3R_95() { if (jj_scan_token(UNNAMEDVAR)) return true; return false; } - final private boolean jj_3R_93() { + final private boolean jj_3R_53() { + if (jj_scan_token(TK_LABEL_AT)) return true; + return false; + } + + final private boolean jj_3R_94() { if (jj_scan_token(VAR)) return true; return false; } - final private boolean jj_3R_74() { + final private boolean jj_3R_75() { if (jj_scan_token(STRING)) return true; return false; } - final private boolean jj_3R_42() { - if (jj_scan_token(34)) return true; + final private boolean jj_3R_43() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_53()) jj_scanpos = xsp; + if (jj_3R_16()) return true; return false; } - final private boolean jj_3R_63() { + final private boolean jj_3R_64() { if (jj_3R_39()) return true; return false; } - final private boolean jj_3R_90() { - if (jj_scan_token(49)) return true; + final private boolean jj_3R_91() { + if (jj_scan_token(50)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_93()) { - jj_scanpos = xsp; if (jj_3R_94()) { jj_scanpos = xsp; - if (jj_3R_95()) return true; + if (jj_3R_95()) { + jj_scanpos = xsp; + if (jj_3R_96()) return true; } } return false; } - final private boolean jj_3R_89() { - if (jj_scan_token(47)) return true; - if (jj_3R_60()) return true; + final private boolean jj_3R_90() { + if (jj_scan_token(48)) return true; + if (jj_3R_61()) return true; return false; } - final private boolean jj_3R_62() { + final private boolean jj_3R_63() { if (jj_scan_token(UNNAMEDVAR)) return true; return false; } - final private boolean jj_3R_126() { - if (jj_3R_20()) return true; - return false; - } - - final private boolean jj_3R_61() { + final private boolean jj_3R_62() { if (jj_scan_token(VAR)) return true; return false; } - final private boolean jj_3R_134() { - if (jj_scan_token(37)) return true; - return false; - } - - final private boolean jj_3R_125() { - if (jj_3R_65()) return true; - return false; - } - final private boolean jj_3R_52() { - if (jj_3R_60()) return true; + if (jj_3R_61()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_89()) { jj_scanpos = xsp; break; } + if (jj_3R_90()) { jj_scanpos = xsp; break; } } xsp = jj_scanpos; - if (jj_3R_90()) jj_scanpos = xsp; + if (jj_3R_91()) jj_scanpos = xsp; return false; } final private boolean jj_3R_54() { Token xsp; xsp = jj_scanpos; - if (jj_3R_61()) { + if (jj_3R_62()) { jj_scanpos = xsp; - if (jj_3R_62()) return true; + if (jj_3R_63()) return true; } xsp = jj_scanpos; - if (jj_3R_63()) jj_scanpos = xsp; + if (jj_3R_64()) jj_scanpos = xsp; return false; } - final private boolean jj_3R_137() { - if (jj_scan_token(46)) return true; - return false; - } - final private boolean jj_3R_39() { - if (jj_scan_token(48)) return true; + if (jj_scan_token(49)) return true; Token xsp; xsp = jj_scanpos; if (jj_3R_52()) jj_scanpos = xsp; - if (jj_scan_token(50)) return true; + if (jj_scan_token(51)) return true; return false; } - final private boolean jj_3R_136() { - if (jj_scan_token(45)) return true; + final private boolean jj_3R_42() { + if (jj_scan_token(34)) return true; return false; } - final private boolean jj_3R_135() { - if (jj_scan_token(37)) return true; + final private boolean jj_3R_60() { + if (jj_3R_20()) return true; return false; } - final private boolean jj_3R_132() { - if (jj_scan_token(38)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_134()) jj_scanpos = xsp; + final private boolean jj_3R_59() { + if (jj_3R_66()) return true; return false; } - final private boolean jj_3R_133() { + final private boolean jj_3R_58() { + if (jj_3R_39()) return true; + return false; + } + + final private boolean jj_3R_51() { Token xsp; xsp = jj_scanpos; - if (jj_3R_135()) { + if (jj_3R_58()) { jj_scanpos = xsp; - if (jj_3R_136()) { + if (jj_3R_59()) { jj_scanpos = xsp; - if (jj_3R_137()) return true; + if (jj_3R_60()) return true; } } return false; } - final private boolean jj_3R_59() { + final private boolean jj_3R_127() { if (jj_3R_20()) return true; return false; } - final private boolean jj_3R_58() { - if (jj_3R_65()) return true; - return false; - } - - final private boolean jj_3R_57() { - if (jj_3R_39()) return true; - return false; - } - - final private boolean jj_3R_131() { + final private boolean jj_3R_135() { if (jj_scan_token(37)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_133()) jj_scanpos = xsp; return false; } - final private boolean jj_3R_130() { - if (jj_scan_token(40)) return true; + final private boolean jj_3R_126() { + if (jj_3R_66()) return true; return false; } - final private boolean jj_3R_41() { + final private boolean jj_3R_119() { if (jj_3R_19()) return true; return false; } - final private boolean jj_3R_51() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_57()) { - jj_scanpos = xsp; - if (jj_3R_58()) { - jj_scanpos = xsp; - if (jj_3R_59()) return true; - } - } + final private boolean jj_3R_138() { + if (jj_scan_token(46)) return true; return false; } - final private boolean jj_3R_129() { - if (jj_scan_token(44)) return true; + final private boolean jj_3R_137() { + if (jj_scan_token(45)) return true; return false; } - final private boolean jj_3R_128() { - if (jj_scan_token(34)) return true; + final private boolean jj_3R_136() { + if (jj_scan_token(37)) return true; return false; } - final private boolean jj_3R_124() { + final private boolean jj_3R_133() { + if (jj_scan_token(38)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_128()) { - jj_scanpos = xsp; - if (jj_3R_129()) { - jj_scanpos = xsp; - if (jj_3R_130()) { - jj_scanpos = xsp; - if (jj_3R_131()) { - jj_scanpos = xsp; - if (jj_3R_132()) return true; - } - } - } - } + if (jj_3R_135()) jj_scanpos = xsp; return false; } - final private boolean jj_3R_118() { - if (jj_3R_19()) return true; + final private boolean jj_3R_76() { + if (jj_scan_token(48)) return true; + if (jj_3R_51()) return true; return false; } - final private boolean jj_3R_122() { + final private boolean jj_3R_134() { Token xsp; xsp = jj_scanpos; - if (jj_3R_124()) jj_scanpos = xsp; - xsp = jj_scanpos; - if (jj_3R_125()) { + if (jj_3R_136()) { jj_scanpos = xsp; - if (jj_3R_126()) return true; + if (jj_3R_137()) { + jj_scanpos = xsp; + if (jj_3R_138()) return true; } + } return false; } - final private boolean jj_3R_75() { - if (jj_scan_token(47)) return true; - if (jj_3R_51()) return true; + final private boolean jj_3R_112() { + if (jj_3R_119()) return true; return false; } final private boolean jj_3R_111() { - if (jj_3R_118()) return true; - return false; - } - - final private boolean jj_3R_110() { if (jj_scan_token(42)) return true; if (jj_3R_20()) return true; if (jj_scan_token(43)) return true; @@ -2221,29 +2101,88 @@ Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_75()) { jj_scanpos = xsp; break; } + if (jj_3R_76()) { jj_scanpos = xsp; break; } } return false; } - final private boolean jj_3R_109() { + final private boolean jj_3R_132() { if (jj_scan_token(37)) return true; - if (jj_3R_100()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_134()) jj_scanpos = xsp; return false; } + final private boolean jj_3R_131() { + if (jj_scan_token(40)) return true; + return false; + } + + final private boolean jj_3R_110() { + if (jj_scan_token(37)) return true; + if (jj_3R_101()) return true; + return false; + } + + final private boolean jj_3R_41() { + if (jj_3R_19()) return true; + return false; + } + + final private boolean jj_3R_130() { + if (jj_scan_token(44)) return true; + return false; + } + + final private boolean jj_3R_129() { + if (jj_scan_token(34)) return true; + return false; + } + + final private boolean jj_3R_125() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_129()) { + jj_scanpos = xsp; + if (jj_3R_130()) { + jj_scanpos = xsp; + if (jj_3R_131()) { + jj_scanpos = xsp; + if (jj_3R_132()) { + jj_scanpos = xsp; + if (jj_3R_133()) return true; + } + } + } + } + return false; + } + final private boolean jj_3R_22() { if (jj_3R_39()) return true; return false; } - final private boolean jj_3R_108() { + final private boolean jj_3R_123() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_125()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3R_126()) { + jj_scanpos = xsp; + if (jj_3R_127()) return true; + } + return false; + } + + final private boolean jj_3R_109() { if (jj_scan_token(38)) return true; - if (jj_3R_100()) return true; + if (jj_3R_101()) return true; return false; } - final private boolean jj_3R_107() { + final private boolean jj_3R_108() { if (jj_scan_token(NUMBER)) return true; return false; } @@ -2255,18 +2194,18 @@ return false; } - final private boolean jj_3R_100() { + final private boolean jj_3R_101() { Token xsp; xsp = jj_scanpos; - if (jj_3R_107()) { - jj_scanpos = xsp; if (jj_3R_108()) { jj_scanpos = xsp; if (jj_3R_109()) { jj_scanpos = xsp; if (jj_3R_110()) { jj_scanpos = xsp; - if (jj_3R_111()) return true; + if (jj_3R_111()) { + jj_scanpos = xsp; + if (jj_3R_112()) return true; } } } @@ -2274,28 +2213,6 @@ return false; } - final private boolean jj_3R_121() { - if (jj_scan_token(TK_WHILE)) return true; - if (jj_scan_token(42)) return true; - if (jj_3R_20()) return true; - if (jj_scan_token(43)) return true; - if (jj_3R_65()) return true; - return false; - } - - final private boolean jj_3_1() { - if (jj_scan_token(TK_BEGIN)) return true; - if (jj_3R_13()) return true; - if (jj_scan_token(31)) return true; - if (jj_3R_14()) return true; - return false; - } - - final private boolean jj_3R_40() { - if (jj_scan_token(30)) return true; - return false; - } - final private boolean jj_3R_13() { Token xsp; xsp = jj_scanpos; @@ -2313,106 +2230,176 @@ return false; } - final private boolean jj_3R_101() { - if (jj_scan_token(60)) return true; - if (jj_3R_92()) return true; + final private boolean jj_3R_102() { + if (jj_scan_token(61)) return true; + if (jj_3R_93()) return true; return false; } - final private boolean jj_3R_92() { - if (jj_3R_100()) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_101()) jj_scanpos = xsp; + final private boolean jj_3R_122() { + if (jj_scan_token(TK_WHILE)) return true; + if (jj_scan_token(42)) return true; + if (jj_3R_20()) return true; + if (jj_scan_token(43)) return true; + if (jj_3R_66()) return true; return false; } - final private boolean jj_3R_35() { - if (jj_scan_token(TK_FALSE)) return true; + final private boolean jj_3R_93() { + if (jj_3R_101()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_102()) jj_scanpos = xsp; return false; } - final private boolean jj_3R_34() { - if (jj_scan_token(TK_TRUE)) return true; + final private boolean jj_3_1() { + if (jj_scan_token(TK_BEGIN)) return true; + if (jj_3R_13()) return true; + if (jj_scan_token(31)) return true; + if (jj_3R_14()) return true; return false; } - final private boolean jj_3R_48() { - if (jj_3R_54()) return true; + final private boolean jj_3R_40() { + if (jj_scan_token(30)) return true; return false; } - final private boolean jj_3R_120() { - if (jj_scan_token(TK_FOR)) return true; - if (jj_scan_token(42)) return true; - if (jj_3R_20()) return true; - if (jj_scan_token(43)) return true; - if (jj_3R_65()) return true; + final private boolean jj_3R_106() { + if (jj_scan_token(TK_INTMOD)) return true; return false; } final private boolean jj_3R_105() { - if (jj_scan_token(TK_INTMOD)) return true; + if (jj_scan_token(TK_INTDIV)) return true; return false; } final private boolean jj_3R_104() { - if (jj_scan_token(TK_INTDIV)) return true; + if (jj_scan_token(60)) return true; return false; } + final private boolean jj_3R_35() { + if (jj_scan_token(TK_FALSE)) return true; + return false; + } + final private boolean jj_3R_103() { if (jj_scan_token(59)) return true; return false; } - final private boolean jj_3R_102() { - if (jj_scan_token(58)) return true; + final private boolean jj_3R_34() { + if (jj_scan_token(TK_TRUE)) return true; return false; } - final private boolean jj_3R_96() { + final private boolean jj_3R_97() { Token xsp; xsp = jj_scanpos; - if (jj_3R_102()) { - jj_scanpos = xsp; if (jj_3R_103()) { jj_scanpos = xsp; if (jj_3R_104()) { jj_scanpos = xsp; - if (jj_3R_105()) return true; + if (jj_3R_105()) { + jj_scanpos = xsp; + if (jj_3R_106()) return true; } } } - if (jj_3R_92()) return true; + if (jj_3R_93()) return true; return false; } - final private boolean jj_3R_88() { - if (jj_3R_92()) return true; + final private boolean jj_3R_121() { + if (jj_scan_token(TK_FOR)) return true; + if (jj_scan_token(42)) return true; + if (jj_3R_20()) return true; + if (jj_scan_token(43)) return true; + if (jj_3R_66()) return true; + return false; + } + + final private boolean jj_3R_89() { + if (jj_3R_93()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_96()) { jj_scanpos = xsp; break; } + if (jj_3R_97()) { jj_scanpos = xsp; break; } } return false; } + final private boolean jj_3R_55() { + if (jj_scan_token(47)) return true; + if (jj_3R_13()) return true; + return false; + } + + final private boolean jj_3R_48() { + if (jj_3R_54()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_55()) jj_scanpos = xsp; + return false; + } + final private boolean jj_3R_47() { if (jj_3R_13()) return true; return false; } + final private boolean jj_3R_99() { + if (jj_scan_token(38)) return true; + return false; + } + + final private boolean jj_3R_98() { + if (jj_scan_token(37)) return true; + return false; + } + + final private boolean jj_3R_92() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_98()) { + jj_scanpos = xsp; + if (jj_3R_99()) return true; + } + if (jj_3R_89()) return true; + return false; + } + + final private boolean jj_3_4() { + if (jj_scan_token(ATOM)) return true; + if (jj_scan_token(47)) return true; + return false; + } + final private boolean jj_3R_46() { if (jj_scan_token(TK_NEG)) return true; return false; } + final private boolean jj_3R_74() { + if (jj_3R_89()) return true; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_92()) { jj_scanpos = xsp; break; } + } + return false; + } + final private boolean jj_3R_33() { Token xsp; xsp = jj_scanpos; if (jj_3R_46()) jj_scanpos = xsp; xsp = jj_scanpos; + if (jj_3_4()) jj_scanpos = xsp; + xsp = jj_scanpos; if (jj_3R_47()) { jj_scanpos = xsp; if (jj_3R_48()) return true; @@ -2433,52 +2420,46 @@ return false; } - final private boolean jj_3R_98() { - if (jj_scan_token(38)) return true; + final private boolean jj_3R_128() { + if (jj_scan_token(TK_ELSE)) return true; return false; } - final private boolean jj_3R_127() { - if (jj_scan_token(TK_ELSE)) return true; + final private boolean jj_3R_88() { + if (jj_3R_66()) return true; return false; } - final private boolean jj_3R_97() { - if (jj_scan_token(37)) return true; + final private boolean jj_3R_87() { + if (jj_3R_39()) return true; return false; } - final private boolean jj_3R_123() { + final private boolean jj_3R_124() { Token xsp; xsp = jj_scanpos; - if (jj_3R_127()) jj_scanpos = xsp; - if (jj_3R_65()) return true; + if (jj_3R_128()) jj_scanpos = xsp; + if (jj_3R_66()) return true; return false; } - final private boolean jj_3R_91() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_97()) { - jj_scanpos = xsp; - if (jj_3R_98()) return true; - } - if (jj_3R_88()) return true; + final private boolean jj_3R_86() { + if (jj_3R_75()) return true; return false; } + final private boolean jj_3R_85() { + if (jj_3R_74()) return true; + return false; + } + final private boolean jj_3R_26() { if (jj_3R_43()) return true; return false; } - final private boolean jj_3R_73() { - if (jj_3R_... [truncated message content] |