Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package jason.asSyntax.directives;
Interface for all compiler directives (e.g. include and goal patterns).

There are two kinds of directives: single directive and begin/end directive. The single directive does not have inner plans, as, for instance, the include:
{ include("a.asl") }

begin/end directives have inner plans, as used in goal patterns:
{ begin ebdg(g) }
+!g : bel <- action1.
+!g <- action2.
{ end }

This pattern will change these two plans to:
+!g : g.
+!g : not (p__1(g)) & bel <- +p__1(g); action1; ?g.
+!g : not (p__2(g)) <- +p__2(g); action2; ?g.
-!g <- !g.
+g <- -p__1(g); -p__2(g); .dropGoal(g,true).

Goal patterns are proposed in the paper:

Jomi Fred Hubner, Rafael H. Bordini, and Michael Wooldridge.
Programming declarative goals using plan patterns.
In Matteo Baldoni and Ulle Endriss, editors, Proceedings of the Fourth International Workshop on Declarative Agent Languages and Technologies (DALT 2006), held with AAMAS 2006, 8th May, Hakodate, Japan, pages 65-81. Springer, 2006.

public interface Directive {
This method is called to process the directive.

directive the directive as defined in the source (e.g. "include("bla.asl")")
outerContent the representation of the agent where the directive is being processed (the method should not change this agent state)
innerContent the content (plans, beliefs, ...) inside the begin/end directive (as in goal patterns)
the agent (plans, bels, ...) with the result of the directive.
    Agent process(Pred directiveAgent outerContentAgent innerContent);
New to GrepCode? Check out our FAQ X