/[papo]/gnue/appserver/src/_featuretest/thekitchensink.godl
ViewVC logotype

Diff of /gnue/appserver/src/_featuretest/thekitchensink.godl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by styxman, Fri Nov 8 16:38:42 2002 UTC revision 1.5.4.1 by anthonyl, Tue Mar 4 22:03:56 2003 UTC
# Line 12  module. Line 12  module.
12  -->  -->
13  <odl_specification>  <odl_specification>
14    <odl_definition>    <odl_definition>
15      <typedef>  
16        <type_spec>float</type_spec>      <typedef type="float">
17        <declarators>        <alias>FloatType</alias>
         <declarator>FloatType</declarator>  
       </declarators>  
18      </typedef>      </typedef>
19    
20      <typedef>      <typedef>
21        <type_spec>        <array>float</array>
22          <array><type_spec>float</type_spec></array>        <alias>FloatArrayType</alias>
       </type_spec>  
       <declarators>  
         <declarator>FloatArrayType</declarator>  
       </declarators>  
23      </typedef>      </typedef>
24    
25      <typedef>      <typedef>
26        <type_spec>        <sequence>float</sequence>
27          <sequence><type_spec>float</type_spec></sequence>        <alias>FloatSequenceType</alias>
       </type_spec>  
       <declarators>  
         <declarator>FloatSequenceType</declarator>  
       </declarators>  
28      </typedef>      </typedef>
29    
30      <typedef>      <typedef type="string">
31        <type_spec>string</type_spec>        <alias>StringType</alias>
       <declarators>  
         <declarator>StringType</declarator>  
       </declarators>  
32      </typedef>      </typedef>
33    
34      <typedef>      <typedef type="GNUe::Sadist">
35        <type_spec>        <alias>Masta</alias>
         <scoped_name>GNUe::Sadist</scoped_name>  
       </type_spec>  
       <declarators>  
         <declarator>Masta</declarator>  
       </declarators>  
36      </typedef>      </typedef>
37    
38      <struct id="Bar">      <struct name="Bar">
39        <members>        <members>
40          <member>          <member name="barname">string</member>
41            <type_spec>string</type_spec>          <member name="barprice">float"</member>
42            <declarators>          <member name="barz">short</member>
43              <declarator>barname</declarator>          <member name="fubar">unsigned long</member>
44            </declarators>          <member name="fbar">unsigned short</member>
45          </member>          <member name="bars">long long</member>
         <member>  
           <type_spec>float</type_spec>  
           <declarators>  
             <declarator>barprice</declarator>  
           </declarators>  
         </member>  
         <member>  
           <type_spec>short</type_spec>  
           <declarators>  
             <declarator>barz</declarator>  
           </declarators>  
         </member>  
         <member>  
           <type_spec>unsigned long</type_spec>  
           <declarators>  
             <declarator>fubar</declarator>  
           </declarators>  
         </member>  
         <member>  
           <type_spec>unsigned short</type_spec>  
           <declarators>  
             <declarator>fbar</declarator>  
           </declarators>  
         </member>  
         <member>  
           <type_spec>long long</type_spec>  
           <declarators>  
             <declarator>bars</declarator>  
           </declarators>  
         </member>  
46        </members>        </members>
47      </struct>      </struct>
48    
49      <union id="Trout">      <union name="Trout">
50        <switch>        <switch type="boolean">
51          <type_spec>boolean</type_spec>          <case label="TRUE" name="brown_trout">string</case>
52          <case>          <case label="FALSE" name="rainbow_trout">string</case>
53            <boolean>TRUE</boolean>          <default name="trout">string</default>
           <type_spec>string</type_spec>  
           <declarator>brown_trout</declarator>  
         </case>  
         <case>  
           <boolean>FLASE</boolean>  
           <type_spec>string</type_spec>  
           <declarator>rainbow_trout</declarator>  
         </case>  
         <default>  
           <type_spec>string</type_spec>  
           <declarator>trout</declarator>  
         </default>  
54        </switch>        </switch>
55      </union>      </union>
56    
57      <enum id="TroutType">      <enum name="TroutType">
58        <enumerator>brown</enumerator>        <element>brown</element>
59        <enumerator>rainbow</enumerator>        <element>rainbow</element>
60        <enumerator>lake</enumerator>        <element>lake</element>
61      </enum>      </enum>
62    
63      <typedef>      <typedef type="Bar">
64        <type_spec><struct>Bar</struct></type_spec>        <alias>bar</alias>
       <declarators>  
         <declarator>bar</declarator>  
       </declarators>  
65      </typedef>      </typedef>
66    
67      <typedef>      <typedef type="Trout">
68        <type_spec><union>Trout</union></type_spec>        <alias>trout_t</alias>
       <declarators>  
         <declarator>trout_t</declarator>  
       </declarators>  
69      </typedef>      </typedef>
70    
71      <typedef>      <typedef type="TroutType">
72        <type_spec><enum>TroutType</enum></type_spec>        <alias>trout_type</alias>
       <declarators>  
         <declarator>trout_type</declarator>  
       </declarators>  
73      </typedef>      </typedef>
74    
75      <typedef>      <typedef>
76        <type_spec>        <dictionary>
77          <dictionary>          <key>float</key>
78            <key>          <value>float</value>
79              <type_spec>float</type_spec>        </dictionary>
80            </key>        <alias>DictionaryType</alias>
           <value>  
             <type_spec>float</type_spec>  
           </value>  
         </dictionary>  
       </type_spec>  
       <declarators>  
         <declarator>DictionaryType</declarator>  
       </declarators>  
81      </typedef>      </typedef>
82    
83      <typedef>      <typedef>
84        <type_spec>        <set>float</set>
85          <set><type_spec>float</type_spec></set>        <alias>SetType</alias>
       </type_spec>  
       <declarators>  
         <declarator>SetType</declarator>  
       </declarators>  
86      </typedef>      </typedef>
87    
88      <typedef>      <typedef>
89        <type_spec>        <list>float</list>
90          <list><type_spec>float</type_spec></list>        <alias>ListType</alias>
       </type_spec>  
       <declarators>  
         <declarator>ListType</declarator>  
       </declarators>  
91      </typedef>      </typedef>
92    
93      <typedef>      <typedef>
94        <type_spec>        <bag>float</bag>
95          <bag><type_spec>float</type_spec></bag>        <alias>BagType</alias>
       </type_spec>  
       <declarators>  
         <declarator>BagType</declarator>  
       </declarators>  
96      </typedef>      </typedef>
97    
98      <!-- Forward declarations -->      <!-- Forward declarations -->
99      <interface id="GNUe::Sadist"/>      <interface name="GNUe::Sadist"/>
100      <class id="GNUe::Goats::Chillywilly"/>      <class name="GNUe::Goats::Chillywilly"/>
101    
102      <const id="BIGINT">      <const name="BIGINT" type="unsigned long">10000L</const>
       <type_spec>  
         <unsigned_long>10000L</unsigned_long>  
       </type_spec>  
     </const>  
103    
104      <exception id="NoModuleError">      <exception name="NoModuleError">
105        <members>        <members>
106          <member>          <member name="what">string</member>
107            <type_spec>string</type_spec>          <member name="line">short</member>
           <declarators>  
             <declarator>what</declarator>  
           </declarators>  
         </member>  
         <member>  
           <type_spec>short</type_spec>  
           <declarators>  
             <declarator>line</declarator>  
           </declarators>  
         </member>  
