\begin{tomcode3}[caption=Forme générale du code de la transformation \emph{SimplePDLToPetriNet},label=code:transfoLightSimplePDL2PN]
...
public class SimplePDLToPetriNet {
  %include{ sl.tom }
  %include{ LinkClass.tom }
  %include{ emf/ecore.tom }

  %include{ mappings/DDMMPetriNetPackage.tom }
  %include{ mappings/DDMMSimplePDLPackage.tom }

  private static PetriNet pn = null;
  private static LinkClass tom__linkClass;

  %typeterm SimplePDLToPetriNet { implement { SimplePDLToPetriNet }}
  public SimplePDLToPetriNet() {
    this.tom__linkClass = new LinkClass();
  }
 ...
  %transformation SimplePDLToPetriNet(tom__linkClass:LinkClass,pn:PetriNet) : 
             "metamodels/SimplePDL.ecore" -> "metamodels/PetriNet.ecore" {
    definition P2PN traversal `TopDown(P2PN(tom__linkClass,pn)) {
      /* code du listing #\colcode{black}{~\ref{code:p2pn}}# */
    }
    definition WD2PN traversal `TopDown(WD2PN(tom__linkClass,pn)) {
      /* code du listing #\colcode{black}{~\ref{code:wd2pn}}# */
    }
    definition WS2PN traversal `TopDown(WS2PN(tom__linkClass,pn)) {
      /* code du listing #\colcode{black}{~\ref{code:ws2pn}}# */
    }
  }

  public static void main(String[] args) {
    ...
    SimplePDLToPetriNet translator = new SimplePDLToPetriNet();
    Introspector introspector = new EcoreContainmentIntrospector();
    // processus #\colcode{black}{\texttt{à}}# transformer
    simplepdl.Process p_root = `Process("root", ...);

    Strategy transformer = 
             `SimplePDLToPetriNet(translator.tom__linkClass,translator.pn);
    transformer.visit(p_root, introspector);
    //Appel de la strat#\colcode{black}{\texttt{é}}#gie de r#\colcode{black}{\texttt{é}}#solution g#\colcode{black}{\texttt{é}}#n#\colcode{black}{\texttt{é}}#r#\colcode{black}{\texttt{é}}#e
    `TopDown(tom__StratResolve_SimplePDLToPetriNet(translator.tom__linkClass,
                             translator.pn)).visit(translator.pn, introspector);
    `TopDown(Sequence(PrintTransition()),PrintPlace()).visit(translator.pn,
                                                                    introspector);
    ...
  }
  ...
}
\end{tomcode3}
