]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/xmode.dtd
d96df445fa4cf1cd58396c4b8df7f2b77e9768b3
[factor.git] / basis / xmode / xmode.dtd
1 <!-- Syntax tokens -->\r
2 <!ENTITY % token_values "NULL | COMMENT1 | COMMENT2 | COMMENT3 | COMMENT4 |\r
3         DIGIT | FUNCTION | INVALID | KEYWORD1 | KEYWORD2 | KEYWORD3 | KEYWORD4 |\r
4         LABEL | LITERAL1 | LITERAL2 | LITERAL3 | LITERAL4 | MARKUP | OPERATOR" >\r
5 <!ENTITY % tokens "( %token_values; )" >\r
6 \r
7 <!-- Entities for attributes shared by multiple rules -->\r
8 <!ENTITY % att-bool '( TRUE | FALSE ) #IMPLIED' >\r
9 <!ENTITY % att-type 'TYPE %tokens; #IMPLIED' >\r
10 <!ENTITY % att-position-mix 'AT_LINE_START %att-bool;\r
11         AT_WHITESPACE_END %att-bool;\r
12         AT_WORD_START %att-bool; ' >\r
13 <!ENTITY % att-match-type 'MATCH_TYPE ( %token_values; | CONTEXT | RULE ) #IMPLIED' >\r
14 <!ENTITY % att-delegate 'DELEGATE CDATA #IMPLIED' >\r
15 <!ENTITY % att-span-mix 'NO_LINE_BREAK %att-bool;\r
16         NO_WORD_BREAK %att-bool;\r
17         NO_ESCAPE %att-bool; '>\r
18 <!ENTITY % att-hash-char 'HASH_CHAR CDATA #IMPLIED\r
19         HASH_CHARS CDATA #IMPLIED' >\r
20 \r
21 <!-- MODE element -->\r
22 <!ELEMENT MODE ( PROPS?, RULES* ) >\r
23 \r
24 <!-- MODE children -->\r
25 <!-- PROPS element -->\r
26 <!ELEMENT PROPS ( PROPERTY+ ) >\r
27 \r
28 <!-- PROPS children -->\r
29 <!ELEMENT PROPERTY EMPTY >\r
30 <!ATTLIST PROPERTY\r
31         NAME CDATA #REQUIRED\r
32         VALUE CDATA #REQUIRED >\r
33 \r
34 <!-- RULES element -->\r
35 <!ELEMENT RULES ( PROPS?, ( IMPORT | TERMINATE | SEQ | SEQ_REGEXP | SPAN\r
36         | SPAN_REGEXP | EOL_SPAN | EOL_SPAN_REGEXP | MARK_PREVIOUS\r
37         | MARK_FOLLOWING )*, KEYWORDS? ) >\r
38 \r
39 <!-- RULES attributes -->\r
40 <!ATTLIST RULES\r
41         SET CDATA #IMPLIED\r
42         IGNORE_CASE %att-bool;\r
43         HIGHLIGHT_DIGITS %att-bool;\r
44         DIGIT_RE CDATA #IMPLIED\r
45         ESCAPE CDATA #IMPLIED\r
46         DEFAULT %tokens; #IMPLIED\r
47         NO_WORD_SEP CDATA #IMPLIED >\r
48 \r
49 <!-- IMPORT element -->\r
50 <!ELEMENT IMPORT EMPTY >\r
51 <!ATTLIST IMPORT DELEGATE CDATA #REQUIRED >\r
52 \r
53 <!-- TERMINATE element -->\r
54 <!ELEMENT TERMINATE EMPTY >\r
55 <!ATTLIST TERMINATE AT_CHAR CDATA #REQUIRED >\r
56 \r
57 <!-- SEQ element -->\r
58 <!ELEMENT SEQ ( #PCDATA ) >\r
59 \r
60 <!-- SEQ attributes -->\r
61 <!ATTLIST SEQ\r
62         %att-type;\r
63         %att-position-mix;\r
64         %att-delegate; >\r
65 \r
66 <!-- SEQ_REGEXP element -->\r
67 <!ELEMENT SEQ_REGEXP ( #PCDATA ) >\r
68 \r
69 <!-- SEQ_REGEXP attributes -->\r
70 <!ATTLIST SEQ_REGEXP\r
71         %att-hash-char;\r
72         %att-type;\r
73         %att-position-mix;\r
74         %att-delegate; >\r
75 \r
76 <!-- SPAN element -->\r
77 <!ELEMENT SPAN ( BEGIN, END ) >\r
78 \r
79 <!-- SPAN attributes -->\r
80 <!ATTLIST SPAN\r
81         %att-type;\r
82         %att-position-mix;\r
83         %att-span-mix;\r
84         %att-match-type;\r
85         %att-delegate; >\r
86 \r
87 <!-- SPAN_REGEXP element -->\r
88 <!ELEMENT SPAN_REGEXP ( BEGIN, END ) >\r
89 \r
90 <!-- SPAN_REGEXP attributes -->\r
91 <!ATTLIST SPAN_REGEXP\r
92         %att-hash-char;\r
93         %att-type;\r
94         %att-position-mix;\r
95         %att-span-mix;\r
96         %att-match-type;\r
97         %att-delegate; >\r
98 \r
99 <!-- SPAN and SPAN_REGEXP children -->\r
100 <!ELEMENT BEGIN ( #PCDATA ) >\r
101 <!ATTLIST BEGIN %att-position-mix; >\r
102 <!ELEMENT END ( #PCDATA ) >\r
103 <!ATTLIST END %att-position-mix; >\r
104 \r
105 <!-- EOL_SPAN element -->\r
106 <!ELEMENT EOL_SPAN ( #PCDATA ) >\r
107 \r
108 <!-- EOL_SPAN attributes -->\r
109 <!ATTLIST EOL_SPAN\r
110         %att-type;\r
111         %att-position-mix;\r
112         %att-match-type;\r
113         %att-delegate; >\r
114 \r
115 <!-- EOL_SPAN_REGEXP element -->\r
116 <!ELEMENT EOL_SPAN_REGEXP ( #PCDATA ) >\r
117 \r
118 <!-- EOL_SPAN_REGEXP attributes -->\r
119 <!ATTLIST EOL_SPAN_REGEXP\r
120         %att-hash-char;\r
121         %att-type;\r
122         %att-position-mix;\r
123         %att-match-type;\r
124         %att-delegate; >\r
125 \r
126 <!-- MARK_FOLLOWING element -->\r
127 <!ELEMENT MARK_FOLLOWING ( #PCDATA ) >\r
128 \r
129 <!-- MARK_FOLLOWING attributes -->\r
130 <!ATTLIST MARK_FOLLOWING\r
131         %att-type;\r
132         %att-position-mix;\r
133         %att-match-type; >\r
134 \r
135 <!-- MARK_PREVIOUS element -->\r
136 <!ELEMENT MARK_PREVIOUS ( #PCDATA ) >\r
137 \r
138 <!-- MARK_PREVIOUS attributes -->\r
139 <!ATTLIST MARK_PREVIOUS\r
140         %att-type;\r
141         %att-position-mix;\r
142         %att-match-type; >\r
143 \r
144 <!-- KEYWORDS element -->\r
145 <!ELEMENT KEYWORDS (%tokens;)+ >\r
146 \r
147 <!-- KEYWORDS children -->\r
148 <!ELEMENT COMMENT1 ( #PCDATA ) >\r
149 <!ELEMENT COMMENT2 ( #PCDATA ) >\r
150 <!ELEMENT COMMENT3 ( #PCDATA ) >\r
151 <!ELEMENT COMMENT4 ( #PCDATA ) >\r
152 <!ELEMENT DIGIT ( #PCDATA ) >\r
153 <!ELEMENT FUNCTION ( #PCDATA ) >\r
154 <!ELEMENT KEYWORD1 ( #PCDATA ) >\r
155 <!ELEMENT KEYWORD2 ( #PCDATA ) >\r
156 <!ELEMENT KEYWORD3 ( #PCDATA ) >\r
157 <!ELEMENT KEYWORD4 ( #PCDATA ) >\r
158 <!ELEMENT LABEL ( #PCDATA ) >\r
159 <!ELEMENT LITERAL1 ( #PCDATA ) >\r
160 <!ELEMENT LITERAL2 ( #PCDATA ) >\r
161 <!ELEMENT LITERAL3 ( #PCDATA ) >\r
162 <!ELEMENT LITERAL4 ( #PCDATA ) >\r
163 <!ELEMENT MARKUP ( #PCDATA ) >\r
164 <!ELEMENT NULL ( #PCDATA ) >\r
165 <!ELEMENT OPERATOR ( #PCDATA ) >\r
166 <!ELEMENT INVALID ( #PCDATA ) >\r