108        </members>        </members>
109      </exception>      </exception>
110    
111      <exception id="FubarError"/>      <exception name="FubarError"/>
   
     <interface id="KungFu">  
       <operation id="Kick"/>  
   
       <operation id="Punch"/>  
112    
113        <interface name="KungFu">
114          <operation name="Kick"/>
115          <operation name="Punch"/>
116      </interface>      </interface>
117    
118      <class id="Dragon">      <class name="Dragon">
119        <inherits>        <inherits>
120          <interface>KungFu</interface>          <interface name="KungFu"/>
121        </inherits>        </inherits>
122          <attribute name="sensai">string</attribute>
123        <attribute>        <operation name="dragonKick"/>
124          <type_spec>string</type_spec>        <operation name="dragonPunch"/>
         <name>sensai</name>  
       </attribute>  
   
       <operation id="dragonKick"/>  
   
       <operation id="dragonPunch"/>  
125      </class>      </class>
126    
127      <module id="GNUe">      <module name="GNUe">
128        <odl_specification>        <odl_specification>
129          <odl_definition>          <odl_definition>
130    
131            <!-- Tyep declarations -->            <!-- Type declarations -->
132                
133            <!-- base types -->            <!-- primitive types -->
134            <typedef>            <typedef type="float">
135              <type_spec>float</type_spec>              <alias>Float</alias>
             <declarators>  
               <declarator>Float</declarator>  
             </declarators>  
136            </typedef>            </typedef>
137    
138            <typedef>            <typedef type="double">
139              <type_spec>double</type_spec>              <alias>Double</alias>
             <declarators>  
               <declarator>Double</declarator>  
             </declarators>  
140            </typedef>            </typedef>
141    
142            <typedef>            <typedef type="long">
143              <type_spec>long</type_spec>              <alias>Long</alias>
             <declarators>  
               <declarator>Long</declarator>  
             </declarators>  
144            </typedef>            </typedef>
145    
146            <typedef>            <typedef type="long long">
147              <type_spec>long long</type_spec>              <alias>Long Long</alias>
             <declarators>  
               <declarator>Long Long</declarator>  
             </declarators>  
148            </typedef>            </typedef>
149    
150            <typedef>            <typedef type="short">
151              <type_spec>short</type_spec>              <alias>Short</alias>
             <declarators>  
               <declarator>Short</declarator>  
             </declarators>  
152            </typedef>            </typedef>
153    
154            <typedef>            <typedef type="unsigned long">
155              <type_spec>unsigned long</type_spec>              <alias>Unsigned Long</alias>
             <declarators>  
               <declarator>Unsigned Long</declarator>  
             </declarators>  
156            </typedef>            </typedef>
157    
158            <typedef>            <typedef type="unsigned short">
159              <type_spec>unsigned short</type_spec>              <alias>Unsigned Short</alias>
             <declarators>  
               <declarator>Unsigned Short</declarator>  
             </declarators>  
160            </typedef>            </typedef>
161    
162            <typedef>            <typedef type="char">
163              <type_spec>char</type_spec>              <alias>Char</alias>
             <declarators>  
               <declarator>Char</declarator>  
             </declarators>  
164            </typedef>            </typedef>
165    
166            <typedef>            <typedef type="boolean">
167              <type_spec>boolean</type_spec>              <alias>Bool</alias>
             <declarators>  
               <declarator>Bool</declarator>  
             </declarators>  
168            </typedef>            </typedef>
169    
170            <typedef>            <typedef type="octet">
171              <type_spec>octet</type_spec>              <alias>Octet</alias>
             <declarators>  
               <declarator>Octet</declarator>  
             </declarators>  
172            </typedef>            </typedef>
173    
174            <typedef>            <typedef type="date">
175              <type_spec>date</type_spec>              <alias>Date</alias>
             <declarators>  
               <declarator>Date</declarator>  
             </declarators>  
176            </typedef>            </typedef>
177    
178            <typedef>            <typedef type="time">
179              <type_spec>time</type_spec>              <alias>Time</alias>
             <declarators>  
               <declarator>Time</declarator>  
             </declarators>  
180            </typedef>            </typedef>
181    
182            <typedef>            <typedef type="interval">
183              <type_spec>interval</type_spec>              <alias>Interval</alias>
             <declarators>  
               <declarator>Interval</declarator>  
             </declarators>  
184            </typedef>            </typedef>
185    
186            <typedef>            <typedef type="timestamp">
187              <type_spec>timestamp</type_spec>              <alias>Timestamp</alias>
             <declarators>  
               <declarator>Timestamp</declarator>  
             </declarators>  
188            </typedef>            </typedef>
189    
190            <!-- array types -->            <!-- array types -->
191            <typedef>            <typedef>
192              <type_spec>              <array>float</array>
193                <array><type_spec>float</type_spec></array>              <alias>FloatArray</alias>
             </type_spec>  
             <declarators>  
               <declarator>FloatArray</declarator>  
             </declarators>  
194            </typedef>            </typedef>
195    
196            <typedef>            <typedef>
197              <type_spec>              <array>float</array>
198                <array><type_spec>float</type_spec></array>              <alias>FloatArray</alias>
             </type_spec>  
             <declarators>  
               <declarator>FloatArray</declarator>  
             </declarators>  
199            </typedef>            </typedef>
200    
201            <typedef>            <typedef>
202              <type_spec>              <array>double</array>
203                <array><type_spec>double</type_spec></array>              <alias>DoubleArray</alias>
             </type_spec>  
             <declarators>  
               <declarator>DoubleArray</declarator>  
             </declarators>  
204            </typedef>            </typedef>
205    
206            <typedef>            <typedef>
207              <type_spec>              <array>long long</array>
208                <array><type_spec>long long</type_spec></array>              <alias>LongLongArray</alias>
             </type_spec>  
             <declarators>  
               <declarator>LongLongArray</declarator>  
             </declarators>  
209            </typedef>            </typedef>
210    
211            <typedef>            <typedef>
212              <type_spec>              <array>long</array>
213                <array><type_spec>long</type_spec></array>              <alias>LongArray</alias>
             </type_spec>  
             <declarators>  
               <declarator>LongArray</declarator>  
             </declarators>  
214            </typedef>            </typedef>
215    
216            <typedef>            <typedef>
217              <type_spec>              <array>short</array>
218                <array><type_spec>short</type_spec></array>              <alias>ShortArray</alias>
             </type_spec>  
             <declarators>  
               <declarator>ShortArray</declarator>  
             </declarators>  
219            </typedef>            </typedef>
220    
221            <typedef>            <typedef>
222              <type_spec>              <array>unsigned long</array>
223                <array><type_spec>unsigned long</type_spec></array>              <alias>UnsignedLongArray</alias>
             </type_spec>  
             <declarators>  
               <declarator>UnsignedLongArray</declarator>  
             </declarators>  
