Bonjour à tous,
soit le programme suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<PROG>::=DEBPGM<DECL><CORPS>FINPGM 
<CORPS>::=DEBINS<INSTS>FININS 
<DECL>::=DEBDECL<DECVARS>FINDECL 
<DECVARS>::=<DECVARS>,<DECV>|<DECV> 
<DECV>::=<ID>:<TYPE> 
<ID>::=#X<NBENTIER>|<ID>,#X<NBENTIER> 
 
 
<NBENTIER>::=<CHIFFRE>|<CHIFFRE><NBENTIER> 
<NBREEL>::=<NBENTIER>.<NBENTIER> 
<TYPE>::=<TYPES>|<TYPEC> 
<TYPES>::=entier|reel|caractere 
<TYPEC>::=TAB|string 
<TAB>::=tableau[<NBENTIER>]:<TYPES> 
 
 
<INSTS>::=<INS>;<INS>|<INS>|<INS> 
<INS>::<INS1>|FOR<EXPR1>TO<NBENTIER>DO DEBFOR<INS1>FINFOR 
<INS1>::=<ID>:=<EXP>|<ID>:=<CHAINE|echo(<CHAINE>)|<ID>++ 
<CHAINE>::="<CHARS>" 
<CHARS>::=<CHARS>|<CHARS><CHAR> 
<EXPR1>::=<ID>:=<NBENTIER> 
<EXP>::=<EXP><OP><T>|<T> 
<T>::=<ID>|<NBENTIER>|<NBREEL>|<ID>[<NBENTIER>] 
<OP>::=PLUS|MOINS|FOIS|DIV 
<CHAR>::=a|b|..|z|A|B|..|Z 
<CHIFFRE>::=0|1|..|9
  1. Écrire un programme en C qui fait l'analyse lexicale de tout programme écrit selon la grammaire donnée précédemment ;
  2. Fournir un document de conception relatif à votre analyseur et preciser vos choix d'implementation( structures de données, algorithmes mis en oeuvres...).


Je voudrais que quelqu'un m'aide à trouver une piste de solution pour résoudre ce problème car ça dépasse mes compétences.
Merci.