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

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

Add character_literal resolution

  • Property svn:keywords set to Author Date Revision
File size: 2.3 KB
Line 
1with Gela.Types.Arrays;
2with Gela.Types.Simple;
3with Gela.Types.Untagged_Records;
4
5private package Gela.Resolve.Type_Matchers is
6 pragma Preelaborate;
7
8 type Type_Matcher_Access is
9 not null access all Gela.Interpretations.Type_Matcher'Class;
10
11 type Array_Type_Matcher is
12 new Gela.Interpretations.Type_Matcher with private;
13
14 type Character_Type_Matcher is
15 new Gela.Interpretations.Type_Matcher with private;
16
17 type Float_Type_Matcher is
18 new Gela.Interpretations.Type_Matcher with private;
19
20 type Integer_Type_Matcher is
21 new Gela.Interpretations.Type_Matcher with private;
22
23 type Record_Type_Matcher is
24 new Gela.Interpretations.Type_Matcher with private;
25
26 type String_Type_Matcher is
27 new Gela.Interpretations.Type_Matcher with private;
28
29private
30
31 type Base_Type_Matcher is abstract new Gela.Interpretations.Type_Matcher
32 with record
33 Match : Boolean := False;
34 end record;
35
36 overriding function Is_Matched (Self : Base_Type_Matcher) return Boolean;
37
38 type Array_Type_Matcher is new Base_Type_Matcher with null record;
39
40 overriding procedure Array_Type
41 (Self : in out Array_Type_Matcher;
42 Value : not null Gela.Types.Arrays.Array_Type_Access);
43
44 type Float_Type_Matcher is new Base_Type_Matcher with null record;
45
46 overriding procedure Floating_Point_Type
47 (Self : in out Float_Type_Matcher;
48 Value : not null Gela.Types.Simple.Floating_Point_Type_Access);
49
50 type Integer_Type_Matcher is new Base_Type_Matcher with null record;
51
52 overriding procedure Signed_Integer_Type
53 (Self : in out Integer_Type_Matcher;
54 Value : not null Gela.Types.Simple.Signed_Integer_Type_Access);
55
56 type Record_Type_Matcher is new Base_Type_Matcher with null record;
57
58 overriding procedure Untagged_Record
59 (Self : in out Record_Type_Matcher;
60 Value : not null Gela.Types.Untagged_Records.
61 Untagged_Record_Type_Access);
62
63 type String_Type_Matcher is new Base_Type_Matcher with null record;
64
65 overriding procedure Array_Type
66 (Self : in out String_Type_Matcher;
67 Value : not null Gela.Types.Arrays.Array_Type_Access);
68
69 type Character_Type_Matcher is new Base_Type_Matcher with null record;
70
71 overriding procedure Character_Type
72 (Self : in out Character_Type_Matcher;
73 Value : not null Gela.Types.Simple.Character_Type_Access);
74
75end Gela.Resolve.Type_Matchers;
Note: See TracBrowser for help on using the repository browser.