-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathBNF.txt
81 lines (55 loc) · 1.98 KB
/
BNF.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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<start> ::= <programa>
<programa> ::= INICIO_PROGRAMA <bloque> FIN_PROGRAMA
<bloque> ::= <lista_sentencias>
<lista_sentencias> ::= <sentencia> |
<lista_sentencias> <sentencia>
<sentencia> ::= <bloque_declaracion> |
<asignacion> |
<lectura> |
<escritura> |
<iteracion> |
<seleccion> |
COMENTARIO
<asignacion> ::= ID OP_ASIG <expresion>
<iteracion> ::= WHILE PARENTESIS_I <condicion> PARENTESIS_F DO <bloque> ENDWHILE
<seleccion> ::= IF PARENTESIS_I <condicion> PARENTESIS_F DO <resto> ENDIF
<condicion> ::= <comparacion> |
<comparacion> <and_or> <comparacion> |
OP_NOT <comparacion> |
<between> |
<inlist>
<comparacion> ::= <expresion> COMPARADOR <expresion>
<and_or> ::= OP_AND |
OP_OR
<resto> ::= <bloque> |
<bloque> ELSE <bloque>
<bloque> ELSIF PARENTESIS_I <condicion> PARENTESIS_F ELSE <bloque>
<lectura> ::= READ ID
<escritura> ::= WRITE ID |
WRITE CTE_STRING
<bloque_declaracion> ::= DECVAR <declaraciones> ENDDEC
<declaraciones> ::= <declaraciones> <lista_id_y_tipo> |
<lista_id_y_tipo>
<lista_id_y_tipo> ::= <var_dec> COMA <lista_id_y_tipo> |
<var_dec> OP_DEC <tipodato>
<var_dec> ::= ID |
ID PARENTESIS_I CTE_INT PARENTESIS_F
<tipodato> ::= INTEGER |
FLOAT |
STRING
<expresion> ::= <expresion> OP_SUM <termino> |
<expresion> OP_REST <termino> |
<termino>
<termino> ::= <termino> OP_MULT <factor> |
<termino> OP_DIV <factor> |
<factor>
<factor> ::= CTE_INT |
CTE_FLOAT |
CTE_STRING |
ID
<between> ::= BETWEEN PARENTESIS_I ID COMA <rango> PARENTESIS_F
<rango> ::= CORCHETE_I <expresion> PUNTO_Y_COMA <expresion> CORCHETE_F
<inlist> ::= INLIST PARENTESIS_I ID PUNTO_Y_COMA <lista_expresiones> PARENTESIS_F
<lista_expresiones> ::= CORCHETE_I <expresiones> CORCHETE_F
<expresiones> ::= <expresion> |
<expresion> PUNTO_Y_COMA <expresiones>