|
From: <jom...@us...> - 2016-02-24 15:55:07
|
Revision: 1872
http://sourceforge.net/p/jason/svn/1872
Author: jomifred
Date: 2016-02-24 15:55:05 +0000 (Wed, 24 Feb 2016)
Log Message:
-----------
improve directive API
Modified Paths:
--------------
trunk/src/jason/asSyntax/directives/Directive.java
trunk/src/jason/asSyntax/directives/DirectiveProcessor.java
trunk/src/jason/asSyntax/directives/FunctionRegister.java
trunk/src/jason/asSyntax/directives/Include.java
trunk/src/jason/asSyntax/directives/NameSpace.java
trunk/src/jason/asSyntax/parser/AS2JavaParser.jcc
trunk/src/jason/asSyntax/parser/as2j.java
trunk/src/jason/asSyntax/patterns/goal/BC.java
trunk/src/jason/asSyntax/patterns/goal/DG.java
trunk/src/jason/asSyntax/patterns/goal/EBDG.java
trunk/src/jason/asSyntax/patterns/goal/MG.java
trunk/src/jason/asSyntax/patterns/goal/OMC.java
trunk/src/jason/asSyntax/patterns/goal/RC.java
trunk/src/jason/asSyntax/patterns/goal/SGA.java
trunk/src/jason/asSyntax/patterns/goal/SMC.java
trunk/src/test/ASParserTest.java
trunk/src/test/NSTest.java
Added Paths:
-----------
trunk/src/jason/asSyntax/directives/DefaultDirective.java
Added: trunk/src/jason/asSyntax/directives/DefaultDirective.java
===================================================================
--- trunk/src/jason/asSyntax/directives/DefaultDirective.java (rev 0)
+++ trunk/src/jason/asSyntax/directives/DefaultDirective.java 2016-02-24 15:55:05 UTC (rev 1872)
@@ -0,0 +1,24 @@
+package jason.asSyntax.directives;
+
+import jason.asSemantics.Agent;
+import jason.asSyntax.Pred;
+import jason.asSyntax.parser.as2j;
+
+public abstract class DefaultDirective implements Directive {
+
+ @Override
+ public boolean isSingleton() {
+ return true;
+ }
+
+ public void begin(Pred directive, as2j parser) {
+ }
+
+ public Agent process(Pred directive, Agent outerContent, Agent innerContent) {
+ return innerContent;
+ }
+
+ public void end(Pred directive, as2j parser) {
+ }
+
+}
Modified: trunk/src/jason/asSyntax/directives/Directive.java
===================================================================
--- trunk/src/jason/asSyntax/directives/Directive.java 2016-02-24 14:32:39 UTC (rev 1871)
+++ trunk/src/jason/asSyntax/directives/Directive.java 2016-02-24 15:55:05 UTC (rev 1872)
@@ -2,6 +2,7 @@
import jason.asSemantics.Agent;
import jason.asSyntax.Pred;
+import jason.asSyntax.parser.as2j;
/**
* Interface for all compiler directives (e.g. include and goal patterns).
@@ -46,6 +47,9 @@
* @author jomi
*/
public interface Directive {
+ /** called when the directive is declared */
+ void begin(Pred directive, as2j parser);
+
/**
* This method is called to process the directive.
*
@@ -55,4 +59,10 @@
* @return the agent (plans, bels, ...) with the result of the directive.
*/
Agent process(Pred directive, Agent outerContent, Agent innerContent);
+
+ /** called when the directive ends */
+ void end(Pred directive, as2j parser);
+
+ /** returns true if the same instance will be used by all agents/parsers in the JVM */
+ boolean isSingleton();
}
Modified: trunk/src/jason/asSyntax/directives/DirectiveProcessor.java
===================================================================
--- trunk/src/jason/asSyntax/directives/DirectiveProcessor.java 2016-02-24 14:32:39 UTC (rev 1871)
+++ trunk/src/jason/asSyntax/directives/DirectiveProcessor.java 2016-02-24 15:55:05 UTC (rev 1872)
@@ -1,6 +1,5 @@
package jason.asSyntax.directives;
-import jason.asSemantics.Agent;
import jason.asSyntax.Pred;
import jason.asSyntax.patterns.goal.BC;
import jason.asSyntax.patterns.goal.BDG;
@@ -27,42 +26,101 @@
* @author jomi
*
*/
+@SuppressWarnings("rawtypes")
public class DirectiveProcessor {
static Logger logger = Logger.getLogger(DirectiveProcessor.class.getName());
- private static Map<String,Directive> directives = new HashMap<String,Directive>();
+ private static Map<String,Class> directives = new HashMap<String,Class>();
+ private Map<String,Directive> instances = new HashMap<String,Directive>();
+ private static Map<String,Directive> singletons = new HashMap<String,Directive>();
- public static void addDirective(String id, Directive d) {
+ public static void registerDirective(String id, Class d) {
directives.put(id,d);
}
+
public static Directive getDirective(String id) {
- return directives.get(id);
+ Directive d = singletons.get(id);
+ if (d != null)
+ return d;
+
+ // create the instance
+ Class c = directives.get(id);
+ if (c == null) {
+ logger.log(Level.SEVERE, "Unknown directive "+id);
+ return null;
+ }
+
+ try {
+ d = (Directive)c.newInstance();
+ if (d.isSingleton())
+ singletons.put(id, d);
+ return d;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
}
- public static Directive removeDirective(String id) {
- return directives.remove(id);
- }
+ //public static Directive removeDirective(String id) {
+ // return directives.remove(id);
+ //}
+
// add known directives
static {
- addDirective("include", new Include());
- addDirective("register_function", new FunctionRegister());
- addDirective("namespace", new NameSpace());
+ registerDirective("include", Include.class);
+ registerDirective("register_function", FunctionRegister.class);
+ registerDirective("namespace", NameSpace.class);
- addDirective("dg", new DG());
- addDirective("bdg", new BDG());
- addDirective("ebdg", new EBDG());
- addDirective("bc", new BC());
- addDirective("smc", new SMC());
- addDirective("rc", new RC());
- addDirective("omc", new OMC());
- addDirective("mg", new MG());
- addDirective("sga", new SGA());
+ registerDirective("dg", DG.class);
+ registerDirective("bdg", BDG.class);
+ registerDirective("ebdg",EBDG.class);
+ registerDirective("bc", BC.class);
+ registerDirective("smc", SMC.class);
+ registerDirective("rc", RC.class);
+ registerDirective("omc", OMC.class);
+ registerDirective("mg", MG.class);
+ registerDirective("sga", SGA.class);
}
- public static Agent process(Pred directive, Agent outerAg, Agent innerAg) {
+ public Directive getInstance(Pred directive) {
+ return getInstance(directive.getFunctor());
+ }
+
+ public Directive getInstance(String id) {
+ Directive d = instances.get(id);
+ if (d != null)
+ return d;
+
+ d = singletons.get(id);
+ if (d != null)
+ return d;
+
+ // create the instance
+ Class c = directives.get(id);
+ if (c == null) {
+ logger.log(Level.SEVERE, "Unknown directive "+id);
+ return null;
+ }
+
try {
- logger.fine("Processing directive "+directive);
- Directive d = directives.get(directive.getFunctor());
+ d = (Directive)c.newInstance();
+ if (d.isSingleton())
+ singletons.put(id, d);
+ else
+ instances.put(id, d);
+ return d;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+
+/*
+ public Agent process(Pred directive, Agent outerAg, Agent innerAg) {
+ try {
+ //logger.fine("Processing directive "+directive);
+ Directive d = get(directive.getFunctor());
if (d != null) {
return d.process(directive, outerAg, innerAg);
} else {
@@ -73,5 +131,6 @@
}
return null;
}
-
+*/
+
}
Modified: trunk/src/jason/asSyntax/directives/FunctionRegister.java
===================================================================
--- trunk/src/jason/asSyntax/directives/FunctionRegister.java 2016-02-24 14:32:39 UTC (rev 1871)
+++ trunk/src/jason/asSyntax/directives/FunctionRegister.java 2016-02-24 15:55:05 UTC (rev 1872)
@@ -32,7 +32,7 @@
*
* @author Jomi
*/
-public class FunctionRegister implements Directive {
+public class FunctionRegister extends DefaultDirective implements Directive {
static Logger logger = Logger.getLogger(FunctionRegister.class.getName());
private static Map<String,ArithFunction> functions = new HashMap<String,ArithFunction>();
Modified: trunk/src/jason/asSyntax/directives/Include.java
===================================================================
--- trunk/src/jason/asSyntax/directives/Include.java 2016-02-24 14:32:39 UTC (rev 1871)
+++ trunk/src/jason/asSyntax/directives/Include.java 2016-02-24 15:55:05 UTC (rev 1872)
@@ -18,7 +18,7 @@
import java.util.logging.Logger;
/** Implementation of the <code>include</code> directive. */
-public class Include implements Directive {
+public class Include extends DefaultDirective implements Directive {
static Logger logger = Logger.getLogger(Include.class.getName());
public static final String CRPrefix = "ClassResource:";
Modified: trunk/src/jason/asSyntax/directives/NameSpace.java
===================================================================
--- trunk/src/jason/asSyntax/directives/NameSpace.java 2016-02-24 14:32:39 UTC (rev 1871)
+++ trunk/src/jason/asSyntax/directives/NameSpace.java 2016-02-24 15:55:05 UTC (rev 1872)
@@ -3,9 +3,11 @@
import jason.asSemantics.Agent;
import jason.asSyntax.Atom;
import jason.asSyntax.Pred;
+import jason.asSyntax.parser.as2j;
import java.util.HashMap;
import java.util.Map;
+import java.util.Stack;
/** Implementation of the <code>namespace</code> directive. */
public class NameSpace implements Directive {
@@ -14,21 +16,39 @@
private Map<Atom,Atom> localNSs = new HashMap<Atom,Atom>();
+ @Override
+ public boolean isSingleton() {
+ return false;
+ }
+
+ @Override
public Agent process(Pred directive, Agent outerContent, Agent innerContent) {
return innerContent;
}
- public Atom declareNS(Pred directive) {
+ Stack<Atom> oldNS = new Stack<Atom>();
+
+ @Override
+ public void begin(Pred directive, as2j parser) {
+ oldNS.push(parser.getNS());
Atom ns = new Atom( ((Atom)directive.getTerm(0)).getFunctor() );
if (directive.getArity() > 1) {
String type = ((Atom)directive.getTerm(1)).getFunctor();
if (type.equals("local")) {
- return addLocalNS(ns);
+ ns = addLocalNS(ns);
}
}
- return ns;
+ parser.setNS(ns);
+ //return ns;
}
+ @Override
+ public void end(Pred directive, as2j parser) {
+ Atom ns = oldNS.pop();
+ if (ns != null)
+ parser.setNS(ns);
+ }
+
public boolean isLocalNS(Atom ns) {
return localNSs.get(ns) != null;
}
Modified: trunk/src/jason/asSyntax/parser/AS2JavaParser.jcc
===================================================================
--- trunk/src/jason/asSyntax/parser/AS2JavaParser.jcc 2016-02-24 14:32:39 UTC (rev 1871)
+++ trunk/src/jason/asSyntax/parser/AS2JavaParser.jcc 2016-02-24 15:55:05 UTC (rev 1872)
@@ -53,7 +53,8 @@
private String asSource = null;
private Agent curAg = null;
private Atom namespace = Literal.DefaultNS;
- private NameSpace nsDirective = new NameSpace();
+ private DirectiveProcessor directiveProcessor = new DirectiveProcessor();
+ private NameSpace nsDirective = (NameSpace)directiveProcessor.getInstance("namespace");
private static Logger logger = Logger.getLogger("aslparser");
private static Set<String> parsedFiles = new HashSet<String>();
@@ -61,7 +62,8 @@
public void setAg(Agent ag) { curAg = ag; }
public void setNS(Atom ns) { namespace = ns; }
-
+ public Atom getNS() { return namespace; }
+
private String getSourceRef(SourceInfo s) {
if (s == null)
return "[]";
@@ -259,27 +261,23 @@
( LOOKAHEAD(4)
<TK_BEGIN> dir = pred() "}"
{ Agent innerAg = new Agent(); innerAg.initAg();
- if (dir.getFunctor().equals("namespace")) {
- Atom newNS = nsDirective.declareNS(dir); // to declare the namespace as local
- oldNS = namespace;
- setNS( newNS );
- }
+ directiveProcessor.getInstance(dir).begin(dir,this);
}
isEOF = agent(innerAg)
{ if (isEOF)
throw new ParseException(getSourceRef(dir)+" The directive '{ begin "+dir+"}' does not end with '{ end }'.");
- else
- resultOfDirective = DirectiveProcessor.process(dir, outerAg, innerAg);
- if (oldNS != null)
- setNS( oldNS );
+
+ resultOfDirective = directiveProcessor.getInstance(dir).process(dir, outerAg, innerAg);
+ directiveProcessor.getInstance(dir).end(dir,this);
}
|
dir = pred() "}"
{ if (dir.toString().equals("end"))
return true;
- if (dir.getFunctor().equals("namespace"))
- nsDirective.declareNS(dir); // to declare the namespace as local
- resultOfDirective = DirectiveProcessor.process(dir, outerAg, null);
+ Directive d = directiveProcessor.getInstance(dir);
+ d.begin(dir, this); // to declare the namespace as local
+ resultOfDirective = d.process(dir, outerAg, null);
+ d.end(dir, this);
}
)
{ if (resultOfDirective != null && outerAg != null) {
Modified: trunk/src/jason/asSyntax/parser/as2j.java
===================================================================
--- trunk/src/jason/asSyntax/parser/as2j.java 2016-02-24 14:32:39 UTC (rev 1871)
+++ trunk/src/jason/asSyntax/parser/as2j.java 2016-02-24 15:55:05 UTC (rev 1872)
@@ -22,7 +22,8 @@
private String asSource = null;
private Agent curAg = null;
private Atom namespace = Literal.DefaultNS;
- private NameSpace nsDirective = new NameSpace();
+ private DirectiveProcessor directiveProcessor = new DirectiveProcessor();
+ private NameSpace nsDirective = (NameSpace)directiveProcessor.getInstance("namespace");
private static Logger logger = Logger.getLogger("aslparser");
private static Set<String> parsedFiles = new HashSet<String>();
@@ -30,6 +31,7 @@
public void setAg(Agent ag) { curAg = ag; }
public void setNS(Atom ns) { namespace = ns; }
+ public Atom getNS() { return namespace; }
private String getSourceRef(SourceInfo s) {
if (s == null)
@@ -267,18 +269,13 @@
dir = pred();
jj_consume_token(31);
Agent innerAg = new Agent(); innerAg.initAg();
- if (dir.getFunctor().equals("namespace")) {
- Atom newNS = nsDirective.declareNS(dir); // to declare the namespace as local
- oldNS = namespace;
- setNS( newNS );
- }
+ directiveProcessor.getInstance(dir).begin(dir,this);
isEOF = agent(innerAg);
if (isEOF)
{if (true) throw new ParseException(getSourceRef(dir)+" The directive '{ begin "+dir+"}' does not end with '{ end }'.");}
- else
- resultOfDirective = DirectiveProcessor.process(dir, outerAg, innerAg);
- if (oldNS != null)
- setNS( oldNS );
+
+ resultOfDirective = directiveProcessor.getInstance(dir).process(dir, outerAg, innerAg);
+ directiveProcessor.getInstance(dir).end(dir,this);
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case TK_BEGIN:
@@ -288,9 +285,10 @@
jj_consume_token(31);
if (dir.toString().equals("end"))
{if (true) return true;}
- if (dir.getFunctor().equals("namespace"))
- nsDirective.declareNS(dir); // to declare the namespace as local
- resultOfDirective = DirectiveProcessor.process(dir, outerAg, null);
+ Directive d = directiveProcessor.getInstance(dir);
+ d.begin(dir, this); // to declare the namespace as local
+ resultOfDirective = d.process(dir, outerAg, null);
+ d.end(dir, this);
break;
default:
jj_la1[8] = jj_gen;
@@ -1645,6 +1643,22 @@
finally { jj_save(3, xla); }
}
+ final private boolean jj_3R_115() {
+ if (jj_3R_122()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_60() {
+ if (jj_scan_token(TK_NOT)) return true;
+ if (jj_3R_52()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_114() {
+ if (jj_3R_121()) return true;
+ return false;
+ }
+
final private boolean jj_3R_108() {
Token xsp;
xsp = jj_scanpos;
@@ -2244,6 +2258,14 @@
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_98() {
Token xsp;
xsp = jj_scanpos;
@@ -2271,16 +2293,13 @@
return false;
}
- final private boolean jj_3R_37() {
- if (jj_scan_token(TK_FALSE)) return true;
+ final private boolean jj_3R_43() {
+ if (jj_scan_token(30)) 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;
+ final private boolean jj_3R_37() {
+ if (jj_scan_token(TK_FALSE)) return true;
return false;
}
@@ -2294,11 +2313,6 @@
return false;
}
- final private boolean jj_3R_43() {
- if (jj_scan_token(30)) return true;
- return false;
- }
-
final private boolean jj_3R_50() {
if (jj_3R_13()) return true;
return false;
@@ -2521,6 +2535,11 @@
return false;
}
+ final private boolean jj_3R_28() {
+ if (jj_3R_46()) return true;
+ return false;
+ }
+
final private boolean jj_3R_73() {
if (jj_3R_78()) return true;
return false;
@@ -2531,8 +2550,8 @@
return false;
}
- final private boolean jj_3R_28() {
- if (jj_3R_46()) return true;
+ final private boolean jj_3R_27() {
+ if (jj_3R_45()) return true;
return false;
}
@@ -2548,28 +2567,18 @@
return false;
}
- final private boolean jj_3R_27() {
- if (jj_3R_45()) return true;
- return false;
- }
-
- final private boolean jj_3R_119() {
- if (jj_3R_108()) return true;
- return false;
- }
-
final private boolean jj_3R_26() {
if (jj_3R_44()) return true;
return false;
}
- final private boolean jj_3R_118() {
- if (jj_scan_token(41)) return true;
+ final private boolean jj_3R_25() {
+ if (jj_3R_43()) return true;
return false;
}
- final private boolean jj_3R_25() {
- if (jj_3R_43()) return true;
+ final private boolean jj_3R_119() {
+ if (jj_3R_108()) return true;
return false;
}
@@ -2595,6 +2604,11 @@
return false;
}
+ final private boolean jj_3R_118() {
+ if (jj_scan_token(41)) return true;
+ return false;
+ }
+
final private boolean jj_3R_117() {
if (jj_3R_124()) return true;
return false;
@@ -2610,22 +2624,6 @@
return false;
}
- final private boolean jj_3R_115() {
- if (jj_3R_122()) return true;
- return false;
- }
-
- final private boolean jj_3R_60() {
- if (jj_scan_token(TK_NOT)) return true;
- if (jj_3R_52()) return true;
- return false;
- }
-
- final private boolean jj_3R_114() {
- if (jj_3R_121()) return true;
- return false;
- }
-
public as2jTokenManager token_source;
SimpleCharStream jj_input_stream;
public Token token, jj_nt;
Modified: trunk/src/jason/asSyntax/patterns/goal/BC.java
===================================================================
--- trunk/src/jason/asSyntax/patterns/goal/BC.java 2016-02-24 14:32:39 UTC (rev 1871)
+++ trunk/src/jason/asSyntax/patterns/goal/BC.java 2016-02-24 15:55:05 UTC (rev 1872)
@@ -4,6 +4,7 @@
import jason.asSyntax.ASSyntax;
import jason.asSyntax.Pred;
import jason.asSyntax.Term;
+import jason.asSyntax.directives.DefaultDirective;
import jason.asSyntax.directives.Directive;
import jason.asSyntax.directives.DirectiveProcessor;
@@ -15,7 +16,7 @@
*
* @author jomi
*/
-public class BC implements Directive {
+public class BC extends DefaultDirective implements Directive {
static Logger logger = Logger.getLogger(BC.class.getName());
Modified: trunk/src/jason/asSyntax/patterns/goal/DG.java
===================================================================
--- trunk/src/jason/asSyntax/patterns/goal/DG.java 2016-02-24 14:32:39 UTC (rev 1871)
+++ trunk/src/jason/asSyntax/patterns/goal/DG.java 2016-02-24 15:55:05 UTC (rev 1872)
@@ -9,6 +9,7 @@
import jason.asSyntax.Plan;
import jason.asSyntax.Pred;
import jason.asSyntax.PlanBody.BodyType;
+import jason.asSyntax.directives.DefaultDirective;
import jason.asSyntax.directives.Directive;
import java.util.logging.Level;
@@ -19,7 +20,7 @@
*
* @author jomi
*/
-public class DG implements Directive {
+public class DG extends DefaultDirective implements Directive {
static Logger logger = Logger.getLogger(DG.class.getName());
Modified: trunk/src/jason/asSyntax/patterns/goal/EBDG.java
===================================================================
--- trunk/src/jason/asSyntax/patterns/goal/EBDG.java 2016-02-24 14:32:39 UTC (rev 1871)
+++ trunk/src/jason/asSyntax/patterns/goal/EBDG.java 2016-02-24 15:55:05 UTC (rev 1872)
@@ -12,6 +12,7 @@
import jason.asSyntax.Pred;
import jason.asSyntax.LogExpr.LogicalOp;
import jason.asSyntax.PlanBody.BodyType;
+import jason.asSyntax.directives.DefaultDirective;
import jason.asSyntax.directives.Directive;
import java.util.logging.Level;
@@ -22,7 +23,7 @@
*
* @author jomi
*/
-public class EBDG implements Directive {
+public class EBDG extends DefaultDirective implements Directive {
static Logger logger = Logger.getLogger(EBDG.class.getName());
Modified: trunk/src/jason/asSyntax/patterns/goal/MG.java
===================================================================
--- trunk/src/jason/asSyntax/patterns/goal/MG.java 2016-02-24 14:32:39 UTC (rev 1871)
+++ trunk/src/jason/asSyntax/patterns/goal/MG.java 2016-02-24 15:55:05 UTC (rev 1872)
@@ -4,6 +4,7 @@
import jason.asSyntax.ASSyntax;
import jason.asSyntax.Literal;
import jason.asSyntax.Pred;
+import jason.asSyntax.directives.DefaultDirective;
import jason.asSyntax.directives.Directive;
import jason.asSyntax.directives.DirectiveProcessor;
import jason.bb.BeliefBase;
@@ -16,7 +17,7 @@
*
* @author jomi
*/
-public class MG implements Directive {
+public class MG extends DefaultDirective implements Directive {
static Logger logger = Logger.getLogger(MG.class.getName());
Modified: trunk/src/jason/asSyntax/patterns/goal/OMC.java
===================================================================
--- trunk/src/jason/asSyntax/patterns/goal/OMC.java 2016-02-24 14:32:39 UTC (rev 1871)
+++ trunk/src/jason/asSyntax/patterns/goal/OMC.java 2016-02-24 15:55:05 UTC (rev 1872)
@@ -6,6 +6,7 @@
import jason.asSyntax.Pred;
import jason.asSyntax.SourceInfo;
import jason.asSyntax.Term;
+import jason.asSyntax.directives.DefaultDirective;
import jason.asSyntax.directives.Directive;
import jason.asSyntax.directives.DirectiveProcessor;
@@ -17,7 +18,7 @@
*
* @author jomi
*/
-public class OMC implements Directive {
+public class OMC extends DefaultDirective implements Directive {
static Logger logger = Logger.getLogger(OMC.class.getName());
Modified: trunk/src/jason/asSyntax/patterns/goal/RC.java
===================================================================
--- trunk/src/jason/asSyntax/patterns/goal/RC.java 2016-02-24 14:32:39 UTC (rev 1871)
+++ trunk/src/jason/asSyntax/patterns/goal/RC.java 2016-02-24 15:55:05 UTC (rev 1872)
@@ -4,6 +4,7 @@
import jason.asSyntax.ASSyntax;
import jason.asSyntax.Pred;
import jason.asSyntax.Term;
+import jason.asSyntax.directives.DefaultDirective;
import jason.asSyntax.directives.Directive;
import jason.asSyntax.directives.DirectiveProcessor;
@@ -15,7 +16,7 @@
*
* @author jomi
*/
-public class RC implements Directive {
+public class RC extends DefaultDirective implements Directive {
static Logger logger = Logger.getLogger(RC.class.getName());
Modified: trunk/src/jason/asSyntax/patterns/goal/SGA.java
===================================================================
--- trunk/src/jason/asSyntax/patterns/goal/SGA.java 2016-02-24 14:32:39 UTC (rev 1871)
+++ trunk/src/jason/asSyntax/patterns/goal/SGA.java 2016-02-24 15:55:05 UTC (rev 1872)
@@ -8,6 +8,7 @@
import jason.asSyntax.StringTerm;
import jason.asSyntax.Term;
import jason.asSyntax.Trigger;
+import jason.asSyntax.directives.DefaultDirective;
import jason.asSyntax.directives.Directive;
import java.util.logging.Level;
@@ -18,7 +19,7 @@
*
* @author jomi
*/
-public class SGA implements Directive {
+public class SGA extends DefaultDirective implements Directive {
static Logger logger = Logger.getLogger(SGA.class.getName());
Modified: trunk/src/jason/asSyntax/patterns/goal/SMC.java
===================================================================
--- trunk/src/jason/asSyntax/patterns/goal/SMC.java 2016-02-24 14:32:39 UTC (rev 1871)
+++ trunk/src/jason/asSyntax/patterns/goal/SMC.java 2016-02-24 15:55:05 UTC (rev 1872)
@@ -4,6 +4,7 @@
import jason.asSyntax.ASSyntax;
import jason.asSyntax.Pred;
import jason.asSyntax.Term;
+import jason.asSyntax.directives.DefaultDirective;
import jason.asSyntax.directives.Directive;
import jason.asSyntax.directives.DirectiveProcessor;
@@ -15,7 +16,7 @@
*
* @author jomi
*/
-public class SMC implements Directive {
+public class SMC extends DefaultDirective implements Directive {
static Logger logger = Logger.getLogger(SMC.class.getName());
Modified: trunk/src/test/ASParserTest.java
===================================================================
--- trunk/src/test/ASParserTest.java 2016-02-24 14:32:39 UTC (rev 1871)
+++ trunk/src/test/ASParserTest.java 2016-02-24 15:55:05 UTC (rev 1872)
@@ -326,6 +326,7 @@
parseDir(f);
} else if (f.getName().endsWith(MAS2JProject.AS_EXT)) {
if (f.getName().equals("search.asl")) continue; // ignore this file
+ if (f.getName().equals("b.asl")) continue; // ignore this file
as2j parser = new as2j(new FileInputStream(f));
//Agent ag = new Agent();
//ag.init();
Modified: trunk/src/test/NSTest.java
===================================================================
--- trunk/src/test/NSTest.java 2016-02-24 14:32:39 UTC (rev 1871)
+++ trunk/src/test/NSTest.java 2016-02-24 15:55:05 UTC (rev 1872)
@@ -6,6 +6,7 @@
import jason.asSyntax.ASSyntax;
import jason.asSyntax.Atom;
import jason.asSyntax.Literal;
+import jason.asSyntax.Plan;
import jason.asSyntax.Term;
import jason.asSyntax.VarTerm;
import jason.asSyntax.parser.ParseException;
@@ -252,7 +253,7 @@
"{end}\n"+
"{begin namespace(ns2,local)}\n"+
" b4(t). "+
- " +tk <- .print(t); !g5(u). "+
+ " +tk <- .print(t); +ns1::tick; !g5(u). "+
"{end}\n"+
"b5(i)."+
"{namespace(ns3,local)}\n"+
@@ -265,10 +266,11 @@
parser.agent(a);
a.addInitialBelsInBB();
//System.out.println(a.getBB());
- //System.out.println(a.getPL().toString());
+ for (Plan p: a.getPL())
+ System.out.println(p);
assertTrue(a.getPL().toString().contains("+ns1::tick <- .print(ns1::t); !ns1::g(ns1::u)"));
+ assertTrue(a.getPL().toString().contains("+#1ns2::tk <- .print(#1ns2::t); +ns1::tick; !#1ns2::g5(#1ns2::u)"));
assertTrue(a.getPL().toString().contains("+!nsd::g2(nsd::V) <- +nsd::b3(nsd::h); +ns1::tick; +#1ns2::tk; +#2ns3::b5(#1ns2::t)"));
- assertTrue(a.getPL().toString().contains("+#1ns2::tk <- .print(#1ns2::t); !#1ns2::g5(#1ns2::u)"));
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|