source: trunk/ada-2012/src/semantic/gela-property_getters.ads@ 552

Last change on this file since 552 was 512, checked in by Maxim Reznik, 5 years ago

Separate Property_Reset and Property_Getter

from Gela.Instantiation to their-own packages.

File size: 5.3 KB
Line 
1with Gela.Elements.Defining_Names;
2with Gela.Elements;
3with Gela.Interpretations;
4with Gela.Lexical_Types;
5with Gela.Property_Visiters;
6with Gela.Semantic_Types;
7
8package Gela.Property_Getters is
9 pragma Preelaborate;
10
11 type Getter is limited new Gela.Property_Visiters.Property_Visiter with
12 record
13 Defining_Name : Gela.Elements.Defining_Names.Defining_Name_Access;
14 Down : Gela.Interpretations.Interpretation_Index := 0;
15 Env_In : Gela.Semantic_Types.Env_Index := 0;
16 Env_Out : Gela.Semantic_Types.Env_Index := 0;
17 Errors : Gela.Semantic_Types.Error_Set_Index := 0;
18 Expanded : Gela.Elements.Element_Access;
19 Full_Name : Gela.Lexical_Types.Symbol := 0;
20 Index : Gela.Lexical_Types.Token_Count := 0;
21 Static_Value : Gela.Semantic_Types.Value_Index := 0;
22 Type_Index : Gela.Semantic_Types.Type_Index := 0;
23 Up_Set : Gela.Interpretations.Interpretation_Set_Index := 0;
24 Up_Tuple : Gela.Interpretations.Interpretation_Tuple_Index := 0;
25
26 Name_List : Gela.Lexical_Types.Symbol_List :=
27 Gela.Lexical_Types.Empty_Symbol_List;
28
29 Up_Tuple_List : Gela.Interpretations.Interpretation_Tuple_List_Index
30 := 0;
31
32 With_List : Gela.Lexical_Types.Symbol_List :=
33 Gela.Lexical_Types.Empty_Symbol_List;
34
35 Limited_With_List : Gela.Lexical_Types.Symbol_List :=
36 Gela.Lexical_Types.Empty_Symbol_List;
37
38 Chosen_Interpretation : Gela.Interpretations.Interpretation_Kinds :=
39 Gela.Interpretations.Unknown;
40
41 Declarative_Region : Gela.Semantic_Types.Env_Index := 0;
42
43 Corresponding_Generic_Element : Gela.Elements.Element_Access;
44 Corresponding_View : Gela.Elements.Element_Access;
45 Corresponding_Type : Gela.Elements.Element_Access;
46 end record;
47private
48
49 overriding procedure On_Index
50 (Self : in out Getter;
51 Element : Gela.Elements.Element_Access;
52 Value : Gela.Lexical_Types.Token_Count);
53
54 overriding procedure On_Env_In
55 (Self : in out Getter;
56 Element : Gela.Elements.Element_Access;
57 Value : Gela.Semantic_Types.Env_Index);
58
59 overriding procedure On_Env_Out
60 (Self : in out Getter;
61 Element : Gela.Elements.Element_Access;
62 Value : Gela.Semantic_Types.Env_Index);
63
64 overriding procedure On_Down
65 (Self : in out Getter;
66 Element : Gela.Elements.Element_Access;
67 Value : Gela.Interpretations.Interpretation_Index);
68
69 overriding procedure On_Errors
70 (Self : in out Getter;
71 Element : Gela.Elements.Element_Access;
72 Value : Gela.Semantic_Types.Error_Set_Index);
73
74 overriding procedure On_Up
75 (Self : in out Getter;
76 Element : Gela.Elements.Element_Access;
77 Value : Gela.Interpretations.Interpretation_Tuple_Index);
78
79 overriding procedure On_Up
80 (Self : in out Getter;
81 Element : Gela.Elements.Element_Access;
82 Value : Gela.Interpretations.Interpretation_Tuple_List_Index);
83
84 overriding procedure On_Name_List
85 (Self : in out Getter;
86 Element : Gela.Elements.Element_Access;
87 Value : Gela.Lexical_Types.Symbol_List);
88
89 overriding procedure On_Limited_With_List
90 (Self : in out Getter;
91 Element : Gela.Elements.Element_Access;
92 Value : Gela.Lexical_Types.Symbol_List);
93
94 overriding procedure On_With_List
95 (Self : in out Getter;
96 Element : Gela.Elements.Element_Access;
97 Value : Gela.Lexical_Types.Symbol_List);
98
99 overriding procedure On_Up
100 (Self : in out Getter;
101 Element : Gela.Elements.Element_Access;
102 Value : Gela.Interpretations.Interpretation_Set_Index);
103
104 overriding procedure On_Static_Value
105 (Self : in out Getter;
106 Element : Gela.Elements.Element_Access;
107 Value : Gela.Semantic_Types.Value_Index);
108
109 overriding procedure On_Chosen_Interpretation
110 (Self : in out Getter;
111 Element : Gela.Elements.Element_Access;
112 Value : Gela.Interpretations.Interpretation_Kinds);
113
114 overriding procedure On_Defining_Name
115 (Self : in out Getter;
116 Element : Gela.Elements.Element_Access;
117 Value : Gela.Elements.Defining_Names.Defining_Name_Access);
118
119 overriding procedure On_Full_Name
120 (Self : in out Getter;
121 Element : Gela.Elements.Element_Access;
122 Value : Gela.Lexical_Types.Symbol);
123
124 overriding procedure On_Declarative_Region
125 (Self : in out Getter;
126 Element : Gela.Elements.Element_Access;
127 Value : Gela.Semantic_Types.Env_Index);
128
129 overriding procedure On_Corresponding_Generic_Element
130 (Self : in out Getter;
131 Element : Gela.Elements.Element_Access;
132 Value : Gela.Elements.Element_Access);
133
134 overriding procedure On_Corresponding_View
135 (Self : in out Getter;
136 Element : Gela.Elements.Element_Access;
137 Value : Gela.Elements.Element_Access);
138
139 overriding procedure On_Type_Index
140 (Self : in out Getter;
141 Element : Gela.Elements.Element_Access;
142 Value : Gela.Semantic_Types.Type_Index);
143
144 overriding procedure On_Corresponding_Type
145 (Self : in out Getter;
146 Element : Gela.Elements.Element_Access;
147 Value : Gela.Elements.Element_Access);
148
149 overriding procedure On_Expanded
150 (Self : in out Getter;
151 Element : Gela.Elements.Element_Access;
152 Value : Gela.Elements.Element_Access);
153
154end Gela.Property_Getters;
Note: See TracBrowser for help on using the repository browser.