6
6
or via an XSLT stylesheet or other transformation, may generate
7
7
a parser compiler specification such as for YACC or JavaCC.
8
8
9
- Norm and Scott moved this file, and added an explicit prefix, as part of the
10
- transition toward a unified build process for last call and beyond. This involved
11
- moving the location of the CVS repository, For earlier history information,
12
- see /WWW/XML/Group/xpath-query-src/grammar.dtd
9
+ In 2025 Michael Kay simplified the DTD to remove parts that were no
10
+ longer used or maintained.
13
11
14
12
=========================================================================-->
15
13
<!-- The root element of the definition -->
16
- <!ELEMENT g:grammar ((g:language)+, (g:start)+,
17
- (g:exprProduction | g:production | g:exposition-production)+
18
- , g:token*, (g:state-list)?)>
14
+ <!ELEMENT g:grammar (
15
+ g:language+,
16
+ g:start+,
17
+ g:production+,
18
+ g:token*)>
19
19
<!ATTLIST g:grammar
20
20
xmlns:g CDATA #FIXED "http://www.w3.org/2001/03/XPath/grammar"
21
21
>
@@ -146,44 +146,44 @@ see /WWW/XML/Group/xpath-query-src/grammar.dtd
146
146
process-value (no | yes) #IMPLIED
147
147
>
148
148
149
- <!-- Talk to FS folks about what this is really supposed to mean. -sb -->
149
+ <!-- <!-\- Talk to FS folks about what this is really supposed to mean. -sb -\ ->
150
150
<!ELEMENT g:emph (#PCDATA)>
151
151
<!ATTLIST g:emph
152
152
ignoreCase CDATA #IMPLIED
153
153
if IDREFS #IMPLIED
154
154
not-if IDREFS #IMPLIED
155
155
>
156
-
156
+ -->
157
157
158
158
<!-- =================== Lexical State Transitions =================== -->
159
159
160
- <!ELEMENT g:state-list (g:state)+>
160
+ <!-- <! ELEMENT g:state-list (g:state)+>
161
161
<!ATTLIST g:state-list
162
162
if IDREFS #IMPLIED
163
163
not-if IDREFS #IMPLIED
164
164
>
165
-
166
- <!ELEMENT g:state (g:description?, g:transition+)>
165
+ -->
166
+ <!-- <! ELEMENT g:state (g:description?, g:transition+)>
167
167
<!ATTLIST g:state
168
168
name ID #REQUIRED
169
169
if IDREFS #IMPLIED
170
170
not-if IDREFS #IMPLIED
171
171
show (yes | no) #IMPLIED
172
- >
172
+ >-->
173
173
174
- <!ELEMENT g:tref EMPTY>
174
+ <!-- <! ELEMENT g:tref EMPTY>
175
175
<!ATTLIST g:tref
176
176
name IDREF #REQUIRED
177
177
if IDREFS #IMPLIED
178
178
not-if IDREFS #IMPLIED
179
179
show (yes | no) #IMPLIED
180
- >
180
+ >-->
181
181
182
- <!ELEMENT g:description ANY>
182
+ <!-- <! ELEMENT g:description ANY>
183
183
<!ATTLIST g:description
184
184
if IDREFS #IMPLIED
185
185
not-if IDREFS #IMPLIED
186
- >
186
+ >-->
187
187
188
188
<!-- Define a transition for a token or set of tokens.
189
189
Attributes:
@@ -194,36 +194,36 @@ see /WWW/XML/Group/xpath-query-src/grammar.dtd
194
194
used for the action.
195
195
action -> State stack action.
196
196
-->
197
- <!ELEMENT g:transition (g:description?, g:tref+)>
197
+ <!-- <! ELEMENT g:transition (g:description?, g:tref+)>
198
198
<!ATTLIST g:transition
199
199
if IDREFS #IMPLIED
200
200
not-if IDREFS #IMPLIED
201
201
next-state IDREF #IMPLIED
202
202
action CDATA #IMPLIED
203
- >
203
+ >-->
204
204
205
205
<!-- =================== Parser Production Specifications ===============-->
206
206
<!-- A production that defines a "cascade" of productions that define
207
207
operator precedence.
208
208
name -> the ID of the production.
209
209
if -> space separated list of tokens for conditional processing.
210
210
-->
211
- <!ELEMENT g:exprProduction (g:level+)>
211
+ <!-- <! ELEMENT g:exprProduction (g:level+)>
212
212
<!ATTLIST g:exprProduction
213
213
name ID #REQUIRED
214
214
if IDREFS #IMPLIED
215
215
not-if IDREFS #IMPLIED
216
216
node-type (void | string | StepExpr | FTUnaryNot | UnaryExpr) #IMPLIED
217
217
condition CDATA #IMPLIED
218
- >
218
+ >-->
219
219
220
- <!ELEMENT g:level (g:postfix | g:binary | g:prefix | g:primary)+>
220
+ <!-- <! ELEMENT g:level (g:postfix | g:binary | g:prefix | g:primary)+>
221
221
<!ATTLIST g:level
222
222
if IDREFS #IMPLIED
223
223
not-if IDREFS #IMPLIED
224
224
node-type (void | string | StepExpr | FTUnaryNot | UnaryExpr) #IMPLIED
225
225
level-user-action CDATA #IMPLIED
226
- >
226
+ >-->
227
227
228
228
<!-- Basic non-terminal production.
229
229
name -> the ID of the production.
@@ -251,7 +251,7 @@ see /WWW/XML/Group/xpath-query-src/grammar.dtd
251
251
subtract-reg-expr CDATA #IMPLIED
252
252
>
253
253
254
- <!ELEMENT g:exposition-production (g:optional | g:ref | g:xref | g:choice | g:sequence | g:zeroOrMore | g:oneOrMore | g:string)+>
254
+ <!-- <! ELEMENT g:exposition-production (g:optional | g:ref | g:xref | g:choice | g:sequence | g:zeroOrMore | g:oneOrMore | g:string)+>
255
255
<!ATTLIST g:exposition-production
256
256
name CDATA #REQUIRED
257
257
if IDREFS #IMPLIED
@@ -262,7 +262,7 @@ see /WWW/XML/Group/xpath-query-src/grammar.dtd
262
262
whitespace-spec (not-significant | significant | explicit) #IMPLIED
263
263
comment-id CDATA #IMPLIED
264
264
xgc-id CDATA #IMPLIED
265
- >
265
+ >-->
266
266
267
267
<!-- Defines a binary operator.
268
268
name -> the ID of the production.
@@ -275,55 +275,55 @@ see /WWW/XML/Group/xpath-query-src/grammar.dtd
275
275
</choice>
276
276
</binary>
277
277
-->
278
- <!ELEMENT g:binary (g:ref | g:xref | g:choice | g:string | g:sequence)>
278
+ <!-- <! ELEMENT g:binary (g:ref | g:xref | g:choice | g:string | g:sequence)>
279
279
<!ATTLIST g:binary
280
280
name ID #REQUIRED
281
281
if IDREFS #IMPLIED
282
282
not-if IDREFS #IMPLIED
283
283
prefix-seq-type CDATA #IMPLIED
284
284
condition CDATA #IMPLIED
285
285
process-value (no | yes) #IMPLIED
286
- >
286
+ >-->
287
287
288
- <!ELEMENT g:postfix (g:ref | g:xref | g:optional | g:sequence | g:string)+>
288
+ <!-- <! ELEMENT g:postfix (g:ref | g:xref | g:optional | g:sequence | g:string)+>
289
289
<!ATTLIST g:postfix
290
290
name ID #REQUIRED
291
291
if IDREFS #IMPLIED
292
292
not-if IDREFS #IMPLIED
293
293
prefix-seq-type CDATA #IMPLIED
294
294
condition CDATA #IMPLIED
295
295
node-type (void | string | StepExpr | FTUnaryNot | UnaryExpr) #IMPLIED
296
- >
296
+ >-->
297
297
298
- <!ELEMENT g:prefix (g:optional | g:ref | g:xref | g:choice | g:zeroOrMore | g:oneOrMore | g:sequence | g:next | g:string)+>
298
+ <!-- <! ELEMENT g:prefix (g:optional | g:ref | g:xref | g:choice | g:zeroOrMore | g:oneOrMore | g:sequence | g:next | g:string)+>
299
299
<!ATTLIST g:prefix
300
300
name ID #REQUIRED
301
301
if IDREFS #IMPLIED
302
302
not-if IDREFS #IMPLIED
303
303
prefix-seq-type CDATA "*"
304
304
condition CDATA #IMPLIED
305
305
node-type (void | string | StepExpr | FTUnaryNot | UnaryExpr) #IMPLIED
306
- >
306
+ >-->
307
307
308
308
<!-- This element is used in exprProduction to control where the next production
309
309
will be called from. If it is not used, the next production will automatically be
310
310
called.
311
311
-->
312
- <!ELEMENT g:next EMPTY>
312
+ <!-- <! ELEMENT g:next EMPTY>
313
313
<!ATTLIST g:next
314
314
if IDREFS #IMPLIED
315
315
not-if IDREFS #IMPLIED
316
- >
316
+ >-->
317
317
318
- <!ELEMENT g:primary (g:optional | g:ref | g:xref | g:choice |
318
+ <!-- <! ELEMENT g:primary (g:optional | g:ref | g:xref | g:choice |
319
319
g:zeroOrMore | g:oneOrMore | g:sequence | g:string)+>
320
320
<!ATTLIST g:primary
321
321
name ID #REQUIRED
322
322
if IDREFS #IMPLIED
323
323
not-if IDREFS #IMPLIED
324
324
condition CDATA #IMPLIED
325
325
node-type (void | string | StepExpr | FTUnaryNot | UnaryExpr) #IMPLIED
326
- >
326
+ >-->
327
327
328
328
<!ELEMENT g:ref EMPTY>
329
329
<!ATTLIST g:ref
0 commit comments