Ou sont les erreurs de ce code? [Résolu ]
jihado86
Messages postés
13
Date d'inscription
samedi 25 avril 2009
Statut
Membre
Dernière intervention
28 mai 2009
-
20 mai 2009 à 16:17
cptpingu
Messages postés
3829
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
8 janvier 2021
-
20 mai 2009 à 17:38
voilà ce code Lex que j'ai fait pour analyser un code c, mais il y a des erreurs qui disent "unrecognised rule" mais j'ai rien trouvé ces erreurs, alors pouvez vous me dire ou sont les erreurs dans ce code suivant?
%{
#include ”monyacc.tab.h”
#include <stdio.h>
#include <string.h>
extern YYSTYPE yylval;
FILE * fichier;
%}
chars [A-Za-z]
numbers ([0-9]+)
var ([A-Za-z0-9]+)
op "+"|"-"|"*"|"/"|"%"|"^"|"&"|"|"|"!"|"="|"<"|">"
ponct "{"|"}"|"["|"]"|"("|")"|";"|":"|"?"|"."|"#"
expr {var,op,ponct}+
type "int" | "char" | "float"
%%
"{" { yylval=(YYSTYPE);strdup(yytext);return '{'; }
"}" { yylval=(YYSTYPE);strdup(yytext);return '}'; }
"[" { yylval=(YYSTYPE);strdup(yytext);return '['; }
"]" { yylval=(YYSTYPE);strdup(yytext);return ']'; }
"(" { yylval=(YYSTYPE);strdup(yytext);return '('; }
")" { yylval=(YYSTYPE);strdup(yytext);return ')'; }
";" { yylval=(YYSTYPE);strdup(yytext);return ';'; }
"," { yylval=(YYSTYPE);strdup(yytext);return ','; }
":" { yylval=(YYSTYPE);strdup(yytext);return ':'; }
"." { yylval=(YYSTYPE);strdup(yytext);return '.'; }
"|" { yylval=(YYSTYPE);strdup(yytext);return '|'; }
"!" { yylval=(YYSTYPE);strdup(yytext);return '!'; }
"?" { yylval=(YYSTYPE);strdup(yytext);return '?'; }
"&" { yylval=(YYSTYPE);strdup(yytext);return '&'; }
"+" { yylval=(YYSTYPE);strdup(yytext);return '+'; }
"-" { yylval=(YYSTYPE);strdup(yytext);return '-'; }
"*" { yylval=(YYSTYPE);strdup(yytext);return '*'; }
"/" { yylval=(YYSTYPE);strdup(yytext);return '/'; }
"^" { yylval=(YYSTYPE);strdup(yytext);return '^'; }
"%" { yylval=(YYSTYPE);strdup(yytext);return '%'; }
">" { yylval=(YYSTYPE);strdup(yytext);return '>'; }
"<" { yylval=(YYSTYPE);strdup(yytext);return '<'; }
"\#" { yylval=(YYSTYPE);strdup(yytext);return '\#'; }
"break" { yylval=(YYSTYPE);strdup(yytext);return BREAK; }
"case" { yylval=(YYSTYPE);strdup(yytext);return CASE; }
"char" { yylval=(YYSTYPE);strdup(yytext);return CHAR; }
"const" { yylval=(YYSTYPE);strdup(yytext);return CONST; }
"else" { yylval=(YYSTYPE);strdup(yytext);return ELSE; }
"float" { yylval=(YYSTYPE);strdup(yytext);return FLOAT; }
"for" { yylval=(YYSTYPE);strdup(yytext);return FOR; }
"if" { yylval=(YYSTYPE);strdup(yytext);return IF; }
"int" { yylval=(YYSTYPE);strdup(yytext);return INT; }
"\return"{ yylval=(YYSTYPE);strdup(yytext);return RETURN; }
"struct"{ yylval=(YYSTYPE);strdup(yytext);return STRUCT; }
"switch"{ yylval=(YYSTYPE);strdup(yytext);return SWITCH; }
"void" { yylval=(YYSTYPE);strdup(yytext);return VOID; }
"while" { yylval=(YYSTYPE);strdup(yytext);return WHILE; }
"include"{ yylval=(YYSTYPE);strdup(yytext);return INCLUDE; }
"NULL" { yylval=(YYSTYPE);strdup(yytext);return INTEGER; }
"0"[xX][0-9a-fA-F]{ yylval=(YYSTYPE);strdup(yytext)=yytext;return INTEGER; }
"0"[0-7]{ yylval=(YYSTYPE);strdup(yytext)=yytext;return INTEGER; }
[0-9]+ { yylval=(YYSTYPE);strdup(yytext)=yytext;return INTEGER; }
{var} { yylval=(YYSTYPE);strdup(yytext);return VAR; }
{op} { yylval=(YYSTYPE);strdup(yytext);return OP; }
{ponct} { yylval=(YYSTYPE);strdup(yytext);return PONCT; }
{expr} { yylval=(YYSTYPE);strdup(yytext);return EXPR; }
{type} { yylval=(YYSTYPE);strdup(yytext);return TYPE; }
%%
main (){
yylex();
}