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

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

Set svn:keywords

  • Property svn:keywords set to Author Date Revision
File size: 1.6 KB
Line 
1package Gela.Profiles.Names is
2 pragma Preelaborate;
3
4 type Profile (<>) is limited new Gela.Profiles.Profile with private;
5 type Profile_Access is access all Profile'Class;
6
7 function Create
8 (Env : Gela.Semantic_Types.Env_Index;
9 Name : Gela.Elements.Defining_Names.Defining_Name_Access)
10 return Gela.Profiles.Profile'Class;
11
12 overriding function Is_Function
13 (Self : Profile) return Boolean;
14
15 overriding function Allow_Empty_Argument_List
16 (Self : Profile) return Boolean;
17
18 overriding function Length
19 (Self : Profile) return Natural;
20
21 overriding function Return_Type
22 (Self : Profile) return Gela.Semantic_Types.Type_Index;
23
24 overriding function Get_Type
25 (Self : Profile;
26 Index : Positive) return Gela.Semantic_Types.Type_Index;
27
28 overriding function Get_Name
29 (Self : Profile;
30 Index : Positive)
31 return Gela.Elements.Defining_Names.Defining_Name_Access;
32
33 overriding function Get_Index
34 (Self : Profile;
35 Symbol : Gela.Lexical_Types.Symbol) return Natural;
36
37private
38
39 type Param is record
40 Name : Gela.Elements.Defining_Names.Defining_Name_Access;
41 Tipe : Gela.Semantic_Types.Type_Index;
42 end record;
43
44 type Param_Array is array (Positive range <>) of Param;
45
46 type Profile (Length : Natural) is limited new Gela.Profiles.Profile
47 with record
48 Name : Gela.Elements.Defining_Names.Defining_Name_Access;
49 Empty : Boolean := False;
50 Funct : Boolean := False;
51 Result : Gela.Semantic_Types.Type_Index := 0;
52 Params : Param_Array (1 .. Length);
53 end record;
54
55end Gela.Profiles.Names;
Note: See TracBrowser for help on using the repository browser.