From: <jom...@us...> - 2008-10-07 00:29:52
|
Revision: 1393 http://jason.svn.sourceforge.net/jason/?rev=1393&view=rev Author: jomifred Date: 2008-10-06 23:54:26 +0000 (Mon, 06 Oct 2008) Log Message: ----------- fix problems in add_annot when argument is an Atom improve UML annots in some classes Modified Paths: -------------- trunk/applications/jason-moise/src/jmoise/MoiseBaseIA.java trunk/build.xml trunk/demos/big/BEnv.java trunk/examples/cleaning-robots/MarsEnv.java trunk/examples/gold-miners-II/env/MiningEnvironment.java trunk/examples/mining-robots/env/planetEnv.java trunk/examples/room/RoomEnv.java trunk/release-notes.txt trunk/src/jason/asSemantics/IntendedMeans.java trunk/src/jason/asSyntax/ASSyntax.java trunk/src/jason/asSyntax/BinaryStructure.java trunk/src/jason/asSyntax/BodyLiteral.java trunk/src/jason/asSyntax/DefaultTerm.java trunk/src/jason/asSyntax/ListTerm.java trunk/src/jason/asSyntax/Literal.java trunk/src/jason/asSyntax/LogicalFormula.java trunk/src/jason/asSyntax/NumberTerm.java trunk/src/jason/asSyntax/ObjectTerm.java trunk/src/jason/asSyntax/PlanBody.java trunk/src/jason/asSyntax/PlanBodyImpl.java trunk/src/jason/asSyntax/StringTerm.java trunk/src/jason/asSyntax/Structure.java trunk/src/jason/bb/ChainBBAdapter.java trunk/src/jason/stdlib/add_annot.java trunk/src/jason/stdlib/add_nested_source.java trunk/src/jason/stdlib/drop_intention.java trunk/src/jason/stdlib/wait.java trunk/src/test/StdLibTest.java Modified: trunk/applications/jason-moise/src/jmoise/MoiseBaseIA.java =================================================================== --- trunk/applications/jason-moise/src/jmoise/MoiseBaseIA.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/applications/jason-moise/src/jmoise/MoiseBaseIA.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -1,6 +1,5 @@ package jmoise; -import jason.JasonException; import jason.asSemantics.DefaultInternalAction; import jason.asSemantics.Intention; import jason.asSemantics.Message; @@ -34,23 +33,16 @@ if (logger.isLoggable(Level.FINE)) logger.fine("sending: "+acTerm); // send acTerm as message to OrgManager - try { - OrgAgent oag = (OrgAgent)ts.getUserAgArch(); - Message m = new Message("achieve", null, oag.getOrgManagerName(), acTerm); - oag.sendMsg(m); - - if (suspendIntention()) { - Intention i = ts.getC().getSelectedIntention(); - i.setSuspended(true); - ts.getC().getPendingIntentions().put("om/"+m.getMsgId(), i); - } - return true; - } catch (JasonException e) { - throw e; - } catch (Exception e) { - logger.log(Level.SEVERE, "Error sending "+acTerm+" to OrgManager.",e); - } - return false; + OrgAgent oag = (OrgAgent)ts.getUserAgArch(); + Message m = new Message("achieve", null, oag.getOrgManagerName(), acTerm); + oag.sendMsg(m); + + if (suspendIntention()) { + Intention i = ts.getC().getSelectedIntention(); + i.setSuspended(true); + ts.getC().getPendingIntentions().put("om/"+m.getMsgId(), i); + } + return true; } @Override Modified: trunk/build.xml =================================================================== --- trunk/build.xml 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/build.xml 2008-10-06 23:54:26 UTC (rev 1393) @@ -269,7 +269,7 @@ <doclet name="org.umlgraph.doclet.UmlGraphDoc" path="lib/UMLGraph.jar"> <!--param name="-inferrel"/ --> <!--param name="-inferdep"/--> - <param name="-hide" value="java.*"/> + <!--param name="-hide" value="java.*"/--> <param name="-enumconstants" /> <!--param name="-collpackages" value="java.util.*"/--> <param name="-qualify"/> @@ -278,8 +278,8 @@ <param name="-nodefontsize" value="16"/> <param name="-nodefontpackagesize" value="12"/> <param name="-edgefontsize" value="14"/> - <param name="-link" value="http://java.sun.com/j2se/1.5.0/docs/guide/javadoc/doclet/spec"/> - <param name="-link" value="http://java.sun.com/j2se/1.5/docs/api"/> + <!--param name="-link" value="http://java.sun.com/j2se/1.5.0/docs/guide/javadoc/doclet/spec"/> + <param name="-link" value="http://java.sun.com/j2se/1.5/docs/api"/--> </doclet> </javadoc> </target> @@ -289,6 +289,29 @@ </exec> </target> + <!-- generate only the UML diagrams in PDF format --> + <target name="uml" unless="dot-nok" > + <property name="uml.dir" value="${basedir}/doc/uml"/> + <property name="src.uml.dir" value="${src.dir}/doc/uml"/> + <mkdir dir="${uml.dir}"/> + <javadoc sourcepath="src" packagenames="jason.asSyntax" package="true" > + <doclet name="org.umlgraph.doclet.UmlGraph" path="${basedir}/lib/UMLGraph.jar"> + <param name="-hide" value="java.*"/> + <param name="-enumconstants" /> + <param name="-d" value="${uml.dir}"/> + </doclet> + </javadoc> + <move file="${uml.dir}/graph.dot" tofile="${uml.dir}/syntax.dot" /> + <apply executable="dot" dest="${uml.dir}" parallel="false"> + <arg value="-Tpdf"/> + <arg value="-o"/> + <targetfile/> + <srcfile/> + <fileset dir="${uml.dir}" includes="*.dot"/> + <mapper type="glob" from="*.dot" to="*.pdf"/> + </apply> + </target> + <!-- distribution related tasks --> Modified: trunk/demos/big/BEnv.java =================================================================== --- trunk/demos/big/BEnv.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/demos/big/BEnv.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -1,9 +1,9 @@ // Environment code for project big.mas2j -import jason.asSyntax.*; -import jason.environment.*; -import java.util.logging.*; +import jason.asSyntax.Structure; +import java.util.logging.Logger; + public class BEnv extends jason.environment.Environment { private Logger logger = Logger.getLogger("big.mas2j."+BEnv.class.getName()); Modified: trunk/examples/cleaning-robots/MarsEnv.java =================================================================== --- trunk/examples/cleaning-robots/MarsEnv.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/examples/cleaning-robots/MarsEnv.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -15,10 +15,10 @@ public static final int GSize = 7; // grid size public static final int GARB = 16; // garbage code in grid model - public static final Term ns = DefaultTerm.parse("next(slot)"); - public static final Term pg = DefaultTerm.parse("pick(garb)"); - public static final Term dg = DefaultTerm.parse("drop(garb)"); - public static final Term bg = DefaultTerm.parse("burn(garb)"); + public static final Term ns = Literal.parseLiteral("next(slot)"); + public static final Term pg = Literal.parseLiteral("pick(garb)"); + public static final Term dg = Literal.parseLiteral("drop(garb)"); + public static final Term bg = Literal.parseLiteral("burn(garb)"); public static final Literal g1 = Literal.parseLiteral("garbage(r1)"); public static final Literal g2 = Literal.parseLiteral("garbage(r2)"); Modified: trunk/examples/gold-miners-II/env/MiningEnvironment.java =================================================================== --- trunk/examples/gold-miners-II/env/MiningEnvironment.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/examples/gold-miners-II/env/MiningEnvironment.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -1,7 +1,6 @@ package env; import jason.asSyntax.Atom; -import jason.asSyntax.DefaultTerm; import jason.asSyntax.Literal; import jason.asSyntax.LiteralImpl; import jason.asSyntax.NumberTermImpl; @@ -34,13 +33,13 @@ Random random = new Random(); - Term up = DefaultTerm.parse("do(up)"); - Term down = DefaultTerm.parse("do(down)"); - Term right = DefaultTerm.parse("do(right)"); - Term left = DefaultTerm.parse("do(left)"); - Term skip = DefaultTerm.parse("do(skip)"); - Term pick = DefaultTerm.parse("do(pick)"); - Term drop = DefaultTerm.parse("do(drop)"); + Term up = Literal.parseLiteral("do(up)"); + Term down = Literal.parseLiteral("do(down)"); + Term right = Literal.parseLiteral("do(right)"); + Term left = Literal.parseLiteral("do(left)"); + Term skip = Literal.parseLiteral("do(skip)"); + Term pick = Literal.parseLiteral("do(pick)"); + Term drop = Literal.parseLiteral("do(drop)"); boolean hasGUI = true; int windowSize = 800; Modified: trunk/examples/mining-robots/env/planetEnv.java =================================================================== --- trunk/examples/mining-robots/env/planetEnv.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/examples/mining-robots/env/planetEnv.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -3,7 +3,6 @@ import jason.asSyntax.Literal; import jason.asSyntax.Structure; import jason.asSyntax.Term; -import jason.asSyntax.DefaultTerm; import jason.environment.Environment; import java.util.Random; @@ -45,7 +44,7 @@ public final String bs = new String("build_using"); public final String mr = new String("mine"); public final String dr = new String("drop"); - public final Term nc = DefaultTerm.parse("move_to(next_cell)"); + public final Term nc = Literal.parseLiteral("move_to(next_cell)"); public int b1res; public int c1res; Modified: trunk/examples/room/RoomEnv.java =================================================================== --- trunk/examples/room/RoomEnv.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/examples/room/RoomEnv.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -1,7 +1,6 @@ -import java.util.*; -import jason.*; -import jason.asSyntax.*; -import jason.environment.*; +import jason.asSyntax.Literal; +import jason.asSyntax.Structure; +import jason.environment.Environment; public class RoomEnv extends Environment { Modified: trunk/release-notes.txt =================================================================== --- trunk/release-notes.txt 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/release-notes.txt 2008-10-06 23:54:26 UTC (rev 1393) @@ -46,7 +46,7 @@ still works, but new Literal(...) have to be written as - new LiteralImpl(....) + ASSyntax.createLiteral(....) see API doc for more details. see discussion about the Literal class in the jason-developers list. Modified: trunk/src/jason/asSemantics/IntendedMeans.java =================================================================== --- trunk/src/jason/asSemantics/IntendedMeans.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/src/jason/asSemantics/IntendedMeans.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -51,25 +51,11 @@ plan = opt.getPlan().cloneOnlyBody(); unif = opt.getUnifier(); //(Unifier)opt.getUnifier().clone(); - // REMOVED: experimental - /* - Literal planLiteral = plan.getTrigger().getLiteral(); - if (planLiteral.hasAnnot()) { - planLiteral.getAnnots().apply(unif); - // TODO: why? - } - */ if (te == null) { trigger = plan.getTrigger(); } else { trigger = (Trigger)te.clone(); trigger.getLiteral().apply(unif); - // add annots of the trigger into the plan's te - // so that the event +!g[source(ag1)] will add source(ag1) - // in the TE of the plan - // TODO: why? - // REMOVED: experimental - //planLiteral.addAnnots(trigger.getLiteral().getAnnots()); } } Modified: trunk/src/jason/asSyntax/ASSyntax.java =================================================================== --- trunk/src/jason/asSyntax/ASSyntax.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/src/jason/asSyntax/ASSyntax.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -5,7 +5,6 @@ import java.io.StringReader; - /** Factory for objects used in Jason AgentSpeak syntax. @@ -49,6 +48,8 @@ // or use a parsing (easier but slow) Literal l4 = parseLiteral("~p(a,3)[s]"); </pre> + + @hidden @author Jomi Modified: trunk/src/jason/asSyntax/BinaryStructure.java =================================================================== --- trunk/src/jason/asSyntax/BinaryStructure.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/src/jason/asSyntax/BinaryStructure.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -29,6 +29,8 @@ /** Represents a binary/unary logical/relational operator. + + @opt nodefillcolor lightgoldenrodyellow @navassoc - left - Term @navassoc - right - Term Modified: trunk/src/jason/asSyntax/BodyLiteral.java =================================================================== --- trunk/src/jason/asSyntax/BodyLiteral.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/src/jason/asSyntax/BodyLiteral.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -3,6 +3,8 @@ /** * @deprecated use PlanBodyImpl instead. + * + * @hidden */ public class BodyLiteral extends PlanBodyImpl { Modified: trunk/src/jason/asSyntax/DefaultTerm.java =================================================================== --- trunk/src/jason/asSyntax/DefaultTerm.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/src/jason/asSyntax/DefaultTerm.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -39,6 +39,7 @@ * avoid using it -- use ASSyntax class to create new terms) * * @navassoc - source - SourceInfo + * @opt nodefillcolor lightgoldenrodyellow * * @see ASSyntax */ Modified: trunk/src/jason/asSyntax/ListTerm.java =================================================================== --- trunk/src/jason/asSyntax/ListTerm.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/src/jason/asSyntax/ListTerm.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -5,6 +5,8 @@ /** * The interface for lists of the AgentSpeak language + * + * @opt nodefillcolor lightgoldenrodyellow * * @author Jomi */ Modified: trunk/src/jason/asSyntax/Literal.java =================================================================== --- trunk/src/jason/asSyntax/Literal.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/src/jason/asSyntax/Literal.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -49,7 +49,9 @@ <p>There are useful static methods in class {@link ASSyntax} to create Literals. - + @navassoc - type - PredicateIndicator + @opt nodefillcolor lightgoldenrodyellow + @author jomi @see ASSyntax Modified: trunk/src/jason/asSyntax/LogicalFormula.java =================================================================== --- trunk/src/jason/asSyntax/LogicalFormula.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/src/jason/asSyntax/LogicalFormula.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -9,6 +9,8 @@ * Represents a logical formula (p, p & q, not p, 3 > X, ...) which can be * evaluated into a truth value. * + * @opt nodefillcolor lightgoldenrodyellow + * * @author Jomi */ public interface LogicalFormula extends Term, Cloneable { Modified: trunk/src/jason/asSyntax/NumberTerm.java =================================================================== --- trunk/src/jason/asSyntax/NumberTerm.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/src/jason/asSyntax/NumberTerm.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -1,7 +1,10 @@ package jason.asSyntax; -/** The interface for numeric terms of AgentSpeak language */ +/** The interface for numeric terms of AgentSpeak language + * + * @opt nodefillcolor lightgoldenrodyellow + */ public interface NumberTerm extends Term { /** returns the numeric value of the term */ Modified: trunk/src/jason/asSyntax/ObjectTerm.java =================================================================== --- trunk/src/jason/asSyntax/ObjectTerm.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/src/jason/asSyntax/ObjectTerm.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -1,6 +1,9 @@ package jason.asSyntax; -/** Interface for terms that encapsulate java objects */ +/** Interface for terms that encapsulate java objects + * + * @opt nodefillcolor lightgoldenrodyellow + */ public interface ObjectTerm extends Term { public Object getObject(); } Modified: trunk/src/jason/asSyntax/PlanBody.java =================================================================== --- trunk/src/jason/asSyntax/PlanBody.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/src/jason/asSyntax/PlanBody.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -1,5 +1,10 @@ package jason.asSyntax; +/** + * Interface for elements of a plans's body. + * + * @opt nodefillcolor lightgoldenrodyellow + */ public interface PlanBody extends Term { public enum BodyType { Modified: trunk/src/jason/asSyntax/PlanBodyImpl.java =================================================================== --- trunk/src/jason/asSyntax/PlanBodyImpl.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/src/jason/asSyntax/PlanBodyImpl.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -40,7 +40,8 @@ super(BODY_PLAN_FUNCTOR, 0); term = b; formType = t; - setSrcInfo(b.getSrcInfo()); + if (b != null) + srcInfo = b.getSrcInfo(); } public void setBodyNext(PlanBody next) { Modified: trunk/src/jason/asSyntax/StringTerm.java =================================================================== --- trunk/src/jason/asSyntax/StringTerm.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/src/jason/asSyntax/StringTerm.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -1,6 +1,9 @@ package jason.asSyntax; -/** The interface for string terms of the AgentSpeak language */ +/** The interface for string terms of the AgentSpeak language + * + * @opt nodefillcolor lightgoldenrodyellow + */ public interface StringTerm extends Term { public String getString(); public int length(); Modified: trunk/src/jason/asSyntax/Structure.java =================================================================== --- trunk/src/jason/asSyntax/Structure.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/src/jason/asSyntax/Structure.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -44,7 +44,6 @@ * <i>n</i> can be 0, so this class also represents atoms. * * @composed - terms 0..* Term - * */ public class Structure extends Atom { Modified: trunk/src/jason/bb/ChainBBAdapter.java =================================================================== --- trunk/src/jason/bb/ChainBBAdapter.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/src/jason/bb/ChainBBAdapter.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -140,8 +140,7 @@ @Override public Object clone() { - // TODO Auto-generated method stub - return null; + return this; } @Override Modified: trunk/src/jason/stdlib/add_annot.java =================================================================== --- trunk/src/jason/stdlib/add_annot.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/src/jason/stdlib/add_annot.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -100,10 +100,11 @@ return result; } else if (l.isLiteral()) { Literal result; - if (l.isAtom()) - result = new LiteralImpl(((Atom)l).getFunctor()); - else - result = Literal.parseLiteral(l.toString()); + if (l.isAtom()) { + result = new LiteralImpl((Atom)l); + } else { + result = (Literal)l.clone(); + } result.addAnnot(annot); return result; } Modified: trunk/src/jason/stdlib/add_nested_source.java =================================================================== --- trunk/src/jason/stdlib/add_nested_source.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/src/jason/stdlib/add_nested_source.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -100,11 +100,12 @@ return result; } else if (l.isLiteral()) { Literal result; - if (l instanceof LiteralImpl) - result = (Literal)l.clone(); - else + if (l.isAtom()) { result = new LiteralImpl((Atom)l); - + } else { + result = (Literal)l.clone(); + } + // create the source annots Literal ts = new Pred("source",1).addTerms(source).addAnnots(result.getAnnots("source")); Modified: trunk/src/jason/stdlib/drop_intention.java =================================================================== --- trunk/src/jason/stdlib/drop_intention.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/src/jason/stdlib/drop_intention.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -73,8 +73,8 @@ @Override protected void checkArguments(Term[] args) throws JasonException { super.checkArguments(args); // check number of arguments - if (!args[0].isLiteral()) - throw JasonException.createWrongArgument(this,"first argument must be a literal"); + if (!args[0].isLiteral() && !args[0].isVar()) + throw JasonException.createWrongArgument(this,"first argument '"+args[0]+"' must be a literal or variable"); } @Override Modified: trunk/src/jason/stdlib/wait.java =================================================================== --- trunk/src/jason/stdlib/wait.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/src/jason/stdlib/wait.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -93,7 +93,7 @@ @Override public boolean suspendIntention() { return true; } @Override public int getMinArgs() { return 1; } - @Override public int getMaxArgs() { return 2; } + @Override public int getMaxArgs() { return 3; } @Override public Object execute(final TransitionSystem ts, Unifier un, Term[] args) throws Exception { Modified: trunk/src/test/StdLibTest.java =================================================================== --- trunk/src/test/StdLibTest.java 2008-10-05 16:34:24 UTC (rev 1392) +++ trunk/src/test/StdLibTest.java 2008-10-06 23:54:26 UTC (rev 1393) @@ -10,7 +10,7 @@ import jason.asSemantics.TransitionSystem; import jason.asSemantics.Unifier; import jason.asSyntax.ASSyntax; -import jason.asSyntax.DefaultTerm; +import jason.asSyntax.Atom; import jason.asSyntax.ListTerm; import jason.asSyntax.ListTermImpl; import jason.asSyntax.Literal; @@ -27,6 +27,7 @@ import jason.bb.BeliefBase; import jason.infra.centralised.CentralisedAgArch; import jason.stdlib.add_annot; +import jason.stdlib.add_nested_source; import jason.stdlib.add_plan; import jason.stdlib.fail_goal; import jason.stdlib.relevant_plans; @@ -66,13 +67,13 @@ ag.getPL().add(Plan.parse("-!g1 : true <- j.")); } - public void testAddAnnot() { + public void testAddAnnot() throws ParseException { add_annot aa = new add_annot(); Unifier u = new Unifier(); Literal msg = Literal.parseLiteral("ok(10)"); VarTerm X = new VarTerm("X"); - Term annot = DefaultTerm.parse("source(jomi)"); + Term annot = ASSyntax.parseTerm("source(jomi)"); try { aa.execute(null, u, new Term[] { msg, annot, X }); } catch (Exception e) { @@ -83,21 +84,33 @@ assertTrue(((Pred) u.get("X")).hasAnnot(annot)); // testing addAnnot with list - ListTerm msgL = (ListTerm) DefaultTerm.parse("[ok(10),[ok(20),ok(30),[ok(40)|[ok(50),ok(60)]]]]"); + ListTerm msgL = ASSyntax.parseList("[a,ok(10),[ok(20),ok(30),[ok(40)|[ok(50),ok(60)]]]]"); VarTerm Y = new VarTerm("Y"); - Term annotL = DefaultTerm.parse("source(rafa)"); - assertEquals(msgL.toString(), "[ok(10),[ok(20),ok(30),[ok(40),ok(50),ok(60)]]]"); + Term annotL = ASSyntax.parseTerm("source(rafa)"); + assertEquals(msgL.toString(), "[a,ok(10),[ok(20),ok(30),[ok(40),ok(50),ok(60)]]]"); try { - aa.execute(null, u, new Term[] { (Term) msgL, annotL, Y }); + aa.execute(null, u, new Term[] { msgL, annotL, Y }); } catch (Exception e) { e.printStackTrace(); } - // System.out.println("u="+u); - assertEquals(((ListTerm) u.get("Y")).toString(), - "[ok(10)[source(rafa)],[ok(20)[source(rafa)],ok(30)[source(rafa)],[ok(40)[source(rafa)],ok(50)[source(rafa)],ok(60)[source(rafa)]]]]"); + assertEquals("[a[source(rafa)],ok(10)[source(rafa)],[ok(20)[source(rafa)],ok(30)[source(rafa)],[ok(40)[source(rafa)],ok(50)[source(rafa)],ok(60)[source(rafa)]]]]", + ((ListTerm) u.get("Y")).toString()); } - public void testFindAll() throws RevisionFailedException { + public void testAddNestedSource() throws Exception { + add_nested_source aa = new add_nested_source(); + Unifier u = new Unifier(); + VarTerm x = new VarTerm("X"); + u.unifies(x, new Atom("a")); + x.apply(u); + Term annot = ASSyntax.parseTerm("jomi"); + VarTerm r = new VarTerm("R"); + aa.execute(null, u, new Term[] { x, annot, r }); + r.apply(u); + assertEquals("a[source(jomi)]", r.toString()); + } + + public void testFindAll() throws RevisionFailedException, ParseException { Agent ag = new Agent(); ag.setLogger(null); AgArch arch = new AgArch(); @@ -112,7 +125,7 @@ assertEquals(ag.getBB().size(),3); Unifier u = new Unifier(); - Term X = DefaultTerm.parse("f(X)"); + Term X = ASSyntax.parseTerm("f(X)"); Literal c = Literal.parseLiteral("a(X,x)"); c.addAnnot(BeliefBase.TSelf); VarTerm L = new VarTerm("L"); @@ -249,8 +262,8 @@ StringTerm s1 = new StringTermImpl("a"); StringTerm s2 = new StringTermImpl("bbacca"); - Term t1 = DefaultTerm.parse("a(10)"); - Term t2 = DefaultTerm.parse("[1,b(xxx,a(10))]"); + Term t1 = ASSyntax.parseTerm("a(10)"); + Term t2 = ASSyntax.parseTerm("[1,b(xxx,a(10))]"); VarTerm X = new VarTerm("X"); @@ -300,8 +313,8 @@ @SuppressWarnings("unchecked") public void testMember() throws Exception { ListTerm l1 = ListTermImpl.parseList("[a,b,c]"); - Term ta = DefaultTerm.parse("a"); - Term td = DefaultTerm.parse("d"); + Term ta = ASSyntax.parseTerm("a"); + Term td = ASSyntax.parseTerm("d"); // test member(a,[a,b,c]) Unifier u = new Unifier(); @@ -316,8 +329,8 @@ assertFalse(i.hasNext()); // test member(b(X),[a(1),b(2),c(3)]) - Term l2 = DefaultTerm.parse("[a(1),b(2),c(3)]"); - Term tb = DefaultTerm.parse("b(X)"); + Term l2 = ASSyntax.parseTerm("[a(1),b(2),c(3)]"); + Term tb = ASSyntax.parseTerm("b(X)"); u = new Unifier(); i = (Iterator<Unifier>)new jason.stdlib.member().execute(null, u, new Term[] { tb, l2}); assertTrue(i != null); @@ -328,7 +341,7 @@ assertEquals(ru.get("X").toString(), "2"); // test member(X,[a,b,c]) - Term tx = DefaultTerm.parse("X"); + Term tx = ASSyntax.parseTerm("X"); u = new Unifier(); i = (Iterator<Unifier>)new jason.stdlib.member().execute(null, u, new Term[] { tx, l1}); assertTrue(iteratorSize(i) == 3); @@ -339,7 +352,7 @@ assertFalse(i.hasNext()); // test member(b(X),[a(1),b(2),c(3),b(4)]) - l2 = DefaultTerm.parse("[a(1),b(2),c(3),b(4)]"); + l2 = ASSyntax.parseTerm("[a(1),b(2),c(3),b(4)]"); u = new Unifier(); i = (Iterator<Unifier>)new jason.stdlib.member().execute(null, u, new Term[] { tb, l2}); assertTrue(i != null); @@ -351,7 +364,7 @@ public void testDelete() throws Exception { ListTerm l1 = ListTermImpl.parseList("[a,b,a,c,a]"); - Term ta = DefaultTerm.parse("a"); + Term ta = ASSyntax.parseTerm("a"); VarTerm v = new VarTerm("X"); // test delete(a,[a,b,a,c,a]) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |