-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgrammar.txt
41 lines (20 loc) · 989 Bytes
/
grammar.txt
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
39
40
41
PROG : procedure idf is LISTE_DECL begin LISTE_INST end idf ;
LISTE_INST : INST LISTE_INSTAUX
LISTE_INSTAUX : LISTE_INST | epsilon
LISTE_DECL : DECL LISTE_DECLAUX
LISTE_DECLAUX : LISTE_DECL | epsilon
DECL : idf ‘ : ’ TYPE DECL_AUX
DECL_AUX : ‘ :=’ CONST ';' | ';'
TYPE : integer | boolean | float | character
CONST : inumber | fnumber | cnumber | true | false
INST : idf := ADDSUB ';' | true ';' | false ';' | cnumber ';'
| New_line ;
| put ‘(‘ idf ’)’ ‘ ;’ | put_line ‘(‘ idf ’)’ ‘ ;’
| for IDF in inumber ‘ ..’ inumber loop LISTE_INST end loop ‘ ;’
| if ‘(‘ idf = ADDSUB ‘)’ then LISTE_INST IF_INSTAUX
IF_INSTAUX : end if ‘ ;’ | else LISTE_INST end if ;
ADDSUB : MULTDIV ADDSUBAUX
ADDSUBAUX : – MULTDIV ADDSUBAUX | + MULTDIV ADDSUBAUX | epsilon
MULTDIV : AUX MULTDIVAUX
MULTDIVAUX : * AUX MULTDIVAUX | / AUX MULTDIVAUX | epsilon
AUX : idf | inumber | fnumber | ( ADDSUB )