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