1------------------------------------------------------------------------------
2--                                                                          --
3--                            Matreshka Project                             --
4--                                                                          --
5--                          Ada Modeling Framework                          --
6--                                                                          --
7--                        Runtime Library Component                         --
8--                                                                          --
9------------------------------------------------------------------------------
10--                                                                          --
11-- Copyright © 2012-2013, Vadim Godunko <vgodunko@gmail.com>                --
12-- All rights reserved.                                                     --
13--                                                                          --
14-- Redistribution and use in source and binary forms, with or without       --
15-- modification, are permitted provided that the following conditions       --
16-- are met:                                                                 --
17--                                                                          --
18--  * Redistributions of source code must retain the above copyright        --
19--    notice, this list of conditions and the following disclaimer.         --
20--                                                                          --
21--  * Redistributions in binary form must reproduce the above copyright     --
22--    notice, this list of conditions and the following disclaimer in the   --
23--    documentation and/or other materials provided with the distribution.  --
24--                                                                          --
25--  * Neither the name of the Vadim Godunko, IE nor the names of its        --
26--    contributors may be used to endorse or promote products derived from  --
27--    this software without specific prior written permission.              --
28--                                                                          --
29-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS      --
30-- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT        --
31-- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR    --
32-- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT     --
33-- HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,   --
34-- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED --
35-- TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR   --
36-- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF   --
37-- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING     --
38-- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS       --
39-- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.             --
40--                                                                          --
41------------------------------------------------------------------------------
42--  $Revision: 3646 $ $Date: 2013-01-07 22:05:34 +0400 (Mon, 07 Jan 2013) $
43------------------------------------------------------------------------------
44--  This file is generated, don't edit it.
45------------------------------------------------------------------------------
46with AMF.Elements;
47with AMF.OCL;
48with AMF.UML;
49with Matreshka.Internals.Strings;
50
51package AMF.Internals.Tables.OCL_Types is
52
53   pragma Preelaborate;
54
55   type Element_Kinds is
56    (E_None,
57     E_OCL_Any_Type,
58     E_OCL_Association_Class_Call_Exp,
59     E_OCL_Bag_Type,
60     E_OCL_Boolean_Literal_Exp,
61     E_OCL_Collection_Item,
62     E_OCL_Collection_Literal_Exp,
63     E_OCL_Collection_Range,
64     E_OCL_Collection_Type,
65     E_OCL_Enum_Literal_Exp,
66     E_OCL_Expression_In_Ocl,
67     E_OCL_If_Exp,
68     E_OCL_Integer_Literal_Exp,
69     E_OCL_Invalid_Literal_Exp,
70     E_OCL_Invalid_Type,
71     E_OCL_Iterate_Exp,
72     E_OCL_Iterator_Exp,
73     E_OCL_Let_Exp,
74     E_OCL_Message_Exp,
75     E_OCL_Message_Type,
76     E_OCL_Null_Literal_Exp,
77     E_OCL_Operation_Call_Exp,
78     E_OCL_Ordered_Set_Type,
79     E_OCL_Property_Call_Exp,
80     E_OCL_Real_Literal_Exp,
81     E_OCL_Sequence_Type,
82     E_OCL_Set_Type,
83     E_OCL_State_Exp,
84     E_OCL_String_Literal_Exp,
85     E_OCL_Template_Parameter_Type,
86     E_OCL_Tuple_Literal_Exp,
87     E_OCL_Tuple_Literal_Part,
88     E_OCL_Tuple_Type,
89     E_OCL_Type_Exp,
90     E_OCL_Unlimited_Natural_Literal_Exp,
91     E_OCL_Unspecified_Value_Exp,
92     E_OCL_Variable,
93     E_OCL_Variable_Exp,
94     E_OCL_Void_Type);
95
96   type Member_Kinds is
97    (M_None,
98     M_Boolean,
99     M_Collection_Kind,
100     M_Collection_Of_Element,
101     M_Collection_Of_String,
102     M_Element,
103     M_Integer,
104     M_Real,
105     M_String,
106     M_Unlimited_Natural,
107     M_Visibility_Kind,
108     M_Visibility_Kind_Holder);
109
110   type Member_Record (Kind : Member_Kinds := M_None) is record
111      case Kind is
112         when M_None =>
113            null;
114
115         when M_Boolean =>
116            Boolean_Value : Boolean;
117
118         when M_Collection_Kind =>
119            Collection_Kind_Value : AMF.OCL.OCL_Collection_Kind;
120
121         when M_Collection_Of_Element =>
122            Collection : AMF.Internals.AMF_Collection_Of_Element;
123
124         when M_Collection_Of_String =>
125            String_Collection : AMF.Internals.AMF_Collection_Of_String;
126
127         when M_Element =>
128            Link : AMF.Internals.AMF_Link;
129
130         when M_Integer =>
131            Integer_Value : Integer;
132
133         when M_Real =>
134            Real_Value : AMF.Real;
135
136         when M_String =>
137            String_Value : Matreshka.Internals.Strings.Shared_String_Access;
138
139         when M_Unlimited_Natural =>
140            Unlimited_Natural_Value : AMF.Unlimited_Natural;
141
142         when M_Visibility_Kind =>
143            Visibility_Kind_Value : AMF.UML.UML_Visibility_Kind;
144
145         when M_Visibility_Kind_Holder =>
146            Visibility_Kind_Holder : AMF.UML.Optional_UML_Visibility_Kind;
147      end case;
148   end record;
149
150   type Member_Array is array (Natural range 0 .. 18) of Member_Record;
151
152   type Element_Record is record
153      Kind   : Element_Kinds := E_None;
154      Extent : AMF.Internals.AMF_Extent;
155      Proxy  : AMF.Elements.Element_Access;
156      Member : Member_Array;
157   end record;
158
159end AMF.Internals.Tables.OCL_Types;
160