224            </typedef>            </typedef>
225    
226            <typedef>            <typedef>
227              <type_spec>              <array>unsigned short</array>
228                <array><type_spec>unsigned short</type_spec></array>              <alias>UnsignedShortArray</alias>
             </type_spec>  
             <declarators>  
               <declarator>UnsignedShortArray</declarator>  
             </declarators>  
229            </typedef>            </typedef>
230    
231            <typedef>            <typedef>
232              <type_spec>              <array>char</array>
233                <array><type_spec>char</type_spec></array>              <alias>CharArray</alias>
             </type_spec>  
             <declarators>  
               <declarator>CharArray</declarator>  
             </declarators>  
234            </typedef>            </typedef>
235    
236            <typedef>            <typedef>
237              <type_spec>              <array>boolean</array>
238                <array><type_spec>boolean</type_spec></array>              <alias>BooleanArray</alias>
             </type_spec>  
             <declarators>  
               <declarator>BooleanArray</declarator>  
             </declarators>  
239            </typedef>            </typedef>
240    
241            <typedef>            <typedef>
242              <type_spec>              <array>octet</array>
243                <array><type_spec>octet</type_spec></array>              <alias>OctetArray</alias>
             </type_spec>  
             <declarators>  
               <declarator>OctetArray</declarator>  
             </declarators>  
244            </typedef>            </typedef>
245    
246            <typedef>            <typedef>
247              <type_spec>              <array>date</array>
248                <array><type_spec>date</type_spec></array>              <alias>DateArray</alias>
             </type_spec>  
             <declarators>  
               <declarator>DateArray</declarator>  
             </declarators>  
249            </typedef>            </typedef>
250    
251            <typedef>            <typedef>
252              <type_spec>              <array>time</array>
253                <array><type_spec>time</type_spec></array>              <alias>TimeArray</alias>
             </type_spec>  
             <declarators>  
               <declarator>TimeArray</declarator>  
             </declarators>  
254            </typedef>            </typedef>
255    
256            <typedef>            <typedef>
257              <type_spec>              <array>interval</array>
258                <array><type_spec>interval</type_spec></array>              <alias>IntervalArray</alias>
             </type_spec>  
             <declarators>  
               <declarator>IntervalArray</declarator>  
             </declarators>  
259            </typedef>            </typedef>
260    
261            <typedef>            <typedef>
262              <type_spec>              <array>timestamp</array>
263                <array><type_spec>timestamp</type_spec></array>              <alias>TimestampArray</alias>
             </type_spec>  
             <declarators>  
               <declarator>TimestampArray</declarator>  
             </declarators>  
264            </typedef>            </typedef>
265    
266            <typedef>            <typedef>
267              <type_spec>              <sequence>float</sequence>
268                <sequence><type_spec>float</type_spec></sequence>              <alias>FloatSequence</alias>
             </type_spec>  
             <declarators>  
               <declarator>FloatSequence</declarator>  
             </declarators>  
269            </typedef>            </typedef>
270    
271            <typedef>            <typedef>
272              <type_spec>              <sequence>double</sequence>
273                <sequence><type_spec>double</type_spec></sequence>              <alias>DoubleSequence</alias>
             </type_spec>  
             <declarators>  
               <declarator>DoubleSequence</declarator>  
             </declarators>  
274            </typedef>            </typedef>
275    
276            <typedef>            <typedef>
277              <type_spec>              <sequence>long long</sequence>
278                <sequence><type_spec>long long</type_spec></sequence>              <alias>LongLongSequence</alias>
             </type_spec>  
             <declarators>  
               <declarator>LongLongSequence</declarator>  
             </declarators>  
279            </typedef>            </typedef>
280    
281            <typedef>            <typedef>
282              <type_spec>              <sequence>long</sequence>
283                <sequence><type_spec>long</type_spec></sequence>              <alias>LongSequence</alias>
             </type_spec>  
             <declarators>  
               <declarator>LongSequence</declarator>  
             </declarators>  
284            </typedef>            </typedef>
285    
286            <typedef>            <typedef>
287              <type_spec>              <sequence>short</sequence>
288                <sequence><type_spec>short</type_spec></sequence>              <alias>ShortSequence</alias>
             </type_spec>  
             <declarators>  
               <declarator>ShortSequence</declarator>  
             </declarators>  
289            </typedef>            </typedef>
290    
291             <typedef>            <typedef>
292              <type_spec>              <sequence>unsigned long</sequence>
293                <sequence><type_spec>unsigned long</type_spec></sequence>              <alias>UnsignedLongSequence</alias>
             </type_spec>  
             <declarators>  
               <declarator>UnsignedLongSequence</declarator>  
             </declarators>  
294            </typedef>            </typedef>
295    
296             <typedef>            <typedef>
297              <type_spec>              <sequence>unsigned short</sequence>
298                <sequence><type_spec>unsigned short</type_spec></sequence>              <alias>UnsignedShortSequence</alias>
             </type_spec>  
             <declarators>  
               <declarator>UnsignedShortSequence</declarator>  
             </declarators>  
299            </typedef>            </typedef>
300    
301             <typedef>            <typedef>
302              <type_spec>              <sequence>char</sequence>
303                <sequence><type_spec>char</type_spec></sequence>              <alias>CharSeq0uence</alias>
             </type_spec>  
             <declarators>  
               <declarator>CharSequence</declarator>  
             </declarators>  
304            </typedef>            </typedef>
305    
306             <typedef>            <typedef>
307              <type_spec>              <sequence>boolean</sequence>
308                <sequence><type_spec>boolean</type_spec></sequence>              <alias>BooleanSequence</alias>
             </type_spec>  
             <declarators>  
               <declarator>BooleanSequence</declarator>  
             </declarators>  
309            </typedef>            </typedef>
310    
311             <typedef>            <typedef>
312              <type_spec>              <sequence>octet</sequence>
313                <sequence><type_spec>octet</type_spec></sequence>              <alias>OctetSequence</alias>
             </type_spec>  
             <declarators>  
               <declarator>OctetSequence</declarator>  
             </declarators>  
314            </typedef>            </typedef>
315    
316             <typedef>            <typedef>
317              <type_spec>              <sequence>date</sequence>
318                <sequence><type_spec>date</type_spec></sequence>              <alias>DateSequence</alias>
             </type_spec>  
             <declarators>  
               <declarator>DateSequence</declarator>  
             </declarators>  
319            </typedef>            </typedef>
320    
321             <typedef>            <typedef>
322              <type_spec>              <sequence>time</sequence>
323                <sequence><type_spec>time</type_spec></sequence>              <alias>TimeSequence</alias>
             </type_spec>  
             <declarators>  
               <declarator>TimeSequence</declarator>  
             </declarators>  
324            </typedef>            </typedef>
325    
326             <typedef>            <typedef>
327              <type_spec>              <sequence>interval</sequence>
328                <sequence><type_spec>interval</type_spec></sequence>              <alias>IntervalSequence</alias>
             </type_spec>  
             <declarators>  
               <declarator>IntervalSequence</declarator>  
             </declarators>  
329            </typedef>            </typedef>
330    
331             <typedef>            <typedef>
332              <type_spec>              <sequence>timestamp</sequence>
333                <sequence><type_spec>timestamp</type_spec></sequence>              <alias>IntervalSequence</alias>
             </type_spec>  
             <declarators>  
               <declarator>IntervalSequence</declarator>  
             </declarators>  
