-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathanalex.h
43 lines (18 loc) · 774 Bytes
/
analex.h
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
#ifndef ANALEX
#define ANALEX
#define TAM_MAX_LEXEMA 31
enum TOKEN_CAT {ID=1, SN, CT_I, FIM_EXPR, FIM_ARQ};
/* Onde: ID: Identificador, SN: Sinal; CT_I: Constante numérica inteira */
enum SINAIS {ATRIB = 1, ADICAO, SUBTRACAO, MULTIPLIC, DIVISAO, ABRE_PAR, FECHA_PAR}; // Sinais válidos da linguagem
typedef
struct {
enum TOKEN_CAT cat; // deve receber uma das constantes de enum TOKEN_CAT
union {// parte variável do registro
int codigo; // para tokens das categorias SN
char lexema[TAM_MAX_LEXEMA]; // cadeia de caracteres que corresponde ao nome do token da cat. ID
int valInt; // valor da constante inteira em tokens da cat. CT_I
};
} TOKEN; // Tipo TOKEN
#endif
/* Contador de linhas do código fonte */
int contLinha = 1;