|
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.
|