334            </typedef>            </typedef>
335    
336             <typedef>            <typedef type="string">
337              <type_spec>              <alias>String</alias>
               <type_spec>string</type_spec>  
             </type_spec>  
             <declarators>  
               <declarator>String</declarator>  
             </declarators>  
338            </typedef>            </typedef>
339    
340             <typedef>            <typedef>
341              <type_spec>              <string size="2"/>
342                <type_spec size="2">string</type_spec>              <alias>StringArray</alias>
             </type_spec>  
             <declarators>  
               <declarator>StringArray</declarator>  
             </declarators>  
343            </typedef>            </typedef>
344    
345             <typedef>            <typedef type="GNUe::Goats::Goat">
346              <type_spec>              <alias>Hacker</alias>
               <type_spec><scoped_name>GNUe::Goats::Goat</scoped_name></type_spec>  
             </type_spec>  
             <declarators>  
               <declarator>Hacker</declarator>  
             </declarators>  
347            </typedef>            </typedef>
348    
349            <struct id="Foo">            <struct name="Foo">
350              <members>              <members>
351                <member>                <member name="fubar">short</member>
352                  <type_spec>short</type_spec>                <member name="foobar">long</member>
353                  <declarators>                <member name="fubarz">
354                    <declarator>fubar</declarator>                  <array>long</array>
                 </declarators>  
               </member>  
               <member>  
                 <type_spec>long</type_spec>  
                 <declarators>  
                   <declarator>foobar</declarator>  
                 </declarators>  
               </member>  
               <member>  
                 <type_spec><array><type_spec>long</type_spec></array></type_spec>  
                 <declarators>  
                   <declarator>fubarz</declarator>  
                 </declarators>  
355                </member>                </member>
356              </members>              </members>
357            </struct>            </struct>
358    
359            <union id="MyUnion">            <union name="MyUnion">
360              <switch>              <switch type="long">
361                <type_spec>long</type_spec>                <case label="1" name="s">string</case>
362                <case>                <default name="x">long</default>
                 <long>1</long>  
                 <type_spec>string</type_spec>  
                 <declarator>s</declarator>  
               </case>  
               <default>  
                 <type_spec>long</type_spec>  
                 <declarator>x</declarator>  
               </default>  
363              </switch>              </switch>
364            </union>            </union>
365    
366            <enum id="FooType">            <enum name="FooType">
367              <enumerator>bar</enumerator>              <element>bar</element>
368              <enumerator>biz</enumerator>              <element>biz</element>
369              <enumerator>bazz</enumerator>              <element>bazz</element>
370            </enum>            </enum>
371    
372            <typedef>            <typedef type="Foo">
373              <type_spec><struct>Foo</struct></type_spec>              <alias>foo</alias>
374              <declarators>            </typedef>
               <declarator>foo</declarator>  
             </declarators>  
           </typedef>  
   
          <typedef>  
            <type_spec><union>MyUnion</union></type_spec>  
            <declarators>  
              <declarator>my_union</declarator>  
            </declarators>  
          </typedef>  
   
          <typedef>  
            <type_spec><enum>FooType</enum></type_spec>  
            <declarators>  
              <declarator>foo_type</declarator>  
            </declarators>  
          </typedef>  
   
          <typedef>  
            <type_spec>  
              <dictionary>  
                <key>  
                  <type_spec>float</type_spec>  
                </key>  
                <value>  
                  <type_spec>float</type_spec>  
                </value>  
              </dictionary>  
            </type_spec>  
            <declarators>  
              <declarator>Dictionary</declarator>  
            </declarators>  
          </typedef>  
   
          <typedef>  
            <type_spec><set><type_spec>float</type_spec></set></type_spec>  
            <declarators>  
              <declarator>Set</declarator>  
            </declarators>  
          </typedef>  
   
          <typedef>  
            <type_spec><list><type_spec>float</type_spec></list></type_spec>  
            <declarators>  
              <declarator>Set</declarator>  
            </declarators>  
          </typedef>  
   
          <typedef>  
            <type_spec><bag><type_spec>float</type_spec></bag></type_spec>  
            <declarators>  
              <declarator>Bag</declarator>  
            </declarators>  
          </typedef>  
   
          <!-- Forward declarations -->  
          <interface id="CodeSlave"/>  
          <class id="Goats::Goat"/>  
   
          <const id="MADGOATS">  
            <type_spec>  
              <boolean>TRUE</boolean>  
            </type_spec>  
          </const>  
   
          <!-- Exception declarations -->  
          <exception id="FooError"/>  
   
          <exception id="BarError">  
            <members>  
              <member>  
                <type_spec>string</type_spec>  
                <declarators>  
                  <declarator>biz</declarator>  
                </declarators>  
              </member>  
              <member>  
                <type_spec>char</type_spec>  
                <declarators>  
                  <declarator>bar</declarator>  
                </declarators>  
              </member>  
              <member>  
                <type_spec>float</type_spec>  
                <declarators>  
                  <declarator>baz</declarator>  
                </declarators>  
              </member>  
            </members>  
          </exception>  
   
          <interface id="Sadist">  
   
            <operation id="torture"/>  
   
          </interface>  
   
          <interface id="Masochist">  
            <operation id="suffer"/>  
          </interface>  
   
          <interface id="DaMasta">  
            <inherits>  
              <interface>Sadist</interface>  
            </inherits>  
   
            <enum id="BeatingType">  
              <enumeration>mild</enumeration>  
              <enumeration>profuse</enumeration>  
            </enum>  
   
            <typedef>  
              <type_spec><enum>BeatingType</enum></type_spec>  
              <declarators>  
                <declarator>beating_t</declarator>  
              </declarators>  
            </typedef>  
   
            <const id="FAVCOLOR">  
              <type_spec><string>red</string></type_spec>  
            </const>  
   
            <exception id="CodeSlaveAway"/>  
   
            <exception id="NoTicketsAssigned"/>  
   
            <attribute readonly="1">  
              <type_spec>string</type_spec>  
              <name>favoriteColor</name>  
            </attribute>  
               
            <attribute>  
              <type_spec>unsigned short</type_spec>  
              <name>bugReports</name>  
            </attribute>  
   
            <attribute>  
              <type_spec>beating_t</type_spec>  
              <name>beating</name>  
            </attribute>  
   
            <relationship id="beats">  
              <target>  
                <type_spec><set>CodeSlave</set></type_spec>  
              </target>  
              <inverse>  
                <scoped_name>CodeSlave::isBeaten</scoped_name>  
              </inverse>  
            </relationship>  
   
            <relationship id="assignsTicket">  
              <target>  
                <type_spec><scoped_name>Hacker</scoped_name></type_spec>  
              </target>  
              <inverse>  
                <scoped_name>Hacker::isAssignedTicketBy</scoped_name>  
              </inverse>  
            </relationship>  
   
            <operation oneway="1" id="speakInIRCChannel"/>  
   
            <operation id="isWatching">  
              <returns>  
                <type_spec>boolean</type_spec>  
              </returns>  
              <parameters>  
                <parameter mode="in">  
                  <type_spec><scoped_name>CodeSlave</scoped_name></type_spec>  
                  <declarator>cslave</declarator>  
                </parameter>  
              </parameters>  
            </operation>  
   
            <operation id="beatCodeSlave">  
              <parameters>  
                <parameter mode="in">  
                  <type_spec><scoped_name>CodeSlave</scoped_name></type_spec>  
                  <declarator>cslave</declarator>  
                </parameter>  
                <parameter mode="inout">  
                  <type_spec>beating_t</type_spec>  
                  <declarator>severity</declarator>  
                </parameter>  
              </parameters>  
              <raises>  
                <exception>CodeSlaveAway</exception>  
              </raises>  
            </operation>  
   
            <operation id="getTickets">  
              <returns>  
                <type_spec>boolean</type_spec>  
              </returns>  
              <parameters>  
                <parameter mode="in">  
                  <type_spec><scoped_name>Hacker</scoped_name></type_spec>  
                  <declarator>goat</declarator>  
                </parameter>  
                <parameter mode="out">  
                  <type_spec>unsigned short</type_spec>  
                  <declarator>tickets</declarator>  
                </parameter>  
              </parameters>  
              <raises>  
                <exception>NoTickestAssigned</exception>  
              </raises>  
            </operation>  
   
          </interface>  
   
          <interface id="CodeSlave">  
            <inherits>  
              <interface>Masochist</interface>  
            </inherits>  
   
            <enum id="HackType">  
              <enumeration>common</enumeration>  
              <enumeration>forms</enumeration>  
              <enumeration>appserver</enumeration>  
              <enumeration>designer</enumeration>  
              <enumeration>reports</enumeration>  
              <enumeration>navigator</enumeration>  
              <enumeration>phpforms</enumeration>  
            </enum>  
   
            <typedef>  
              <type_spec><enum>HackType</enum></type_spec>  
              <declarators>  
                <declarator>hack_t</declarator>  
              </declarators>  
            </typedef>  
   
            <exception id="WhoSaidYouCouldStopCoding">  
              <members>  
                <member>  
                  <type_spec>string</type_spec>  
                  <declarators>  
                    <declarator>cslave_name</declarator>  
                  </declarators>  
                </member>  
                <member>  
                  <type_spec>boolean</type_spec>  
                  <declarators>  
                    <declarator>beating</declarator>  
                  </declarators>  
                </member>  
              </members>  
            </exception>  
   
            <exception id="CVSPermissionDenied">  
              <members>  
                <member>  
                  <type_spec>string</type_spec>  
                  <declarators>  
                    <declarator>why</declarator>  
                  </declarators>  
                </member>  
              </members>  
            </exception>  
   
            <relationship id="isBeaten">  
              <target>  
                <type_spec><scoped_name>GNUe::DaMasta</scoped_name></type_spec>  
              </target>  
              <inverse>  
                <scoped_name>GNUe::DaMasta::beats</scoped_name>  
              </inverse>  
            </relationship>  
   
            <operation id="stopCoding">  
              <raises>  
                <exception>WhoSaidYouCouldStopCoding</exception>  
              </raises>  
            </operation>  
   
            <operation id="commitCode">  
              <returns>  
                <type_spec>boolean</type_spec>  
              </returns>  
              <parameters>  
                <parameter mode="in">  
                  <type_spec>string</type_spec>  
                  <declarator>code</declarator>  
                </parameter>  
                <parameter mode="in">  
                  <type_spec>hack_t</type_spec>  
                  <declarator>hackingOn</declarator>  
                </parameter>  
              </parameters>  
              <raises>  
                <exception>CVSPermissionDenied</exception>  
              </raises>  
            </operation>  
          </interface>  
   
            <!--  
            This is the fun module :). It is also used to test nesting of  
            modules and as an example to help determine how xml for nesting modules  
            should be done.  
            -->  
            <module id="Goats">  
              <odl_specification>  
                <odl_definition>  
   
                  <class>  
                    <id>Goat</id>  
                    <inherits>  
                      <interface>GNUe::CodeSlave</interface>  
                    </inherits>  
   
                    <attribute>  
                      <type_spec>boolean</type_spec>  
                      <name>madGoatRaped</name>  
                    </attribute>  
