Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %option noyywrap
- %{
- #include <string>
- // structure pour stocker les adresses pour les sauts condistionnels et autres...
- typedef struct adr {
- int ic_goto;
- int ic_false;
- } t_adresse;
- #include "benjotest.bison.hpp"
- using namespace std;
- %}
- %%
- [0-9]+(\.[0-9]*)?([Ee][0-9]+)? { yylval.valeur = atof(yytext); return NUMBER; }
- Répéter|Réitérer { return REPEAT; }
- PLUS|(P|p)lus { return '+'; }
- MOINS|(M|m)oins { return '-'; }
- FOIS|(F|f)ois { return '*'; }
- SUR|(S|s)ur { return '-'; }
- ET|(E|e)t { return '&'; }
- (D|d)emander {return ASK;}
- (A|a)fficher|(I|i)mprimer {return PRINT;}
- si|SI|Si {return SI;}
- Alors|alors|ALORS {return ALORS;}
- Sinon|sinon|SINON {return SINON;}
- FinSi|finsi|FINSI {return FINSI;}
- ==|(E|e|é)quivaut|(E|e|é)quivalent {return DOUBLE_EGAL;}
- =>|(S|s)up(é|e)rieur {return SUP_EGAL;}
- (S|s)trict(S|s)up(é|e)rieur|> {return SUP_STRICT;}
- =<|(I|i)nf(é|e)rieur {return INF_EGAL;}
- (S|s)trict(I|i)nf(é|e)rieur|< {return INF_STRICT;}
- POURDE {return POURDE;}
- JUSQUA {return JUSQUA;}
- FINPOUR {return FINPOUR;}
- TANTQUE {return TANTQUE;}
- FAIRE {return FAIRE;}
- FINTANTQUE {return FINTANTQUE;}
- [A-Za-z_][0-9A-Za-z_]* { strcpy(yylval.nom,yytext); return VARIABLE; }
- \"[A-Za-z_][0-9A-Za-z_]*\" { strcpy(yylval.nom,yytext); return TEXT; }
- \r\n { return '\n'; }
- \r { return '\n'; }
- \n { return '\n'; }
- [ \t] { }
- . { return yytext[0]; }
- %%
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement