// This file was generated by DAJ from hydrogen.trv. import edu.neu.ccs.demeter.*; public aspect hydrogen { public void Molecule.print() { Print v = new Print(); _s0(v); } /* strategy: _s0: from Molecule to HydrogenCount traversal: Start set: [Molecule: {0}] Nodes: Molecule: {0} java.lang.Object: {0} Atoms: {0} Atom_List: {0} Atom: {0} HydrogenCount: {0} Edges: -> Molecule,atoms,Atoms: {0} -> Atoms,atom_List,Atom_List: {0} -> Atom_List,elements,Atom: {0} -> Atom,hydrogenCount,HydrogenCount: {0} Finish set: [HydrogenCount: {0}] */ void Molecule._s0() { java.util.BitSet[] tokens = { new java.util.BitSet() }; tokens[0].set(0); _s0(tokens); } void Molecule._s0(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 (atoms != null) _s0_crossing_atoms(newTokens); } } void Molecule._s0_crossing_atoms(java.util.BitSet[] tokens) { this.atoms._s0(tokens); } void Atoms._s0(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 (atom_List != null) _s0_crossing_atom_List(newTokens); } } void Atoms._s0_crossing_atom_List(java.util.BitSet[] tokens) { this.atom_List._s0(tokens); } void Atom_List._s0(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();) _s0_crossing_elements((Atom) it.next(), newTokens); } } void Atom_List._s0_crossing_elements(Atom it, java.util.BitSet[] tokens) { it._s0(tokens); } void Atom._s0(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 (hydrogenCount != null) _s0_crossing_hydrogenCount(newTokens); } } void Atom._s0_crossing_hydrogenCount(java.util.BitSet[] tokens) { this.hydrogenCount._s0(tokens); } void HydrogenCount._s0(java.util.BitSet[] tokens) { } void Molecule._s0(Print v) { _s0(); } before(Print v, HydrogenCount host): execution(void _s0(java.util.BitSet[])) && target(host) && cflow(execution(void _s0(Print)) && args(v)) { v.before(host); } } // hydrogen