375    
376                     <attribute>            <typedef type="MyUnion">
377                       <type_spec>string</type_spec>              <alias>my_union</alias>
378                       <name>name</name>            </typedef>
                    </attribute>  
379    
380                     <attribute>            <typedef type="FooType">
381                       <type_spec>boolean</type_spec>              <alias>foo_type</alias>
382                       <name>FSFCopyrightAssignment</name>            </typedef>
                    </attribute>  
383    
384                     <relationship id="isAssignedTicketBy">            <typedef>
385                       <target>              <dictionary>
386                         <type_spec><scoped_name>GNUe::DaMasta</scoped_name></type_spec>                <key>float</key>
387                       </target>                <value>float</value>
388                       <inverse>              </dictionary>
389                         <scoped_name>GNUe::DaMasta::assignsTicket</scoped_name>              <alias>Dictionary</alias>
390                       </inverse>            </typedef>
                    </relationship>  
                  </class>  
391    
392                   <class id="Derek">            <typedef>
393                     <extends>              <set>float</set>
394                       <class>Goat</class>              <alias>Set</alias>
395                     </extends>            </typedef>
                    <inherits>  
                      <interface>GNUe::DaMasta</interface>  
                    </inherits>  
                    <extent>goats</extent>  
396    
397                     <exception id="BurnRoofOfMouth"/>            <typedef>
398                <list>float</list>
399                <alias>List</alias>
400              </typedef>
401    
402                     <exception id="NeedsReheating"/>            <typedef>
403                <bag>float</bag>
404                <alias>Bag</alias>
405              </typedef>
406    
407                     <exception id="OutofTopping">            <!-- Forward declarations -->
408                       <members>            <interface name="CodeSlave"/>
409                         <member>            <class name="Goats::Goat"/>
                          <type_spec>string</type_spec>  
                          <declarators>  
                            <declarator>topping</declarator>  
                          </declarators>  
                        </member>  
                      </members>  
                    </exception>  
410    
411                     <struct id="PizzaType">            <const name="MADGOATS" type="boolean">TRUE</const>
                      <members>  
                        <member>  
                          <type_spec>string</type_spec>  
                          <declarators>  
                            <declarator>kind</declarator>  
                          </declarators>  
                        </member>  
                        <member>  
                          <type_spec><bag><type_spec>string</type_spec></bag></type_spec>  
                          <declarators>  
                            <declarator>toppings</declarator>  
                          </declarators>  
                          <!-- allows duplicate toppings ("extra" toppings) -->  
                        </member>  
                      </members>  
                    </struct>  
412    
413                     <typedef>            <!-- Exception declarations -->
414                       <type_spec><struct>PizzaType</struct></type_spec>            <exception name="FooError"/>
                      <declarators>  
                        <declarator>pizza_t</declarator>  
                      </declarators>  
                    </typedef>  
415    
416                     <attribute>            <exception name="BarError">
417                       <type_spec>boolean</type_spec>              <members>
418                       <name>orderPizza</name>                <member name="biz">string</member>
419                     </attribute>                <member name="bar">char</member>
420                  <member name="baz">float</member>
421                </members>
422              </exception>
423    
424                     <attribute>            <interface name="Sadist">
425                       <type_spec>float</type_spec>              <operation name="torture"/>
426                       <name>temperature</name>            </interface>
                    </attribute>  
