Renamed 'return' to 'ret' -flo
[libfirm] / etc / effect.dtd
1 <!-- effect.dtd - DTD to model effects of external procedures inside firm. -->
2 <!-- $Id$ -->
3
4 <!-- upload this file to http://www/~firm/ after making changes -->
5
6 <!-- content model for all nodes -->
7 <!-- allow nodes/entity accesses to reference other nodes/an entity -->
8 <!ENTITY        % firm.id                       "id ID #REQUIRED">
9
10 <!-- allow a node to specify a type -->
11 <!ENTITY        % firm.type             "type CDATA #REQUIRED">
12
13 <!-- allow a node to specify a field -->
14 <!ENTITY        % firm.entity           "entity CDATA #REQUIRED">
15
16 <!-- the root element -->
17 <!ELEMENT       effects (type*, entity*, effect*)>
18 <!ATTLIST       effects
19                         module          CDATA           #IMPLIED>
20
21 <!-- an entity reference -->
22 <!ELEMENT       type    EMPTY>
23 <!ATTLIST       type
24                         %firm.id;
25                         %firm.type;>
26
27 <!-- an entity reference -->
28 <!ELEMENT       entity  EMPTY>
29 <!ATTLIST       entity
30                         %firm.id;
31                         %firm.type;
32                         %firm.entity;>
33
34 <!-- a single effect -->
35 <!ELEMENT       effect (arg*, (load|store|alloc|call|join|unknown)*, raise?, ret)>
36 <!ATTLIST       effect
37                         procname        CDATA           #REQUIRED>
38
39 <!-- procedure argument -->
40 <!ELEMENT       arg                     EMPTY>
41 <!ATTLIST       arg
42                         %firm.id;
43                         number          CDATA           #REQUIRED>
44
45 <!-- reference another value -->
46 <!ELEMENT       valref          EMPTY>
47 <!ATTLIST       valref
48                         refid           IDREF           #REQUIRED>
49
50 <!-- load effect -->
51 <!-- for static entities, use a 'select' without a child element -->
52 <!ELEMENT       select          (valref?)>
53 <!ATTLIST       select          %firm.entity;>
54
55 <!-- load effect -->
56 <!ELEMENT       load            (select)>
57 <!ATTLIST       load
58                         %firm.id;>
59
60 <!-- store effect -->
61 <!ELEMENT       store           (select,valref)>
62
63 <!-- alloc effect -->
64 <!ELEMENT       alloc           EMPTY>
65 <!ATTLIST       alloc           %firm.id;%firm.type;>
66
67 <!-- call effect -->
68 <!ELEMENT       call            (select,(valref)*)>
69 <!ATTLIST       call            %firm.id;>
70
71 <!-- unknown value -->
72 <!ELEMENT       unknown         EMPTY>
73 <!ATTLIST       unknown         %firm.id;>
74
75 <!-- join two or more values -->
76 <!ELEMENT       join            (valref,valref+)>
77 <!ATTLIST       join            %firm.id;>
78
79 <!-- raise an exception -->
80 <!ELEMENT       raise           (valref)>
81 <!ATTLIST       raise           %firm.type;>
82
83 <!-- ret effect -->
84 <!ELEMENT       ret                     (valref?)>
85
86 <!--
87
88  $Log$
89  Revision 1.6  2004/10/11 09:55:19  liekweg
90  Renamed 'return' to 'ret' -flo
91
92  Revision 1.5  2004/10/05 16:19:04  liekweg
93  Grrr, CVS still messes up XML comments
94
95  Revision 1.4  2004/10/05 16:18:06  liekweg
96  Grrr, CVS messes up XML comments
97
98  Revision 1.3  2004/10/05 16:17:22  liekweg
99  Added 'raise' -flo
100
101  Revision 1.2  2004/10/05 15:46:59  liekweg
102  Added comment about this DTD's public location -flo
103
104  Revision 1.1  2004/10/05 14:34:13  liekweg
105  Added DTD for external effects description -flo
106
107  -->