-
Notifications
You must be signed in to change notification settings - Fork 1
/
Categoria Sintactica
51 lines (29 loc) · 1.64 KB
/
Categoria Sintactica
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
<programa> -> inicio <listaSentencias> fin
<listaSentencias> -> <sentencia> {<sentencia>}
<sentencia> -> <identficador> = <expresión>F |
bold( <listaIdentificadores> )F |
italic ( <listaIdentificadores> )F
<listaIdentificadores> -> <identificador> {, <identificador>}
<listaExpresiones> -> <expresión> {<expresión>}
<expresión> -> <identificador> {<operadorAditivo> <primaria>}
<constante> -> <const_Integer> {<const_Integer>} | <const_Bool>
<token> -> uno de <identificador> <constante> <palabraReservada>
<operadorAditivo> <asignacion> <caracterDePuntuacion>
<identificador> → SOY < LETRA o DIGITO o GUION > {< LETRA o DIGITO o GUION>}FIN_IDENTIFICADOR
<constante> -> <const_Integer> {<const_Integer>} | <const_Bool>
< LETRA o DIGITO o GUION > → uno de <letra> <digito> GUIONES
<letra > → una de a-z A-Z
<digito> → uno de 0-9
<palabraReservada> → una de inicio bold italic fin
<operadores> → uno de OP_SUMA OP_RESTA, OP_IGUAL, OP_DISTINTO
<asignacion> → =
<caracterDePuntuacion> → uno de LLAVE_A, LLAVE_C, PARENTESIS_A, PARENTESIS_C
—-----------
typedef enum {
INICIO, FIN, WHILE, FOR, ID, CONSTANTE, IF, OP_SUMA, OP_RESTA, OP_IGUAL, OP_DISTINTO, LLAVE_A, LLAVE_C, PARENTESIS_A, PARENTESIS_C, FIN_SETENCIA, IDENTIFICADOR, CONST_INTEGER, CONST_BOOL, DIGITO, LETRA, SOY, GUIONES, FIN_IDENTIFICADOR} TOKEN;
BNF de identificador:
Tokens: SOY, FIN_IDENTIFICADOR
<LETRA> :: = a|b|c|d|e|f|g|h|i|g|k|l|m|n|o|p|q|r|s|t|u|v|x|w|y|z|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|X|Y|Z
<DIGITO> :: = 0|1|2|3|4|5|6|7|8|9
<GUION> :: = -|_
<identificador> ::= SOY < LETRA> | <DIGITO> | <GUION > {< LETRA> | < DIGITO> | <GUION> } FIN_IDENTIFICADOR