427    
428                     <attribute>            <interface name="Masochist">
429                       <type_spec><set><type_spec>pizza_t</type_spec></set></type_spec>              <operation name="suffer"/>
430                       <name>pizzas</name>            </interface>
                    </attribute>  
431    
432                     <operation id="orderPizza">            <interface name="DaMasta">
433                       <returns>              <inherits>
434                         <type_spec>boolean</type_spec>                <interface name="Sadist"/>
435                       </returns>              </inherits>
                      <parameters>  
                        <parameter mode="in">  
                          <type_spec><set>pizza_t</set></type_spec>  
                          <declarator>pizzaPies</declarator>  
                        </parameter>  
                      </parameters>  
                      <raises>  
                        <exception>OutofTopping</exception>  
                      </raises>  
                    </operation>  
436    
437                     <operation id="eatPizza">              <enum name="BeatingType">
438                       <parameters>                <element>mild</element>
439                         <parameter mode="in">                <element>profuse</element>
440                           <type_spec>pizza_t</type_spec>              </enum>
                          <declarator>pizza</declarator>  
                        </parameter>  
                      </parameters>  
                      <raises>  
                        <exception>BurnRoofofMouth</exception>  
                        <exception>NeedsReheating</exception>  
                      </raises>  
                    </operation>  
                  </class>  
441    
442                   <class id="Chillywilly">              <typedef type="BeatingType">
443                     <extends>                <alias>beating_t</alias>
444                       <class>Goat</class>              </typedef>
                    </extends>  
                    <extent>goats</extent>  
   
                    <exception id="OutofStock">  
                      <members>  
                        <member>  
                          <type_spec>string</type_spec>  
                          <declarators>  
                            <declarator>why</declarator>  
                          </declarators>  
                        </member>  
                      </members>  
                    </exception>  
445    
446                     <exception id="GoatDucked"/>              <const name="FAVCOLOR" type="string">red</const>
447    
448                     <exception id="ExceededTroutLimit">              <exception name="CodeSlaveAway"/>
                      <members>  
                        <member>  
                          <type_spec>unsigned short</type_spec>  
                          <declarators>  
                            <declarator>limit</declarator>  
                          </declarators>  
                        </member>  
                      </members>  
                    </exception>  
449    
450                     <enum id="TroutType">              <exception name="NoTicketsAssigned"/>
451                       <enumeration>brown</enumeration>  
452                       <enumeration>rainbow</enumeration>              <attribute readonly="1" name="favoriteColor">string</attribute>
453                       <enumeration>lake</enumeration>              
454                <attribute name="bugReports">unsigned short</attribute>
455    
456                <attribute name="beating">beating_t</attribute>
457    
458                <relationship name="beats">
459                  <target>
460                    <set>CodeSlave</set>
461                  </target>
462                  <inverse>CodeSlave::isBeaten</inverse>
463                </relationship>
464    
465                <relationship name="assignsTicket">
466                  <target>Hacker</target>
467                  <inverse>Hacker::isAssignedTicketBy</inverse>
468                </relationship>
469    
470                <operation oneway="1" name="speakInIRCChannel"/>
471    
472                <operation name="isWatching">
473                  <returns>boolean</returns>
474                  <parameters>
475                    <parameter mode="in" name="cslave">CodeSlave</parameter>
476                  </parameters>
477                </operation>
478    
479                <operation name="beatCodeSlave">
480                  <parameters>
481                    <parameter mode="in" name="cslave">CodeSlave</parameter>
482                    <parameter mode="inout" name="severity">beating_t</parameter>
483                  </parameters>
484                  <raises>
485                    <exception name="CodeSlaveAway"/>
486                  </raises>
487                </operation>
488    
489                <operation name="getTickets">
490                  <returns>boolean</returns>
491                  <parameters>
492                    <parameter mode="in" name="goat">Hacker</parameter>
493                    <parameter mode="out" name="tickets">unsigned short</parameter>
494                  </parameters>
495                  <raises>
496                    <exception name="NoTickestAssigned"/>
497                  </raises>
498                </operation>
499              </interface>
500    
501              <interface name="CodeSlave">
502                <inherits>
503                  <interface name="Masochist"/>
504                </inherits>
505    
506                <enum name="HackType">
507                  <element>common</element>
508                  <element>forms</element>
509                  <element>appserver</element>
510                  <element>designer</element>
511                  <element>reports</element>
512                  <element>navigator</element>
513                  <element>phpforms</element>
514                </enum>
515    
516                <typedef type="HackType">
517                  <alias>hack_t</alias>
518                </typedef>
519    
520                <exception name="WhoSaidYouCouldStopCoding">
521                  <members>
522                    <member name="cslave_name">string</member>
523                    <member name="beating">boolean</member>
524                  </members>
525                </exception>
526    
527                <exception name="CVSPermissionDenied">
528                  <members>
529                    <member name="why">string</member>
530                  </members>
531                </exception>
532    
533                <relationship name="isBeaten">
534                  <target>GNUe::DaMasta</target>
535                  <inverse>GNUe::DaMasta::beats</inverse>
536                </relationship>
537    
538                <operation name="stopCoding">
539                  <raises>
540                    <exception name="WhoSaidYouCouldStopCoding"/>
541                  </raises>
542                </operation>
543    
544                <operation name="commitCode">
545                  <returns>boolean</returns>
546                  <parameters>
547                    <parameter mode="in" name="code">string</parameter>
548                    <parameter mode="in" name="hackinOn">hack_t</parameter>
549                  </parameters>
550                  <raises>
551                    <exception name="CVSPermissionDenied"/>
552                  </raises>
553                </operation>
554              </interface>
555    
556              <!--
557              This is the fun module :). It is also used to test nesting of
558              modules and as an example to help determine how xml for nesting modules
559              should be done.
560              -->
561              <module name="Goats">
562                <odl_specification>
563                  <odl_definition>
564    
565                    <class name="Goat">
566                      <inherits>
567                        <interface name="GNUe::CodeSlave"/>
568                      </inherits>
569    
570                      <attribute name="madGoatRaped">boolean</attribute>
571    
572                      <attribute name="name">string</attribute>
573    
574                      <attribute name="FSFCopyrightAssignment">boolean</attribute>
575    
576                      <relationship name="isAssignedTicketBy">
577                        <target>GNUe::DaMasta</target>
578                        <inverse>GNUe::DaMasta::assignsTicket</inverse>
579                      </relationship>
580                    </class>
581    
582                    <class name="Derek">
583                      <extends>
584                        <class name="Goat"/>
585                      </extends>
586                      <inherits>
587                        <interface name="GNUe::DaMasta"/>
588                      </inherits>
589                      <extent>goats</extent>
590    
591                      <exception name="BurnRoofOfMouth"/>
592    
593                      <exception name="NeedsReheating"/>
594    
595                      <exception name="OutofTopping">
596                        <members>
597                          <member name="topping">string</member>
598                        </members>
599                      </exception>
600    
601                      <struct name="PizzaType">
602                        <members>
603                          <member name="kind">string</member>
604                          <member name="topping">
605                            <bag>string</bag>
606                            <!-- allows duplicate toppings ("extra" toppings) -->
607                          </member>
608                        </members>
609                      </struct>
610    
611                      <typedef type="PizaType">
612                        <alias>pizza_t</alias>
613                      </typedef>
614    
615                      <attribute name="orderPizza">boolean</attribute>
616    
617                      <attribute name="temperature">float</attribute>
618    
619                      <attribute name="pizzas">
620                        <set>pizza_t</set>
621                      </attribute>
622    
623                      <operation name="orderPizza">
624                        <returns>boolean</returns>
625                        <parameters>
626                          <parameter mode="in" name="pizzaPies">
627                            <set>pizza_t</set>
628                          </parameter>
629                        </parameters>
630                        <raises>
631                          <exception name="OutofTopping"/>
632                        </raises>
633                      </operation>
634    
635                      <operation name="eatPizza">
636                        <parameters>
637                          <parameter mode="in" name="pizza">pizza_t</parameter>
638                        </parameters>
639                        <raises>
640                          <exception name="BurnRoofofMouth"/>
641                          <exception name="NeedsReheating"/>
642                        </raises>
643                      </operation>
644                    </class>
645    
646                    <class name="Chillywilly">
647                      <extends>
648                        <class name="Goat"/>
649                      </extends>
650                      <extent>goats</extent>
651                      
652                      <exception name="OutofStock">
653                        <members>
654                          <member name="why">string</member>
655                        </members>
656                      </exception>
657    
658                      <exception name="GoatDucked"/>
659    
660                      <exception name="ExceededTroutLimit">
661                        <members>
662                          <member name="limit">unsigned short</member>
663                        </members>
664                      </exception>
665    
666                       <enum name="TroutType">
667                         <element>brown</element>
668                         <element>rainbow</element>
669                         <element>lake</element>
670                     </enum>                     </enum>
671    
672                     <typedef>                     <typedef type="TroutType">
673                       <type_spec><enum>TroutType</enum></type_spec>                       <alias>trout_t</alias>
                      <declarators>  
                        <declarator>trout_t</declarator>  
                      </declarators>  
