1------------------------------------------------------------------------------ 2-- -- 3-- Matreshka Project -- 4-- -- 5-- Web Framework -- 6-- -- 7-- Tools 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: 4002 $ $Date: 2013-07-14 14:36:47 +0400 (Sun, 14 Jul 2013) $ 43------------------------------------------------------------------------------ 44-- Root package for AST of WSDL. 45------------------------------------------------------------------------------ 46with Ada.Containers; 47 48with League.Strings; 49 50limited with WSDL.AST.Bindings; 51limited with WSDL.AST.Descriptions; 52limited with WSDL.AST.Faults; 53limited with WSDL.AST.Interfaces; 54limited with WSDL.AST.Messages; 55limited with WSDL.AST.Operations; 56limited with WSDL.Iterators; 57limited with WSDL.Visitors; 58 59package WSDL.AST is 60 61 pragma Preelaborate; 62 63 type Qualified_Name is record 64 Namespace_URI : League.Strings.Universal_String; 65 Local_Name : League.Strings.Universal_String; 66 end record; 67 68 function Image 69 (Item : Qualified_Name) return League.Strings.Universal_String; 70 71 function Hash (Item : Qualified_Name) return Ada.Containers.Hash_Type; 72 73 type Message_Content_Models is (Element, Any, None, Other); 74 75 type Message_Directions is (In_Message, Out_Message); 76 77 ------------------- 78 -- Abstract Node -- 79 ------------------- 80 81 type Abstract_Node is abstract tagged record 82 null; 83 end record; 84 85 type Node_Access is access all Abstract_Node'Class; 86 87 not overriding procedure Enter 88 (Self : not null access Abstract_Node; 89 Visitor : in out WSDL.Visitors.WSDL_Visitor'Class; 90 Control : in out WSDL.Iterators.Traverse_Control) is abstract; 91 92 not overriding procedure Leave 93 (Self : not null access Abstract_Node; 94 Visitor : in out WSDL.Visitors.WSDL_Visitor'Class; 95 Control : in out WSDL.Iterators.Traverse_Control) is abstract; 96 97 not overriding procedure Visit 98 (Self : not null access Abstract_Node; 99 Iterator : in out WSDL.Iterators.WSDL_Iterator'Class; 100 Visitor : in out WSDL.Visitors.WSDL_Visitor'Class; 101 Control : in out WSDL.Iterators.Traverse_Control) is abstract; 102 103 type Binding_Access is access all WSDL.AST.Bindings.Binding_Node'Class; 104 105 type Binding_Fault_Access is 106 access all WSDL.AST.Faults.Binding_Fault_Node'Class; 107 108 type Binding_Operation_Access is 109 access all WSDL.AST.Operations.Binding_Operation_Node'Class; 110 111 type Description_Access is 112 access all WSDL.AST.Descriptions.Description_Node'Class; 113 114 type Interface_Access is 115 access all WSDL.AST.Interfaces.Interface_Node'Class; 116 117 type Interface_Fault_Access is 118 access all WSDL.AST.Faults.Interface_Fault_Node'Class; 119 120 type Interface_Message_Access is 121 access all WSDL.AST.Messages.Interface_Message_Node'Class; 122 123 type Interface_Operation_Access is 124 access all WSDL.AST.Operations.Interface_Operation_Node'Class; 125 126 type Interface_Fault_Reference_Access is 127 access all WSDL.AST.Faults.Interface_Fault_Reference_Node'Class; 128 129end WSDL.AST; 130