Added DTD for external effects description --flo
[libfirm] / etc / effect.dtd
1 <!-- effect.dtd - DTD to model effects of external procedures inside firm. -->
2 <!-- $Id$ -->
3 <!-- content model for all nodes -->
4 <!-- allow nodes/entity accesses to reference other nodes/an entity -->
5 <!ENTITY        % firm.id                       "id ID #REQUIRED">
6
7 <!-- allow a node to specify a type -->
8 <!ENTITY        % firm.type             "type CDATA #REQUIRED">
9
10 <!-- allow a node to specify a field -->
11 <!ENTITY        % firm.entity           "entity CDATA #REQUIRED">
12
13 <!-- the root element -->
14 <!ELEMENT       effects (type*, entity*, effect*)>
15 <!ATTLIST       effects
16                         module          CDATA           #IMPLIED>
17
18 <!-- an entity reference -->
19 <!ELEMENT       type    EMPTY>
20 <!ATTLIST       type
21                         %firm.id;
22                         %firm.type;>
23
24 <!-- an entity reference -->
25 <!ELEMENT       entity  EMPTY>
26 <!ATTLIST       entity
27                         %firm.id;
28                         %firm.type;
29                         %firm.entity;>
30
31 <!-- a single effect -->
32 <!ELEMENT       effect (arg*, (load|store|alloc|call|join|unknown)*, return)>
33 <!ATTLIST       effect
34                         procname        CDATA           #REQUIRED>
35
36 <!-- procedure argument -->
37 <!ELEMENT       arg                     EMPTY>
38 <!ATTLIST       arg
39                         %firm.id;
40                         number          CDATA           #REQUIRED>
41
42 <!-- reference another value -->
43 <!ELEMENT       valref          EMPTY>
44 <!ATTLIST       valref
45                         refid           IDREF           #REQUIRED>
46
47 <!-- load effect -->
48 <!-- for static entities, use a 'select' without a child element -->
49 <!ELEMENT       select          (valref?)>
50 <!ATTLIST       select          %firm.entity;>
51
52 <!-- load effect -->
53 <!ELEMENT       load            (select)>
54 <!ATTLIST       load
55                         %firm.id;>
56
57 <!-- store effect -->
58 <!ELEMENT       store           (select,valref)>
59
60 <!-- alloc effect -->
61 <!ELEMENT       alloc           EMPTY>
62 <!ATTLIST       alloc           %firm.id;%firm.type;>
63
64 <!-- call effect -->
65 <!ELEMENT       call            (select,(valref)*)>
66 <!ATTLIST       call            %firm.id;>
67
68 <!-- unknown value -->
69 <!ELEMENT       unknown         EMPTY>
70 <!ATTLIST       unknown         %firm.id;>
71
72 <!-- join two or more values -->
73 <!ELEMENT       join            (valref,valref+)>
74 <!ATTLIST       join            %firm.id;>
75
76 <!-- return effect -->
77 <!ELEMENT       return          (valref?)>
78
79 <!-- $Log$
80 <!-- Revision 1.1  2004/10/05 14:34:13  liekweg
81 <!-- Added DTD for external effects description --flo
82 <!-- -->