674                     </typedef>                     </typedef>
675    
676                     <const id="preferredTrout">                     <const name="preferredTrout" type="trout_t">rainbow</const>
677                       <type_spec>  
678                         <trout_t>rainbow</trout_t>                     <attribute name="troutslap">boolean</attribute>
                      </type_spec>  
                    </const>  
   
                    <attribute>  
                      <type_spec>boolean</type_spec>  
                      <name>troutslap</name>  
                    </attribute>  
679    
680                     <attribute>                     <attribute name="trout">
681                       <type_spec><bag><type_spec>trout_t</type_spec></bag></type_spec>                       <bag>trout_t</bag>
                      <name>trout</name>  
682                     </attribute>                     </attribute>
683    
684                     <relationship id="favoriteSlapee">                     <relationship name="favoriteSlapee">
685                       <target>                       <target>Jcater</target>
686                         <type_spec><scoped_name>Jcater</scoped_name></type_spec>                       <inverse>Jcater::isTroutSlappedBy</inverse>
                      </target>  
                      <inverse>  
                        <scoped_name>Jcater::isTroutSlappedBy</scoped_name>  
                      </inverse>  
687                     </relationship>                     </relationship>
688    
689                     <operation id="addTrout">                     <operation name="addTrout">
690                       <returns>                       <returns>boolean</returns>
                        <type_spec>boolean</type_spec>  
                      </returns>  
691                       <parameters>                       <parameters>
692                         <parameter mode="in">                         <parameter mode="in" name="trout">trout_t</parameter>
693                           <type_spec>trout_t</type_spec>                         <parameter mode="out" name="inStock">unsigned short</parameter>
                          <declarator>trout</declarator>  
                        </parameter>  
                        <parameter mode="out">  
                          <type_spec>unsigned short</type_spec>  
                          <declarator>inStock</declarator>  
                        </parameter>  
694                       </parameters>                       </parameters>
695                       <raises>                       <raises>
696                         <exception>ExceededTroutLimit</exception>                         <exception name="ExceededTroutLimit"/>
697                       </raises>                       </raises>
698                     </operation>                     </operation>
699    
700                     <operation id="troutSlap">                     <operation name="troutSlap">
701                       <parameters>                       <parameters>
702                         <parameter mode="in">                         <parameter mode="in" name="slapee">Goat</parameter>
703                           <type_spec><scoped_name>Goat</scoped_name></type_spec>                         <parameter mode="in" name="trout">trout_t</parameter>
                          <declarator>slapee</declarator>  
                        </parameter>  
                        <parameter mode="in">  
                          <type_spec>trout_t</type_spec>  
                          <declarator>trout</declarator>  
                        </parameter>  
704                       </parameters>                       </parameters>
705                       <raises>                       <raises>
706                         <exception>OutOfStock</exception>                         <exception name="OutOfStock"/>
707                         <exception>GoatDucked</exception>                         <exception name="GoatDucked"/>
708                       </raises>                       </raises>
709                     </operation>                     </operation>
710                   </class>                   </class>
711    
712                   <class id="Jcater">                   <class name="Jcater">
713                     <extends>                     <extends>
714                       <class>Goat</class>                       <class name="Goat"/>
715                     </extends>                     </extends>
716                     <extent>goats</extent>                     <extent>goats</extent>
717    
718                     <exception id="InvalidDonutType">                     <exception name="InvalidDonutType">
719                       <members>                       <members>
720                         <member>                         <member name="what">string</member>
                          <type_spec>string</type_spec>  
                          <declarators>  
                            <declarator>what</declarator>  
                          </declarators>  
                        </member>  
721                       </members>                       </members>
722                     </exception>                     </exception>
723    
724                     <exception id="NotEnoughMoney"/>                     <exception name="NotEnoughMoney"/>
725    
726                     <enum id="DonutType">                     <enum name="DonutType">
727                       <enumeration>glazed</enumeration>                       <element>glazed</element>
728                       <enumeration>krispy_kreme</enumeration>                       <element>krispy_kreme</element>
729                       <enumeration>jelly</enumeration>                       <element>jelly</element>
730                       <enumeration>powedered</enumeration>                       <element>powedered</element>
731                     </enum>                     </enum>
732    
733                     <struct id="Currency">                     <struct name="Currency">
734                       <members>                       <members>
735                         <member>                         <member name="type">string</member>
736                           <type_spec>string</type_spec>                         <member name="amount">float</member>
                          <declarators>  
                            <declarator>type</declarator>  
                          </declarators>  
                        </member>  
                        <member>  
                          <type_spec>float</type_spec>  
                          <declarators>  
                            <declarator>amount</declarator>  
                          </declarators>  
                        </member>  
737                       </members>                       </members>
738                     </struct>                     </struct>
739    
740                     <typedef>                     <typedef type="DonutType">
741                       <type_spec><struct>DonutType</struct></type_spec>                       <alias>donut_t</alias>
                      <declarators>  
                        <declarator>donut_t</declarator>  
                      </declarators>  
