<div class="notebook">
<div class="nb-cell markdown" name="md1">
# Analyse d'un langage simple en ProLog
## Description de la grammaire
* S -> aSa
* S -> a
## Traduction en ProLog
### Point de départ
</div>
<div class="nb-cell program" data-background="true" name="p1">
accepte(T):-
lireS(T,[]).
</div>
<div class="nb-cell markdown" name="md2">
### Ajout de règles systématique
(une règle ProLog pour une règle de la grammaire)
</div>
<div class="nb-cell program" data-background="true" name="p2">
lireS([a|Fin],Reste) :-
lireS(Fin,[a|Reste]).
lireS([a|Fin],Fin).
</div>
<div class="nb-cell markdown" name="md3">
## Exemples d'utilisation
</div>
<div class="nb-cell query" name="q1">
accepte([a,a,a]).
</div>
<div class="nb-cell query" name="q2">
accepte([a]).
</div>
<div class="nb-cell query" name="q3">
accepte([a,a,a,a,a]).
</div>
<div class="nb-cell query" name="q4">
accepte([a,a]).
</div>
<div class="nb-cell query" name="q5">
accepte([a,a,a,a]).
</div>
</div>