3 * File name: effect.dtd
4 * Purpose: DTD to model effects of external procedures inside firm.
5 * Author: Florian Liekweg
6 * Modified by: Boris Boesler
9 * Copyright: (c) 1999-2004 Universität Karlsruhe
10 * Licence: This file is protected by GPL - GNU GENERAL PUBLIC LICENSE.
13 <!-- upload this file to http://www/~firm/ after making changes -->
15 <!-- content model for all nodes -->
16 <!-- allow nodes/entity accesses to reference other nodes/an entity -->
17 <!ENTITY % firm.id "id ID #REQUIRED">
19 <!-- allow a node to specify a type --> <!-- rename to firm.typeref -->
20 <!ENTITY % firm.type "type CDATA #REQUIRED">
22 <!-- allow a node to specify a field -->
23 <!ENTITY % firm.entity "entity CDATA #REQUIRED">
25 <!-- allow a node to specify a typeid --> <!-- wird das jemals gebraucht? -->
26 <!ENTITY % typeid "typeid CDATA #REQUIRED">
28 <!-- allow an eneity to specify an owner -->
29 <!ENTITY % firm.owner "owner CDATA #REQUIRED">
31 <!-- the root element -->
32 <!ELEMENT effects (type*, entity*, effect*)>
34 module CDATA #IMPLIED>
36 <!-- a type reference -->
42 <!-- an entity reference -->
43 <!ELEMENT entity EMPTY>
50 <!-- a single effect -->
51 <!ELEMENT effect (arg*, (load|store|alloc|call|join|unknown)*, raise?, ret)>
53 procname CDATA #REQUIRED <!-- warum keine firm.entity? -->
56 <!-- procedure argument -->
60 number CDATA #REQUIRED
63 <!-- reference another value -->
64 <!ELEMENT valref EMPTY>
66 refid IDREF #REQUIRED>
68 <!-- select element for use with store, load and call -->
69 <!-- for static entities, use a 'select' without a child element -->
70 <!ELEMENT select (valref?)>
71 <!ATTLIST select %firm.entity;>
74 <!ELEMENT load (select)>
79 <!ELEMENT store ((valref|select),valref)>
82 <!ELEMENT alloc EMPTY>
83 <!ATTLIST alloc %firm.id;
87 <!ELEMENT call ((select|valref),(valref)*)>
88 <!ATTLIST call %firm.id;>
90 <!-- unknown value -->
91 <!ELEMENT unknown EMPTY>
92 <!ATTLIST unknown %firm.id;>
94 <!-- join two or more values -->
95 <!ELEMENT join (valref,valref+)>
96 <!ATTLIST join %firm.id;>
98 <!-- raise an exception -->
99 <!ELEMENT raise (valref)>
100 <!ATTLIST raise %firm.type;>
103 <!ELEMENT ret (valref?)>
108 Revision 1.12 2004/11/24 14:53:10 liekweg
109 Annotated after writing Tech Report
111 Revision 1.11 2004/11/02 14:30:56 liekweg
112 Re-allow multi-input join
114 Revision 1.10 2004/10/29 18:52:32 liekweg
115 Allow only two values for join
117 Revision 1.9 2004/10/29 18:38:36 liekweg
118 ** Allow store ::= ((valref|select),valref)
120 Revision 1.8 2004/10/25 13:51:32 boesler
121 minor changes like owner
123 Revision 1.7 2004/10/21 15:32:21 boesler
126 Revision 1.6 2004/10/11 09:55:19 liekweg
127 Renamed 'return' to 'ret' -flo
129 Revision 1.5 2004/10/05 16:19:04 liekweg
130 Grrr, CVS still messes up XML comments
132 Revision 1.4 2004/10/05 16:18:06 liekweg
133 Grrr, CVS messes up XML comments
135 Revision 1.3 2004/10/05 16:17:22 liekweg
138 Revision 1.2 2004/10/05 15:46:59 liekweg
139 Added comment about this DTD's public location -flo
141 Revision 1.1 2004/10/05 14:34:13 liekweg
142 Added DTD for external effects description -flo