-
Notifications
You must be signed in to change notification settings - Fork 1
/
tokens.cpp
81 lines (69 loc) · 2.61 KB
/
tokens.cpp
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
#include "tokens.h"
unordered_map<int, string> get_tokens_name(){
unordered_map<int, string> tokens_name;
tokens_name[T_ID] = "id";
tokens_name[T_NUM_INT] = "num_int";
tokens_name[T_NUM_REAL] = "num_real";
tokens_name[T_ABRE_PAR] = "s_abre_parenteses";
tokens_name[T_FECHA_PAR] = "s_fecha_parenteses";
tokens_name[T_PT] = "s_ponto";
tokens_name[T_VIR] = "s_virgula";
tokens_name[T_DOIS_PTS] = "s_dois_pontos";
tokens_name[T_PT_VIR] = "s_ponto_virgula";
tokens_name[T_ATRIB] = "s_atribuicao";
tokens_name[T_IGUAL] = "s_igual";
tokens_name[T_DIF] = "s_diferente";
tokens_name[T_MAIOR_IGUAL] = "s_maior_igual";
tokens_name[T_MENOR_IGUAL] = "s_menor_igual";
tokens_name[T_MAIOR] = "s_maior";
tokens_name[T_MENOR] = "s_menor";
tokens_name[T_MAIS] = "s_mais";
tokens_name[T_MENOS] = "s_menos";
tokens_name[T_MULT] = "s_multiplicacao";
tokens_name[T_DIV] = "s_divisao";
tokens_name[T_PROGRAM] = "r_program";
tokens_name[T_CONST] = "r_const";
tokens_name[T_VAR] = "r_var";
tokens_name[T_REAL] = "r_real";
tokens_name[T_INT] = "r_integer";
tokens_name[T_PROCEDURE] = "r_procedure";
tokens_name[T_BEGIN] = "r_begin";
tokens_name[T_END] = "r_end";
tokens_name[T_READ] = "r_read";
tokens_name[T_WRITE] = "r_write";
tokens_name[T_WHILE] = "r_while";
tokens_name[T_DO] = "r_do";
tokens_name[T_FOR] = "r_for";
tokens_name[T_TO] = "r_to";
tokens_name[T_IF] = "r_if";
tokens_name[T_THEN] = "r_then";
tokens_name[T_ELSE] = "r_else";
tokens_name[T_ERRO_TAM_MAX] = "erro_tamanho_maximo";
tokens_name[T_ERRO_ID_MAL_FORM] = "erro_id_mal_formado";
tokens_name[T_ERRO_NUM_INT_MAL_FORM] = "erro_numero_inteiro_mal_formado";
tokens_name[T_ERRO_NUM_REAL_MAL_FORM] = "erro_numero_real_mal_formado";
tokens_name[T_ERRO_COMENT_MAL_FORM] = "erro_comentario_mal_formado";
tokens_name[T_ERRO_SIM_N_REC] = "erro_simbolo_nao_reconhecido";
return tokens_name;
}
unordered_map<string, int> get_keywords(){
unordered_map<string, int> keywords;
keywords["program"] = T_PROGRAM;
keywords["const"] = T_CONST;
keywords["var"] = T_VAR;
keywords["real"] = T_REAL;
keywords["integer"] = T_INT;
keywords["procedure"] = T_PROCEDURE;
keywords["begin"] = T_BEGIN;
keywords["end"] = T_END;
keywords["read"] = T_READ;
keywords["write"] = T_WRITE;
keywords["while"] = T_WHILE;
keywords["do"] = T_DO;
keywords["for"] = T_FOR;
keywords["to"] = T_TO;
keywords["if"] = T_IF;
keywords["then"] = T_THEN;
keywords["else"] = T_ELSE;
return keywords;
}