source: trunk/ada-2012/src/asis/asis-declarations.adb@ 369

Last change on this file since 369 was 369, checked in by Maxim Reznik, 6 years ago

Add more implementations for ASIS adapter

  • Property svn:keywords set to Date Revision
File size: 46.9 KB
Line 
1------------------------------------------------------------------------------
2-- G E L A A S I S --
3-- ASIS implementation for Gela project, a portable Ada compiler --
4-- http://gela.ada-ru.org --
5-- - - - - - - - - - - - - - - - --
6-- Read copyright and license at the end of this file --
7------------------------------------------------------------------------------
8-- $Revision: 369 $ $Date: 2015-01-04 19:36:02 +0000 (Sun, 04 Jan 2015) $
9-- Purpose:
10-- Procedural wrapper over Object-Oriented ASIS implementation
11
12with Asis.Elements;
13with Asis.Compilation_Units;
14
15with Gela.Compilations;
16with Gela.Element_Visiters;
17with Gela.Elements.Component_Declarations;
18with Gela.Elements.Component_Definitions;
19with Gela.Elements.Declarative_Items;
20with Gela.Elements.Defining_Identifiers;
21with Gela.Elements.Defining_Program_Unit_Names;
22with Gela.Elements.Discriminant_Specifications;
23with Gela.Elements.Entry_Bodies;
24with Gela.Elements.Formal_Object_Declarations;
25with Gela.Elements.Function_Bodies;
26with Gela.Elements.Object_Declarations;
27with Gela.Elements.Object_Definitions;
28with Gela.Elements.Object_Renaming_Declarations;
29with Gela.Elements.Package_Bodies;
30with Gela.Elements.Parameter_Specifications;
31with Gela.Elements.Procedure_Bodies;
32with Gela.Elements.Procedure_Declarations;
33with Gela.Elements.Protected_Definitions;
34with Gela.Elements.Single_Protected_Declarations;
35with Gela.Elements.Single_Task_Declarations;
36with Gela.Elements.Statements;
37with Gela.Elements.Subtype_Mark_Or_Access_Definitions;
38with Gela.Elements.Task_Bodies;
39with Gela.Elements.Task_Definitions;
40with Gela.Lexical_Types;
41
42package body Asis.Declarations is
43
44 --------------------------
45 -- Body_Block_Statement --
46 --------------------------
47
48 function Body_Block_Statement
49 (Declaration : in Asis.Declaration)
50 return Asis.Statement
51 is
52 begin
53 Check_Nil_Element (Declaration, "Body_Block_Statement");
54 Raise_Not_Implemented ("");
55 return Nil_Element;
56 end Body_Block_Statement;
57
58 ----------------------------
59 -- Body_Declarative_Items --
60 ----------------------------
61
62 function Body_Declarative_Items
63 (Declaration : in Asis.Declaration;
64 Include_Pragmas : in Boolean := False)
65 return Asis.Element_List
66 is
67 pragma Unreferenced (Include_Pragmas);
68
69 package Get is
70 type Visiter is new Gela.Element_Visiters.Visiter with record
71 Result : Gela.Elements.Declarative_Items.
72 Declarative_Item_Sequence_Access;
73 end record;
74
75 overriding procedure Entry_Body
76 (Self : in out Visiter;
77 Node : not null Gela.Elements.Entry_Bodies.Entry_Body_Access);
78
79 overriding procedure Function_Body
80 (Self : in out Visiter;
81 Node : not null Gela.Elements.Function_Bodies.
82 Function_Body_Access);
83
84 overriding procedure Package_Body
85 (Self : in out Visiter;
86 Node : not null Gela.Elements.Package_Bodies.Package_Body_Access);
87
88 overriding procedure Procedure_Body
89 (Self : in out Visiter;
90 Node : not null Gela.Elements.Procedure_Bodies.
91 Procedure_Body_Access);
92
93 overriding procedure Task_Body
94 (Self : in out Visiter;
95 Node : not null Gela.Elements.Task_Bodies.Task_Body_Access);
96
97 end Get;
98
99 package body Get is
100
101 overriding procedure Entry_Body
102 (Self : in out Visiter;
103 Node : not null Gela.Elements.Entry_Bodies.Entry_Body_Access) is
104 begin
105 Self.Result := Node.Body_Declarative_Items;
106 end Entry_Body;
107
108 overriding procedure Function_Body
109 (Self : in out Visiter;
110 Node : not null Gela.Elements.Function_Bodies.
111 Function_Body_Access) is
112 begin
113 Self.Result := Node.Body_Declarative_Items;
114 end Function_Body;
115
116 overriding procedure Package_Body
117 (Self : in out Visiter;
118 Node : not null Gela.Elements.Package_Bodies.Package_Body_Access)
119 is
120 begin
121 Self.Result := Node.Body_Declarative_Items;
122 end Package_Body;
123
124 overriding procedure Procedure_Body
125 (Self : in out Visiter;
126 Node : not null Gela.Elements.Procedure_Bodies.
127 Procedure_Body_Access) is
128 begin
129 Self.Result := Node.Body_Declarative_Items;
130 end Procedure_Body;
131
132 overriding procedure Task_Body
133 (Self : in out Visiter;
134 Node : not null Gela.Elements.Task_Bodies.Task_Body_Access) is
135 begin
136 Self.Result := Node.Body_Declarative_Items;
137 end Task_Body;
138
139 end Get;
140
141 V : Get.Visiter;
142 Result : Gela.Elements.Element_Sequence_Access;
143 begin
144 Check_Nil_Element (Declaration, "Body_Declarative_Items");
145 Declaration.Data.Visit (V);
146 Result := Gela.Elements.Element_Sequence_Access (V.Result);
147
148 return Asis.To_List (Result);
149 end Body_Declarative_Items;
150
151 -----------------------------
152 -- Body_Exception_Handlers --
153 -----------------------------
154
155 function Body_Exception_Handlers
156 (Declaration : in Asis.Declaration;
157 Include_Pragmas : in Boolean := False)
158 return Asis.Exception_Handler_List
159 is
160 pragma Unreferenced (Include_Pragmas);
161 begin
162 Check_Nil_Element (Declaration, "Body_Exception_Handlers");
163 Raise_Not_Implemented ("");
164 return Nil_Element_List;
165 end Body_Exception_Handlers;
166
167 ---------------------
168 -- Body_Statements --
169 ---------------------
170
171 function Body_Statements
172 (Declaration : in Asis.Declaration;
173 Include_Pragmas : in Boolean := False)
174 return Asis.Statement_List
175 is
176 pragma Unreferenced (Include_Pragmas);
177
178 package Get is
179 type Visiter is new Gela.Element_Visiters.Visiter with record
180 Result : Gela.Elements.Statements.Statement_Sequence_Access;
181 end record;
182
183 overriding procedure Entry_Body
184 (Self : in out Visiter;
185 Node : not null Gela.Elements.Entry_Bodies.Entry_Body_Access);
186
187 overriding procedure Function_Body
188 (Self : in out Visiter;
189 Node : not null Gela.Elements.Function_Bodies.
190 Function_Body_Access);
191
192 overriding procedure Package_Body
193 (Self : in out Visiter;
194 Node : not null Gela.Elements.Package_Bodies.Package_Body_Access);
195
196 overriding procedure Procedure_Body
197 (Self : in out Visiter;
198 Node : not null Gela.Elements.Procedure_Bodies.
199 Procedure_Body_Access);
200
201 overriding procedure Task_Body
202 (Self : in out Visiter;
203 Node : not null Gela.Elements.Task_Bodies.Task_Body_Access);
204
205 end Get;
206
207 package body Get is
208
209 overriding procedure Entry_Body
210 (Self : in out Visiter;
211 Node : not null Gela.Elements.Entry_Bodies.Entry_Body_Access) is
212 begin
213 Self.Result := Node.Body_Statements;
214 end Entry_Body;
215
216 overriding procedure Function_Body
217 (Self : in out Visiter;
218 Node : not null Gela.Elements.Function_Bodies.
219 Function_Body_Access) is
220 begin
221 Self.Result := Node.Body_Statements;
222 end Function_Body;
223
224 overriding procedure Package_Body
225 (Self : in out Visiter;
226 Node : not null Gela.Elements.Package_Bodies.Package_Body_Access)
227 is
228 begin
229 Self.Result := Node.Body_Statements;
230 end Package_Body;
231
232 overriding procedure Procedure_Body
233 (Self : in out Visiter;
234 Node : not null Gela.Elements.Procedure_Bodies.
235 Procedure_Body_Access) is
236 begin
237 Self.Result := Node.Body_Statements;
238 end Procedure_Body;
239
240 overriding procedure Task_Body
241 (Self : in out Visiter;
242 Node : not null Gela.Elements.Task_Bodies.Task_Body_Access) is
243 begin
244 Self.Result := Node.Body_Statements;
245 end Task_Body;
246
247 end Get;
248
249 V : Get.Visiter;
250 Result : Gela.Elements.Element_Sequence_Access;
251 begin
252 Check_Nil_Element (Declaration, "Body_Statements");
253 Declaration.Data.Visit (V);
254 Result := Gela.Elements.Element_Sequence_Access (V.Result);
255
256 return Asis.To_List (Result);
257 end Body_Statements;
258
259 -------------------------------
260 -- Corresponding_Base_Entity --
261 -------------------------------
262
263 function Corresponding_Base_Entity
264 (Declaration : in Asis.Declaration)
265 return Asis.Expression
266 is
267 begin
268 Check_Nil_Element (Declaration, "Corresponding_Base_Entity");
269 Raise_Not_Implemented ("");
270 return Nil_Element;
271 end Corresponding_Base_Entity;
272
273 ------------------------
274 -- Corresponding_Body --
275 ------------------------
276
277 function Corresponding_Body
278 (Declaration : in Asis.Declaration)
279 return Asis.Declaration
280 is
281 begin
282 case Asis.Elements.Declaration_Kind (Declaration) is
283 when
284 A_Function_Body_Declaration
285 | A_Function_Body_Stub
286 | A_Function_Renaming_Declaration
287 | A_Package_Body_Declaration
288 | A_Package_Body_Stub
289 | A_Package_Renaming_Declaration
290 | A_Procedure_Body_Declaration
291 | A_Procedure_Renaming_Declaration
292 | A_Procedure_Body_Stub
293 | A_Task_Body_Declaration
294 | A_Task_Body_Stub
295 | A_Protected_Body_Declaration
296 | A_Protected_Body_Stub
297 | A_Generic_Package_Renaming_Declaration
298 | A_Generic_Procedure_Renaming_Declaration
299 | A_Generic_Function_Renaming_Declaration
300 | An_Entry_Body_Declaration =>
301 return Declaration;
302 when others =>
303 null;
304 end case;
305
306 Check_Nil_Element (Declaration, "Corresponding_Body");
307 Raise_Not_Implemented ("");
308 return Nil_Element;
309 end Corresponding_Body;
310
311 ------------------------
312 -- Corresponding_Body --
313 ------------------------
314
315 function Corresponding_Body
316 (Declaration : in Asis.Declaration;
317 The_Context : in Asis.Context)
318 return Asis.Declaration
319 is
320 pragma Unreferenced (The_Context);
321 begin
322 Check_Nil_Element (Declaration, "Corresponding_Body");
323-- Check_Context (The_Context);
324 Raise_Not_Implemented ("");
325 return Corresponding_Body (Declaration);
326 end Corresponding_Body;
327
328 -----------------------------
329 -- Corresponding_Body_Stub --
330 -----------------------------
331
332 function Corresponding_Body_Stub
333 (Subunit : in Asis.Declaration)
334 return Asis.Declaration
335 is
336 begin
337 Check_Nil_Element (Subunit, "Corresponding_Body_Stub");
338 Raise_Not_Implemented ("");
339 return Nil_Element;
340 end Corresponding_Body_Stub;
341
342 -----------------------------
343 -- Corresponding_Body_Stub --
344 -----------------------------
345
346 function Corresponding_Body_Stub
347 (Subunit : in Asis.Declaration;
348 The_Context : in Asis.Context)
349 return Asis.Declaration
350 is
351 pragma Unreferenced (The_Context);
352 begin
353 Check_Nil_Element (Subunit, "Corresponding_Body_Stub");
354-- Check_Context (The_Context);
355 Raise_Not_Implemented ("");
356 return Corresponding_Body_Stub (Subunit);
357 end Corresponding_Body_Stub;
358
359 ----------------------------------------
360 -- Corresponding_Constant_Declaration --
361 ----------------------------------------
362
363 function Corresponding_Constant_Declaration
364 (Name : in Asis.Defining_Name)
365 return Asis.Declaration
366 is
367 begin
368 Check_Nil_Element (Name, "Corresponding_Constant_Declaration");
369 Raise_Not_Implemented ("");
370 return Nil_Element;
371 end Corresponding_Constant_Declaration;
372
373 -------------------------------
374 -- Corresponding_Declaration --
375 -------------------------------
376
377 function Corresponding_Declaration
378 (Declaration : in Asis.Declaration)
379 return Asis.Declaration
380 is
381 begin
382 case Asis.Elements.Declaration_Kind (Declaration) is
383 when
384 A_Function_Declaration
385 | A_Generic_Function_Declaration
386 | A_Generic_Package_Declaration
387 | A_Generic_Procedure_Declaration
388 -- | A_Package_Declaration return Limited_View or its completion
389 | A_Package_Renaming_Declaration
390 | A_Procedure_Declaration
391 | A_Single_Task_Declaration
392 | A_Task_Type_Declaration
393 | A_Protected_Type_Declaration
394 | A_Single_Protected_Declaration
395 | A_Generic_Package_Renaming_Declaration
396 | A_Generic_Procedure_Renaming_Declaration
397 | A_Generic_Function_Renaming_Declaration
398 | An_Entry_Declaration =>
399 return Declaration;
400 when others =>
401 null;
402 end case;
403
404 Check_Nil_Element (Declaration, "Corresponding_Declaration");
405 Raise_Not_Implemented ("");
406 return Nil_Element;
407 end Corresponding_Declaration;
408
409 -------------------------------
410 -- Corresponding_Declaration --
411 -------------------------------
412
413 function Corresponding_Declaration
414 (Declaration : in Asis.Declaration;
415 The_Context : in Asis.Context)
416 return Asis.Declaration
417 is
418 pragma Unreferenced (The_Context);
419 begin
420 Check_Nil_Element (Declaration, "Corresponding_Declaration");
421-- Check_Context (The_Context);
422 Raise_Not_Implemented ("");
423 return Corresponding_Declaration (Declaration);
424 end Corresponding_Declaration;
425
426 -------------------------------------
427 -- Corresponding_Equality_Operator --
428 -------------------------------------
429
430 function Corresponding_Equality_Operator
431 (Declaration : in Asis.Declaration)
432 return Asis.Declaration
433 is
434 begin
435 Check_Nil_Element (Declaration, "Corresponding_Equality_Operator");
436 Raise_Not_Implemented ("");
437 return Nil_Element;
438 end Corresponding_Equality_Operator;
439
440 ---------------------------------
441 -- Corresponding_First_Subtype --
442 ---------------------------------
443
444 function Corresponding_First_Subtype
445 (Declaration : in Asis.Declaration)
446 return Asis.Declaration
447 is
448 begin
449 Check_Nil_Element (Declaration, "Corresponding_First_Subtype");
450
451 case Asis.Elements.Declaration_Kind (Declaration) is
452 when An_Ordinary_Type_Declaration |
453 A_Task_Type_Declaration |
454 A_Protected_Type_Declaration |
455 A_Private_Type_Declaration |
456 A_Private_Extension_Declaration |
457 A_Formal_Type_Declaration =>
458 return Declaration;
459 when others =>
460 Raise_Not_Implemented ("");
461 return Nil_Element;
462 end case;
463 end Corresponding_First_Subtype;
464
465 -----------------------------------
466 -- Corresponding_Generic_Element --
467 -----------------------------------
468
469 function Corresponding_Generic_Element
470 (Reference : in Asis.Element)
471 return Asis.Defining_Name
472 is
473 begin
474 Check_Nil_Element (Reference, "Corresponding_Generic_Element");
475 Raise_Not_Implemented ("");
476 return Nil_Element;
477 end Corresponding_Generic_Element;
478
479 -----------------------------------
480 -- Corresponding_Last_Constraint --
481 -----------------------------------
482
483 function Corresponding_Last_Constraint
484 (Declaration : in Asis.Declaration)
485 return Asis.Declaration
486 is
487 begin
488 Check_Nil_Element (Declaration, "Corresponding_Last_Constraint");
489
490 case Asis.Elements.Declaration_Kind (Declaration) is
491 when An_Ordinary_Type_Declaration |
492 A_Task_Type_Declaration |
493 A_Protected_Type_Declaration |
494 A_Private_Type_Declaration |
495 A_Private_Extension_Declaration |
496 A_Formal_Type_Declaration =>
497 return Declaration;
498 when others =>
499 Raise_Not_Implemented ("");
500 return Nil_Element;
501 end case;
502 end Corresponding_Last_Constraint;
503
504 --------------------------------
505 -- Corresponding_Last_Subtype --
506 --------------------------------
507
508 function Corresponding_Last_Subtype
509 (Declaration : in Asis.Declaration)
510 return Asis.Declaration
511 is
512 begin
513 Check_Nil_Element (Declaration, "Corresponding_Last_Subtype");
514
515 case Asis.Elements.Declaration_Kind (Declaration) is
516 when An_Ordinary_Type_Declaration |
517 A_Task_Type_Declaration |
518 A_Protected_Type_Declaration |
519 A_Private_Type_Declaration |
520 A_Private_Extension_Declaration |
521 A_Formal_Type_Declaration =>
522 return Declaration;
523 when others =>
524 Raise_Not_Implemented ("");
525 return Nil_Element;
526 end case;
527 end Corresponding_Last_Subtype;
528
529 ------------------------------------------
530 -- Corresponding_Representation_Clauses --
531 ------------------------------------------
532
533 function Corresponding_Representation_Clauses
534 (Declaration : in Asis.Declaration)
535 return Asis.Representation_Clause_List
536 is
537 begin
538 Check_Nil_Element (Declaration, "Corresponding_Representation_Clauses");
539 Raise_Not_Implemented ("");
540 return Nil_Element_List;
541 end Corresponding_Representation_Clauses;
542
543 -----------------------------------------
544 -- Corresponding_Subprogram_Derivation --
545 -----------------------------------------
546
547 function Corresponding_Subprogram_Derivation
548 (Declaration : in Asis.Declaration)
549 return Asis.Declaration
550 is
551 begin
552 Check_Nil_Element (Declaration, "Corresponding_Subprogram_Derivation");
553 Raise_Not_Implemented ("");
554 return Nil_Element;
555 end Corresponding_Subprogram_Derivation;
556
557 ---------------------------
558 -- Corresponding_Subunit --
559 ---------------------------
560
561 function Corresponding_Subunit
562 (Body_Stub : in Asis.Declaration)
563 return Asis.Declaration
564 is
565 begin
566 Check_Nil_Element (Body_Stub, "Corresponding_Subunit");
567 Raise_Not_Implemented ("");
568 return Nil_Element;
569 end Corresponding_Subunit;
570
571 ---------------------------
572 -- Corresponding_Subunit --
573 ---------------------------
574
575 function Corresponding_Subunit
576 (Body_Stub : in Asis.Declaration;
577 The_Context : in Asis.Context)
578 return Asis.Declaration
579 is
580 pragma Unreferenced (The_Context);
581 begin
582 Check_Nil_Element (Body_Stub, "Corresponding_Subunit");
583-- Check_Context (The_Context);
584 Raise_Not_Implemented ("");
585 return Corresponding_Subunit (Body_Stub);
586 end Corresponding_Subunit;
587
588 ------------------------
589 -- Corresponding_Type --
590 ------------------------
591
592 function Corresponding_Type
593 (Declaration : in Asis.Declaration)
594 return Asis.Type_Definition
595 is
596 begin
597 Check_Nil_Element (Declaration, "Corresponding_Type");
598 Raise_Not_Implemented ("");
599 return Nil_Element;
600 end Corresponding_Type;
601
602 ------------------------------------
603 -- Corresponding_Type_Declaration --
604 ------------------------------------
605
606 function Corresponding_Type_Declaration
607 (Declaration : in Asis.Declaration)
608 return Asis.Declaration
609 is
610 begin
611 Check_Nil_Element (Declaration, "Corresponding_Type_Declaration");
612 Raise_Not_Implemented ("");
613 return Nil_Element;
614 end Corresponding_Type_Declaration;
615
616 ------------------------------------
617 -- Corresponding_Type_Declaration --
618 ------------------------------------
619
620 function Corresponding_Type_Declaration
621 (Declaration : in Asis.Declaration;
622 The_Context : in Asis.Context)
623 return Asis.Declaration
624 is
625 pragma Unreferenced (The_Context);
626 begin
627 Check_Nil_Element (Declaration, "Corresponding_Type_Declaration");
628-- Check_Context (The_Context);
629 return Corresponding_Type_Declaration (Declaration);
630 end Corresponding_Type_Declaration;
631
632 ------------------------------
633 -- Declaration_Subtype_Mark --
634 ------------------------------
635
636 function Declaration_Subtype_Mark
637 (Declaration : in Asis.Declaration)
638 return Asis.Expression
639 is
640 Result : Asis.Definition;
641 begin
642 Check_Nil_Element (Declaration, "Declaration_Subtype_Mark");
643
644 case Asis.Elements.Declaration_Kind (Declaration) is
645 when A_Variable_Declaration |
646 A_Constant_Declaration |
647 A_Deferred_Constant_Declaration |
648 A_Single_Protected_Declaration |
649 A_Single_Task_Declaration |
650 A_Component_Declaration
651 =>
652-- Raise_Inappropriate_Element ("Declaration_Subtype_Mark");
653 Raise_Not_Implemented ("");
654 return Nil_Element;
655 when others =>
656 null;
657 end case;
658
659 Result := Object_Declaration_Subtype (Declaration);
660
661 if Assigned (Result) then
662 case Asis.Elements.Definition_Kind (Result) is
663 when A_Subtype_Indication =>
664 Raise_Not_Implemented ("");
665 return Nil_Element;
666-- return Get_Subtype_Mark (Result.all);
667 when An_Access_Definition =>
668 case Asis.Elements.Access_Definition_Kind (Result) is
669 when An_Anonymous_Access_To_Object_Definition =>
670 Raise_Not_Implemented ("");
671 return Nil_Element;
672-- return
673-- Anonymous_Access_To_Object_Subtype_Mark (Result.all);
674 when others =>
675 Raise_Not_Implemented ("");
676 return Nil_Element;
677 end case;
678 when others =>
679 Raise_Not_Implemented ("");
680 return Nil_Element;
681 end case;
682 end if;
683
684 return Result;
685 end Declaration_Subtype_Mark;
686
687 -------------------------
688 -- Defining_Name_Image --
689 -------------------------
690
691 function Defining_Name_Image
692 (Defining_Name : in Asis.Defining_Name)
693 return Program_Text
694 is
695 package Get is
696 type Visiter is new Gela.Element_Visiters.Visiter with record
697 Symbol : Gela.Lexical_Types.Symbol;
698 end record;
699
700 overriding procedure Defining_Identifier
701 (Self : in out Visiter;
702 Node : not null Gela.Elements.Defining_Identifiers.
703 Defining_Identifier_Access);
704 end Get;
705
706 package body Get is
707
708 overriding procedure Defining_Identifier
709 (Self : in out Visiter;
710 Node : not null Gela.Elements.Defining_Identifiers.
711 Defining_Identifier_Access)
712 is
713 Token : constant Gela.Lexical_Types.Token_Count :=
714 Node.Identifier_Token;
715 Comp : constant Gela.Compilations.Compilation_Access :=
716 Node.Enclosing_Compilation;
717 begin
718 Self.Symbol := Comp.Get_Token (Token).Symbol;
719 end Defining_Identifier;
720 end Get;
721
722 V : Get.Visiter;
723 Comp : Gela.Compilations.Compilation_Access;
724 Context : Gela.Contexts.Context_Access;
725 begin
726 Check_Nil_Element (Defining_Name, "Defining_Name_Image");
727 Defining_Name.Data.Visit (V);
728 Comp := Defining_Name.Data.Enclosing_Compilation;
729 Context := Comp.Context;
730 return Context.Symbols.Image (V.Symbol).To_UTF_16_Wide_String;
731 end Defining_Name_Image;
732
733 ---------------------
734 -- Defining_Prefix --
735 ---------------------
736
737 function Defining_Prefix
738 (Defining_Name : in Asis.Defining_Name)
739 return Asis.Name
740 is
741 begin
742 Check_Nil_Element (Defining_Name, "Defining_Prefix");
743 Raise_Not_Implemented ("");
744 return Nil_Element;
745 end Defining_Prefix;
746
747 -----------------------
748 -- Defining_Selector --
749 -----------------------
750
751 function Defining_Selector
752 (Defining_Name : in Asis.Defining_Name)
753 return Asis.Defining_Name
754 is
755 begin
756 Check_Nil_Element (Defining_Name, "Defining_Selector");
757 Raise_Not_Implemented ("");
758 return Nil_Element;
759 end Defining_Selector;
760
761 -----------------------
762 -- Discriminant_Part --
763 -----------------------
764
765 function Discriminant_Part
766 (Declaration : in Asis.Declaration)
767 return Asis.Definition
768 is
769 begin
770 Check_Nil_Element (Declaration, "Discriminant_Part");
771 Raise_Not_Implemented ("");
772 return Nil_Element;
773 end Discriminant_Part;
774
775 -------------------
776 -- Entry_Barrier --
777 -------------------
778
779 function Entry_Barrier
780 (Declaration : in Asis.Declaration)
781 return Asis.Expression
782 is
783 begin
784 Check_Nil_Element (Declaration, "Entry_Barrier");
785 Raise_Not_Implemented ("");
786 return Nil_Element;
787 end Entry_Barrier;
788
789 -----------------------------
790 -- Entry_Family_Definition --
791 -----------------------------
792
793 function Entry_Family_Definition
794 (Declaration : in Asis.Declaration)
795 return Asis.Discrete_Subtype_Definition
796 is
797 begin
798 Check_Nil_Element (Declaration, "Entry_Family_Definition");
799 Raise_Not_Implemented ("");
800 return Nil_Element;
801 end Entry_Family_Definition;
802
803 -------------------------------
804 -- Entry_Index_Specification --
805 -------------------------------
806
807 function Entry_Index_Specification
808 (Declaration : in Asis.Declaration)
809 return Asis.Declaration
810 is
811 begin
812 Check_Nil_Element (Declaration, "Entry_Index_Specification");
813 Raise_Not_Implemented ("");
814 return Nil_Element;
815 end Entry_Index_Specification;
816
817 -------------------------------
818 -- Formal_Subprogram_Default --
819 -------------------------------
820
821 function Formal_Subprogram_Default
822 (Declaration : in Asis.Generic_Formal_Parameter)
823 return Asis.Expression
824 is
825 begin
826 Check_Nil_Element (Declaration, "Formal_Subprogram_Default");
827 Raise_Not_Implemented ("");
828 return Nil_Element;
829 end Formal_Subprogram_Default;
830
831 -------------------------
832 -- Generic_Actual_Part --
833 -------------------------
834
835 function Generic_Actual_Part
836 (Declaration : in Asis.Declaration;
837 Normalized : in Boolean := False)
838 return Asis.Association_List
839 is
840 begin
841 Check_Nil_Element (Declaration, "Generic_Actual_Part");
842 if Normalized then
843 Raise_Not_Implemented ("");
844 return Nil_Element_List;
845 else
846 Raise_Not_Implemented ("");
847 return Nil_Element_List;
848 end if;
849 end Generic_Actual_Part;
850
851 -------------------------
852 -- Generic_Formal_Part --
853 -------------------------
854
855 function Generic_Formal_Part
856 (Declaration : in Asis.Declaration;
857 Include_Pragmas : in Boolean := False)
858 return Asis.Element_List
859 is
860 pragma Unreferenced (Include_Pragmas);
861 begin
862 Check_Nil_Element (Declaration, "Generic_Formal_Part");
863 Raise_Not_Implemented ("");
864 return Nil_Element_List;
865 end Generic_Formal_Part;
866
867 -----------------------
868 -- Generic_Unit_Name --
869 -----------------------
870
871 function Generic_Unit_Name
872 (Declaration : in Asis.Declaration)
873 return Asis.Expression
874 is
875 begin
876 Check_Nil_Element (Declaration, "Generic_Unit_Name");
877 Raise_Not_Implemented ("");
878 return Nil_Element;
879 end Generic_Unit_Name;
880
881 -------------------------------
882 -- Initialization_Expression --
883 -------------------------------
884
885 function Initialization_Expression
886 (Declaration : in Asis.Declaration)
887 return Asis.Expression
888 is
889 begin
890 Check_Nil_Element (Declaration, "Initialization_Expression");
891 Raise_Not_Implemented ("");
892 return Nil_Element;
893 end Initialization_Expression;
894
895 ------------------------------
896 -- Is_Dispatching_Operation --
897 ------------------------------
898
899 function Is_Dispatching_Operation
900 (Declaration : in Asis.Element)
901 return Boolean
902 is
903 begin
904 Check_Nil_Element (Declaration, "Is_Dispatching_Operation");
905 Raise_Not_Implemented ("");
906 return False;
907 end Is_Dispatching_Operation;
908
909 ----------------------
910 -- Is_Name_Repeated --
911 ----------------------
912
913 function Is_Name_Repeated
914 (Declaration : in Asis.Declaration)
915 return Boolean
916 is
917 begin
918 Check_Nil_Element (Declaration, "Is_Name_Repeated");
919 Raise_Not_Implemented ("");
920 return False;
921 end Is_Name_Repeated;
922
923 ------------------------
924 -- Is_Private_Present --
925 ------------------------
926
927 function Is_Private_Present
928 (Declaration : in Asis.Declaration)
929 return Boolean
930 is
931 begin
932 Check_Nil_Element (Declaration, "Is_Private_Present");
933 Raise_Not_Implemented ("");
934 return False;
935 end Is_Private_Present;
936
937 ----------------
938 -- Is_Subunit --
939 ----------------
940
941 function Is_Subunit (Declaration : in Asis.Declaration) return Boolean is
942 Enclosing_Unit : constant Compilation_Unit :=
943 Asis.Elements.Enclosing_Compilation_Unit (Declaration);
944 begin
945 if Assigned (Declaration) then
946 return Asis.Elements.Is_Equal
947 (Declaration,
948 Asis.Elements.Unit_Declaration (Enclosing_Unit))
949 and Asis.Compilation_Units.Unit_Kind (Enclosing_Unit) in A_Subunit;
950 else
951 return False;
952 end if;
953 end Is_Subunit;
954
955 -----------
956 -- Names --
957 -----------
958
959 function Names
960 (Declaration : in Asis.Declaration)
961 return Asis.Defining_Name_List
962 is
963 package Get is
964 type Visiter is new Gela.Element_Visiters.Visiter with record
965 Name : Gela.Elements.Element_Access;
966 Names : Gela.Elements.Element_Sequence_Access;
967 end record;
968
969 overriding procedure Object_Declaration
970 (Self : in out Visiter;
971 Node : not null Gela.Elements.Object_Declarations.
972 Object_Declaration_Access);
973
974 overriding procedure Procedure_Body
975 (Self : in out Visiter;
976 Node : not null Gela.Elements.Procedure_Bodies.
977 Procedure_Body_Access);
978
979 overriding procedure Procedure_Declaration
980 (Self : in out Visiter;
981 Node : not null Gela.Elements.Procedure_Declarations.
982 Procedure_Declaration_Access);
983
984 end Get;
985
986 package body Get is
987
988 overriding procedure Object_Declaration
989 (Self : in out Visiter;
990 Node : not null Gela.Elements.Object_Declarations.
991 Object_Declaration_Access)
992 is
993 Names : constant Gela.Elements.Defining_Identifiers.
994 Defining_Identifier_Sequence_Access := Node.Names;
995 begin
996 Self.Names := Gela.Elements.Element_Sequence_Access (Names);
997 end Object_Declaration;
998
999 overriding procedure Procedure_Body
1000 (Self : in out Visiter;
1001 Node : not null Gela.Elements.Procedure_Bodies.
1002 Procedure_Body_Access)
1003 is
1004 Name : constant Gela.Elements.Defining_Program_Unit_Names.
1005 Defining_Program_Unit_Name_Access := Node.Names;
1006 begin
1007 Self.Name := Gela.Elements.Element_Access (Name);
1008 end Procedure_Body;
1009
1010 overriding procedure Procedure_Declaration
1011 (Self : in out Visiter;
1012 Node : not null Gela.Elements.Procedure_Declarations.
1013 Procedure_Declaration_Access)
1014 is
1015 Name : constant Gela.Elements.Defining_Program_Unit_Names.
1016 Defining_Program_Unit_Name_Access := Node.Names;
1017 begin
1018 Self.Name := Gela.Elements.Element_Access (Name);
1019 end Procedure_Declaration;
1020
1021 end Get;
1022
1023 use type Gela.Elements.Element_Access;
1024 use type Gela.Elements.Element_Sequence_Access;
1025 V : Get.Visiter;
1026 begin
1027 Check_Nil_Element (Declaration, "Names");
1028 Declaration.Data.Visit (V);
1029
1030 if V.Name /= null then
1031 return (1 => (Data => V.Name));
1032 elsif V.Names /= null then
1033 return Asis.To_List (V.Names);
1034 else
1035 Raise_Not_Implemented ("");
1036 return Asis.Nil_Element_List;
1037 end if;
1038 end Names;
1039
1040 -----------------------------
1041 -- Object_Declaration_View --
1042 -----------------------------
1043
1044 function Object_Declaration_View
1045 (Declaration : in Asis.Declaration)
1046 return Asis.Definition
1047 is
1048 Result : Asis.Definition;
1049 begin
1050 Check_Nil_Element (Declaration, "Object_Declaration_View");
1051
1052 case Asis.Elements.Declaration_Kind (Declaration) is
1053 when A_Discriminant_Specification |
1054 A_Parameter_Specification |
1055 A_Formal_Object_Declaration |
1056 An_Object_Renaming_Declaration
1057 =>
1058-- Raise_Inappropriate_Element ("Object_Declaration_View");
1059 Raise_Not_Implemented ("");
1060 return Nil_Element;
1061 when others =>
1062 null;
1063 end case;
1064
1065 Result := Object_Declaration_Subtype (Declaration);
1066
1067 if Assigned (Result) and then
1068 Asis.Elements.Definition_Kind (Result) = An_Access_Definition
1069 then
1070 Raise_Not_Implemented ("");
1071 return Nil_Element;
1072 end if;
1073
1074 return Result;
1075 end Object_Declaration_View;
1076
1077 --------------------------------
1078 -- Object_Declaration_Subtype --
1079 --------------------------------
1080
1081 function Object_Declaration_Subtype
1082 (Declaration : in Asis.Declaration) return Asis.Definition
1083 is
1084
1085 package Get is
1086 type Visiter is new Gela.Element_Visiters.Visiter with record
1087 Result : Gela.Elements.Element_Access;
1088 end record;
1089
1090 overriding procedure Component_Declaration
1091 (Self : in out Visiter;
1092 Node : not null Gela.Elements.Component_Declarations.
1093 Component_Declaration_Access);
1094
1095 overriding procedure Discriminant_Specification
1096 (Self : in out Visiter;
1097 Node : not null Gela.Elements.Discriminant_Specifications.
1098 Discriminant_Specification_Access);
1099
1100 overriding procedure Formal_Object_Declaration
1101 (Self : in out Visiter;
1102 Node : not null Gela.Elements.Formal_Object_Declarations.
1103 Formal_Object_Declaration_Access);
1104
1105 overriding procedure Object_Declaration
1106 (Self : in out Visiter;
1107 Node : not null Gela.Elements.Object_Declarations.
1108 Object_Declaration_Access);
1109
1110 overriding procedure Object_Renaming_Declaration
1111 (Self : in out Visiter;
1112 Node : not null Gela.Elements.Object_Renaming_Declarations.
1113 Object_Renaming_Declaration_Access);
1114
1115 overriding procedure Parameter_Specification
1116 (Self : in out Visiter;
1117 Node : not null Gela.Elements.Parameter_Specifications.
1118 Parameter_Specification_Access);
1119
1120 overriding procedure Single_Protected_Declaration
1121 (Self : in out Visiter;
1122 Node : not null Gela.Elements.Single_Protected_Declarations.
1123 Single_Protected_Declaration_Access);
1124
1125 overriding procedure Single_Task_Declaration
1126 (Self : in out Visiter;
1127 Node : not null Gela.Elements.Single_Task_Declarations.
1128 Single_Task_Declaration_Access);
1129 end Get;
1130
1131 package body Get is
1132
1133 overriding procedure Component_Declaration
1134 (Self : in out Visiter;
1135 Node : not null Gela.Elements.Component_Declarations.
1136 Component_Declaration_Access)
1137 is
1138 X : constant Gela.Elements.Component_Definitions.
1139 Component_Definition_Access := Node.Object_Declaration_Subtype;
1140 begin
1141 Self.Result := Gela.Elements.Element_Access (X);
1142 end Component_Declaration;
1143
1144 overriding procedure Discriminant_Specification
1145 (Self : in out Visiter;
1146 Node : not null Gela.Elements.Discriminant_Specifications.
1147 Discriminant_Specification_Access)
1148 is
1149 X : constant Gela.Elements.Subtype_Mark_Or_Access_Definitions.
1150 Subtype_Mark_Or_Access_Definition_Access :=
1151 Node.Object_Declaration_Subtype;
1152 begin
1153 Self.Result := Gela.Elements.Element_Access (X);
1154 end Discriminant_Specification;
1155
1156 overriding procedure Formal_Object_Declaration
1157 (Self : in out Visiter;
1158 Node : not null Gela.Elements.Formal_Object_Declarations.
1159 Formal_Object_Declaration_Access)
1160 is
1161 X : constant Gela.Elements.Subtype_Mark_Or_Access_Definitions.
1162 Subtype_Mark_Or_Access_Definition_Access :=
1163 Node.Object_Declaration_Subtype;
1164 begin
1165 Self.Result := Gela.Elements.Element_Access (X);
1166 end Formal_Object_Declaration;
1167
1168 overriding procedure Object_Declaration
1169 (Self : in out Visiter;
1170 Node : not null Gela.Elements.Object_Declarations.
1171 Object_Declaration_Access)
1172 is
1173 X : constant Gela.Elements.Object_Definitions.
1174 Object_Definition_Access := Node.Object_Declaration_Subtype;
1175 begin
1176 Self.Result := Gela.Elements.Element_Access (X);
1177 end Object_Declaration;
1178
1179 overriding procedure Object_Renaming_Declaration
1180 (Self : in out Visiter;
1181 Node : not null Gela.Elements.Object_Renaming_Declarations.
1182 Object_Renaming_Declaration_Access)
1183 is
1184 X : constant Gela.Elements.Subtype_Mark_Or_Access_Definitions.
1185 Subtype_Mark_Or_Access_Definition_Access :=
1186 Node.Object_Declaration_Subtype;
1187 begin
1188 Self.Result := Gela.Elements.Element_Access (X);
1189 end Object_Renaming_Declaration;
1190
1191 overriding procedure Parameter_Specification
1192 (Self : in out Visiter;
1193 Node : not null Gela.Elements.Parameter_Specifications.
1194 Parameter_Specification_Access)
1195 is
1196 X : constant Gela.Elements.Subtype_Mark_Or_Access_Definitions.
1197 Subtype_Mark_Or_Access_Definition_Access :=
1198 Node.Object_Declaration_Subtype;
1199 begin
1200 Self.Result := Gela.Elements.Element_Access (X);
1201 end Parameter_Specification;
1202
1203 overriding procedure Single_Protected_Declaration
1204 (Self : in out Visiter;
1205 Node : not null Gela.Elements.Single_Protected_Declarations.
1206 Single_Protected_Declaration_Access)
1207 is
1208 X : constant Gela.Elements.Protected_Definitions.
1209 Protected_Definition_Access := Node.Object_Declaration_Subtype;
1210 begin
1211 Self.Result := Gela.Elements.Element_Access (X);
1212 end Single_Protected_Declaration;
1213
1214 overriding procedure Single_Task_Declaration
1215 (Self : in out Visiter;
1216 Node : not null Gela.Elements.Single_Task_Declarations.
1217 Single_Task_Declaration_Access)
1218 is
1219 X : constant Gela.Elements.Task_Definitions.
1220 Task_Definition_Access := Node.Object_Declaration_Subtype;
1221 begin
1222 Self.Result := Gela.Elements.Element_Access (X);
1223 end Single_Task_Declaration;
1224
1225 end Get;
1226
1227 V : Get.Visiter;
1228 begin
1229 Check_Nil_Element (Declaration, "Object_Declaration_Subtype");
1230 Declaration.Data.Visit (V);
1231
1232 return (Data => V.Result);
1233 end Object_Declaration_Subtype;
1234
1235 -------------------------------
1236 -- Overriding_Indicator_Kind --
1237 -------------------------------
1238
1239 function Overriding_Indicator_Kind
1240 (Declaration : Asis.Declaration)
1241 return Asis.Overriding_Indicator_Kinds
1242 is
1243 begin
1244 if Assigned (Declaration) then
1245 Raise_Not_Implemented ("");
1246 return Not_An_Overriding_Indicator;
1247 else
1248 return Not_An_Overriding_Indicator;
1249 end if;
1250 end Overriding_Indicator_Kind;
1251
1252 -----------------------
1253 -- Parameter_Profile --
1254 -----------------------
1255
1256 function Parameter_Profile
1257 (Declaration : in Asis.Declaration)
1258 return Asis.Parameter_Specification_List
1259 is
1260 package Get is
1261 type Visiter is new Gela.Element_Visiters.Visiter with record
1262 List : Gela.Elements.Element_Sequence_Access;
1263 end record;
1264
1265 overriding procedure Procedure_Declaration
1266 (Self : in out Visiter;
1267 Node : not null Gela.Elements.Procedure_Declarations.
1268 Procedure_Declaration_Access);
1269
1270 end Get;
1271
1272 package body Get is
1273
1274 overriding procedure Procedure_Declaration
1275 (Self : in out Visiter;
1276 Node : not null Gela.Elements.Procedure_Declarations.
1277 Procedure_Declaration_Access)
1278 is
1279 List : constant Gela.Elements.Parameter_Specifications.
1280 Parameter_Specification_Sequence_Access :=
1281 Node.Parameter_Profile;
1282 begin
1283 Self.List := Gela.Elements.Element_Sequence_Access (List);
1284 end Procedure_Declaration;
1285
1286 end Get;
1287
1288 V : Get.Visiter;
1289 begin
1290 Check_Nil_Element (Declaration, "Parameter_Profile");
1291 Declaration.Data.Visit (V);
1292
1293 return Asis.To_List (V.List);
1294 end Parameter_Profile;
1295
1296 ---------------------------
1297 -- Position_Number_Image --
1298 ---------------------------
1299
1300 function Position_Number_Image
1301 (Defining_Name : in Asis.Defining_Name)
1302 return Wide_String
1303 is
1304 begin
1305 Check_Nil_Element (Defining_Name, "Position_Number_Image");
1306 Raise_Not_Implemented ("");
1307 return "";
1308 end Position_Number_Image;
1309
1310 ------------------------------------
1311 -- Private_Part_Declarative_Items --
1312 ------------------------------------
1313
1314 function Private_Part_Declarative_Items
1315 (Declaration : in Asis.Declaration;
1316 Include_Pragmas : in Boolean := False)
1317 return Asis.Declarative_Item_List
1318 is
1319 pragma Unreferenced (Include_Pragmas);
1320 begin
1321 Check_Nil_Element (Declaration, "Private_Part_Declarative_Items");
1322 Raise_Not_Implemented ("");
1323 return Nil_Element_List;
1324 end Private_Part_Declarative_Items;
1325
1326 ---------------------
1327 -- Progenitor_List --
1328 ---------------------
1329
1330 function Progenitor_List
1331 (Declaration : Asis.Declaration)
1332 return Asis.Name_List is
1333 begin
1334 Check_Nil_Element (Declaration, "Progenitor_List");
1335 Raise_Not_Implemented ("");
1336 return Nil_Element_List;
1337 end Progenitor_List;
1338
1339 -------------------------------
1340 -- Protected_Operation_Items --
1341 -------------------------------
1342
1343 function Protected_Operation_Items
1344 (Declaration : in Asis.Declaration;
1345 Include_Pragmas : in Boolean := False)
1346 return Asis.Declaration_List
1347 is
1348 pragma Unreferenced (Include_Pragmas);
1349 begin
1350 Check_Nil_Element (Declaration, "Protected_Operation_Items");
1351 Raise_Not_Implemented ("");
1352 return Nil_Element_List;
1353 end Protected_Operation_Items;
1354
1355 --------------------
1356 -- Renamed_Entity --
1357 --------------------
1358
1359 function Renamed_Entity
1360 (Declaration : in Asis.Declaration)
1361 return Asis.Expression
1362 is
1363 begin
1364 Check_Nil_Element (Declaration, "Renamed_Entity");
1365 Raise_Not_Implemented ("");
1366 return Nil_Element;
1367 end Renamed_Entity;
1368
1369 --------------------------------
1370 -- Representation_Value_Image --
1371 --------------------------------
1372
1373 function Representation_Value_Image
1374 (Defining_Name : in Asis.Defining_Name)
1375 return Wide_String
1376 is
1377 begin
1378 Check_Nil_Element (Defining_Name, "Representation_Value_Image");
1379 Raise_Not_Implemented ("");
1380 return "";
1381 end Representation_Value_Image;
1382
1383 --------------------
1384 -- Result_Profile --
1385 --------------------
1386
1387 function Result_Profile
1388 (Declaration : in Asis.Declaration)
1389 return Asis.Expression
1390 is
1391 Result : Asis.Definition;
1392 begin
1393 Check_Nil_Element (Declaration, "Result_Profile");
1394-- Result := Result_Subtype (Declaration);
1395
1396 if Assigned (Result) then
1397 case Asis.Elements.Definition_Kind (Result) is
1398 when A_Subtype_Indication =>
1399 Raise_Not_Implemented ("");
1400 return Nil_Element;
1401-- return Asis.Definitions.Subtype_Mark (Result);
1402 when others =>
1403 Raise_Not_Implemented ("");
1404 return Nil_Element;
1405 end case;
1406 end if;
1407
1408 return Result;
1409 end Result_Profile;
1410
1411 --------------------
1412 -- Result_Subtype --
1413 --------------------
1414
1415 function Result_Subtype
1416 (Declaration : in Asis.Declaration)
1417 return Asis.Definition is
1418 begin
1419 Check_Nil_Element (Declaration, "Result_Subtype");
1420 Raise_Not_Implemented ("");
1421 return Nil_Element;
1422 end Result_Subtype;
1423
1424 --------------------------------------
1425 -- Specification_Subtype_Definition --
1426 --------------------------------------
1427
1428 function Specification_Subtype_Definition
1429 (Specification : in Asis.Declaration)
1430 return Asis.Discrete_Subtype_Definition
1431 is
1432 begin
1433 Check_Nil_Element (Specification, "Specification_Subtype_Definition");
1434 Raise_Not_Implemented ("");
1435 return Nil_Element;
1436 end Specification_Subtype_Definition;
1437
1438 ---------------------------
1439 -- Type_Declaration_View --
1440 ---------------------------
1441
1442 function Type_Declaration_View
1443 (Declaration : in Asis.Declaration)
1444 return Asis.Definition
1445 is
1446 begin
1447 Check_Nil_Element (Declaration, "Type_Declaration_View");
1448 Raise_Not_Implemented ("");
1449 return Nil_Element;
1450 end Type_Declaration_View;
1451
1452 ------------------------------------
1453 -- Visible_Part_Declarative_Items --
1454 ------------------------------------
1455
1456 function Visible_Part_Declarative_Items
1457 (Declaration : in Asis.Declaration;
1458 Include_Pragmas : in Boolean := False)
1459 return Asis.Declarative_Item_List
1460 is
1461 pragma Unreferenced (Include_Pragmas);
1462 begin
1463 Check_Nil_Element (Declaration, "Visible_Part_Declarative_Items");
1464 Raise_Not_Implemented ("");
1465 return Nil_Element_List;
1466 end Visible_Part_Declarative_Items;
1467
1468end Asis.Declarations;
1469
1470
1471------------------------------------------------------------------------------
1472-- Copyright (c) 2006-2013, Maxim Reznik
1473-- All rights reserved.
1474--
1475-- Redistribution and use in source and binary forms, with or without
1476-- modification, are permitted provided that the following conditions are met:
1477--
1478-- * Redistributions of source code must retain the above copyright notice,
1479-- this list of conditions and the following disclaimer.
1480-- * Redistributions in binary form must reproduce the above copyright
1481-- notice, this list of conditions and the following disclaimer in the
1482-- documentation and/or other materials provided with the distribution.
1483-- * Neither the name of the Maxim Reznik, IE nor the names of its
1484-- contributors may be used to endorse or promote products derived from
1485-- this software without specific prior written permission.
1486--
1487-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
1488-- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1489-- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1490-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
1491-- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1492-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1493-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
1494-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1495-- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1496-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1497-- POSSIBILITY OF SUCH DAMAGE.
1498------------------------------------------------------------------------------
Note: See TracBrowser for help on using the repository browser.