From: <jom...@us...> - 2013-12-20 17:59:18
|
Revision: 1769 http://sourceforge.net/p/jason/svn/1769 Author: jomifred Date: 2013-12-20 17:59:14 +0000 (Fri, 20 Dec 2013) Log Message: ----------- remove auto source(self) from triggers in planterms Modified Paths: -------------- trunk/src/jason/asSyntax/PlanBodyImpl.java trunk/src/jason/asSyntax/Trigger.java trunk/src/jason/asSyntax/parser/AS2JavaParser.jcc trunk/src/jason/asSyntax/parser/as2j.java trunk/src/test/ASParserTest.java Modified: trunk/src/jason/asSyntax/PlanBodyImpl.java =================================================================== --- trunk/src/jason/asSyntax/PlanBodyImpl.java 2013-12-17 18:46:59 UTC (rev 1768) +++ trunk/src/jason/asSyntax/PlanBodyImpl.java 2013-12-20 17:59:14 UTC (rev 1769) @@ -41,15 +41,24 @@ super(BODY_PLAN_FUNCTOR, 0); } + public PlanBodyImpl(boolean planTerm) { + this(); + setAsBodyTerm(planTerm); + } + public PlanBodyImpl(BodyType t, Term b) { - super(BODY_PLAN_FUNCTOR, 0); + this(t,b,false); + } + + public PlanBodyImpl(BodyType t, Term b, boolean planTerm) { + this(planTerm); formType = t; if (b != null) { srcInfo = b.getSrcInfo(); // add source(self) in some commands (it is preferred to do this at compile time than runtime) if (b instanceof Literal) { - switch (t) { + switch (formType) { case achieve: case achieveNF: case addBel: @@ -309,15 +318,15 @@ PlanBodyImpl c; if (term == null) { // (NIDE) must copy c.isTerm even if cloning empty plan c = new PlanBodyImpl(); + c.isTerm = isTerm; } else { - c = new PlanBodyImpl(formType, term.capply(u)); + c = new PlanBodyImpl(formType, term.capply(u), isTerm); if (c.term.isPlanBody()) { // we cannot have "inner" body literals c.formType = ((PlanBody)c.term).getBodyType(); c.next = ((PlanBody)c.term).getBodyNext(); c.term = ((PlanBody)c.term).getBodyTerm(); } } - c.isTerm = isTerm; if (next != null) c.add((PlanBody)next.capply(u)); @@ -331,7 +340,7 @@ if (term == null) // (NIDE) must copy c.isTerm even if cloning empty plan c = new PlanBodyImpl(); else - c = new PlanBodyImpl(formType, term.clone()); + c = new PlanBodyImpl(formType, term.clone(), isTerm); c.isTerm = isTerm; if (next != null) c.setBodyNext(getBodyNext().clonePB()); Modified: trunk/src/jason/asSyntax/Trigger.java =================================================================== --- trunk/src/jason/asSyntax/Trigger.java 2013-12-17 18:46:59 UTC (rev 1768) +++ trunk/src/jason/asSyntax/Trigger.java 2013-12-20 17:59:14 UTC (rev 1769) @@ -28,6 +28,7 @@ import jason.asSyntax.PlanBody.BodyType; import jason.asSyntax.parser.ParseException; import jason.asSyntax.parser.as2j; +import jason.bb.BeliefBase; import java.io.StringReader; import java.util.logging.Level; @@ -220,27 +221,25 @@ if (t instanceof Trigger) { return (Trigger)t; } - /*if (t instanceof VarTerm) { - VarTerm v = (VarTerm)t; - if (v.hasValue() && v.getValue() instanceof Trigger) { - return (Trigger)v.getValue(); - } - if (v.hasValue() && v.getValue() instanceof Plan) { - return ((Plan)v.getValue()).getTrigger(); - } - }*/ - if (t.isString()) { - return ASSyntax.parseTrigger(((StringTerm)t).getString()); - } if (t.isPlanBody()) { PlanBody p = (PlanBody)t; if (p.getPlanSize() == 1) { - if (p.getBodyType() == BodyType.addBel) - return new Trigger(TEOperator.add, TEType.belief, (Literal)p.getBodyTerm()); - if (p.getBodyType() == BodyType.delBel) - return new Trigger(TEOperator.del, TEType.belief, (Literal)p.getBodyTerm()); + TEOperator op = null; + if (p.getBodyType() == BodyType.addBel) + op = TEOperator.add; + else if (p.getBodyType() == BodyType.delBel) + op = TEOperator.del; + if (op != null) { + Literal l = (Literal)p.getBodyTerm().clone(); + l.delAnnot(BeliefBase.TSelf); // remove the eventual auto added annotation of source + return new Trigger(op, TEType.belief, l); + + } } } + if (t.isString()) { + return ASSyntax.parseTrigger(((StringTerm)t).getString()); + } return null; } Modified: trunk/src/jason/asSyntax/parser/AS2JavaParser.jcc =================================================================== --- trunk/src/jason/asSyntax/parser/AS2JavaParser.jcc 2013-12-17 18:46:59 UTC (rev 1768) +++ trunk/src/jason/asSyntax/parser/AS2JavaParser.jcc 2013-12-20 17:59:14 UTC (rev 1769) @@ -510,10 +510,9 @@ // handle the case of "+a1; +a2", parsed as "TE; Body" if (pb && L == null) { if (T.isAddition()) - B1 = new PlanBodyImpl(BodyType.addBel, T.getLiteral()); + B1 = new PlanBodyImpl(BodyType.addBel, T.getLiteral(), true); else - B1 = new PlanBodyImpl(BodyType.delBel, T.getLiteral()); - B1.setAsBodyTerm(true); + B1 = new PlanBodyImpl(BodyType.delBel, T.getLiteral(), true); if (B != null) B1.setBodyNext(B); return B1; Modified: trunk/src/jason/asSyntax/parser/as2j.java =================================================================== --- trunk/src/jason/asSyntax/parser/as2j.java 2013-12-17 18:46:59 UTC (rev 1768) +++ trunk/src/jason/asSyntax/parser/as2j.java 2013-12-20 17:59:14 UTC (rev 1769) @@ -778,10 +778,9 @@ // handle the case of "+a1; +a2", parsed as "TE; Body" if (pb && L == null) { if (T.isAddition()) - B1 = new PlanBodyImpl(BodyType.addBel, T.getLiteral()); + B1 = new PlanBodyImpl(BodyType.addBel, T.getLiteral(), true); else - B1 = new PlanBodyImpl(BodyType.delBel, T.getLiteral()); - B1.setAsBodyTerm(true); + B1 = new PlanBodyImpl(BodyType.delBel, T.getLiteral(), true); if (B != null) B1.setBodyNext(B); {if (true) return B1;} @@ -1531,13 +1530,18 @@ return false; } + final private boolean jj_3R_66() { + if (jj_3R_78()) return true; + return false; + } + final private boolean jj_3R_85() { if (jj_3R_91()) return true; return false; } - final private boolean jj_3R_66() { - if (jj_3R_78()) return true; + final private boolean jj_3R_65() { + if (jj_3R_77()) return true; return false; } @@ -1546,8 +1550,8 @@ return false; } - final private boolean jj_3R_65() { - if (jj_3R_77()) return true; + final private boolean jj_3R_64() { + if (jj_3R_76()) return true; return false; } @@ -1556,11 +1560,6 @@ return false; } - final private boolean jj_3R_64() { - if (jj_3R_76()) return true; - return false; - } - final private boolean jj_3R_59() { Token xsp; xsp = jj_scanpos; @@ -1676,13 +1675,13 @@ return false; } - final private boolean jj_3R_82() { - if (jj_3R_80()) return true; + final private boolean jj_3R_49() { + if (jj_3R_59()) return true; return false; } - final private boolean jj_3R_49() { - if (jj_3R_59()) return true; + final private boolean jj_3R_82() { + if (jj_3R_80()) return true; return false; } @@ -1696,16 +1695,6 @@ return false; } - final private boolean jj_3R_75() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_82()) { - jj_scanpos = xsp; - if (jj_3R_83()) return true; - } - return false; - } - final private boolean jj_3R_19() { Token xsp; xsp = jj_scanpos; @@ -1722,6 +1711,16 @@ return false; } + final private boolean jj_3R_75() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_82()) { + jj_scanpos = xsp; + if (jj_3R_83()) return true; + } + return false; + } + final private boolean jj_3R_16() { if (jj_scan_token(TK_LABEL_AT)) return true; if (jj_3R_14()) return true; @@ -1835,11 +1834,6 @@ return false; } - final private boolean jj_3R_71() { - if (jj_3R_36()) return true; - return false; - } - final private boolean jj_3R_79() { Token xsp; xsp = jj_scanpos; @@ -1848,6 +1842,11 @@ return false; } + final private boolean jj_3R_71() { + if (jj_3R_36()) return true; + return false; + } + final private boolean jj_3R_70() { if (jj_3R_81()) return true; return false; @@ -2061,6 +2060,11 @@ return false; } + final private boolean jj_3R_24() { + if (jj_3R_39()) return true; + return false; + } + final private boolean jj_3R_14() { Token xsp; xsp = jj_scanpos; @@ -2082,11 +2086,6 @@ return false; } - final private boolean jj_3R_24() { - if (jj_3R_39()) return true; - return false; - } - final private boolean jj_3R_23() { if (jj_3R_38()) return true; return false; @@ -2097,11 +2096,6 @@ return false; } - final private boolean jj_3R_46() { - if (jj_scan_token(TK_FALSE)) return true; - return false; - } - final private boolean jj_3R_15() { Token xsp; while (true) { @@ -2124,6 +2118,11 @@ return false; } + final private boolean jj_3R_46() { + if (jj_scan_token(TK_FALSE)) return true; + return false; + } + final private boolean jj_3R_45() { if (jj_scan_token(TK_TRUE)) return true; return false; Modified: trunk/src/test/ASParserTest.java =================================================================== --- trunk/src/test/ASParserTest.java 2013-12-17 18:46:59 UTC (rev 1768) +++ trunk/src/test/ASParserTest.java 2013-12-20 17:59:14 UTC (rev 1769) @@ -251,7 +251,7 @@ Unifier un = new Unifier(); Term t = ASSyntax.parseTerm("{ +a(10) }"); assertTrue(t.isPlanBody()); - assertEquals("{ +a(10)[source(self)] }", t.toString()); + assertEquals("{ +a(10)[source(self)] }", t.toString()); // plan terms should not have default annotations t = ASSyntax.parseTerm("{ @label(a,b,10,test,long,label) +a(10) }"); assertTrue(t instanceof Plan); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |