123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- %union {
- int nombre;
- }
-
- %token<nombre> tENTIER
- %token tADD
- %token tSUB
- %token tMUL
- %token tDIV
-
- %token tPO
- %token tPF
- %token tAO
- %token tAF
-
- %token tERROR
-
- %token tPV
- %token tVIRGULE
- %token tAFFECTATION
- %token tEGAL
- %token tDIFF
- %token tLT
- %token tGT
- %token tGTE
- %token tLTE
- %token tMAIN
- %token tINT
- %token tPRINT
- %token tRETURN
- %token tOR
- %token tAND
- %token tIF
- %token tELSE
- %token tWHILE
- %token tCONST
- %token tVAR
- %token tNOT
-
- %left tADD
- %left tSUB
- %right tEGAL
-
- %type<nombre> E
- %%
-
- C : Fonctions Main ;
- Fonctions : Fonction Fonctions | Fonction | ;
-
- Fonction : tINT tVAR tPO Params tPF Body ;
-
- Main : tINT tMAIN tPO tPF Body ;
-
- Params : | Param SuiteParams ;
- Param : tINT tVAR ;
-
-
- // Ps : P Ps | ;
- // P : tINT tID ttVIRGULE
- // Ps =>* tINT tID ttVIRGULE tINT tID ttVIRGULE
- // Ps => P Ps => P P Ps ...
-
- SuiteParams : tVIRGULE Param SuiteParams | ;
-
- Body : tAO Instructions tAF ;
-
- Instructions : Instruction Instructions | ;
-
- Instruction : Aff | If | While | tRETURN | Print | Decl | Invocation tPV ;
-
- Decl : Type Valeur SuiteDecl tPV;
-
- SuiteDecl: tVIRGULE Valeur SuiteDecl | ;
-
- Type : tINT | tCONST tINT ;
-
- Valeur : tVAR | Affbis ;
-
- Affbis : tVAR tAFFECTATION E;
-
- Aff : Affbis tPV ;
-
- E : tENTIER | tVAR | E tADD E | E tMUL E | E tSUB E | E tDIV E | Invocation | tPO E tPF | tSUB E ;
-
- // E : tID tPlus tID | ...
-
- If : tIF tPO Cond tPF Body Else;
-
- Else : | tELSE Body |tELSE tIF tPO Cond tPF Body Else;
-
- While : tWHILE tPO Cond tPF Body ;
-
- Cond : Cond tAND Cond | Cond tOR Cond | E tEGAL E | E tDIFF E | E tLT E | E tGT E | E tLTE E | E tGTE E| tNOT Cond ;
-
- Print : tPRINT tPO tVAR tPF tPV ;
-
- Invocation : tVAR tPO Args tPF ;
-
- Args : | Arg SuiteArgs ;
-
- Arg : tVAR ;
-
- SuiteArgs : tVIRGULE Arg SuiteArgs ;
-
- RETURN : tRETURN E tPV ;
-
- %%
|