diff --git a/README.md b/README.md new file mode 100644 index 0000000..fba3c23 --- /dev/null +++ b/README.md @@ -0,0 +1,39 @@ +--- +title: TP Analyse syntaxique +author: Yohann D'ANELLO +geometry: +- top=0.5in +- bottom=0.5in +- left=1in +- right=1in +... + +\pagenumbering{gobble} + +# Analyse lexicale + +Le fichier `example.l` peut se compiler en un analyseur lexical `example` en appelant simplement la commande `make`. Il permet à partir d'une entrée textuelle (un fichier, le TTY ou l'entrée standard suivie d'un Ctrl+D) de filter les nombres et de les afficher, sous forme décimale ou hexadécimale. De plus, les mots clés `if`, `then` et `else` sont réécrits en majsucule. Tout le reste est ignoré. + +Un entier `n` affichera sur la sortie `int(n)`, un entier `0xh` écrit en hexadécimal affichera dans la sortie `hex(n)` où `n` est la représentation décimale de `0xh`. + +Par exemple sur une entrée : + +``` +Papa maman ! Faites-moi 1 câlin ! + +if content then + Oh oui ! Faisons 1 gros câlin ! Tu l'as bien mérité après tes 20/20 que + tu viens de ramener ! On t'aime à 100% <3 +else + - Mon enfant, il va falloir que tu vois la vie avec ses 0xFFFFFF couleurs, si tu veux + espérer avoir des 10aines de câlins ... Va nous acheter une demi-12aine d'œufs. + - Bouuh ! Je m'en vais pleurer pendant 42 ans. + * La justice condamna la famille à 14 années de prison et 7832 € d'amende. * +``` + +Le programme va renvoyer la sortie suivante : + +``` +int(1)IFTHENint(1)int(20)int(20)int(100)int(3)ELSEhex(16777215)int(10)int(12)int(42)int(13)int(7832) +``` + diff --git a/README.pdf b/README.pdf new file mode 100644 index 0000000..d359c23 Binary files /dev/null and b/README.pdf differ