742                     </typedef>                     </typedef>
743    
744                     <const id="preferredDonut">                     <const name="preferredDonut" type="donut_t">krispy_kreme</const>
745                       <type_spec><donut_t>krispy_kreme</donut_t></type_spec>  
746                     </const>                     <attribute name="donuts">
747                         <bag>donut_t</bag>
                    <attribute>  
                      <type_spec><bag><type_spec>donut_t</type_spec></bag></type_spec>  
                      <name>donuts</name>  
748                     </attribute>                     </attribute>
749    
750                     <operation id="consumeDonuts">                     <operation name="consumeDonuts">
751                       <parameters>                       <parameters>
752                         <parameter mode="in">                         <parameter mode="in" name="donut">donut_t</parameter>
                          <type_spec>donut_t</type_spec>  
                          <declarator>donut</declarator>  
                        </parameter>  
753                       </parameters>                       </parameters>
754                       <raises>                       <raises>
755                         <exception>InvalidDonutType</exception>                         <exception name="InvalidDonutType"/>
756                       </raises>                       </raises>
757                     </operation>                     </operation>
758    
759                     <operation id="purchaseDonuts">                     <operation name="purchaseDonuts">
760                       <returns>                       <returns>boolean</returns>
                        <type_spec>boolean</type_spec>  
                      </returns>  
761                       <parameters>                       <parameters>
762                         <parameter mode="in">                         <parameter mode="in" name="money">Currency</parameter>
763                           <type_spec><struct>Currency</struct></type_spec>                         <parameter mode="out" name="donuts">
764                           <declarator>money</declarator>                           <bag>donut_t</bag>
                        </parameter>  
                        <parameter mode="out">  
                          <type_spec><bag><type_spec>donut_t</type_spec></bag></type_spec>  
                          <declarator>donuts</declarator>  
765                         </parameter>                         </parameter>
766                       </parameters>                       </parameters>
767                       <raises>                       <raises>
768                         <exception>NotEnoughMoney</exception>                         <exception name="NotEnoughMoney"/>
769                       </raises>                       </raises>
770                     </operation>                     </operation>
   
771                   </class>                   </class>
772    
773                   <class id="Jamest">                   <class name="Jamest">
774                     <extends>                     <extends>
775                       <class>Goat</class>                       <class name="Goat"/>
776                     </extends>                     </extends>
777                     <extent>goats</extent>                     <extent>goats</extent>
778    
779                     <exception id="CrackLevelsTooLow">                     <exception name="CrackLevelsTooLow">
780                       <members>                       <members>
781                         <member>                         <member name="level">unsigned short</member>
                          <type_spec>unsigned short</type_spec>  
                          <declarators>  
                            <declarator>level</declarator>  
                          </declarators>  
                        </member>  
782                       </members>                       </members>
783                     </exception>                     </exception>
784    
785                     <struct id="AtmosphericCrack">                     <struct name="AtmosphericCrack">
786                       <members>                       <members>
787                         <member>                         <member name="kind">string</member>
788                           <type_spec>string</type_spec>                         <member name="weight">unsigned long</member>
789                           <declarators>                         <member name="percentage">float</member>
                            <declarator>kind</declarator>  
                          </declarators>  
                        </member>  
                        <member>  
                          <type_spec>unsigned long</type_spec>  
                          <declarators>  
                            <declarator>weight</declarator>  
                          </declarators>  
                        </member>  
                        <member>  
                          <type_spec>float</type_spec>  
                          <declarators>  
                            <declarator>percentage</declarator>  
                          </declarators>  
                        </member>  
790                       </members>                       </members>
791                     </struct>                     </struct>
792    
793                     <typedef>                     <typedef type="AtmosphericCrack">
794                       <type_spec><struct>AtmosphericCrack</struct></type_spec>                       <alias>atmoscrack_t</alias>
                      <declarators>  
                        <declarator>atmoscrack_t</declarator>  
                      </declarators>  
795                     </typedef>                     </typedef>
796    
797                     <attribute>                     <attribute name="crackReserves">
798                       <type_spec><bag><type_spec>atmoscrack_t</type_spec></bag></type_spec>                       <bag>atmoscrack_t</bag>
                      <name>crackReserves</name>  
799                     </attribute>                     </attribute>
800    
801                     <operation id="inhaleAtmosphericCrack">                     <operation name="inhaleAtmosphericCrack">
802                       <parameters>                       <parameters>
803                         <parameter mode="in">                         <parameter mode="in" name="crack">AtmosphericCrack</parameter>
                          <type_spec><struct>AtmosphericCrack</struct></type_spec>  
                          <declarator>crack</declarator>  
                        </parameter>  
804                       </parameters>                       </parameters>
805                       <raises>                       <raises>
806                         <exception>CrackLevelsTooLow</exception>                         <exception name="CrackLevelsTooLow"/>
807                       </raises>                       </raises>
808                     </operation>                     </operation>
809                   </class>                   </class>
810    
811                   <class id="Reinhard">                   <class name="Reinhard">
812                     <extends>                     <extends>
813                       <class>Goat</class>                       <class name="Goat"/>
814                     </extends>                     </extends>
815                     <extent>goats</extent>                     <extent>goats</extent>
816    
817                     <exception id="FileDoesNotExist">                     <exception name="FileDoesNotExist">
818                       <members>                       <members>
819                         <member>                         <member name="filename">string</member>
                          <type_spec>string</type_spec>  
                          <declarators>  
                            <declarator>filename</declarator>  
                          </declarators>  
                        </member>  
820                       </members>                       </members>
821                     </exception>                     </exception>
822    
823                     <exception id="FileIsEmpty">                     <exception name="FileIsEmpty">
824                       <members>                       <members>
825                         <member>                         <member name="filename">string</member>
                          <type_spec>string</type_spec>  
                          <declarators>  
                            <declarator>filename</declarator>  
                          </declarators>  
                        </member>  
826                       </members>                       </members>
827                     </exception>                     </exception>
828    
829                     <attribute>                     <attribute name="quitMessages">
830                       <type_spec><list><type_spec>string</type_spec></list></type_spec>                       <list>string</list>
                      <name>quitMessages</name>  
831                     </attribute>                     </attribute>
832    
833                     <attribute>                     <attribute name="filename">string</attribute>
                      <type_spec>string</type_spec>  
                      <name>filename</name>  
                    </attribute>  
834    
835                     <operation id="loadQuitMessage">                     <operation name="loadQuitMessage">
836                       <returns>                       <returns>boolean</returns>
                        <type_spec>boolean</type_spec>  
                      </returns>  
837                       <parameters>                       <parameters>
838                         <parameter mode="in">                         <parameter mode="in" name="filename">string</parameter>
                          <type_spec>string</type_spec>  
                          <declarator>filename</declarator>  
                        </parameter>  
839                       </parameters>                       </parameters>
840                       <raises>                       <raises>
841                         <exception>FileDoesNotExist</exception>                         <exception name="FileDoesNotExist"/>
842                         <exception>FileIsEmpty</exception>                         <exception name="FileIsEmpty"/>
843                       </raises>                       </raises>
844                     </operation>                     </operation>
845    
846                     <operation id="loadQuitMessage">                     <operation name="loadQuitMessage">
847                       <returns>                       <returns>string</returns>
                        <type_spec>string</type_spec>  
                      </returns>  
848                     </operation>                     </operation>
849                   </class>                   </class>
850    

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.5.4.1

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26