-
Notifications
You must be signed in to change notification settings - Fork 0
/
symbaleToble.h
76 lines (62 loc) · 1.38 KB
/
symbaleToble.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
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
#ifndef omg
#define omg
/*
* Fichier utilisé pour la gestion de la table des symboles.
*/
typedef struct {
int address;
char* name;
int isConst;
int isInit;
} Symbale;
/*
* Affichage de la table des symboles
*/
void printTableSymboleST();
/*
* Defini si un symbole à l'addresse index est constant ou pas.
*/
void setIfSymboleIsConstST(int index, int isConst);
/*
* Ajoute un symbole dans la table
*/
int symbolePushST(char* name, int isConst, int isInit);
/*
* Enleve le dernier symboel ajoutée à notre table.
*/
void symbolePopST();
/*
* Add a symbole to the table, with his address relative to the base pointer
*/
int symboleAddST(char* name, int isConst, int isInit, int relAddrToBP);
/*
* Défini qu'un symbole est initialisé.
*/
void setIsInitST(int index);
/*
* Défini qu'un symbole est initialisé depuis le nom de ce symbole.
*/
void symbolInitST(char* name);
/*
* Enleve les derniers symbole dans la table jusqu'à atteindre l'addresse adress.
*/
void popTilST(int adress);
/*
* Recupere l'index d'une variable depuis son nom
*/
int getIndexWithVarNameST(char* name);
/*
* Ajout d'une variable temporaire (nom nommée)
*/
int tempAddST();
/*
* Libere l'adresse de la derniere variable temporaire
*/
int tempPopST();
/* retourne une erreur yacc.*/
void yyerror(char const *err);
/*
* Remet à 0 l'adresse relative
*/
void resetRelative();
#endif