<prog>
  <l_dec>
    <foncDec>
      fact
      <l_dec>
        <varDec>$f</varDec>
      </l_dec>
      <l_instr>
        <instr_si>
          <opExp>
            ou
            <opExp>
              egal
              <varExp>
                <var_simple>$f</var_simple>
              </varExp>
              <intExp>1</intExp>
            </opExp>
            <opExp>
              egal
              <varExp>
                <var_simple>$f</var_simple>
              </varExp>
              <intExp>0</intExp>
            </opExp>
          </opExp>
          <l_instr>
            <instr_retour>
              <intExp>1</intExp>
            </instr_retour>
          </l_instr>
          <l_instr>
            <instr_retour>
              <opExp>
                fois
                <appelExp>
                  <appel>
                    fact
                    <l_exp>
                      <opExp>
                        moins
                        <varExp>
                          <var_simple>$f</var_simple>
                        </varExp>
                        <intExp>1</intExp>
                      </opExp>
                      <l_exp>
                      </l_exp>
                    </l_exp>
                  </appel>
                </appelExp>
                <varExp>
                  <var_simple>$f</var_simple>
                </varExp>
              </opExp>
            </instr_retour>
          </l_instr>
        </instr_si>
      </l_instr>
    </foncDec>
    <l_dec>
      <foncDec>
        main
        <l_dec>
          <varDec>$a</varDec>
        </l_dec>
        <l_instr>
          <instr_affect>
            <var_simple>$a</var_simple>
            <lireExp>
            </lireExp>
          </instr_affect>
          <l_instr>
            <instr_ecrire>
              <appelExp>
                <appel>
                  fact
                  <l_exp>
                    <varExp>
                      <var_simple>$a</var_simple>
                    </varExp>
                    <l_exp>
                    </l_exp>
                  </l_exp>
                </appel>
              </appelExp>
            </instr_ecrire>
          </l_instr>
        </l_instr>
      </foncDec>
    </l_dec>
  </l_dec>
</prog>
