// This file was generated by DAJ from Sample.trv. import edu.neu.ccs.demeter.*; public aspect Sample { public void Binder.listAll() { Printer v = new Printer(); each(v); } /* strategy: each: from Binder to * traversal: Start set: [Binder: {0}] Nodes: Binder: {0} Clause_List: {0} Clause: {0} Atom: {0} java.lang.Object: {0} Term: {0} Constant: {0} IdentConstant: {0} edu.neu.ccs.demeter.Ident: {0} java.io.Serializable: {0} StringConstant: {0} java.lang.String: {0} java.lang.Comparable: {0} java.lang.CharSequence: {0} Variable: {0} UIdent: {0} VariableName: {0} Term_PCList: {0} Atom_CList: {0} Edges: -> Binder,clauses,Clause_List: {0} -> Clause_List,elements,Clause: {0} -> Clause,head,Atom: {0} :> Atom,java.lang.Object: {0} -> Atom,context,Term: {0} => Term,Constant: {0} => Constant,IdentConstant: {0} -> IdentConstant,ident,edu.neu.ccs.demeter.Ident: {0} :> edu.neu.ccs.demeter.Ident,java.lang.Object: {0} :> edu.neu.ccs.demeter.Ident,java.io.Serializable: {0} :> IdentConstant,Constant: {0} :> Constant,Term: {0} :> Term,java.lang.Object: {0} => Constant,StringConstant: {0} -> StringConstant,string,java.lang.String: {0} :> java.lang.String,java.lang.Object: {0} :> java.lang.String,java.io.Serializable: {0} :> java.lang.String,java.lang.Comparable: {0} :> java.lang.String,java.lang.CharSequence: {0} :> StringConstant,Constant: {0} => Term,Variable: {0} => Variable,UIdent: {0} -> UIdent,ident,edu.neu.ccs.demeter.Ident: {0} :> UIdent,Variable: {0} :> Variable,Term: {0} => Variable,VariableName: {0} -> VariableName,ident,edu.neu.ccs.demeter.Ident: {0} :> VariableName,Variable: {0} -> Atom,pred,Constant: {0} -> Atom,args,Term_PCList: {0} -> Term_PCList,elements,Term: {0} :> Term_PCList,java.lang.Object: {0} -> Clause,body,Atom_CList: {0} -> Atom_CList,elements,Atom: {0} :> Atom_CList,java.lang.Object: {0} :> Clause,java.lang.Object: {0} :> Clause_List,java.lang.Object: {0} :> Binder,java.lang.Object: {0} Finish set: [java.lang.Object: {0}, Atom_CList: {0}, Atom: {0}, Clause: {0}, IdentConstant: {0}, edu.neu.ccs.demeter.Ident: {0}, java.io.Serializable: {0}, Constant: {0}, Term: {0}, Binder: {0}, Clause_List: {0}, Term_PCList: {0}, UIdent: {0}, Variable: {0}, VariableName: {0}, StringConstant: {0}, java.lang.String: {0}, java.lang.Comparable: {0}, java.lang.CharSequence: {0}] */ void Binder.each() { java.util.BitSet[] tokens = { new java.util.BitSet() }; tokens[0].set(0); each(tokens); } void Binder.each(java.util.BitSet[] tokens) { { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) if (clauses != null) each_crossing_clauses(newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } } void Binder.each_crossing_clauses(java.util.BitSet[] tokens) { this.clauses.each(tokens); } void Clause_List.each(java.util.BitSet[] tokens) { { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) for (java.util.Iterator it = iterator(); it.hasNext();) each_crossing_elements((Clause) it.next(), newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } } void Clause_List.each_crossing_elements(Clause it, java.util.BitSet[] tokens) { it.each(tokens); } void Clause.each(java.util.BitSet[] tokens) { { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) if (head != null) each_crossing_head(newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) if (body != null) each_crossing_body(newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } } void Clause.each_crossing_head(java.util.BitSet[] tokens) { this.head.each(tokens); } void Clause.each_crossing_body(java.util.BitSet[] tokens) { this.body.each(tokens); } void Atom.each(java.util.BitSet[] tokens) { { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) if (context != null) each_crossing_context(newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) if (pred != null) each_crossing_pred(newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) if (args != null) each_crossing_args(newTokens); } } void Atom.each_crossing_context(java.util.BitSet[] tokens) { this.context.each(tokens); } void Atom.each_crossing_pred(java.util.BitSet[] tokens) { this.pred.each(tokens); } void Atom.each_crossing_args(java.util.BitSet[] tokens) { this.args.each(tokens); } void Term.each(java.util.BitSet[] tokens) { { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } } void Constant.each(java.util.BitSet[] tokens) { { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) super.each(tokens); } } void IdentConstant.each(java.util.BitSet[] tokens) { { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (tokens[0].get(0)) { newTokens[0].set(0); } } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) super.each(tokens); } } void StringConstant.each(java.util.BitSet[] tokens) { { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (tokens[0].get(0)) { newTokens[0].set(0); } } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) super.each(tokens); } } void Variable.each(java.util.BitSet[] tokens) { { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) super.each(tokens); } } void UIdent.each(java.util.BitSet[] tokens) { { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (tokens[0].get(0)) { newTokens[0].set(0); } } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) super.each(tokens); } } void VariableName.each(java.util.BitSet[] tokens) { { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (tokens[0].get(0)) { newTokens[0].set(0); } } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) super.each(tokens); } } void Term_PCList.each(java.util.BitSet[] tokens) { { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) for (java.util.Iterator it = iterator(); it.hasNext();) each_crossing_elements((Term) it.next(), newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } } void Term_PCList.each_crossing_elements(Term it, java.util.BitSet[] tokens) { it.each(tokens); } void Atom_CList.each(java.util.BitSet[] tokens) { { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) for (java.util.Iterator it = iterator(); it.hasNext();) each_crossing_elements((Atom) it.next(), newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } } void Atom_CList.each_crossing_elements(Atom it, java.util.BitSet[] tokens) { it.each(tokens); } void Binder.each(Printer v) { each(); } after(Printer v, Atom host): execution(void each(java.util.BitSet[])) && target(host) && cflow(execution(void each(Printer)) && args(v)) { v.after(host); } before(Printer v, Atom host): execution(void each(java.util.BitSet[])) && target(host) && cflow(execution(void each(Printer)) && args(v)) { v.before(host); } before(Printer v, IdentConstant host): execution(void each(java.util.BitSet[])) && target(host) && cflow(execution(void each(Printer)) && args(v)) { v.before(host); } before(Printer v, StringConstant host): execution(void each(java.util.BitSet[])) && target(host) && cflow(execution(void each(Printer)) && args(v)) { v.before(host); } before(Printer v, VariableName host): execution(void each(java.util.BitSet[])) && target(host) && cflow(execution(void each(Printer)) && args(v)) { v.before(host); } } // Sample