Newer
Older
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
Exemple sans provides
--------------------
Table des symboles de mainPack.
On construit une table string -> info partielle
Si imported, rien de spcial
Pour local, pas grand chose non plus sauf pour les dclarations qui
ont une inflence sur le ref-ckecking, par exemple :
type enumr = dclaration implicite de constantes (on traite)
[A] -> uses inter :
on renseigne tous les items exports par "inter"
ADD node preced -> imported node inter::preced
ADD const n -> imported const inter::n
ADD type selType -> imported type inter::selType
[B] -> body :
1) type couleurs = enum { bleu, rose, jaune };
Cas spcial : implique dclation de constantes
ADD type couleurs -> local type mainPack::couleurs = enum { bleu, rose, jaune };
ADD const bleu -> local const mainPack::bleu = enumitem mainPack::couleurs
ADD const rose -> local const mainPack::rose = enumitem mainPack::couleurs
ADD const jaune -> local const mainPack::jaune = enumitem mainPack::couleurs
3) type T = int^N;
Rien de spcial
ADD type T -> local type T = int^N;
4) const X = N;
ADD const X -> local const X = N;
5) const N : int = -2 * inter::n;
ADD const N -> local const N : int = -2 * inter::n;
6) node preced <+ infos>
ADD node preced -> local node preced
=> WARNING SHADOWS imported node inter::preced
Exemple avec provides :
-----------------------
[A] uses pbool, pint, preal;
type t -> imported type pbool::t
node fby1 -> imported node pint::fby1
type t -> imported type pint::
WARNING SHADOWS !!!!
node fby1 -> imported node pint::fby1
WARNING SHADOWS !!!!
type t -> imported type preal::t
WARNING SHADOWS !!!!
node fby1 -> imported node preal::fby1
WARNING SHADOWS !!!!
[B] provides
node preced -> local node