Bonjour,

je n'arrive pas à développer un analyseur syntaxique pour la grammaire suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
S : X 'b'
X : 'a' | 'a' X
Cet analyseur se contente d'afficher le message "mot accepté" lorsque le mot en entrée est analysé avec succès.
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
28
29
30
31
32
33
34
35
36
37
38
1.l
 
%%
\n  {return fin;}
"a" ;
"b" ;
.   fprintf(stderr,"lalphabet %c inconu \n",yytext[0]); 
 
2.y
 
%{
#include <stdio.h>
%}
 
%start A 
 
%token fin
%%
A : S fin {printf("mot accepté\n\n");YYACCEPT;}
S : X 'b'
X : 'a' | 'a' X
 
 
 
%%
 
#include <stdio.h>
#include "lex.yy.c"
 
yyerror () {}
 
int main()
{
 if ( yyparse() != 0 )
    { fprintf(stderr,"Syntaxe incorrecte\n");return 1 ; }
 else
    {fprintf(stderr,"Syntaxe correcte\n");return 0 ; }
}