Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | diff --git a/Controls/controls-lib.mlb b/Controls/controls-lib.mlb |
2 | new file mode 100644 | |
3 | index 0000000..501b6f8 | |
4 | --- /dev/null | |
5 | +++ b/Controls/controls-lib.mlb | |
6 | @@ -0,0 +1,178 @@ | |
7 | + | |
8 | +ann | |
9 | + "nonexhaustiveBind warn" "nonexhaustiveMatch warn" | |
10 | + "redundantBind warn" "redundantMatch warn" | |
11 | + "sequenceNonUnit ignore" | |
12 | + "warnUnused false" "forceUsed" | |
13 | +in | |
14 | + | |
15 | +local | |
16 | + basis l8 = | |
17 | + bas | |
18 | + (* $/basis.cm ====> *) $(SML_LIB)/basis/basis.mlb | |
19 | + end | |
20 | + basis l4 = | |
21 | + bas | |
22 | + (* $/smlnj-lib.cm ====> *) $(SML_LIB)/smlnj-lib/Util/smlnj-lib.mlb | |
23 | + end | |
24 | +in | |
25 | +local | |
26 | + $(SML_LIB)/basis/pervasive.mlb | |
27 | + local | |
28 | + open l4 | |
29 | + in | |
30 | + structure gs_0 = GetOpt | |
31 | + end | |
32 | + local | |
33 | + open l8 | |
34 | + in | |
35 | + structure gs_1 = Option | |
36 | + end | |
37 | + local | |
38 | + open l8 | |
39 | + in | |
40 | + structure gs_2 = List | |
41 | + end | |
42 | + local | |
43 | + open l4 | |
44 | + in | |
45 | + structure gs_3 = Atom | |
46 | + end | |
47 | + local | |
48 | + open l8 | |
49 | + in | |
50 | + structure gs_4 = Int | |
51 | + end | |
52 | + local | |
53 | + structure GetOpt = gs_0 | |
54 | + controls-sig.sml | |
55 | + in | |
56 | + signature gs_5 = CONTROLS | |
57 | + end | |
58 | + local | |
59 | + open l4 | |
60 | + in | |
61 | + structure gs_6 = AtomTable | |
62 | + end | |
63 | + local | |
64 | + structure Atom = gs_3 | |
65 | + structure AtomTable = gs_6 | |
66 | + structure Int = gs_4 | |
67 | + structure List = gs_2 | |
68 | + control-reps.sml | |
69 | + in | |
70 | + structure gs_7 = ControlReps | |
71 | + end | |
72 | + local | |
73 | + structure Atom = gs_3 | |
74 | + signature CONTROLS = gs_5 | |
75 | + structure ControlReps = gs_7 | |
76 | + structure GetOpt = gs_0 | |
77 | + structure Int = gs_4 | |
78 | + structure List = gs_2 | |
79 | + structure Option = gs_1 | |
80 | + controls.sml | |
81 | + in | |
82 | + structure gs_8 = Controls | |
83 | + end | |
84 | + local | |
85 | + open l4 | |
86 | + in | |
87 | + structure gs_9 = ListMergeSort | |
88 | + end | |
89 | + local | |
90 | + structure Atom = gs_3 | |
91 | + structure Controls = gs_8 | |
92 | + control-set-sig.sml | |
93 | + in | |
94 | + signature gs_10 = CONTROL_SET | |
95 | + end | |
96 | + local | |
97 | + structure AtomTable = gs_6 | |
98 | + signature CONTROL_SET = gs_10 | |
99 | + structure ControlReps = gs_7 | |
100 | + structure Controls = gs_8 | |
101 | + structure ListMergeSort = gs_9 | |
102 | + structure Option = gs_1 | |
103 | + control-set.sml | |
104 | + in | |
105 | + structure gs_11 = ControlSet | |
106 | + end | |
107 | + local | |
108 | + structure ControlSet = gs_11 | |
109 | + structure Controls = gs_8 | |
110 | + registry-sig.sml | |
111 | + in | |
112 | + signature gs_12 = CONTROL_REGISTRY | |
113 | + end | |
114 | + local | |
115 | + open l8 | |
116 | + in | |
117 | + structure gs_13 = String | |
118 | + end | |
119 | + local | |
120 | + open l8 | |
121 | + in | |
122 | + structure gs_14 = Real | |
123 | + end | |
124 | + local | |
125 | + open l8 | |
126 | + in | |
127 | + structure gs_15 = Char | |
128 | + end | |
129 | + local | |
130 | + open l8 | |
131 | + in | |
132 | + structure gs_16 = Bool | |
133 | + end | |
134 | + local | |
135 | + structure Controls = gs_8 | |
136 | + control-util-sig.sml | |
137 | + in | |
138 | + signature gs_17 = CONTROL_UTIL | |
139 | + end | |
140 | + local | |
141 | + structure Bool = gs_16 | |
142 | + signature CONTROL_UTIL = gs_17 | |
143 | + structure Char = gs_15 | |
144 | + structure Controls = gs_8 | |
145 | + structure Int = gs_4 | |
146 | + structure List = gs_2 | |
147 | + structure Real = gs_14 | |
148 | + structure String = gs_13 | |
149 | + control-util.sml | |
150 | + in | |
151 | + structure gs_18 = ControlUtil | |
152 | + end | |
153 | + local | |
154 | + open l8 | |
155 | + in | |
156 | + structure gs_19 = OS | |
157 | + end | |
158 | + local | |
159 | + structure Atom = gs_3 | |
160 | + structure AtomTable = gs_6 | |
161 | + signature CONTROL_REGISTRY = gs_12 | |
162 | + structure ControlReps = gs_7 | |
163 | + structure ControlSet = gs_11 | |
164 | + structure Controls = gs_8 | |
165 | + structure List = gs_2 | |
166 | + structure ListMergeSort = gs_9 | |
167 | + structure OS = gs_19 | |
168 | + registry.sml | |
169 | + in | |
170 | + structure gs_20 = ControlRegistry | |
171 | + end | |
172 | +in | |
173 | + signature CONTROLS = gs_5 | |
174 | + signature CONTROL_REGISTRY = gs_12 | |
175 | + signature CONTROL_SET = gs_10 | |
176 | + signature CONTROL_UTIL = gs_17 | |
177 | + structure ControlRegistry = gs_20 | |
178 | + structure ControlSet = gs_11 | |
179 | + structure ControlUtil = gs_18 | |
180 | + structure Controls = gs_8 | |
181 | +end | |
182 | +end | |
183 | + | |
184 | +end | |
185 | diff --git a/HTML/html-lex.sml b/HTML/html-lex.sml | |
186 | index f1de5c0..9ffd254 100644 | |
187 | --- a/HTML/html-lex.sml | |
188 | +++ b/HTML/html-lex.sml | |
189 | @@ -178,7 +178,7 @@ Vector.fromList [] | |
190 | (fn (~1, _, oldMatches) => yystuck oldMatches | |
191 | | (curState, strm, oldMatches) => let | |
192 | val (transitions, finals') = Vector.sub (yytable, curState) | |
193 | - val finals = map (fn i => Vector.sub (actTable, i)) finals' | |
194 | + val finals = List.map (fn i => Vector.sub (actTable, i)) finals' | |
195 | fun tryfinal() = | |
196 | yystuck (yyactsToMatches (strm, finals, oldMatches)) | |
197 | fun find (c, []) = NONE | |
198 | @@ -990,7 +990,6 @@ end | |
199 | end | |
200 | in | |
201 | fun makeLexer yyinputN = mk (yyInput.mkStream yyinputN) | |
202 | - fun makeLexer' ins = mk (yyInput.mkStream ins) | |
203 | end | |
204 | ||
205 | end | |
206 | diff --git a/HTML/html-lib.mlb b/HTML/html-lib.mlb | |
207 | new file mode 100644 | |
208 | index 0000000..a5f8ca3 | |
209 | --- /dev/null | |
210 | +++ b/HTML/html-lib.mlb | |
211 | @@ -0,0 +1,302 @@ | |
212 | + | |
213 | +ann | |
214 | + "nonexhaustiveBind warn" "nonexhaustiveMatch warn" | |
215 | + "redundantBind warn" "redundantMatch warn" | |
216 | + "sequenceNonUnit ignore" | |
217 | + "warnUnused false" "forceUsed" | |
218 | + "allowOrPats true" "allowVectorExpsAndPats true" | |
219 | +in | |
220 | + | |
221 | +local | |
222 | + basis l5 = | |
223 | + bas | |
224 | + (* $/basis.cm ====> *) $(SML_LIB)/basis/basis.mlb $(SML_LIB)/basis/unsafe.mlb | |
225 | + end | |
226 | + basis l46 = | |
227 | + bas | |
228 | + (* $/smlnj-lib.cm ====> *) $(SML_LIB)/smlnj-lib/Util/smlnj-lib.mlb | |
229 | + end | |
230 | + basis l35 = | |
231 | + bas | |
232 | + (* $/ml-yacc-lib.cm ====> *) $(SML_LIB)/mlyacc-lib/mlyacc-lib.mlb | |
233 | + end | |
234 | +in | |
235 | +local | |
236 | + $(SML_LIB)/basis/pervasive.mlb | |
237 | + local | |
238 | + open l5 | |
239 | + in | |
240 | + structure gs_0 = General | |
241 | + end | |
242 | + local | |
243 | + open l5 | |
244 | + in | |
245 | + structure gs_1 = String | |
246 | + end | |
247 | + local | |
248 | + open l5 | |
249 | + in | |
250 | + structure gs_2 = List | |
251 | + end | |
252 | + local | |
253 | + open l5 | |
254 | + in | |
255 | + structure gs_3 = Char | |
256 | + end | |
257 | + local | |
258 | + html-sig.sml | |
259 | + in | |
260 | + signature gs_4 = HTML | |
261 | + end | |
262 | + local | |
263 | + structure Char = gs_3 | |
264 | + structure General = gs_0 | |
265 | + signature HTML = gs_4 | |
266 | + structure List = gs_2 | |
267 | + structure String = gs_1 | |
268 | + html.sml | |
269 | + in | |
270 | + structure gs_5 = HTML | |
271 | + end | |
272 | + local | |
273 | + structure HTML = gs_5 | |
274 | + make-html.sml | |
275 | + in | |
276 | + structure gs_6 = MakeHTML | |
277 | + end | |
278 | + local | |
279 | + structure HTML = gs_5 | |
280 | + html-defaults.sml | |
281 | + in | |
282 | + structure gs_7 = HTMLDefaults | |
283 | + end | |
284 | + local | |
285 | + html-error-sig.sml | |
286 | + in | |
287 | + signature gs_8 = HTML_ERROR | |
288 | + end | |
289 | + local | |
290 | + open l35 | |
291 | + in | |
292 | + functor gs_9 = Join | |
293 | + functor gs_10 = JoinWithArg | |
294 | + end | |
295 | + local | |
296 | + open l35 | |
297 | + in | |
298 | + structure gs_11 = LrParser | |
299 | + end | |
300 | + local | |
301 | + open l5 | |
302 | + in | |
303 | + structure gs_12 = TextIO | |
304 | + end | |
305 | + local | |
306 | + open l46 | |
307 | + in | |
308 | + structure gs_13 = Format | |
309 | + end | |
310 | + local | |
311 | + structure Format = gs_13 | |
312 | + structure HTML = gs_5 | |
313 | + signature HTML_ERROR = gs_8 | |
314 | + structure List = gs_2 | |
315 | + check-html-fn.sml | |
316 | + in | |
317 | + functor gs_14 = CheckHTMLFn | |
318 | + end | |
319 | + local | |
320 | + open l5 | |
321 | + in | |
322 | + structure gs_15 = IO | |
323 | + end | |
324 | + local | |
325 | + open l5 | |
326 | + in | |
327 | + structure gs_16 = TextPrimIO | |
328 | + end | |
329 | + local | |
330 | + open l5 | |
331 | + in | |
332 | + structure gs_17 = Vector | |
333 | + end | |
334 | + local | |
335 | + open l5 | |
336 | + in | |
337 | + structure gs_18 = Substring | |
338 | + end | |
339 | + local | |
340 | + open l46 | |
341 | + in | |
342 | + functor gs_19 = HashTableFn | |
343 | + end | |
344 | + local | |
345 | + open l46 | |
346 | + in | |
347 | + structure gs_20 = HashString | |
348 | + end | |
349 | + local | |
350 | + html-attr-vals.sml | |
351 | + in | |
352 | + structure gs_21 = HTMLAttrVals | |
353 | + end | |
354 | + local | |
355 | + structure HTML = gs_5 | |
356 | + structure HTMLAttrVals = gs_21 | |
357 | + html-attrs-sig.sml | |
358 | + in | |
359 | + signature gs_22 = HTML_ATTRS | |
360 | + end | |
361 | + local | |
362 | + open l35 | |
363 | + in | |
364 | + signature gs_23 = ARG_LEXER | |
365 | + signature gs_24 = ARG_PARSER | |
366 | + signature gs_25 = LEXER | |
367 | + signature gs_26 = LR_PARSER | |
368 | + signature gs_27 = LR_TABLE | |
369 | + signature gs_28 = PARSER | |
370 | + signature gs_29 = PARSER_DATA | |
371 | + signature gs_30 = STREAM | |
372 | + signature gs_31 = TOKEN | |
373 | + end | |
374 | + local | |
375 | + signature ARG_LEXER = gs_23 | |
376 | + signature ARG_PARSER = gs_24 | |
377 | + structure HTMLAttrVals = gs_21 | |
378 | + signature LEXER = gs_25 | |
379 | + signature LR_PARSER = gs_26 | |
380 | + signature LR_TABLE = gs_27 | |
381 | + signature PARSER = gs_28 | |
382 | + signature PARSER_DATA = gs_29 | |
383 | + signature STREAM = gs_30 | |
384 | + signature TOKEN = gs_31 | |
385 | + html-gram.sig | |
386 | + in | |
387 | + signature gs_32 = HTML_LRVALS | |
388 | + signature gs_33 = HTML_TOKENS | |
389 | + end | |
390 | + local | |
391 | + structure Char = gs_3 | |
392 | + signature HTML_ATTRS = gs_22 | |
393 | + signature HTML_ERROR = gs_8 | |
394 | + signature HTML_LRVALS = gs_32 | |
395 | + signature HTML_TOKENS = gs_33 | |
396 | + structure HashString = gs_20 | |
397 | + functor HashTableFn = gs_19 | |
398 | + structure List = gs_2 | |
399 | + structure String = gs_1 | |
400 | + structure Substring = gs_18 | |
401 | + html-elements-fn.sml | |
402 | + in | |
403 | + functor gs_34 = HTMLElementsFn | |
404 | + end | |
405 | + local | |
406 | + structure Char = gs_3 | |
407 | + functor HTMLElementsFn = gs_34 | |
408 | + signature HTML_ATTRS = gs_22 | |
409 | + signature HTML_ERROR = gs_8 | |
410 | + signature HTML_LRVALS = gs_32 | |
411 | + signature HTML_TOKENS = gs_33 | |
412 | + structure IO = gs_15 | |
413 | + structure List = gs_2 | |
414 | + structure String = gs_1 | |
415 | + structure TextIO = gs_12 | |
416 | + structure TextPrimIO = gs_16 | |
417 | + structure Vector = gs_17 | |
418 | + html-lex.sml | |
419 | + in | |
420 | + functor gs_35 = HTMLLexFn | |
421 | + end | |
422 | + local | |
423 | + open l5 | |
424 | + in | |
425 | + structure gs_36 = Array | |
426 | + end | |
427 | + local | |
428 | + signature ARG_LEXER = gs_23 | |
429 | + signature ARG_PARSER = gs_24 | |
430 | + structure Array = gs_36 | |
431 | + structure Char = gs_3 | |
432 | + structure General = gs_0 | |
433 | + structure HTML = gs_5 | |
434 | + structure HTMLAttrVals = gs_21 | |
435 | + signature HTML_ATTRS = gs_22 | |
436 | + signature HTML_LRVALS = gs_32 | |
437 | + signature HTML_TOKENS = gs_33 | |
438 | + signature LEXER = gs_25 | |
439 | + signature LR_PARSER = gs_26 | |
440 | + signature LR_TABLE = gs_27 | |
441 | + structure List = gs_2 | |
442 | + signature PARSER = gs_28 | |
443 | + signature PARSER_DATA = gs_29 | |
444 | + signature STREAM = gs_30 | |
445 | + structure String = gs_1 | |
446 | + signature TOKEN = gs_31 | |
447 | + html-gram.sml | |
448 | + in | |
449 | + functor gs_37 = HTMLLrValsFn | |
450 | + end | |
451 | + local | |
452 | + open l5 | |
453 | + in | |
454 | + structure gs_38 = Int | |
455 | + end | |
456 | + local | |
457 | + structure Array = gs_36 | |
458 | + structure Char = gs_3 | |
459 | + structure HTML = gs_5 | |
460 | + structure HTMLAttrVals = gs_21 | |
461 | + signature HTML_ATTRS = gs_22 | |
462 | + signature HTML_ERROR = gs_8 | |
463 | + structure HashString = gs_20 | |
464 | + functor HashTableFn = gs_19 | |
465 | + structure Int = gs_38 | |
466 | + structure List = gs_2 | |
467 | + structure String = gs_1 | |
468 | + html-attrs-fn.sml | |
469 | + in | |
470 | + functor gs_39 = HTMLAttrsFn | |
471 | + end | |
472 | + local | |
473 | + functor CheckHTMLFn = gs_14 | |
474 | + structure HTML = gs_5 | |
475 | + functor HTMLAttrsFn = gs_39 | |
476 | + functor HTMLLexFn = gs_35 | |
477 | + functor HTMLLrValsFn = gs_37 | |
478 | + signature HTML_ERROR = gs_8 | |
479 | + functor Join = gs_9 | |
480 | + functor JoinWithArg = gs_10 | |
481 | + structure LrParser = gs_11 | |
482 | + structure TextIO = gs_12 | |
483 | + html-parser-fn.sml | |
484 | + in | |
485 | + functor gs_40 = HTMLParserFn | |
486 | + end | |
487 | + local | |
488 | + open l46 | |
489 | + in | |
490 | + structure gs_41 = ListFormat | |
491 | + end | |
492 | + local | |
493 | + structure Format = gs_13 | |
494 | + structure HTML = gs_5 | |
495 | + structure Int = gs_38 | |
496 | + structure List = gs_2 | |
497 | + structure ListFormat = gs_41 | |
498 | + pr-html.sml | |
499 | + in | |
500 | + structure gs_42 = PrHTML | |
501 | + end | |
502 | +in | |
503 | + signature HTML = gs_4 | |
504 | + structure HTML = gs_5 | |
505 | + structure HTMLDefaults = gs_7 | |
506 | + functor HTMLParserFn = gs_40 | |
507 | + signature HTML_ERROR = gs_8 | |
508 | + structure MakeHTML = gs_6 | |
509 | + structure PrHTML = gs_42 | |
510 | +end | |
511 | +end | |
512 | + | |
513 | +end | |
514 | diff --git a/HTML4/html4-attr.g.sml b/HTML4/html4-attr.g.sml | |
515 | index cfc415b..e0c2765 100644 | |
516 | --- a/HTML4/html4-attr.g.sml | |
517 | +++ b/HTML4/html4-attr.g.sml | |
518 | @@ -1,43 +1,41 @@ | |
519 | -structure | |
520 | -HTML4AttrTokens = struct | |
521 | - | |
522 | - datatype token = EOF | |
523 | - | NUMBER of string | |
524 | - | DOT | |
525 | - | STRINGLIT of string | |
526 | +structure HTML4AttrTokens = | |
527 | + struct | |
528 | + datatype token | |
529 | + = NAME of Atom.atom | |
530 | | EQUALS | |
531 | - | NAME of Atom.atom | |
532 | - | |
533 | - val allToks = [EOF, DOT, EQUALS] | |
534 | - | |
535 | + | STRINGLIT of string | |
536 | + | DOT | |
537 | + | NUMBER of string | |
538 | + | EOF | |
539 | + val allToks = [ | |
540 | + EQUALS, DOT, EOF | |
541 | + ] | |
542 | fun toString tok = | |
543 | (case (tok) | |
544 | - of (EOF) => "EOF" | |
545 | - | (NUMBER(_)) => "NUMBER" | |
546 | - | (DOT) => "." | |
547 | - | (STRINGLIT(_)) => "STRINGLIT" | |
548 | + of (NAME(_)) => "NAME" | |
549 | | (EQUALS) => "=" | |
550 | - | (NAME(_)) => "NAME" | |
551 | + | (STRINGLIT(_)) => "STRINGLIT" | |
552 | + | (DOT) => "." | |
553 | + | (NUMBER(_)) => "NUMBER" | |
554 | + | (EOF) => "EOF" | |
555 | (* end case *)) | |
556 | fun isKW tok = | |
557 | (case (tok) | |
558 | - of (EOF) => false | |
559 | - | (NUMBER(_)) => false | |
560 | - | (DOT) => false | |
561 | - | (STRINGLIT(_)) => false | |
562 | + of (NAME(_)) => false | |
563 | | (EQUALS) => false | |
564 | - | (NAME(_)) => false | |
565 | + | (STRINGLIT(_)) => false | |
566 | + | (DOT) => false | |
567 | + | (NUMBER(_)) => false | |
568 | + | (EOF) => false | |
569 | (* end case *)) | |
570 | + fun isEOF EOF = true | |
571 | + | isEOF _ = false | |
572 | + end (* HTML4AttrTokens *) | |
573 | ||
574 | - fun isEOF EOF = true | |
575 | - | isEOF _ = false | |
576 | - | |
577 | -end | |
578 | - | |
579 | -functor HTML4AttrParseFn(Lex : ANTLR_LEXER) = struct | |
580 | +functor HTML4AttrParseFn (Lex : ANTLR_LEXER) = struct | |
581 | ||
582 | local | |
583 | - structure Tok = | |
584 | + structure Tok = | |
585 | HTML4AttrTokens | |
586 | structure UserCode = | |
587 | struct | |
588 | @@ -60,47 +58,81 @@ fun attr_value_PROD_3_ACT (SR, NUMBER, SR_SPAN : (Lex.pos * Lex.pos), NUMBER_SPA | |
589 | structure Err = AntlrErrHandler( | |
590 | structure Tok = Tok | |
591 | structure Lex = Lex) | |
592 | + | |
593 | +(* replace functor with inline structure for better optimization | |
594 | structure EBNF = AntlrEBNF( | |
595 | struct | |
596 | type strm = Err.wstream | |
597 | val getSpan = Err.getSpan | |
598 | end) | |
599 | +*) | |
600 | + structure EBNF = | |
601 | + struct | |
602 | + fun optional (pred, parse, strm) = | |
603 | + if pred strm | |
604 | + then let | |
605 | + val (y, span, strm') = parse strm | |
606 | + in | |
607 | + (SOME y, span, strm') | |
608 | + end | |
609 | + else (NONE, Err.getSpan strm, strm) | |
610 | + | |
611 | + fun closure (pred, parse, strm) = let | |
612 | + fun iter (strm, (left, right), ys) = | |
613 | + if pred strm | |
614 | + then let | |
615 | + val (y, (_, right'), strm') = parse strm | |
616 | + in iter (strm', (left, right'), y::ys) | |
617 | + end | |
618 | + else (List.rev ys, (left, right), strm) | |
619 | + in | |
620 | + iter (strm, Err.getSpan strm, []) | |
621 | + end | |
622 | + | |
623 | + fun posclos (pred, parse, strm) = let | |
624 | + val (y, (left, _), strm') = parse strm | |
625 | + val (ys, (_, right), strm'') = closure (pred, parse, strm') | |
626 | + in | |
627 | + (y::ys, (left, right), strm'') | |
628 | + end | |
629 | + end | |
630 | ||
631 | fun mk lexFn = let | |
632 | fun getS() = {} | |
633 | fun putS{} = () | |
634 | -fun unwrap (ret, strm, repairs) = (ret, strm, repairs) val (eh, lex) = Err.mkErrHandler {get = getS, put = putS} | |
635 | +fun unwrap (ret, strm, repairs) = (ret, strm, repairs) | |
636 | + val (eh, lex) = Err.mkErrHandler {get = getS, put = putS} | |
637 | fun fail() = Err.failure eh | |
638 | fun tryProds (strm, prods) = let | |
639 | fun try [] = fail() | |
640 | - | try (prod :: prods) = | |
641 | - (Err.whileDisabled eh (fn() => prod strm)) | |
642 | + | try (prod :: prods) = | |
643 | + (Err.whileDisabled eh (fn() => prod strm)) | |
644 | handle Err.ParseError => try (prods) | |
645 | in try prods end | |
646 | -fun matchEOF strm = (case (lex(strm)) | |
647 | - of (Tok.EOF, span, strm') => ((), span, strm') | |
648 | - | _ => fail() | |
649 | -(* end case *)) | |
650 | -fun matchNUMBER strm = (case (lex(strm)) | |
651 | - of (Tok.NUMBER(x), span, strm') => (x, span, strm') | |
652 | - | _ => fail() | |
653 | -(* end case *)) | |
654 | -fun matchDOT strm = (case (lex(strm)) | |
655 | - of (Tok.DOT, span, strm') => ((), span, strm') | |
656 | - | _ => fail() | |
657 | -(* end case *)) | |
658 | -fun matchSTRINGLIT strm = (case (lex(strm)) | |
659 | - of (Tok.STRINGLIT(x), span, strm') => (x, span, strm') | |
660 | - | _ => fail() | |
661 | -(* end case *)) | |
662 | -fun matchEQUALS strm = (case (lex(strm)) | |
663 | - of (Tok.EQUALS, span, strm') => ((), span, strm') | |
664 | - | _ => fail() | |
665 | -(* end case *)) | |
666 | fun matchNAME strm = (case (lex(strm)) | |
667 | of (Tok.NAME(x), span, strm') => (x, span, strm') | |
668 | | _ => fail() | |
669 | (* end case *)) | |
670 | +fun matchEQUALS strm = (case (lex(strm)) | |
671 | + of (Tok.EQUALS, span, strm') => ((), span, strm') | |
672 | + | _ => fail() | |
673 | +(* end case *)) | |
674 | +fun matchSTRINGLIT strm = (case (lex(strm)) | |
675 | + of (Tok.STRINGLIT(x), span, strm') => (x, span, strm') | |
676 | + | _ => fail() | |
677 | +(* end case *)) | |
678 | +fun matchDOT strm = (case (lex(strm)) | |
679 | + of (Tok.DOT, span, strm') => ((), span, strm') | |
680 | + | _ => fail() | |
681 | +(* end case *)) | |
682 | +fun matchNUMBER strm = (case (lex(strm)) | |
683 | + of (Tok.NUMBER(x), span, strm') => (x, span, strm') | |
684 | + | _ => fail() | |
685 | +(* end case *)) | |
686 | +fun matchEOF strm = (case (lex(strm)) | |
687 | + of (Tok.EOF, span, strm') => ((), span, strm') | |
688 | + | _ => fail() | |
689 | +(* end case *)) | |
690 | ||
691 | val (attrs_NT) = | |
692 | let | |
693 | diff --git a/HTML4/html4-lib.cm b/HTML4/html4-lib.cm | |
694 | index 8248a55..dba213b 100644 | |
695 | --- a/HTML4/html4-lib.cm | |
696 | +++ b/HTML4/html4-lib.cm | |
697 | @@ -23,6 +23,9 @@ is | |
698 | $/smlnj-lib.cm | |
699 | $/ml-lpt-lib.cm | |
700 | ||
701 | + $/pp-lib.cm | |
702 | + pp-init.sml | |
703 | + | |
704 | html4.g : ml-antlr | |
705 | html4.l : ml-ulex | |
706 | ||
707 | diff --git a/HTML4/html4-lib.mlb b/HTML4/html4-lib.mlb | |
708 | new file mode 100644 | |
709 | index 0000000..46eaf3d | |
710 | --- /dev/null | |
711 | +++ b/HTML4/html4-lib.mlb | |
712 | @@ -0,0 +1,279 @@ | |
713 | + | |
714 | +ann | |
715 | + "nonexhaustiveBind ignore" "nonexhaustiveMatch ignore" | |
716 | + "redundantBind warn" "redundantMatch warn" | |
717 | + "sequenceNonUnit ignore" | |
718 | + "warnUnused false" "forceUsed" | |
719 | +in | |
720 | + | |
721 | +local | |
722 | + basis l4 = | |
723 | + bas | |
724 | + (* $/basis.cm ====> *) $(SML_LIB)/basis/basis.mlb | |
725 | + end | |
726 | + basis l8 = | |
727 | + bas | |
728 | + (* $/smlnj-lib.cm ====> *) $(SML_LIB)/smlnj-lib/Util/smlnj-lib.mlb | |
729 | + end | |
730 | + basis l55 = | |
731 | + bas | |
732 | + (* $/ml-lpt-lib.cm ====> *) $(SML_LIB)/mllpt-lib/mllpt-lib.mlb | |
733 | + end | |
734 | +in | |
735 | +local | |
736 | + $(SML_LIB)/basis/pervasive.mlb | |
737 | + local | |
738 | + open l4 | |
739 | + in | |
740 | + structure gs_0 = String | |
741 | + end | |
742 | + local | |
743 | + open l8 | |
744 | + in | |
745 | + structure gs_1 = Atom | |
746 | + end | |
747 | + local | |
748 | + structure Atom = gs_1 | |
749 | + structure String = gs_0 | |
750 | + html4-utils.sml | |
751 | + in | |
752 | + structure gs_2 = HTML4Utils | |
753 | + end | |
754 | + local | |
755 | + open l8 | |
756 | + in | |
757 | + structure gs_3 = Format | |
758 | + end | |
759 | + local | |
760 | + open l4 | |
761 | + in | |
762 | + structure gs_4 = IntInf | |
763 | + end | |
764 | + local | |
765 | + open l4 | |
766 | + in | |
767 | + structure gs_5 = List | |
768 | + end | |
769 | + local | |
770 | + structure Atom = gs_1 | |
771 | + structure IntInf = gs_4 | |
772 | + html4.sig | |
773 | + in | |
774 | + signature gs_6 = HTML4 | |
775 | + end | |
776 | + local | |
777 | + structure Atom = gs_1 | |
778 | + signature HTML4 = gs_6 | |
779 | + structure IntInf = gs_4 | |
780 | + html4.sml | |
781 | + in | |
782 | + structure gs_7 = HTML4 | |
783 | + end | |
784 | + local | |
785 | + structure Atom = gs_1 | |
786 | + structure Format = gs_3 | |
787 | + structure HTML4 = gs_7 | |
788 | + structure IntInf = gs_4 | |
789 | + structure List = gs_5 | |
790 | + structure String = gs_0 | |
791 | + html4-print.sml | |
792 | + in | |
793 | + structure gs_8 = HTML4Print | |
794 | + end | |
795 | + local | |
796 | + structure Atom = gs_1 | |
797 | + html4-attrs.sml | |
798 | + in | |
799 | + structure gs_9 = HTML4Attrs | |
800 | + end | |
801 | + local | |
802 | + open l8 | |
803 | + in | |
804 | + signature gs_10 = ORD_MAP | |
805 | + end | |
806 | + local | |
807 | + open l8 | |
808 | + in | |
809 | + functor gs_11 = RedBlackMapFn | |
810 | + end | |
811 | + local | |
812 | + open l4 | |
813 | + in | |
814 | + structure gs_12 = CharVectorSlice | |
815 | + end | |
816 | + local | |
817 | + open l4 | |
818 | + in | |
819 | + structure gs_13 = Substring | |
820 | + end | |
821 | + local | |
822 | + open l4 | |
823 | + in | |
824 | + structure gs_14 = Char | |
825 | + end | |
826 | + local | |
827 | + open l55 | |
828 | + in | |
829 | + structure gs_15 = AntlrStreamPos | |
830 | + end | |
831 | + local | |
832 | + open l4 | |
833 | + in | |
834 | + structure gs_16 = TextIO | |
835 | + end | |
836 | + local | |
837 | + open l55 | |
838 | + in | |
839 | + functor gs_17 = AntlrErrHandler | |
840 | + end | |
841 | + local | |
842 | + open l55 | |
843 | + in | |
844 | + signature gs_18 = ANTLR_LEXER | |
845 | + end | |
846 | + local | |
847 | + signature ANTLR_LEXER = gs_18 | |
848 | + functor AntlrErrHandler = gs_17 | |
849 | + structure Atom = gs_1 | |
850 | + structure HTML4Utils = gs_2 | |
851 | + structure IntInf = gs_4 | |
852 | + structure List = gs_5 | |
853 | + html4.g.sml | |
854 | + in | |
855 | + functor gs_19 = HTML4ParseFn | |
856 | + structure gs_20 = HTML4Tokens | |
857 | + end | |
858 | + local | |
859 | + signature ANTLR_LEXER = gs_18 | |
860 | + functor AntlrErrHandler = gs_17 | |
861 | + structure Atom = gs_1 | |
862 | + structure List = gs_5 | |
863 | + structure String = gs_0 | |
864 | + html4-attr.g.sml | |
865 | + in | |
866 | + functor gs_21 = HTML4AttrParseFn | |
867 | + structure gs_22 = HTML4AttrTokens | |
868 | + end | |
869 | + local | |
870 | + open l4 | |
871 | + in | |
872 | + structure gs_23 = Vector | |
873 | + end | |
874 | + local | |
875 | + open l55 | |
876 | + in | |
877 | + structure gs_24 = ULexBuffer | |
878 | + end | |
879 | + local | |
880 | + open l55 | |
881 | + in | |
882 | + structure gs_25 = UTF8 | |
883 | + end | |
884 | + local | |
885 | + structure AntlrStreamPos = gs_15 | |
886 | + structure Atom = gs_1 | |
887 | + functor HTML4AttrParseFn = gs_21 | |
888 | + structure HTML4AttrTokens = gs_22 | |
889 | + structure List = gs_5 | |
890 | + structure String = gs_0 | |
891 | + structure Substring = gs_13 | |
892 | + structure TextIO = gs_16 | |
893 | + structure ULexBuffer = gs_24 | |
894 | + structure UTF8 = gs_25 | |
895 | + structure Vector = gs_23 | |
896 | + html4-attr.l.sml | |
897 | + in | |
898 | + structure gs_26 = HTML4AttrLexer | |
899 | + end | |
900 | + local | |
901 | + structure AntlrStreamPos = gs_15 | |
902 | + structure Atom = gs_1 | |
903 | + structure Char = gs_14 | |
904 | + structure CharVectorSlice = gs_12 | |
905 | + structure HTML4AttrLexer = gs_26 | |
906 | + functor HTML4AttrParseFn = gs_21 | |
907 | + structure HTML4AttrTokens = gs_22 | |
908 | + functor HTML4ParseFn = gs_19 | |
909 | + structure HTML4Tokens = gs_20 | |
910 | + structure HTML4Utils = gs_2 | |
911 | + structure IntInf = gs_4 | |
912 | + signature ORD_MAP = gs_10 | |
913 | + functor RedBlackMapFn = gs_11 | |
914 | + structure String = gs_0 | |
915 | + structure Substring = gs_13 | |
916 | + structure TextIO = gs_16 | |
917 | + html4-token-utils.sml | |
918 | + in | |
919 | + structure gs_27 = HTML4TokenUtils | |
920 | + end | |
921 | + local | |
922 | + structure Atom = gs_1 | |
923 | + structure HTML4 = gs_7 | |
924 | + html4-entities.sml | |
925 | + in | |
926 | + structure gs_28 = HTML4Entities | |
927 | + end | |
928 | + local | |
929 | + open l4 | |
930 | + in | |
931 | + structure gs_29 = CharVector | |
932 | + end | |
933 | + local | |
934 | + open l4 | |
935 | + in | |
936 | + structure gs_30 = Option | |
937 | + end | |
938 | + local | |
939 | + open l4 | |
940 | + in | |
941 | + structure gs_31 = StringCvt | |
942 | + end | |
943 | + local | |
944 | + structure AntlrStreamPos = gs_15 | |
945 | + structure Atom = gs_1 | |
946 | + structure HTML4TokenUtils = gs_27 | |
947 | + structure IntInf = gs_4 | |
948 | + structure List = gs_5 | |
949 | + structure String = gs_0 | |
950 | + structure StringCvt = gs_31 | |
951 | + structure Substring = gs_13 | |
952 | + structure TextIO = gs_16 | |
953 | + structure ULexBuffer = gs_24 | |
954 | + structure UTF8 = gs_25 | |
955 | + structure Vector = gs_23 | |
956 | + html4.l.sml | |
957 | + in | |
958 | + structure gs_32 = HTML4Lexer | |
959 | + end | |
960 | + local | |
961 | + structure AntlrStreamPos = gs_15 | |
962 | + structure Atom = gs_1 | |
963 | + structure Char = gs_14 | |
964 | + structure CharVector = gs_29 | |
965 | + structure HTML4 = gs_7 | |
966 | + structure HTML4Lexer = gs_32 | |
967 | + functor HTML4ParseFn = gs_19 | |
968 | + structure HTML4TokenUtils = gs_27 | |
969 | + structure HTML4Tokens = gs_20 | |
970 | + structure HTML4Utils = gs_2 | |
971 | + structure Option = gs_30 | |
972 | + structure String = gs_0 | |
973 | + structure TextIO = gs_16 | |
974 | + html4-parser.sml | |
975 | + in | |
976 | + structure gs_33 = HTML4Parser | |
977 | + end | |
978 | +in | |
979 | + signature HTML4 = gs_6 | |
980 | + structure HTML4 = gs_7 | |
981 | + structure HTML4Attrs = gs_9 | |
982 | + structure HTML4Entities = gs_28 | |
983 | + structure HTML4Parser = gs_33 | |
984 | + structure HTML4Print = gs_8 | |
985 | + structure HTML4TokenUtils = gs_27 | |
986 | + structure HTML4Tokens = gs_20 | |
987 | + structure HTML4Utils = gs_2 | |
988 | +end | |
989 | +end | |
990 | + | |
991 | +end | |
992 | diff --git a/HTML4/html4.g.sml b/HTML4/html4.g.sml | |
993 | index 52d716b..75e445f 100644 | |
994 | --- a/HTML4/html4.g.sml | |
995 | +++ b/HTML4/html4.g.sml | |
996 | @@ -1,559 +1,557 @@ | |
997 | -structure | |
998 | -HTML4Tokens = struct | |
999 | - | |
1000 | - datatype token = EOF | |
1001 | - | ENDVAR | |
1002 | - | STARTVAR of HTML4Utils.tag_payload | |
1003 | - | ENDUL | |
1004 | - | STARTUL of HTML4Utils.tag_payload | |
1005 | - | ENDU | |
1006 | - | STARTU of HTML4Utils.tag_payload | |
1007 | - | ENDTT | |
1008 | - | STARTTT of HTML4Utils.tag_payload | |
1009 | - | ENDTR | |
1010 | - | STARTTR of HTML4Utils.tag_payload | |
1011 | - | ENDTITLE | |
1012 | - | STARTTITLE of HTML4Utils.tag_payload | |
1013 | - | ENDTHEAD | |
1014 | - | STARTTHEAD of HTML4Utils.tag_payload | |
1015 | - | ENDTH | |
1016 | - | STARTTH of HTML4Utils.tag_payload | |
1017 | - | ENDTFOOT | |
1018 | - | STARTTFOOT of HTML4Utils.tag_payload | |
1019 | - | ENDTEXTAREA | |
1020 | - | STARTTEXTAREA of HTML4Utils.tag_payload | |
1021 | - | ENDTD | |
1022 | - | STARTTD of HTML4Utils.tag_payload | |
1023 | - | ENDTBODY | |
1024 | - | STARTTBODY of HTML4Utils.tag_payload | |
1025 | - | ENDTABLE | |
1026 | - | STARTTABLE of HTML4Utils.tag_payload | |
1027 | - | ENDSUP | |
1028 | - | STARTSUP of HTML4Utils.tag_payload | |
1029 | - | ENDSUB | |
1030 | - | STARTSUB of HTML4Utils.tag_payload | |
1031 | - | ENDSTYLE | |
1032 | - | STARTSTYLE of HTML4Utils.tag_payload | |
1033 | - | ENDSTRONG | |
1034 | - | STARTSTRONG of HTML4Utils.tag_payload | |
1035 | - | ENDSTRIKE | |
1036 | - | STARTSTRIKE of HTML4Utils.tag_payload | |
1037 | - | ENDSPAN | |
1038 | - | STARTSPAN of HTML4Utils.tag_payload | |
1039 | - | ENDSMALL | |
1040 | - | STARTSMALL of HTML4Utils.tag_payload | |
1041 | - | ENDSELECT | |
1042 | - | STARTSELECT of HTML4Utils.tag_payload | |
1043 | - | ENDSCRIPT | |
1044 | - | STARTSCRIPT of HTML4Utils.tag_payload | |
1045 | - | ENDSAMP | |
1046 | - | STARTSAMP of HTML4Utils.tag_payload | |
1047 | - | ENDS | |
1048 | - | STARTS of HTML4Utils.tag_payload | |
1049 | - | ENDQ | |
1050 | - | STARTQ of HTML4Utils.tag_payload | |
1051 | - | ENDPRE | |
1052 | - | STARTPRE of HTML4Utils.tag_payload | |
1053 | - | STARTPARAM of HTML4Utils.tag_payload | |
1054 | - | ENDP | |
1055 | - | STARTP of HTML4Utils.tag_payload | |
1056 | - | ENDOPTION | |
1057 | - | STARTOPTION of HTML4Utils.tag_payload | |
1058 | - | ENDOPTGROUP | |
1059 | - | STARTOPTGROUP of HTML4Utils.tag_payload | |
1060 | - | ENDOL | |
1061 | - | STARTOL of HTML4Utils.tag_payload | |
1062 | - | ENDOBJECT | |
1063 | - | STARTOBJECT of HTML4Utils.tag_payload | |
1064 | - | ENDNOSCRIPT | |
1065 | - | STARTNOSCRIPT of HTML4Utils.tag_payload | |
1066 | - | ENDNOFRAMES | |
1067 | - | STARTNOFRAMES of HTML4Utils.tag_payload | |
1068 | - | STARTMETA of HTML4Utils.tag_payload | |
1069 | - | ENDMENU | |
1070 | - | STARTMENU of HTML4Utils.tag_payload | |
1071 | - | ENDMAP | |
1072 | - | STARTMAP of HTML4Utils.tag_payload | |
1073 | - | STARTLINK of HTML4Utils.tag_payload | |
1074 | - | ENDLI | |
1075 | - | STARTLI of HTML4Utils.tag_payload | |
1076 | - | ENDLEGEND | |
1077 | - | STARTLEGEND of HTML4Utils.tag_payload | |
1078 | - | ENDLABEL | |
1079 | - | STARTLABEL of HTML4Utils.tag_payload | |
1080 | - | ENDKBD | |
1081 | - | STARTKBD of HTML4Utils.tag_payload | |
1082 | - | STARTISINDEX of HTML4Utils.tag_payload | |
1083 | - | ENDINS | |
1084 | - | STARTINS of HTML4Utils.tag_payload | |
1085 | - | STARTINPUT of HTML4Utils.tag_payload | |
1086 | - | STARTIMG of HTML4Utils.tag_payload | |
1087 | - | ENDIFRAME | |
1088 | - | STARTIFRAME of HTML4Utils.tag_payload | |
1089 | - | ENDI | |
1090 | - | STARTI of HTML4Utils.tag_payload | |
1091 | - | ENDHTML | |
1092 | - | STARTHTML of HTML4Utils.tag_payload | |
1093 | - | STARTHR of HTML4Utils.tag_payload | |
1094 | - | ENDHEAD | |
1095 | - | STARTHEAD of HTML4Utils.tag_payload | |
1096 | - | ENDH6 | |
1097 | - | STARTH6 of HTML4Utils.tag_payload | |
1098 | - | ENDH5 | |
1099 | - | STARTH5 of HTML4Utils.tag_payload | |
1100 | - | ENDH4 | |
1101 | - | STARTH4 of HTML4Utils.tag_payload | |
1102 | - | ENDH3 | |
1103 | - | STARTH3 of HTML4Utils.tag_payload | |
1104 | - | ENDH2 | |
1105 | - | STARTH2 of HTML4Utils.tag_payload | |
1106 | - | ENDH1 | |
1107 | - | STARTH1 of HTML4Utils.tag_payload | |
1108 | - | ENDFRAMESET | |
1109 | - | STARTFRAMESET of HTML4Utils.tag_payload | |
1110 | - | STARTFRAME of HTML4Utils.tag_payload | |
1111 | - | ENDFORM | |
1112 | - | STARTFORM of HTML4Utils.tag_payload | |
1113 | - | ENDFONT | |
1114 | - | STARTFONT of HTML4Utils.tag_payload | |
1115 | - | ENDFIELDSET | |
1116 | - | STARTFIELDSET of HTML4Utils.tag_payload | |
1117 | - | ENDEM | |
1118 | - | STARTEM of HTML4Utils.tag_payload | |
1119 | - | ENDDT | |
1120 | - | STARTDT of HTML4Utils.tag_payload | |
1121 | - | ENDDL | |
1122 | - | STARTDL of HTML4Utils.tag_payload | |
1123 | - | ENDDIV | |
1124 | - | STARTDIV of HTML4Utils.tag_payload | |
1125 | - | ENDDIR | |
1126 | - | STARTDIR of HTML4Utils.tag_payload | |
1127 | - | ENDDFN | |
1128 | - | STARTDFN of HTML4Utils.tag_payload | |
1129 | - | ENDDEL | |
1130 | - | STARTDEL of HTML4Utils.tag_payload | |
1131 | - | ENDDD | |
1132 | - | STARTDD of HTML4Utils.tag_payload | |
1133 | - | ENDCOLGROUP | |
1134 | - | STARTCOLGROUP of HTML4Utils.tag_payload | |
1135 | - | STARTCOL of HTML4Utils.tag_payload | |
1136 | - | ENDCODE | |
1137 | - | STARTCODE of HTML4Utils.tag_payload | |
1138 | - | ENDCITE | |
1139 | - | STARTCITE of HTML4Utils.tag_payload | |
1140 | - | ENDCENTER | |
1141 | - | STARTCENTER of HTML4Utils.tag_payload | |
1142 | - | ENDCAPTION | |
1143 | - | STARTCAPTION of HTML4Utils.tag_payload | |
1144 | - | ENDBUTTON | |
1145 | - | STARTBUTTON of HTML4Utils.tag_payload | |
1146 | - | STARTBR of HTML4Utils.tag_payload | |
1147 | - | ENDBODY | |
1148 | - | STARTBODY of HTML4Utils.tag_payload | |
1149 | - | ENDBLOCKQUOTE | |
1150 | - | STARTBLOCKQUOTE of HTML4Utils.tag_payload | |
1151 | - | ENDBIG | |
1152 | - | STARTBIG of HTML4Utils.tag_payload | |
1153 | - | ENDBDO | |
1154 | - | STARTBDO of HTML4Utils.tag_payload | |
1155 | - | STARTBASEFONT of HTML4Utils.tag_payload | |
1156 | - | STARTBASE of HTML4Utils.tag_payload | |
1157 | - | ENDB | |
1158 | - | STARTB of HTML4Utils.tag_payload | |
1159 | - | STARTAREA of HTML4Utils.tag_payload | |
1160 | - | ENDAPPLET | |
1161 | - | STARTAPPLET of HTML4Utils.tag_payload | |
1162 | - | ENDADDRESS | |
1163 | - | STARTADDRESS of HTML4Utils.tag_payload | |
1164 | - | ENDACRONYM | |
1165 | - | STARTACRONYM of HTML4Utils.tag_payload | |
1166 | - | ENDABBR | |
1167 | - | STARTABBR of HTML4Utils.tag_payload | |
1168 | - | ENDA | |
1169 | - | STARTA of HTML4Utils.tag_payload | |
1170 | - | XML_PROCESSING of string | |
1171 | - | ENTITY_REF of Atom.atom | |
1172 | - | CHAR_REF of IntInf.int | |
1173 | - | DOCTYPE of string | |
1174 | - | PCDATA of string | |
1175 | - | COMMENT of string | |
1176 | +structure HTML4Tokens = | |
1177 | + struct | |
1178 | + datatype token | |
1179 | + = OPENTAG of Atom.atom * HTML4Utils.tag_payload | |
1180 | | CLOSETAG of Atom.atom | |
1181 | - | OPENTAG of Atom.atom * HTML4Utils.tag_payload | |
1182 | - | |
1183 | - val allToks = [EOF, ENDVAR, ENDUL, ENDU, ENDTT, ENDTR, ENDTITLE, ENDTHEAD, ENDTH, ENDTFOOT, ENDTEXTAREA, ENDTD, ENDTBODY, ENDTABLE, ENDSUP, ENDSUB, ENDSTYLE, ENDSTRONG, ENDSTRIKE, ENDSPAN, ENDSMALL, ENDSELECT, ENDSCRIPT, ENDSAMP, ENDS, ENDQ, ENDPRE, ENDP, ENDOPTION, ENDOPTGROUP, ENDOL, ENDOBJECT, ENDNOSCRIPT, ENDNOFRAMES, ENDMENU, ENDMAP, ENDLI, ENDLEGEND, ENDLABEL, ENDKBD, ENDINS, ENDIFRAME, ENDI, ENDHTML, ENDHEAD, ENDH6, ENDH5, ENDH4, ENDH3, ENDH2, ENDH1, ENDFRAMESET, ENDFORM, ENDFONT, ENDFIELDSET, ENDEM, ENDDT, ENDDL, ENDDIV, ENDDIR, ENDDFN, ENDDEL, ENDDD, ENDCOLGROUP, ENDCODE, ENDCITE, ENDCENTER, ENDCAPTION, ENDBUTTON, ENDBODY, ENDBLOCKQUOTE, ENDBIG, ENDBDO, ENDB, ENDAPPLET, ENDADDRESS, ENDACRONYM, ENDABBR, ENDA] | |
1184 | - | |
1185 | + | COMMENT of string | |
1186 | + | PCDATA of string | |
1187 | + | DOCTYPE of string | |
1188 | + | CHAR_REF of IntInf.int | |
1189 | + | ENTITY_REF of Atom.atom | |
1190 | + | XML_PROCESSING of string | |
1191 | + | STARTA of HTML4Utils.tag_payload | |
1192 | + | ENDA | |
1193 | + | STARTABBR of HTML4Utils.tag_payload | |
1194 | + | ENDABBR | |
1195 | + | STARTACRONYM of HTML4Utils.tag_payload | |
1196 | + | ENDACRONYM | |
1197 | + | STARTADDRESS of HTML4Utils.tag_payload | |
1198 | + | ENDADDRESS | |
1199 | + | STARTAPPLET of HTML4Utils.tag_payload | |
1200 | + | ENDAPPLET | |
1201 | + | STARTAREA of HTML4Utils.tag_payload | |
1202 | + | STARTB of HTML4Utils.tag_payload | |
1203 | + | ENDB | |
1204 | + | STARTBASE of HTML4Utils.tag_payload | |
1205 | + | STARTBASEFONT of HTML4Utils.tag_payload | |
1206 | + | STARTBDO of HTML4Utils.tag_payload | |
1207 | + | ENDBDO | |
1208 | + | STARTBIG of HTML4Utils.tag_payload | |
1209 | + | ENDBIG | |
1210 | + | STARTBLOCKQUOTE of HTML4Utils.tag_payload | |
1211 | + | ENDBLOCKQUOTE | |
1212 | + | STARTBODY of HTML4Utils.tag_payload | |
1213 | + | ENDBODY | |
1214 | + | STARTBR of HTML4Utils.tag_payload | |
1215 | + | STARTBUTTON of HTML4Utils.tag_payload | |
1216 | + | ENDBUTTON | |
1217 | + | STARTCAPTION of HTML4Utils.tag_payload | |
1218 | + | ENDCAPTION | |
1219 | + | STARTCENTER of HTML4Utils.tag_payload | |
1220 | + | ENDCENTER | |
1221 | + | STARTCITE of HTML4Utils.tag_payload | |
1222 | + | ENDCITE | |
1223 | + | STARTCODE of HTML4Utils.tag_payload | |
1224 | + | ENDCODE | |
1225 | + | STARTCOL of HTML4Utils.tag_payload | |
1226 | + | STARTCOLGROUP of HTML4Utils.tag_payload | |
1227 | + | ENDCOLGROUP | |
1228 | + | STARTDD of HTML4Utils.tag_payload | |
1229 | + | ENDDD | |
1230 | + | STARTDEL of HTML4Utils.tag_payload | |
1231 | + | ENDDEL | |
1232 | + | STARTDFN of HTML4Utils.tag_payload | |
1233 | + | ENDDFN | |
1234 | + | STARTDIR of HTML4Utils.tag_payload | |
1235 | + | ENDDIR | |
1236 | + | STARTDIV of HTML4Utils.tag_payload | |
1237 | + | ENDDIV | |
1238 | + | STARTDL of HTML4Utils.tag_payload | |
1239 | + | ENDDL | |
1240 | + | STARTDT of HTML4Utils.tag_payload | |
1241 | + | ENDDT | |
1242 | + | STARTEM of HTML4Utils.tag_payload | |
1243 | + | ENDEM | |
1244 | + | STARTFIELDSET of HTML4Utils.tag_payload | |
1245 | + | ENDFIELDSET | |
1246 | + | STARTFONT of HTML4Utils.tag_payload | |
1247 | + | ENDFONT | |
1248 | + | STARTFORM of HTML4Utils.tag_payload | |
1249 | + | ENDFORM | |
1250 | + | STARTFRAME of HTML4Utils.tag_payload | |
1251 | + | STARTFRAMESET of HTML4Utils.tag_payload | |
1252 | + | ENDFRAMESET | |
1253 | + | STARTH1 of HTML4Utils.tag_payload | |
1254 | + | ENDH1 | |
1255 | + | STARTH2 of HTML4Utils.tag_payload | |
1256 | + | ENDH2 | |
1257 | + | STARTH3 of HTML4Utils.tag_payload | |
1258 | + | ENDH3 | |
1259 | + | STARTH4 of HTML4Utils.tag_payload | |
1260 | + | ENDH4 | |
1261 | + | STARTH5 of HTML4Utils.tag_payload | |
1262 | + | ENDH5 | |
1263 | + | STARTH6 of HTML4Utils.tag_payload | |
1264 | + | ENDH6 | |
1265 | + | STARTHEAD of HTML4Utils.tag_payload | |
1266 | + | ENDHEAD | |
1267 | + | STARTHR of HTML4Utils.tag_payload | |
1268 | + | STARTHTML of HTML4Utils.tag_payload | |
1269 | + | ENDHTML | |
1270 | + | STARTI of HTML4Utils.tag_payload | |
1271 | + | ENDI | |
1272 | + | STARTIFRAME of HTML4Utils.tag_payload | |
1273 | + | ENDIFRAME | |
1274 | + | STARTIMG of HTML4Utils.tag_payload | |
1275 | + | STARTINPUT of HTML4Utils.tag_payload | |
1276 | + | STARTINS of HTML4Utils.tag_payload | |
1277 | + | ENDINS | |
1278 | + | STARTISINDEX of HTML4Utils.tag_payload | |
1279 | + | STARTKBD of HTML4Utils.tag_payload | |
1280 | + | ENDKBD | |
1281 | + | STARTLABEL of HTML4Utils.tag_payload | |
1282 | + | ENDLABEL | |
1283 | + | STARTLEGEND of HTML4Utils.tag_payload | |
1284 | + | ENDLEGEND | |
1285 | + | STARTLI of HTML4Utils.tag_payload | |
1286 | + | ENDLI | |
1287 | + | STARTLINK of HTML4Utils.tag_payload | |
1288 | + | STARTMAP of HTML4Utils.tag_payload | |
1289 | + | ENDMAP | |
1290 | + | STARTMENU of HTML4Utils.tag_payload | |
1291 | + | ENDMENU | |
1292 | + | STARTMETA of HTML4Utils.tag_payload | |
1293 | + | STARTNOFRAMES of HTML4Utils.tag_payload | |
1294 | + | ENDNOFRAMES | |
1295 | + | STARTNOSCRIPT of HTML4Utils.tag_payload | |
1296 | + | ENDNOSCRIPT | |
1297 | + | STARTOBJECT of HTML4Utils.tag_payload | |
1298 | + | ENDOBJECT | |
1299 | + | STARTOL of HTML4Utils.tag_payload | |
1300 | + | ENDOL | |
1301 | + | STARTOPTGROUP of HTML4Utils.tag_payload | |
1302 | + | ENDOPTGROUP | |
1303 | + | STARTOPTION of HTML4Utils.tag_payload | |
1304 | + | ENDOPTION | |
1305 | + | STARTP of HTML4Utils.tag_payload | |
1306 | + | ENDP | |
1307 | + | STARTPARAM of HTML4Utils.tag_payload | |
1308 | + | STARTPRE of HTML4Utils.tag_payload | |
1309 | + | ENDPRE | |
1310 | + | STARTQ of HTML4Utils.tag_payload | |
1311 | + | ENDQ | |
1312 | + | STARTS of HTML4Utils.tag_payload | |
1313 | + | ENDS | |
1314 | + | STARTSAMP of HTML4Utils.tag_payload | |
1315 | + | ENDSAMP | |
1316 | + | STARTSCRIPT of HTML4Utils.tag_payload | |
1317 | + | ENDSCRIPT | |
1318 | + | STARTSELECT of HTML4Utils.tag_payload | |
1319 | + | ENDSELECT | |
1320 | + | STARTSMALL of HTML4Utils.tag_payload | |
1321 | + | ENDSMALL | |
1322 | + | STARTSPAN of HTML4Utils.tag_payload | |
1323 | + | ENDSPAN | |
1324 | + | STARTSTRIKE of HTML4Utils.tag_payload | |
1325 | + | ENDSTRIKE | |
1326 | + | STARTSTRONG of HTML4Utils.tag_payload | |
1327 | + | ENDSTRONG | |
1328 | + | STARTSTYLE of HTML4Utils.tag_payload | |
1329 | + | ENDSTYLE | |
1330 | + | STARTSUB of HTML4Utils.tag_payload | |
1331 | + | ENDSUB | |
1332 | + | STARTSUP of HTML4Utils.tag_payload | |
1333 | + | ENDSUP | |
1334 | + | STARTTABLE of HTML4Utils.tag_payload | |
1335 | + | ENDTABLE | |
1336 | + | STARTTBODY of HTML4Utils.tag_payload | |
1337 | + | ENDTBODY | |
1338 | + | STARTTD of HTML4Utils.tag_payload | |
1339 | + | ENDTD | |
1340 | + | STARTTEXTAREA of HTML4Utils.tag_payload | |
1341 | + | ENDTEXTAREA | |
1342 | + | STARTTFOOT of HTML4Utils.tag_payload | |
1343 | + | ENDTFOOT | |
1344 | + | STARTTH of HTML4Utils.tag_payload | |
1345 | + | ENDTH | |
1346 | + | STARTTHEAD of HTML4Utils.tag_payload | |
1347 | + | ENDTHEAD | |
1348 | + | STARTTITLE of HTML4Utils.tag_payload | |
1349 | + | ENDTITLE | |
1350 | + | STARTTR of HTML4Utils.tag_payload | |
1351 | + | ENDTR | |
1352 | + | STARTTT of HTML4Utils.tag_payload | |
1353 | + | ENDTT | |
1354 | + | STARTU of HTML4Utils.tag_payload | |
1355 | + | ENDU | |
1356 | + | STARTUL of HTML4Utils.tag_payload | |
1357 | + | ENDUL | |
1358 | + | STARTVAR of HTML4Utils.tag_payload | |
1359 | + | ENDVAR | |
1360 | + | EOF | |
1361 | + val allToks = [ | |
1362 | + ENDA, ENDABBR, ENDACRONYM, ENDADDRESS, ENDAPPLET, ENDB, ENDBDO, ENDBIG, ENDBLOCKQUOTE, ENDBODY, ENDBUTTON, ENDCAPTION, ENDCENTER, ENDCITE, ENDCODE, ENDCOLGROUP, ENDDD, ENDDEL, ENDDFN, ENDDIR, ENDDIV, ENDDL, ENDDT, ENDEM, ENDFIELDSET, ENDFONT, ENDFORM, ENDFRAMESET, ENDH1, ENDH2, ENDH3, ENDH4, ENDH5, ENDH6, ENDHEAD, ENDHTML, ENDI, ENDIFRAME, ENDINS, ENDKBD, ENDLABEL, ENDLEGEND, ENDLI, ENDMAP, ENDMENU, ENDNOFRAMES, ENDNOSCRIPT, ENDOBJECT, ENDOL, ENDOPTGROUP, ENDOPTION, ENDP, ENDPRE, ENDQ, ENDS, ENDSAMP, ENDSCRIPT, ENDSELECT, ENDSMALL, ENDSPAN, ENDSTRIKE, ENDSTRONG, ENDSTYLE, ENDSUB, ENDSUP, ENDTABLE, ENDTBODY, ENDTD, ENDTEXTAREA, ENDTFOOT, ENDTH, ENDTHEAD, ENDTITLE, ENDTR, ENDTT, ENDU, ENDUL, ENDVAR, EOF | |
1363 | + ] | |
1364 | fun toString tok = | |
1365 | (case (tok) | |
1366 | - of (EOF) => "EOF" | |
1367 | - | (ENDVAR) => "ENDVAR" | |
1368 | - | (STARTVAR(_)) => "STARTVAR" | |
1369 | - | (ENDUL) => "ENDUL" | |
1370 | - | (STARTUL(_)) => "STARTUL" | |
1371 | - | (ENDU) => "ENDU" | |
1372 | - | (STARTU(_)) => "STARTU" | |
1373 | - | (ENDTT) => "ENDTT" | |
1374 | - | (STARTTT(_)) => "STARTTT" | |
1375 | - | (ENDTR) => "ENDTR" | |
1376 | - | (STARTTR(_)) => "STARTTR" | |
1377 | - | (ENDTITLE) => "ENDTITLE" | |
1378 | - | (STARTTITLE(_)) => "STARTTITLE" | |
1379 | - | (ENDTHEAD) => "ENDTHEAD" | |
1380 | - | (STARTTHEAD(_)) => "STARTTHEAD" | |
1381 | - | (ENDTH) => "ENDTH" | |
1382 | - | (STARTTH(_)) => "STARTTH" | |
1383 | - | (ENDTFOOT) => "ENDTFOOT" | |
1384 | - | (STARTTFOOT(_)) => "STARTTFOOT" | |
1385 | - | (ENDTEXTAREA) => "ENDTEXTAREA" | |
1386 | - | (STARTTEXTAREA(_)) => "STARTTEXTAREA" | |
1387 | - | (ENDTD) => "ENDTD" | |
1388 | - | (STARTTD(_)) => "STARTTD" | |
1389 | - | (ENDTBODY) => "ENDTBODY" | |
1390 | - | (STARTTBODY(_)) => "STARTTBODY" | |
1391 | - | (ENDTABLE) => "ENDTABLE" | |
1392 | - | (STARTTABLE(_)) => "STARTTABLE" | |
1393 | - | (ENDSUP) => "ENDSUP" | |
1394 | - | (STARTSUP(_)) => "STARTSUP" | |
1395 | - | (ENDSUB) => "ENDSUB" | |
1396 | - | (STARTSUB(_)) => "STARTSUB" | |
1397 | - | (ENDSTYLE) => "ENDSTYLE" | |
1398 | - | (STARTSTYLE(_)) => "STARTSTYLE" | |
1399 | - | (ENDSTRONG) => "ENDSTRONG" | |
1400 | - | (STARTSTRONG(_)) => "STARTSTRONG" | |
1401 | - | (ENDSTRIKE) => "ENDSTRIKE" | |
1402 | - | (STARTSTRIKE(_)) => "STARTSTRIKE" | |
1403 | - | (ENDSPAN) => "ENDSPAN" | |
1404 | - | (STARTSPAN(_)) => "STARTSPAN" | |
1405 | - | (ENDSMALL) => "ENDSMALL" | |
1406 | - | (STARTSMALL(_)) => "STARTSMALL" | |
1407 | - | (ENDSELECT) => "ENDSELECT" | |
1408 | - | (STARTSELECT(_)) => "STARTSELECT" | |
1409 | - | (ENDSCRIPT) => "ENDSCRIPT" | |
1410 | - | (STARTSCRIPT(_)) => "STARTSCRIPT" | |
1411 | - | (ENDSAMP) => "ENDSAMP" | |
1412 | - | (STARTSAMP(_)) => "STARTSAMP" | |
1413 | - | (ENDS) => "ENDS" | |
1414 | - | (STARTS(_)) => "STARTS" | |
1415 | - | (ENDQ) => "ENDQ" | |
1416 | - | (STARTQ(_)) => "STARTQ" | |
1417 | - | (ENDPRE) => "ENDPRE" | |
1418 | - | (STARTPRE(_)) => "STARTPRE" | |
1419 | - | (STARTPARAM(_)) => "STARTPARAM" | |
1420 | - | (ENDP) => "ENDP" | |
1421 | - | (STARTP(_)) => "STARTP" | |
1422 | - | (ENDOPTION) => "ENDOPTION" | |
1423 | - | (STARTOPTION(_)) => "STARTOPTION" | |
1424 | - | (ENDOPTGROUP) => "ENDOPTGROUP" | |
1425 | - | (STARTOPTGROUP(_)) => "STARTOPTGROUP" | |
1426 | - | (ENDOL) => "ENDOL" | |
1427 | - | (STARTOL(_)) => "STARTOL" | |
1428 | - | (ENDOBJECT) => "ENDOBJECT" | |
1429 | - | (STARTOBJECT(_)) => "STARTOBJECT" | |
1430 | - | (ENDNOSCRIPT) => "ENDNOSCRIPT" | |
1431 | - | (STARTNOSCRIPT(_)) => "STARTNOSCRIPT" | |
1432 | - | (ENDNOFRAMES) => "ENDNOFRAMES" | |
1433 | - | (STARTNOFRAMES(_)) => "STARTNOFRAMES" | |
1434 | - | (STARTMETA(_)) => "STARTMETA" | |
1435 | - | (ENDMENU) => "ENDMENU" | |
1436 | - | (STARTMENU(_)) => "STARTMENU" | |
1437 | - | (ENDMAP) => "ENDMAP" | |
1438 | - | (STARTMAP(_)) => "STARTMAP" | |
1439 | - | (STARTLINK(_)) => "STARTLINK" | |
1440 | - | (ENDLI) => "ENDLI" | |
1441 | - | (STARTLI(_)) => "STARTLI" | |
1442 | - | (ENDLEGEND) => "ENDLEGEND" | |
1443 | - | (STARTLEGEND(_)) => "STARTLEGEND" | |
1444 | - | (ENDLABEL) => "ENDLABEL" | |
1445 | - | (STARTLABEL(_)) => "STARTLABEL" | |
1446 | - | (ENDKBD) => "ENDKBD" | |
1447 | - | (STARTKBD(_)) => "STARTKBD" | |
1448 | - | (STARTISINDEX(_)) => "STARTISINDEX" | |
1449 | - | (ENDINS) => "ENDINS" | |
1450 | - | (STARTINS(_)) => "STARTINS" | |
1451 | - | (STARTINPUT(_)) => "STARTINPUT" | |
1452 | - | (STARTIMG(_)) => "STARTIMG" | |
1453 | - | (ENDIFRAME) => "ENDIFRAME" | |
1454 | - | (STARTIFRAME(_)) => "STARTIFRAME" | |
1455 | - | (ENDI) => "ENDI" | |
1456 | - | (STARTI(_)) => "STARTI" | |
1457 | - | (ENDHTML) => "ENDHTML" | |
1458 | - | (STARTHTML(_)) => "STARTHTML" | |
1459 | - | (STARTHR(_)) => "STARTHR" | |
1460 | - | (ENDHEAD) => "ENDHEAD" | |
1461 | - | (STARTHEAD(_)) => "STARTHEAD" | |
1462 | - | (ENDH6) => "ENDH6" | |
1463 | - | (STARTH6(_)) => "STARTH6" | |
1464 | - | (ENDH5) => "ENDH5" | |
1465 | - | (STARTH5(_)) => "STARTH5" | |
1466 | - | (ENDH4) => "ENDH4" | |
1467 | - | (STARTH4(_)) => "STARTH4" | |
1468 | - | (ENDH3) => "ENDH3" | |
1469 | - | (STARTH3(_)) => "STARTH3" | |
1470 | - | (ENDH2) => "ENDH2" | |
1471 | - | (STARTH2(_)) => "STARTH2" | |
1472 | - | (ENDH1) => "ENDH1" | |
1473 | - | (STARTH1(_)) => "STARTH1" | |
1474 | - | (ENDFRAMESET) => "ENDFRAMESET" | |
1475 | - | (STARTFRAMESET(_)) => "STARTFRAMESET" | |
1476 | - | (STARTFRAME(_)) => "STARTFRAME" | |
1477 | - | (ENDFORM) => "ENDFORM" | |
1478 | - | (STARTFORM(_)) => "STARTFORM" | |
1479 | - | (ENDFONT) => "ENDFONT" | |
1480 | - | (STARTFONT(_)) => "STARTFONT" | |
1481 | - | (ENDFIELDSET) => "ENDFIELDSET" | |
1482 | - | (STARTFIELDSET(_)) => "STARTFIELDSET" | |
1483 | - | (ENDEM) => "ENDEM" | |
1484 | - | (STARTEM(_)) => "STARTEM" | |
1485 | - | (ENDDT) => "ENDDT" | |
1486 | - | (STARTDT(_)) => "STARTDT" | |
1487 | - | (ENDDL) => "ENDDL" | |
1488 | - | (STARTDL(_)) => "STARTDL" | |
1489 | - | (ENDDIV) => "ENDDIV" | |
1490 | - | (STARTDIV(_)) => "STARTDIV" | |
1491 | - | (ENDDIR) => "ENDDIR" | |
1492 | - | (STARTDIR(_)) => "STARTDIR" | |
1493 | - | (ENDDFN) => "ENDDFN" | |
1494 | - | (STARTDFN(_)) => "STARTDFN" | |
1495 | - | (ENDDEL) => "ENDDEL" | |
1496 | - | (STARTDEL(_)) => "STARTDEL" | |
1497 | - | (ENDDD) => "ENDDD" | |
1498 | - | (STARTDD(_)) => "STARTDD" | |
1499 | - | (ENDCOLGROUP) => "ENDCOLGROUP" | |
1500 | - | (STARTCOLGROUP(_)) => "STARTCOLGROUP" | |
1501 | - | (STARTCOL(_)) => "STARTCOL" | |
1502 | - | (ENDCODE) => "ENDCODE" | |
1503 | - | (STARTCODE(_)) => "STARTCODE" | |
1504 | - | (ENDCITE) => "ENDCITE" | |
1505 | - | (STARTCITE(_)) => "STARTCITE" | |
1506 | - | (ENDCENTER) => "ENDCENTER" | |
1507 | - | (STARTCENTER(_)) => "STARTCENTER" | |
1508 | - | (ENDCAPTION) => "ENDCAPTION" | |
1509 | - | (STARTCAPTION(_)) => "STARTCAPTION" | |
1510 | - | (ENDBUTTON) => "ENDBUTTON" | |
1511 | - | (STARTBUTTON(_)) => "STARTBUTTON" | |
1512 | - | (STARTBR(_)) => "STARTBR" | |
1513 | - | (ENDBODY) => "ENDBODY" | |
1514 | - | (STARTBODY(_)) => "STARTBODY" | |
1515 | - | (ENDBLOCKQUOTE) => "ENDBLOCKQUOTE" | |
1516 | - | (STARTBLOCKQUOTE(_)) => "STARTBLOCKQUOTE" | |
1517 | - | (ENDBIG) => "ENDBIG" | |
1518 | - | (STARTBIG(_)) => "STARTBIG" | |
1519 | - | (ENDBDO) => "ENDBDO" | |
1520 | - | (STARTBDO(_)) => "STARTBDO" | |
1521 | - | (STARTBASEFONT(_)) => "STARTBASEFONT" | |
1522 | - | (STARTBASE(_)) => "STARTBASE" | |
1523 | - | (ENDB) => "ENDB" | |
1524 | - | (STARTB(_)) => "STARTB" | |
1525 | - | (STARTAREA(_)) => "STARTAREA" | |
1526 | - | (ENDAPPLET) => "ENDAPPLET" | |
1527 | - | (STARTAPPLET(_)) => "STARTAPPLET" | |
1528 | - | (ENDADDRESS) => "ENDADDRESS" | |
1529 | - | (STARTADDRESS(_)) => "STARTADDRESS" | |
1530 | - | (ENDACRONYM) => "ENDACRONYM" | |
1531 | - | (STARTACRONYM(_)) => "STARTACRONYM" | |
1532 | - | (ENDABBR) => "ENDABBR" | |
1533 | - | (STARTABBR(_)) => "STARTABBR" | |
1534 | - | (ENDA) => "ENDA" | |
1535 | - | (STARTA(_)) => "STARTA" | |
1536 | - | (XML_PROCESSING(_)) => "XML_PROCESSING" | |
1537 | - | (ENTITY_REF(_)) => "ENTITY_REF" | |
1538 | - | (CHAR_REF(_)) => "CHAR_REF" | |
1539 | - | (DOCTYPE(_)) => "DOCTYPE" | |
1540 | - | (PCDATA(_)) => "PCDATA" | |
1541 | - | (COMMENT(_)) => "COMMENT" | |
1542 | + of (OPENTAG(_)) => "OPENTAG" | |
1543 | | (CLOSETAG(_)) => "CLOSETAG" | |
1544 | - | (OPENTAG(_)) => "OPENTAG" | |
1545 | + | (COMMENT(_)) => "COMMENT" | |
1546 | + | (PCDATA(_)) => "PCDATA" | |
1547 | + | (DOCTYPE(_)) => "DOCTYPE" | |
1548 | + | (CHAR_REF(_)) => "CHAR_REF" | |
1549 | + | (ENTITY_REF(_)) => "ENTITY_REF" | |
1550 | + | (XML_PROCESSING(_)) => "XML_PROCESSING" | |
1551 | + | (STARTA(_)) => "STARTA" | |
1552 | + | (ENDA) => "ENDA" | |
1553 | + | (STARTABBR(_)) => "STARTABBR" | |
1554 | + | (ENDABBR) => "ENDABBR" | |
1555 | + | (STARTACRONYM(_)) => "STARTACRONYM" | |
1556 | + | (ENDACRONYM) => "ENDACRONYM" | |
1557 | + | (STARTADDRESS(_)) => "STARTADDRESS" | |
1558 | + | (ENDADDRESS) => "ENDADDRESS" | |
1559 | + | (STARTAPPLET(_)) => "STARTAPPLET" | |
1560 | + | (ENDAPPLET) => "ENDAPPLET" | |
1561 | + | (STARTAREA(_)) => "STARTAREA" | |
1562 | + | (STARTB(_)) => "STARTB" | |
1563 | + | (ENDB) => "ENDB" | |
1564 | + | (STARTBASE(_)) => "STARTBASE" | |
1565 | + | (STARTBASEFONT(_)) => "STARTBASEFONT" | |
1566 | + | (STARTBDO(_)) => "STARTBDO" | |
1567 | + | (ENDBDO) => "ENDBDO" | |
1568 | + | (STARTBIG(_)) => "STARTBIG" | |
1569 | + | (ENDBIG) => "ENDBIG" | |
1570 | + | (STARTBLOCKQUOTE(_)) => "STARTBLOCKQUOTE" | |
1571 | + | (ENDBLOCKQUOTE) => "ENDBLOCKQUOTE" | |
1572 | + | (STARTBODY(_)) => "STARTBODY" | |
1573 | + | (ENDBODY) => "ENDBODY" | |
1574 | + | (STARTBR(_)) => "STARTBR" | |
1575 | + | (STARTBUTTON(_)) => "STARTBUTTON" | |
1576 | + | (ENDBUTTON) => "ENDBUTTON" | |
1577 | + | (STARTCAPTION(_)) => "STARTCAPTION" | |
1578 | + | (ENDCAPTION) => "ENDCAPTION" | |
1579 | + | (STARTCENTER(_)) => "STARTCENTER" | |
1580 | + | (ENDCENTER) => "ENDCENTER" | |
1581 | + | (STARTCITE(_)) => "STARTCITE" | |
1582 | + | (ENDCITE) => "ENDCITE" | |
1583 | + | (STARTCODE(_)) => "STARTCODE" | |
1584 | + | (ENDCODE) => "ENDCODE" | |
1585 | + | (STARTCOL(_)) => "STARTCOL" | |
1586 | + | (STARTCOLGROUP(_)) => "STARTCOLGROUP" | |
1587 | + | (ENDCOLGROUP) => "ENDCOLGROUP" | |
1588 | + | (STARTDD(_)) => "STARTDD" | |
1589 | + | (ENDDD) => "ENDDD" | |
1590 | + | (STARTDEL(_)) => "STARTDEL" | |
1591 | + | (ENDDEL) => "ENDDEL" | |
1592 | + | (STARTDFN(_)) => "STARTDFN" | |
1593 | + | (ENDDFN) => "ENDDFN" | |
1594 | + | (STARTDIR(_)) => "STARTDIR" | |
1595 | + | (ENDDIR) => "ENDDIR" | |
1596 | + | (STARTDIV(_)) => "STARTDIV" | |
1597 | + | (ENDDIV) => "ENDDIV" | |
1598 | + | (STARTDL(_)) => "STARTDL" | |
1599 | + | (ENDDL) => "ENDDL" | |
1600 | + | (STARTDT(_)) => "STARTDT" | |
1601 | + | (ENDDT) => "ENDDT" | |
1602 | + | (STARTEM(_)) => "STARTEM" | |
1603 | + | (ENDEM) => "ENDEM" | |
1604 | + | (STARTFIELDSET(_)) => "STARTFIELDSET" | |
1605 | + | (ENDFIELDSET) => "ENDFIELDSET" | |
1606 | + | (STARTFONT(_)) => "STARTFONT" | |
1607 | + | (ENDFONT) => "ENDFONT" | |
1608 | + | (STARTFORM(_)) => "STARTFORM" | |
1609 | + | (ENDFORM) => "ENDFORM" | |
1610 | + | (STARTFRAME(_)) => "STARTFRAME" | |
1611 | + | (STARTFRAMESET(_)) => "STARTFRAMESET" | |
1612 | + | (ENDFRAMESET) => "ENDFRAMESET" | |
1613 | + | (STARTH1(_)) => "STARTH1" | |
1614 | + | (ENDH1) => "ENDH1" | |
1615 | + | (STARTH2(_)) => "STARTH2" | |
1616 | + | (ENDH2) => "ENDH2" | |
1617 | + | (STARTH3(_)) => "STARTH3" | |
1618 | + | (ENDH3) => "ENDH3" | |
1619 | + | (STARTH4(_)) => "STARTH4" | |
1620 | + | (ENDH4) => "ENDH4" | |
1621 | + | (STARTH5(_)) => "STARTH5" | |
1622 | + | (ENDH5) => "ENDH5" | |
1623 | + | (STARTH6(_)) => "STARTH6" | |
1624 | + | (ENDH6) => "ENDH6" | |
1625 | + | (STARTHEAD(_)) => "STARTHEAD" | |
1626 | + | (ENDHEAD) => "ENDHEAD" | |
1627 | + | (STARTHR(_)) => "STARTHR" | |
1628 | + | (STARTHTML(_)) => "STARTHTML" | |
1629 | + | (ENDHTML) => "ENDHTML" | |
1630 | + | (STARTI(_)) => "STARTI" | |
1631 | + | (ENDI) => "ENDI" | |
1632 | + | (STARTIFRAME(_)) => "STARTIFRAME" | |
1633 | + | (ENDIFRAME) => "ENDIFRAME" | |
1634 | + | (STARTIMG(_)) => "STARTIMG" | |
1635 | + | (STARTINPUT(_)) => "STARTINPUT" | |
1636 | + | (STARTINS(_)) => "STARTINS" | |
1637 | + | (ENDINS) => "ENDINS" | |
1638 | + | (STARTISINDEX(_)) => "STARTISINDEX" | |
1639 | + | (STARTKBD(_)) => "STARTKBD" | |
1640 | + | (ENDKBD) => "ENDKBD" | |
1641 | + | (STARTLABEL(_)) => "STARTLABEL" | |
1642 | + | (ENDLABEL) => "ENDLABEL" | |
1643 | + | (STARTLEGEND(_)) => "STARTLEGEND" | |
1644 | + | (ENDLEGEND) => "ENDLEGEND" | |
1645 | + | (STARTLI(_)) => "STARTLI" | |
1646 | + | (ENDLI) => "ENDLI" | |
1647 | + | (STARTLINK(_)) => "STARTLINK" | |
1648 | + | (STARTMAP(_)) => "STARTMAP" | |
1649 | + | (ENDMAP) => "ENDMAP" | |
1650 | + | (STARTMENU(_)) => "STARTMENU" | |
1651 | + | (ENDMENU) => "ENDMENU" | |
1652 | + | (STARTMETA(_)) => "STARTMETA" | |
1653 | + | (STARTNOFRAMES(_)) => "STARTNOFRAMES" | |
1654 | + | (ENDNOFRAMES) => "ENDNOFRAMES" | |
1655 | + | (STARTNOSCRIPT(_)) => "STARTNOSCRIPT" | |
1656 | + | (ENDNOSCRIPT) => "ENDNOSCRIPT" | |
1657 | + | (STARTOBJECT(_)) => "STARTOBJECT" | |
1658 | + | (ENDOBJECT) => "ENDOBJECT" | |
1659 | + | (STARTOL(_)) => "STARTOL" | |
1660 | + | (ENDOL) => "ENDOL" | |
1661 | + | (STARTOPTGROUP(_)) => "STARTOPTGROUP" | |
1662 | + | (ENDOPTGROUP) => "ENDOPTGROUP" | |
1663 | + | (STARTOPTION(_)) => "STARTOPTION" | |
1664 | + | (ENDOPTION) => "ENDOPTION" | |
1665 | + | (STARTP(_)) => "STARTP" | |
1666 | + | (ENDP) => "ENDP" | |
1667 | + | (STARTPARAM(_)) => "STARTPARAM" | |
1668 | + | (STARTPRE(_)) => "STARTPRE" | |
1669 | + | (ENDPRE) => "ENDPRE" | |
1670 | + | (STARTQ(_)) => "STARTQ" | |
1671 | + | (ENDQ) => "ENDQ" | |
1672 | + | (STARTS(_)) => "STARTS" | |
1673 | + | (ENDS) => "ENDS" | |
1674 | + | (STARTSAMP(_)) => "STARTSAMP" | |
1675 | + | (ENDSAMP) => "ENDSAMP" | |
1676 | + | (STARTSCRIPT(_)) => "STARTSCRIPT" | |
1677 | + | (ENDSCRIPT) => "ENDSCRIPT" | |
1678 | + | (STARTSELECT(_)) => "STARTSELECT" | |
1679 | + | (ENDSELECT) => "ENDSELECT" | |
1680 | + | (STARTSMALL(_)) => "STARTSMALL" | |
1681 | + | (ENDSMALL) => "ENDSMALL" | |
1682 | + | (STARTSPAN(_)) => "STARTSPAN" | |
1683 | + | (ENDSPAN) => "ENDSPAN" | |
1684 | + | (STARTSTRIKE(_)) => "STARTSTRIKE" | |
1685 | + | (ENDSTRIKE) => "ENDSTRIKE" | |
1686 | + | (STARTSTRONG(_)) => "STARTSTRONG" | |
1687 | + | (ENDSTRONG) => "ENDSTRONG" | |
1688 | + | (STARTSTYLE(_)) => "STARTSTYLE" | |
1689 | + | (ENDSTYLE) => "ENDSTYLE" | |
1690 | + | (STARTSUB(_)) => "STARTSUB" | |
1691 | + | (ENDSUB) => "ENDSUB" | |
1692 | + | (STARTSUP(_)) => "STARTSUP" | |
1693 | + | (ENDSUP) => "ENDSUP" | |
1694 | + | (STARTTABLE(_)) => "STARTTABLE" | |
1695 | + | (ENDTABLE) => "ENDTABLE" | |
1696 | + | (STARTTBODY(_)) => "STARTTBODY" | |
1697 | + | (ENDTBODY) => "ENDTBODY" | |
1698 | + | (STARTTD(_)) => "STARTTD" | |
1699 | + | (ENDTD) => "ENDTD" | |
1700 | + | (STARTTEXTAREA(_)) => "STARTTEXTAREA" | |
1701 | + | (ENDTEXTAREA) => "ENDTEXTAREA" | |
1702 | + | (STARTTFOOT(_)) => "STARTTFOOT" | |
1703 | + | (ENDTFOOT) => "ENDTFOOT" | |
1704 | + | (STARTTH(_)) => "STARTTH" | |
1705 | + | (ENDTH) => "ENDTH" | |
1706 | + | (STARTTHEAD(_)) => "STARTTHEAD" | |
1707 | + | (ENDTHEAD) => "ENDTHEAD" | |
1708 | + | (STARTTITLE(_)) => "STARTTITLE" | |
1709 | + | (ENDTITLE) => "ENDTITLE" | |
1710 | + | (STARTTR(_)) => "STARTTR" | |
1711 | + | (ENDTR) => "ENDTR" | |
1712 | + | (STARTTT(_)) => "STARTTT" | |
1713 | + | (ENDTT) => "ENDTT" | |
1714 | + | (STARTU(_)) => "STARTU" | |
1715 | + | (ENDU) => "ENDU" | |
1716 | + | (STARTUL(_)) => "STARTUL" | |
1717 | + | (ENDUL) => "ENDUL" | |
1718 | + | (STARTVAR(_)) => "STARTVAR" | |
1719 | + | (ENDVAR) => "ENDVAR" | |
1720 | + | (EOF) => "EOF" | |
1721 | (* end case *)) | |
1722 | fun isKW tok = | |
1723 | (case (tok) | |
1724 | - of (EOF) => false | |
1725 | - | (ENDVAR) => false | |
1726 | - | (STARTVAR(_)) => false | |
1727 | - | (ENDUL) => false | |
1728 | - | (STARTUL(_)) => false | |
1729 | - | (ENDU) => false | |
1730 | - | (STARTU(_)) => false | |
1731 | - | (ENDTT) => false | |
1732 | - | (STARTTT(_)) => false | |
1733 | - | (ENDTR) => false | |
1734 | - | (STARTTR(_)) => false | |
1735 | - | (ENDTITLE) => false | |
1736 | - | (STARTTITLE(_)) => false | |
1737 | - | (ENDTHEAD) => false | |
1738 | - | (STARTTHEAD(_)) => false | |
1739 | - | (ENDTH) => false | |
1740 | - | (STARTTH(_)) => false | |
1741 | - | (ENDTFOOT) => false | |
1742 | - | (STARTTFOOT(_)) => false | |
1743 | - | (ENDTEXTAREA) => false | |
1744 | - | (STARTTEXTAREA(_)) => false | |
1745 | - | (ENDTD) => false | |
1746 | - | (STARTTD(_)) => false | |
1747 | - | (ENDTBODY) => false | |
1748 | - | (STARTTBODY(_)) => false | |
1749 | - | (ENDTABLE) => false | |
1750 | - | (STARTTABLE(_)) => false | |
1751 | - | (ENDSUP) => false | |
1752 | - | (STARTSUP(_)) => false | |
1753 | - | (ENDSUB) => false | |
1754 | - | (STARTSUB(_)) => false | |
1755 | - | (ENDSTYLE) => false | |
1756 | - | (STARTSTYLE(_)) => false | |
1757 | - | (ENDSTRONG) => false | |
1758 | - | (STARTSTRONG(_)) => false | |
1759 | - | (ENDSTRIKE) => false | |
1760 | - | (STARTSTRIKE(_)) => false | |
1761 | - | (ENDSPAN) => false | |
1762 | - | (STARTSPAN(_)) => false | |
1763 | - | (ENDSMALL) => false | |
1764 | - | (STARTSMALL(_)) => false | |
1765 | - | (ENDSELECT) => false | |
1766 | - | (STARTSELECT(_)) => false | |
1767 | - | (ENDSCRIPT) => false | |
1768 | - | (STARTSCRIPT(_)) => false | |
1769 | - | (ENDSAMP) => false | |
1770 | - | (STARTSAMP(_)) => false | |
1771 | - | (ENDS) => false | |
1772 | - | (STARTS(_)) => false | |
1773 | - | (ENDQ) => false | |
1774 | - | (STARTQ(_)) => false | |
1775 | - | (ENDPRE) => false | |
1776 | - | (STARTPRE(_)) => false | |
1777 | - | (STARTPARAM(_)) => false | |
1778 | - | (ENDP) => false | |
1779 | - | (STARTP(_)) => false | |
1780 | - | (ENDOPTION) => false | |
1781 | - | (STARTOPTION(_)) => false | |
1782 | - | (ENDOPTGROUP) => false | |
1783 | - | (STARTOPTGROUP(_)) => false | |
1784 | - | (ENDOL) => false | |
1785 | - | (STARTOL(_)) => false | |
1786 | - | (ENDOBJECT) => false | |
1787 | - | (STARTOBJECT(_)) => false | |
1788 | - | (ENDNOSCRIPT) => false | |
1789 | - | (STARTNOSCRIPT(_)) => false | |
1790 | - | (ENDNOFRAMES) => false | |
1791 | - | (STARTNOFRAMES(_)) => false | |
1792 | - | (STARTMETA(_)) => false | |
1793 | - | (ENDMENU) => false | |
1794 | - | (STARTMENU(_)) => false | |
1795 | - | (ENDMAP) => false | |
1796 | - | (STARTMAP(_)) => false | |
1797 | - | (STARTLINK(_)) => false | |
1798 | - | (ENDLI) => false | |
1799 | - | (STARTLI(_)) => false | |
1800 | - | (ENDLEGEND) => false | |
1801 | - | (STARTLEGEND(_)) => false | |
1802 | - | (ENDLABEL) => false | |
1803 | - | (STARTLABEL(_)) => false | |
1804 | - | (ENDKBD) => false | |
1805 | - | (STARTKBD(_)) => false | |
1806 | - | (STARTISINDEX(_)) => false | |
1807 | - | (ENDINS) => false | |
1808 | - | (STARTINS(_)) => false | |
1809 | - | (STARTINPUT(_)) => false | |
1810 | - | (STARTIMG(_)) => false | |
1811 | - | (ENDIFRAME) => false | |
1812 | - | (STARTIFRAME(_)) => false | |
1813 | - | (ENDI) => false | |
1814 | - | (STARTI(_)) => false | |
1815 | - | (ENDHTML) => false | |
1816 | - | (STARTHTML(_)) => false | |
1817 | - | (STARTHR(_)) => false | |
1818 | - | (ENDHEAD) => false | |
1819 | - | (STARTHEAD(_)) => false | |
1820 | - | (ENDH6) => false | |
1821 | - | (STARTH6(_)) => false | |
1822 | - | (ENDH5) => false | |
1823 | - | (STARTH5(_)) => false | |
1824 | - | (ENDH4) => false | |
1825 | - | (STARTH4(_)) => false | |
1826 | - | (ENDH3) => false | |
1827 | - | (STARTH3(_)) => false | |
1828 | - | (ENDH2) => false | |
1829 | - | (STARTH2(_)) => false | |
1830 | - | (ENDH1) => false | |
1831 | - | (STARTH1(_)) => false | |
1832 | - | (ENDFRAMESET) => false | |
1833 | - | (STARTFRAMESET(_)) => false | |
1834 | - | (STARTFRAME(_)) => false | |
1835 | - | (ENDFORM) => false | |
1836 | - | (STARTFORM(_)) => false | |
1837 | - | (ENDFONT) => false | |
1838 | - | (STARTFONT(_)) => false | |
1839 | - | (ENDFIELDSET) => false | |
1840 | - | (STARTFIELDSET(_)) => false | |
1841 | - | (ENDEM) => false | |
1842 | - | (STARTEM(_)) => false | |
1843 | - | (ENDDT) => false | |
1844 | - | (STARTDT(_)) => false | |
1845 | - | (ENDDL) => false | |
1846 | - | (STARTDL(_)) => false | |
1847 | - | (ENDDIV) => false | |
1848 | - | (STARTDIV(_)) => false | |
1849 | - | (ENDDIR) => false | |
1850 | - | (STARTDIR(_)) => false | |
1851 | - | (ENDDFN) => false | |
1852 | - | (STARTDFN(_)) => false | |
1853 | - | (ENDDEL) => false | |
1854 | - | (STARTDEL(_)) => false | |
1855 | - | (ENDDD) => false | |
1856 | - | (STARTDD(_)) => false | |
1857 | - | (ENDCOLGROUP) => false | |
1858 | - | (STARTCOLGROUP(_)) => false | |
1859 | - | (STARTCOL(_)) => false | |
1860 | - | (ENDCODE) => false | |
1861 | - | (STARTCODE(_)) => false | |
1862 | - | (ENDCITE) => false | |
1863 | - | (STARTCITE(_)) => false | |
1864 | - | (ENDCENTER) => false | |
1865 | - | (STARTCENTER(_)) => false | |
1866 | - | (ENDCAPTION) => false | |
1867 | - | (STARTCAPTION(_)) => false | |
1868 | - | (ENDBUTTON) => false | |
1869 | - | (STARTBUTTON(_)) => false | |
1870 | - | (STARTBR(_)) => false | |
1871 | - | (ENDBODY) => false | |
1872 | - | (STARTBODY(_)) => false | |
1873 | - | (ENDBLOCKQUOTE) => false | |
1874 | - | (STARTBLOCKQUOTE(_)) => false | |
1875 | - | (ENDBIG) => false | |
1876 | - | (STARTBIG(_)) => false | |
1877 | - | (ENDBDO) => false | |
1878 | - | (STARTBDO(_)) => false | |
1879 | - | (STARTBASEFONT(_)) => false | |
1880 | - | (STARTBASE(_)) => false | |
1881 | - | (ENDB) => false | |
1882 | - | (STARTB(_)) => false | |
1883 | - | (STARTAREA(_)) => false | |
1884 | - | (ENDAPPLET) => false | |
1885 | - | (STARTAPPLET(_)) => false | |
1886 | - | (ENDADDRESS) => false | |
1887 | - | (STARTADDRESS(_)) => false | |
1888 | - | (ENDACRONYM) => false | |
1889 | - | (STARTACRONYM(_)) => false | |
1890 | - | (ENDABBR) => false | |
1891 | - | (STARTABBR(_)) => false | |
1892 | - | (ENDA) => false | |
1893 | - | (STARTA(_)) => false | |
1894 | - | (XML_PROCESSING(_)) => false | |
1895 | - | (ENTITY_REF(_)) => false | |
1896 | - | (CHAR_REF(_)) => false | |
1897 | - | (DOCTYPE(_)) => false | |
1898 | - | (PCDATA(_)) => false | |
1899 | - | (COMMENT(_)) => false | |
1900 | + of (OPENTAG(_)) => false | |
1901 | | (CLOSETAG(_)) => false | |
1902 | - | (OPENTAG(_)) => false | |
1903 | + | (COMMENT(_)) => false | |
1904 | + | (PCDATA(_)) => false | |
1905 | + | (DOCTYPE(_)) => false | |
1906 | + | (CHAR_REF(_)) => false | |
1907 | + | (ENTITY_REF(_)) => false | |
1908 | + | (XML_PROCESSING(_)) => false | |
1909 | + | (STARTA(_)) => false | |
1910 | + | (ENDA) => false | |
1911 | + | (STARTABBR(_)) => false | |
1912 | + | (ENDABBR) => false | |
1913 | + | (STARTACRONYM(_)) => false | |
1914 | + | (ENDACRONYM) => false | |
1915 | + | (STARTADDRESS(_)) => false | |
1916 | + | (ENDADDRESS) => false | |
1917 | + | (STARTAPPLET(_)) => false | |
1918 | + | (ENDAPPLET) => false | |
1919 | + | (STARTAREA(_)) => false | |
1920 | + | (STARTB(_)) => false | |
1921 | + | (ENDB) => false | |
1922 | + | (STARTBASE(_)) => false | |
1923 | + | (STARTBASEFONT(_)) => false | |
1924 | + | (STARTBDO(_)) => false | |
1925 | + | (ENDBDO) => false | |
1926 | + | (STARTBIG(_)) => false | |
1927 | + | (ENDBIG) => false | |
1928 | + | (STARTBLOCKQUOTE(_)) => false | |
1929 | + | (ENDBLOCKQUOTE) => false | |
1930 | + | (STARTBODY(_)) => false | |
1931 | + | (ENDBODY) => false | |
1932 | + | (STARTBR(_)) => false | |
1933 | + | (STARTBUTTON(_)) => false | |
1934 | + | (ENDBUTTON) => false | |
1935 | + | (STARTCAPTION(_)) => false | |
1936 | + | (ENDCAPTION) => false | |
1937 | + | (STARTCENTER(_)) => false | |
1938 | + | (ENDCENTER) => false | |
1939 | + | (STARTCITE(_)) => false | |
1940 | + | (ENDCITE) => false | |
1941 | + | (STARTCODE(_)) => false | |
1942 | + | (ENDCODE) => false | |
1943 | + | (STARTCOL(_)) => false | |
1944 | + | (STARTCOLGROUP(_)) => false | |
1945 | + | (ENDCOLGROUP) => false | |
1946 | + | (STARTDD(_)) => false | |
1947 | + | (ENDDD) => false | |
1948 | + | (STARTDEL(_)) => false | |
1949 | + | (ENDDEL) => false | |
1950 | + | (STARTDFN(_)) => false | |
1951 | + | (ENDDFN) => false | |
1952 | + | (STARTDIR(_)) => false | |
1953 | + | (ENDDIR) => false | |
1954 | + | (STARTDIV(_)) => false | |
1955 | + | (ENDDIV) => false | |
1956 | + | (STARTDL(_)) => false | |
1957 | + | (ENDDL) => false | |
1958 | + | (STARTDT(_)) => false | |
1959 | + | (ENDDT) => false | |
1960 | + | (STARTEM(_)) => false | |
1961 | + | (ENDEM) => false | |
1962 | + | (STARTFIELDSET(_)) => false | |
1963 | + | (ENDFIELDSET) => false | |
1964 | + | (STARTFONT(_)) => false | |
1965 | + | (ENDFONT) => false | |
1966 | + | (STARTFORM(_)) => false | |
1967 | + | (ENDFORM) => false | |
1968 | + | (STARTFRAME(_)) => false | |
1969 | + | (STARTFRAMESET(_)) => false | |
1970 | + | (ENDFRAMESET) => false | |
1971 | + | (STARTH1(_)) => false | |
1972 | + | (ENDH1) => false | |
1973 | + | (STARTH2(_)) => false | |
1974 | + | (ENDH2) => false | |
1975 | + | (STARTH3(_)) => false | |
1976 | + | (ENDH3) => false | |
1977 | + | (STARTH4(_)) => false | |
1978 | + | (ENDH4) => false | |
1979 | + | (STARTH5(_)) => false | |
1980 | + | (ENDH5) => false | |
1981 | + | (STARTH6(_)) => false | |
1982 | + | (ENDH6) => false | |
1983 | + | (STARTHEAD(_)) => false | |
1984 | + | (ENDHEAD) => false | |
1985 | + | (STARTHR(_)) => false | |
1986 | + | (STARTHTML(_)) => false | |
1987 | + | (ENDHTML) => false | |
1988 | + | (STARTI(_)) => false | |
1989 | + | (ENDI) => false | |
1990 | + | (STARTIFRAME(_)) => false | |
1991 | + | (ENDIFRAME) => false | |
1992 | + | (STARTIMG(_)) => false | |
1993 | + | (STARTINPUT(_)) => false | |
1994 | + | (STARTINS(_)) => false | |
1995 | + | (ENDINS) => false | |
1996 | + | (STARTISINDEX(_)) => false | |
1997 | + | (STARTKBD(_)) => false | |
1998 | + | (ENDKBD) => false | |
1999 | + | (STARTLABEL(_)) => false | |
2000 | + | (ENDLABEL) => false | |
2001 | + | (STARTLEGEND(_)) => false | |
2002 | + | (ENDLEGEND) => false | |
2003 | + | (STARTLI(_)) => false | |
2004 | + | (ENDLI) => false | |
2005 | + | (STARTLINK(_)) => false | |
2006 | + | (STARTMAP(_)) => false | |
2007 | + | (ENDMAP) => false | |
2008 | + | (STARTMENU(_)) => false | |
2009 | + | (ENDMENU) => false | |
2010 | + | (STARTMETA(_)) => false | |
2011 | + | (STARTNOFRAMES(_)) => false | |
2012 | + | (ENDNOFRAMES) => false | |
2013 | + | (STARTNOSCRIPT(_)) => false | |
2014 | + | (ENDNOSCRIPT) => false | |
2015 | + | (STARTOBJECT(_)) => false | |
2016 | + | (ENDOBJECT) => false | |
2017 | + | (STARTOL(_)) => false | |
2018 | + | (ENDOL) => false | |
2019 | + | (STARTOPTGROUP(_)) => false | |
2020 | + | (ENDOPTGROUP) => false | |
2021 | + | (STARTOPTION(_)) => false | |
2022 | + | (ENDOPTION) => false | |
2023 | + | (STARTP(_)) => false | |
2024 | + | (ENDP) => false | |
2025 | + | (STARTPARAM(_)) => false | |
2026 | + | (STARTPRE(_)) => false | |
2027 | + | (ENDPRE) => false | |
2028 | + | (STARTQ(_)) => false | |
2029 | + | (ENDQ) => false | |
2030 | + | (STARTS(_)) => false | |
2031 | + | (ENDS) => false | |
2032 | + | (STARTSAMP(_)) => false | |
2033 | + | (ENDSAMP) => false | |
2034 | + | (STARTSCRIPT(_)) => false | |
2035 | + | (ENDSCRIPT) => false | |
2036 | + | (STARTSELECT(_)) => false | |
2037 | + | (ENDSELECT) => false | |
2038 | + | (STARTSMALL(_)) => false | |
2039 | + | (ENDSMALL) => false | |
2040 | + | (STARTSPAN(_)) => false | |
2041 | + | (ENDSPAN) => false | |
2042 | + | (STARTSTRIKE(_)) => false | |
2043 | + | (ENDSTRIKE) => false | |
2044 | + | (STARTSTRONG(_)) => false | |
2045 | + | (ENDSTRONG) => false | |
2046 | + | (STARTSTYLE(_)) => false | |
2047 | + | (ENDSTYLE) => false | |
2048 | + | (STARTSUB(_)) => false | |
2049 | + | (ENDSUB) => false | |
2050 | + | (STARTSUP(_)) => false | |
2051 | + | (ENDSUP) => false | |
2052 | + | (STARTTABLE(_)) => false | |
2053 | + | (ENDTABLE) => false | |
2054 | + | (STARTTBODY(_)) => false | |
2055 | + | (ENDTBODY) => false | |
2056 | + | (STARTTD(_)) => false | |
2057 | + | (ENDTD) => false | |
2058 | + | (STARTTEXTAREA(_)) => false | |
2059 | + | (ENDTEXTAREA) => false | |
2060 | + | (STARTTFOOT(_)) => false | |
2061 | + | (ENDTFOOT) => false | |
2062 | + | (STARTTH(_)) => false | |
2063 | + | (ENDTH) => false | |
2064 | + | (STARTTHEAD(_)) => false | |
2065 | + | (ENDTHEAD) => false | |
2066 | + | (STARTTITLE(_)) => false | |
2067 | + | (ENDTITLE) => false | |
2068 | + | (STARTTR(_)) => false | |
2069 | + | (ENDTR) => false | |
2070 | + | (STARTTT(_)) => false | |
2071 | + | (ENDTT) => false | |
2072 | + | (STARTU(_)) => false | |
2073 | + | (ENDU) => false | |
2074 | + | (STARTUL(_)) => false | |
2075 | + | (ENDUL) => false | |
2076 | + | (STARTVAR(_)) => false | |
2077 | + | (ENDVAR) => false | |
2078 | + | (EOF) => false | |
2079 | (* end case *)) | |
2080 | + fun isEOF EOF = true | |
2081 | + | isEOF _ = false | |
2082 | + end (* HTML4Tokens *) | |
2083 | ||
2084 | - fun isEOF EOF = true | |
2085 | - | isEOF _ = false | |
2086 | - | |
2087 | -end | |
2088 | - | |
2089 | -functor HTML4ParseFn(Lex : ANTLR_LEXER) = struct | |
2090 | +functor HTML4ParseFn (Lex : ANTLR_LEXER) = struct | |
2091 | ||
2092 | local | |
2093 | - structure Tok = | |
2094 | + structure Tok = | |
2095 | HTML4Tokens | |
2096 | structure UserCode = | |
2097 | struct | |
2098 | @@ -982,735 +980,769 @@ fun cdata_opt_PROD_1_ACT (cdata, cdata_SPAN : (Lex.pos * Lex.pos), FULL_SPAN : ( | |
2099 | structure Err = AntlrErrHandler( | |
2100 | structure Tok = Tok | |
2101 | structure Lex = Lex) | |
2102 | + | |
2103 | +(* replace functor with inline structure for better optimization | |
2104 | structure EBNF = AntlrEBNF( | |
2105 | struct | |
2106 | type strm = Err.wstream | |
2107 | val getSpan = Err.getSpan | |
2108 | end) | |
2109 | +*) | |
2110 | + structure EBNF = | |
2111 | + struct | |
2112 | + fun optional (pred, parse, strm) = | |
2113 | + if pred strm | |
2114 | + then let | |
2115 | + val (y, span, strm') = parse strm | |
2116 | + in | |
2117 | + (SOME y, span, strm') | |
2118 | + end | |
2119 | + else (NONE, Err.getSpan strm, strm) | |
2120 | + | |
2121 | + fun closure (pred, parse, strm) = let | |
2122 | + fun iter (strm, (left, right), ys) = | |
2123 | + if pred strm | |
2124 | + then let | |
2125 | + val (y, (_, right'), strm') = parse strm | |
2126 | + in iter (strm', (left, right'), y::ys) | |
2127 | + end | |
2128 | + else (List.rev ys, (left, right), strm) | |
2129 | + in | |
2130 | + iter (strm, Err.getSpan strm, []) | |
2131 | + end | |
2132 | + | |
2133 | + fun posclos (pred, parse, strm) = let | |
2134 | + val (y, (left, _), strm') = parse strm | |
2135 | + val (ys, (_, right), strm'') = closure (pred, parse, strm') | |
2136 | + in | |
2137 | + (y::ys, (left, right), strm'') | |
2138 | + end | |
2139 | + end | |
2140 | ||
2141 | fun mk lexFn = let | |
2142 | fun getS() = {} | |
2143 | fun putS{} = () | |
2144 | -fun unwrap (ret, strm, repairs) = (ret, strm, repairs) val (eh, lex) = Err.mkErrHandler {get = getS, put = putS} | |
2145 | +fun unwrap (ret, strm, repairs) = (ret, strm, repairs) | |
2146 | + val (eh, lex) = Err.mkErrHandler {get = getS, put = putS} | |
2147 | fun fail() = Err.failure eh | |
2148 | fun tryProds (strm, prods) = let | |
2149 | fun try [] = fail() | |
2150 | - | try (prod :: prods) = | |
2151 | - (Err.whileDisabled eh (fn() => prod strm)) | |
2152 | + | try (prod :: prods) = | |
2153 | + (Err.whileDisabled eh (fn() => prod strm)) | |
2154 | handle Err.ParseError => try (prods) | |
2155 | in try prods end | |
2156 | -fun matchEOF strm = (case (lex(strm)) | |
2157 | - of (Tok.EOF, span, strm') => ((), span, strm') | |
2158 | - | _ => fail() | |
2159 | -(* end case *)) | |
2160 | -fun matchENDVAR strm = (case (lex(strm)) | |
2161 | - of (Tok.ENDVAR, span, strm') => ((), span, strm') | |
2162 | - | _ => fail() | |
2163 | -(* end case *)) | |
2164 | -fun matchSTARTVAR strm = (case (lex(strm)) | |
2165 | - of (Tok.STARTVAR(x), span, strm') => (x, span, strm') | |
2166 | - | _ => fail() | |
2167 | -(* end case *)) | |
2168 | -fun matchENDUL strm = (case (lex(strm)) | |
2169 | - of (Tok.ENDUL, span, strm') => ((), span, strm') | |
2170 | - | _ => fail() | |
2171 | -(* end case *)) | |
2172 | -fun matchSTARTUL strm = (case (lex(strm)) | |
2173 | - of (Tok.STARTUL(x), span, strm') => (x, span, strm') | |
2174 | - | _ => fail() | |
2175 | -(* end case *)) | |
2176 | -fun matchENDU strm = (case (lex(strm)) | |
2177 | - of (Tok.ENDU, span, strm') => ((), span, strm') | |
2178 | - | _ => fail() | |
2179 | -(* end case *)) | |
2180 | -fun matchSTARTU strm = (case (lex(strm)) | |
2181 | - of (Tok.STARTU(x), span, strm') => (x, span, strm') | |
2182 | - | _ => fail() | |
2183 | -(* end case *)) | |
2184 | -fun matchENDTT strm = (case (lex(strm)) | |
2185 | - of (Tok.ENDTT, span, strm') => ((), span, strm') | |
2186 | - | _ => fail() | |
2187 | -(* end case *)) | |
2188 | -fun matchSTARTTT strm = (case (lex(strm)) | |
2189 | - of (Tok.STARTTT(x), span, strm') => (x, span, strm') | |
2190 | - | _ => fail() | |
2191 | -(* end case *)) | |
2192 | -fun matchENDTR strm = (case (lex(strm)) | |
2193 | - of (Tok.ENDTR, span, strm') => ((), span, strm') | |
2194 | - | _ => fail() | |
2195 | -(* end case *)) | |
2196 | -fun matchSTARTTR strm = (case (lex(strm)) | |
2197 | - of (Tok.STARTTR(x), span, strm') => (x, span, strm') | |
2198 | - | _ => fail() | |
2199 | -(* end case *)) | |
2200 | -fun matchENDTITLE strm = (case (lex(strm)) | |
2201 | - of (Tok.ENDTITLE, span, strm') => ((), span, strm') | |
2202 | - | _ => fail() | |
2203 | -(* end case *)) | |
2204 | -fun matchSTARTTITLE strm = (case (lex(strm)) | |
2205 | - of (Tok.STARTTITLE(x), span, strm') => (x, span, strm') | |
2206 | - | _ => fail() | |
2207 | -(* end case *)) | |
2208 | -fun matchENDTHEAD strm = (case (lex(strm)) | |
2209 | - of (Tok.ENDTHEAD, span, strm') => ((), span, strm') | |
2210 | - | _ => fail() | |
2211 | -(* end case *)) | |
2212 | -fun matchSTARTTHEAD strm = (case (lex(strm)) | |
2213 | - of (Tok.STARTTHEAD(x), span, strm') => (x, span, strm') | |
2214 | - | _ => fail() | |
2215 | -(* end case *)) | |
2216 | -fun matchENDTH strm = (case (lex(strm)) | |
2217 | - of (Tok.ENDTH, span, strm') => ((), span, strm') | |
2218 | - | _ => fail() | |
2219 | -(* end case *)) | |
2220 | -fun matchSTARTTH strm = (case (lex(strm)) | |
2221 | - of (Tok.STARTTH(x), span, strm') => (x, span, strm') | |
2222 | - | _ => fail() | |
2223 | -(* end case *)) | |
2224 | -fun matchENDTFOOT strm = (case (lex(strm)) | |
2225 | - of (Tok.ENDTFOOT, span, strm') => ((), span, strm') | |
2226 | - | _ => fail() | |
2227 | -(* end case *)) | |
2228 | -fun matchSTARTTFOOT strm = (case (lex(strm)) | |
2229 | - of (Tok.STARTTFOOT(x), span, strm') => (x, span, strm') | |
2230 | - | _ => fail() | |
2231 | -(* end case *)) | |
2232 | -fun matchENDTEXTAREA strm = (case (lex(strm)) | |
2233 | - of (Tok.ENDTEXTAREA, span, strm') => ((), span, strm') | |
2234 | - | _ => fail() | |
2235 | -(* end case *)) | |
2236 | -fun matchSTARTTEXTAREA strm = (case (lex(strm)) | |
2237 | - of (Tok.STARTTEXTAREA(x), span, strm') => (x, span, strm') | |
2238 | - | _ => fail() | |
2239 | -(* end case *)) | |
2240 | -fun matchENDTD strm = (case (lex(strm)) | |
2241 | - of (Tok.ENDTD, span, strm') => ((), span, strm') | |
2242 | - | _ => fail() | |
2243 | -(* end case *)) | |
2244 | -fun matchSTARTTD strm = (case (lex(strm)) | |
2245 | - of (Tok.STARTTD(x), span, strm') => (x, span, strm') | |
2246 | - | _ => fail() | |
2247 | -(* end case *)) | |
2248 | -fun matchENDTBODY strm = (case (lex(strm)) | |
2249 | - of (Tok.ENDTBODY, span, strm') => ((), span, strm') | |
2250 | - | _ => fail() | |
2251 | -(* end case *)) | |
2252 | -fun matchSTARTTBODY strm = (case (lex(strm)) | |
2253 | - of (Tok.STARTTBODY(x), span, strm') => (x, span, strm') | |
2254 | - | _ => fail() | |
2255 | -(* end case *)) | |
2256 | -fun matchENDTABLE strm = (case (lex(strm)) | |
2257 | - of (Tok.ENDTABLE, span, strm') => ((), span, strm') | |
2258 | - | _ => fail() | |
2259 | -(* end case *)) | |
2260 | -fun matchSTARTTABLE strm = (case (lex(strm)) | |
2261 | - of (Tok.STARTTABLE(x), span, strm') => (x, span, strm') | |
2262 | - | _ => fail() | |
2263 | -(* end case *)) | |
2264 | -fun matchENDSUP strm = (case (lex(strm)) | |
2265 | - of (Tok.ENDSUP, span, strm') => ((), span, strm') | |
2266 | - | _ => fail() | |
2267 | -(* end case *)) | |
2268 | -fun matchSTARTSUP strm = (case (lex(strm)) | |
2269 | - of (Tok.STARTSUP(x), span, strm') => (x, span, strm') | |
2270 | - | _ => fail() | |
2271 | -(* end case *)) | |
2272 | -fun matchENDSUB strm = (case (lex(strm)) | |
2273 | - of (Tok.ENDSUB, span, strm') => ((), span, strm') | |
2274 | - | _ => fail() | |
2275 | -(* end case *)) | |
2276 | -fun matchSTARTSUB strm = (case (lex(strm)) | |
2277 | - of (Tok.STARTSUB(x), span, strm') => (x, span, strm') | |
2278 | - | _ => fail() | |
2279 | -(* end case *)) | |
2280 | -fun matchENDSTYLE strm = (case (lex(strm)) | |
2281 | - of (Tok.ENDSTYLE, span, strm') => ((), span, strm') | |
2282 | - | _ => fail() | |
2283 | -(* end case *)) | |
2284 | -fun matchSTARTSTYLE strm = (case (lex(strm)) | |
2285 | - of (Tok.STARTSTYLE(x), span, strm') => (x, span, strm') | |
2286 | - | _ => fail() | |
2287 | -(* end case *)) | |
2288 | -fun matchENDSTRONG strm = (case (lex(strm)) | |
2289 | - of (Tok.ENDSTRONG, span, strm') => ((), span, strm') | |
2290 | - | _ => fail() | |
2291 | -(* end case *)) | |
2292 | -fun matchSTARTSTRONG strm = (case (lex(strm)) | |
2293 | - of (Tok.STARTSTRONG(x), span, strm') => (x, span, strm') | |
2294 | - | _ => fail() | |
2295 | -(* end case *)) | |
2296 | -fun matchENDSTRIKE strm = (case (lex(strm)) | |
2297 | - of (Tok.ENDSTRIKE, span, strm') => ((), span, strm') | |
2298 | - | _ => fail() | |
2299 | -(* end case *)) | |
2300 | -fun matchSTARTSTRIKE strm = (case (lex(strm)) | |
2301 | - of (Tok.STARTSTRIKE(x), span, strm') => (x, span, strm') | |
2302 | - | _ => fail() | |
2303 | -(* end case *)) | |
2304 | -fun matchENDSPAN strm = (case (lex(strm)) | |
2305 | - of (Tok.ENDSPAN, span, strm') => ((), span, strm') | |
2306 | - | _ => fail() | |
2307 | -(* end case *)) | |
2308 | -fun matchSTARTSPAN strm = (case (lex(strm)) | |
2309 | - of (Tok.STARTSPAN(x), span, strm') => (x, span, strm') | |
2310 | - | _ => fail() | |
2311 | -(* end case *)) | |
2312 | -fun matchENDSMALL strm = (case (lex(strm)) | |
2313 | - of (Tok.ENDSMALL, span, strm') => ((), span, strm') | |
2314 | - | _ => fail() | |
2315 | -(* end case *)) | |
2316 | -fun matchSTARTSMALL strm = (case (lex(strm)) | |
2317 | - of (Tok.STARTSMALL(x), span, strm') => (x, span, strm') | |
2318 | - | _ => fail() | |
2319 | -(* end case *)) | |
2320 | -fun matchENDSELECT strm = (case (lex(strm)) | |
2321 | - of (Tok.ENDSELECT, span, strm') => ((), span, strm') | |
2322 | - | _ => fail() | |
2323 | -(* end case *)) | |
2324 | -fun matchSTARTSELECT strm = (case (lex(strm)) | |
2325 | - of (Tok.STARTSELECT(x), span, strm') => (x, span, strm') | |
2326 | - | _ => fail() | |
2327 | -(* end case *)) | |
2328 | -fun matchENDSCRIPT strm = (case (lex(strm)) | |
2329 | - of (Tok.ENDSCRIPT, span, strm') => ((), span, strm') | |
2330 | - | _ => fail() | |
2331 | -(* end case *)) | |
2332 | -fun matchSTARTSCRIPT strm = (case (lex(strm)) | |
2333 | - of (Tok.STARTSCRIPT(x), span, strm') => (x, span, strm') | |
2334 | - | _ => fail() | |
2335 | -(* end case *)) | |
2336 | -fun matchENDSAMP strm = (case (lex(strm)) | |
2337 | - of (Tok.ENDSAMP, span, strm') => ((), span, strm') | |
2338 | - | _ => fail() | |
2339 | -(* end case *)) | |
2340 | -fun matchSTARTSAMP strm = (case (lex(strm)) | |
2341 | - of (Tok.STARTSAMP(x), span, strm') => (x, span, strm') | |
2342 | - | _ => fail() | |
2343 | -(* end case *)) | |
2344 | -fun matchENDS strm = (case (lex(strm)) | |
2345 | - of (Tok.ENDS, span, strm') => ((), span, strm') | |
2346 | - | _ => fail() | |
2347 | -(* end case *)) | |
2348 | -fun matchSTARTS strm = (case (lex(strm)) | |
2349 | - of (Tok.STARTS(x), span, strm') => (x, span, strm') | |
2350 | - | _ => fail() | |
2351 | -(* end case *)) | |
2352 | -fun matchENDQ strm = (case (lex(strm)) | |
2353 | - of (Tok.ENDQ, span, strm') => ((), span, strm') | |
2354 | - | _ => fail() | |
2355 | -(* end case *)) | |
2356 | -fun matchSTARTQ strm = (case (lex(strm)) | |
2357 | - of (Tok.STARTQ(x), span, strm') => (x, span, strm') | |
2358 | - | _ => fail() | |
2359 | -(* end case *)) | |
2360 | -fun matchENDPRE strm = (case (lex(strm)) | |
2361 | - of (Tok.ENDPRE, span, strm') => ((), span, strm') | |
2362 | - | _ => fail() | |
2363 | -(* end case *)) | |
2364 | -fun matchSTARTPRE strm = (case (lex(strm)) | |
2365 | - of (Tok.STARTPRE(x), span, strm') => (x, span, strm') | |
2366 | - | _ => fail() | |
2367 | -(* end case *)) | |
2368 | -fun matchSTARTPARAM strm = (case (lex(strm)) | |
2369 | - of (Tok.STARTPARAM(x), span, strm') => (x, span, strm') | |
2370 | - | _ => fail() | |
2371 | -(* end case *)) | |
2372 | -fun matchENDP strm = (case (lex(strm)) | |
2373 | - of (Tok.ENDP, span, strm') => ((), span, strm') | |
2374 | - | _ => fail() | |
2375 | -(* end case *)) | |
2376 | -fun matchSTARTP strm = (case (lex(strm)) | |
2377 | - of (Tok.STARTP(x), span, strm') => (x, span, strm') | |
2378 | - | _ => fail() | |
2379 | -(* end case *)) | |
2380 | -fun matchENDOPTION strm = (case (lex(strm)) | |
2381 | - of (Tok.ENDOPTION, span, strm') => ((), span, strm') | |
2382 | - | _ => fail() | |
2383 | -(* end case *)) | |
2384 | -fun matchSTARTOPTION strm = (case (lex(strm)) | |
2385 | - of (Tok.STARTOPTION(x), span, strm') => (x, span, strm') | |
2386 | - | _ => fail() | |
2387 | -(* end case *)) | |
2388 | -fun matchENDOPTGROUP strm = (case (lex(strm)) | |
2389 | - of (Tok.ENDOPTGROUP, span, strm') => ((), span, strm') | |
2390 | - | _ => fail() | |
2391 | -(* end case *)) | |
2392 | -fun matchSTARTOPTGROUP strm = (case (lex(strm)) | |
2393 | - of (Tok.STARTOPTGROUP(x), span, strm') => (x, span, strm') | |
2394 | - | _ => fail() | |
2395 | -(* end case *)) | |
2396 | -fun matchENDOL strm = (case (lex(strm)) | |
2397 | - of (Tok.ENDOL, span, strm') => ((), span, strm') | |
2398 | - | _ => fail() | |
2399 | -(* end case *)) | |
2400 | -fun matchSTARTOL strm = (case (lex(strm)) | |
2401 | - of (Tok.STARTOL(x), span, strm') => (x, span, strm') | |
2402 | - | _ => fail() | |
2403 | -(* end case *)) | |
2404 | -fun matchENDOBJECT strm = (case (lex(strm)) | |
2405 | - of (Tok.ENDOBJECT, span, strm') => ((), span, strm') | |
2406 | - | _ => fail() | |
2407 | -(* end case *)) | |
2408 | -fun matchSTARTOBJECT strm = (case (lex(strm)) | |
2409 | - of (Tok.STARTOBJECT(x), span, strm') => (x, span, strm') | |
2410 | - | _ => fail() | |
2411 | -(* end case *)) | |
2412 | -fun matchENDNOSCRIPT strm = (case (lex(strm)) | |
2413 | - of (Tok.ENDNOSCRIPT, span, strm') => ((), span, strm') | |
2414 | - | _ => fail() | |
2415 | -(* end case *)) | |
2416 | -fun matchSTARTNOSCRIPT strm = (case (lex(strm)) | |
2417 | - of (Tok.STARTNOSCRIPT(x), span, strm') => (x, span, strm') | |
2418 | - | _ => fail() | |
2419 | -(* end case *)) | |
2420 | -fun matchENDNOFRAMES strm = (case (lex(strm)) | |
2421 | - of (Tok.ENDNOFRAMES, span, strm') => ((), span, strm') | |
2422 | - | _ => fail() | |
2423 | -(* end case *)) | |
2424 | -fun matchSTARTNOFRAMES strm = (case (lex(strm)) | |
2425 | - of (Tok.STARTNOFRAMES(x), span, strm') => (x, span, strm') | |
2426 | - | _ => fail() | |
2427 | -(* end case *)) | |
2428 | -fun matchSTARTMETA strm = (case (lex(strm)) | |
2429 | - of (Tok.STARTMETA(x), span, strm') => (x, span, strm') | |
2430 | - | _ => fail() | |
2431 | -(* end case *)) | |
2432 | -fun matchENDMENU strm = (case (lex(strm)) | |
2433 | - of (Tok.ENDMENU, span, strm') => ((), span, strm') | |
2434 | - | _ => fail() | |
2435 | -(* end case *)) | |
2436 | -fun matchSTARTMENU strm = (case (lex(strm)) | |
2437 | - of (Tok.STARTMENU(x), span, strm') => (x, span, strm') | |
2438 | - | _ => fail() | |
2439 | -(* end case *)) | |
2440 | -fun matchENDMAP strm = (case (lex(strm)) | |
2441 | - of (Tok.ENDMAP, span, strm') => ((), span, strm') | |
2442 | - | _ => fail() | |
2443 | -(* end case *)) | |
2444 | -fun matchSTARTMAP strm = (case (lex(strm)) | |
2445 | - of (Tok.STARTMAP(x), span, strm') => (x, span, strm') | |
2446 | - | _ => fail() | |
2447 | -(* end case *)) | |
2448 | -fun matchSTARTLINK strm = (case (lex(strm)) | |
2449 | - of (Tok.STARTLINK(x), span, strm') => (x, span, strm') | |
2450 | - | _ => fail() | |
2451 | -(* end case *)) | |
2452 | -fun matchENDLI strm = (case (lex(strm)) | |
2453 | - of (Tok.ENDLI, span, strm') => ((), span, strm') | |
2454 | - | _ => fail() | |
2455 | -(* end case *)) | |
2456 | -fun matchSTARTLI strm = (case (lex(strm)) | |
2457 | - of (Tok.STARTLI(x), span, strm') => (x, span, strm') | |
2458 | - | _ => fail() | |
2459 | -(* end case *)) | |
2460 | -fun matchENDLEGEND strm = (case (lex(strm)) | |
2461 | - of (Tok.ENDLEGEND, span, strm') => ((), span, strm') | |
2462 | - | _ => fail() | |
2463 | -(* end case *)) | |
2464 | -fun matchSTARTLEGEND strm = (case (lex(strm)) | |
2465 | - of (Tok.STARTLEGEND(x), span, strm') => (x, span, strm') | |
2466 | - | _ => fail() | |
2467 | -(* end case *)) | |
2468 | -fun matchENDLABEL strm = (case (lex(strm)) | |
2469 | - of (Tok.ENDLABEL, span, strm') => ((), span, strm') | |
2470 | - | _ => fail() | |
2471 | -(* end case *)) | |
2472 | -fun matchSTARTLABEL strm = (case (lex(strm)) | |
2473 | - of (Tok.STARTLABEL(x), span, strm') => (x, span, strm') | |
2474 | - | _ => fail() | |
2475 | -(* end case *)) | |
2476 | -fun matchENDKBD strm = (case (lex(strm)) | |
2477 | - of (Tok.ENDKBD, span, strm') => ((), span, strm') | |
2478 | - | _ => fail() | |
2479 | -(* end case *)) | |
2480 | -fun matchSTARTKBD strm = (case (lex(strm)) | |
2481 | - of (Tok.STARTKBD(x), span, strm') => (x, span, strm') | |
2482 | - | _ => fail() | |
2483 | -(* end case *)) | |
2484 | -fun matchSTARTISINDEX strm = (case (lex(strm)) | |
2485 | - of (Tok.STARTISINDEX(x), span, strm') => (x, span, strm') | |
2486 | - | _ => fail() | |
2487 | -(* end case *)) | |
2488 | -fun matchENDINS strm = (case (lex(strm)) | |
2489 | - of (Tok.ENDINS, span, strm') => ((), span, strm') | |
2490 | - | _ => fail() | |
2491 | -(* end case *)) | |
2492 | -fun matchSTARTINS strm = (case (lex(strm)) | |
2493 | - of (Tok.STARTINS(x), span, strm') => (x, span, strm') | |
2494 | - | _ => fail() | |
2495 | -(* end case *)) | |
2496 | -fun matchSTARTINPUT strm = (case (lex(strm)) | |
2497 | - of (Tok.STARTINPUT(x), span, strm') => (x, span, strm') | |
2498 | - | _ => fail() | |
2499 | -(* end case *)) | |
2500 | -fun matchSTARTIMG strm = (case (lex(strm)) | |
2501 | - of (Tok.STARTIMG(x), span, strm') => (x, span, strm') | |
2502 | - | _ => fail() | |
2503 | -(* end case *)) | |
2504 | -fun matchENDIFRAME strm = (case (lex(strm)) | |
2505 | - of (Tok.ENDIFRAME, span, strm') => ((), span, strm') | |
2506 | - | _ => fail() | |
2507 | -(* end case *)) | |
2508 | -fun matchSTARTIFRAME strm = (case (lex(strm)) | |
2509 | - of (Tok.STARTIFRAME(x), span, strm') => (x, span, strm') | |
2510 | - | _ => fail() | |
2511 | -(* end case *)) | |
2512 | -fun matchENDI strm = (case (lex(strm)) | |
2513 | - of (Tok.ENDI, span, strm') => ((), span, strm') | |
2514 | - | _ => fail() | |
2515 | -(* end case *)) | |
2516 | -fun matchSTARTI strm = (case (lex(strm)) | |
2517 | - of (Tok.STARTI(x), span, strm') => (x, span, strm') | |
2518 | - | _ => fail() | |
2519 | -(* end case *)) | |
2520 | -fun matchENDHTML strm = (case (lex(strm)) | |
2521 | - of (Tok.ENDHTML, span, strm') => ((), span, strm') | |
2522 | - | _ => fail() | |
2523 | -(* end case *)) | |
2524 | -fun matchSTARTHTML strm = (case (lex(strm)) | |
2525 | - of (Tok.STARTHTML(x), span, strm') => (x, span, strm') | |
2526 | - | _ => fail() | |
2527 | -(* end case *)) | |
2528 | -fun matchSTARTHR strm = (case (lex(strm)) | |
2529 | - of (Tok.STARTHR(x), span, strm') => (x, span, strm') | |
2530 | - | _ => fail() | |
2531 | -(* end case *)) | |
2532 | -fun matchENDHEAD strm = (case (lex(strm)) | |
2533 | - of (Tok.ENDHEAD, span, strm') => ((), span, strm') | |
2534 | - | _ => fail() | |
2535 | -(* end case *)) | |
2536 | -fun matchSTARTHEAD strm = (case (lex(strm)) | |
2537 | - of (Tok.STARTHEAD(x), span, strm') => (x, span, strm') | |
2538 | - | _ => fail() | |
2539 | -(* end case *)) | |
2540 | -fun matchENDH6 strm = (case (lex(strm)) | |
2541 | - of (Tok.ENDH6, span, strm') => ((), span, strm') | |
2542 | - | _ => fail() | |
2543 | -(* end case *)) | |
2544 | -fun matchSTARTH6 strm = (case (lex(strm)) | |
2545 | - of (Tok.STARTH6(x), span, strm') => (x, span, strm') | |
2546 | - | _ => fail() | |
2547 | -(* end case *)) | |
2548 | -fun matchENDH5 strm = (case (lex(strm)) | |
2549 | - of (Tok.ENDH5, span, strm') => ((), span, strm') | |
2550 | - | _ => fail() | |
2551 | -(* end case *)) | |
2552 | -fun matchSTARTH5 strm = (case (lex(strm)) | |
2553 | - of (Tok.STARTH5(x), span, strm') => (x, span, strm') | |
2554 | - | _ => fail() | |
2555 | -(* end case *)) | |
2556 | -fun matchENDH4 strm = (case (lex(strm)) | |
2557 | - of (Tok.ENDH4, span, strm') => ((), span, strm') | |
2558 | - | _ => fail() | |
2559 | -(* end case *)) | |
2560 | -fun matchSTARTH4 strm = (case (lex(strm)) | |
2561 | - of (Tok.STARTH4(x), span, strm') => (x, span, strm') | |
2562 | - | _ => fail() | |
2563 | -(* end case *)) | |
2564 | -fun matchENDH3 strm = (case (lex(strm)) | |
2565 | - of (Tok.ENDH3, span, strm') => ((), span, strm') | |
2566 | - | _ => fail() | |
2567 | -(* end case *)) | |
2568 | -fun matchSTARTH3 strm = (case (lex(strm)) | |
2569 | - of (Tok.STARTH3(x), span, strm') => (x, span, strm') | |
2570 | - | _ => fail() | |
2571 | -(* end case *)) | |
2572 | -fun matchENDH2 strm = (case (lex(strm)) | |
2573 | - of (Tok.ENDH2, span, strm') => ((), span, strm') | |
2574 | - | _ => fail() | |
2575 | -(* end case *)) | |
2576 | -fun matchSTARTH2 strm = (case (lex(strm)) | |
2577 | - of (Tok.STARTH2(x), span, strm') => (x, span, strm') | |
2578 | - | _ => fail() | |
2579 | -(* end case *)) | |
2580 | -fun matchENDH1 strm = (case (lex(strm)) | |
2581 | - of (Tok.ENDH1, span, strm') => ((), span, strm') | |
2582 | - | _ => fail() | |
2583 | -(* end case *)) | |
2584 | -fun matchSTARTH1 strm = (case (lex(strm)) | |
2585 | - of (Tok.STARTH1(x), span, strm') => (x, span, strm') | |
2586 | - | _ => fail() | |
2587 | -(* end case *)) | |
2588 | -fun matchENDFRAMESET strm = (case (lex(strm)) | |
2589 | - of (Tok.ENDFRAMESET, span, strm') => ((), span, strm') | |
2590 | - | _ => fail() | |
2591 | -(* end case *)) | |
2592 | -fun matchSTARTFRAMESET strm = (case (lex(strm)) | |
2593 | - of (Tok.STARTFRAMESET(x), span, strm') => (x, span, strm') | |
2594 | - | _ => fail() | |
2595 | -(* end case *)) | |
2596 | -fun matchSTARTFRAME strm = (case (lex(strm)) | |
2597 | - of (Tok.STARTFRAME(x), span, strm') => (x, span, strm') | |
2598 | - | _ => fail() | |
2599 | -(* end case *)) | |
2600 | -fun matchENDFORM strm = (case (lex(strm)) | |
2601 | - of (Tok.ENDFORM, span, strm') => ((), span, strm') | |
2602 | - | _ => fail() | |
2603 | -(* end case *)) | |
2604 | -fun matchSTARTFORM strm = (case (lex(strm)) | |
2605 | - of (Tok.STARTFORM(x), span, strm') => (x, span, strm') | |
2606 | - | _ => fail() | |
2607 | -(* end case *)) | |
2608 | -fun matchENDFONT strm = (case (lex(strm)) | |
2609 | - of (Tok.ENDFONT, span, strm') => ((), span, strm') | |
2610 | - | _ => fail() | |
2611 | -(* end case *)) | |
2612 | -fun matchSTARTFONT strm = (case (lex(strm)) | |
2613 | - of (Tok.STARTFONT(x), span, strm') => (x, span, strm') | |
2614 | - | _ => fail() | |
2615 | -(* end case *)) | |
2616 | -fun matchENDFIELDSET strm = (case (lex(strm)) | |
2617 | - of (Tok.ENDFIELDSET, span, strm') => ((), span, strm') | |
2618 | - | _ => fail() | |
2619 | -(* end case *)) | |
2620 | -fun matchSTARTFIELDSET strm = (case (lex(strm)) | |
2621 | - of (Tok.STARTFIELDSET(x), span, strm') => (x, span, strm') | |
2622 | - | _ => fail() | |
2623 | -(* end case *)) | |
2624 | -fun matchENDEM strm = (case (lex(strm)) | |
2625 | - of (Tok.ENDEM, span, strm') => ((), span, strm') | |
2626 | - | _ => fail() | |
2627 | -(* end case *)) | |
2628 | -fun matchSTARTEM strm = (case (lex(strm)) | |
2629 | - of (Tok.STARTEM(x), span, strm') => (x, span, strm') | |
2630 | - | _ => fail() | |
2631 | -(* end case *)) | |
2632 | -fun matchENDDT strm = (case (lex(strm)) | |
2633 | - of (Tok.ENDDT, span, strm') => ((), span, strm') | |
2634 | - | _ => fail() | |
2635 | -(* end case *)) | |
2636 | -fun matchSTARTDT strm = (case (lex(strm)) | |
2637 | - of (Tok.STARTDT(x), span, strm') => (x, span, strm') | |
2638 | - | _ => fail() | |
2639 | -(* end case *)) | |
2640 | -fun matchENDDL strm = (case (lex(strm)) | |
2641 | - of (Tok.ENDDL, span, strm') => ((), span, strm') | |
2642 | - | _ => fail() | |
2643 | -(* end case *)) | |
2644 | -fun matchSTARTDL strm = (case (lex(strm)) | |
2645 | - of (Tok.STARTDL(x), span, strm') => (x, span, strm') | |
2646 | - | _ => fail() | |
2647 | -(* end case *)) | |
2648 | -fun matchENDDIV strm = (case (lex(strm)) | |
2649 | - of (Tok.ENDDIV, span, strm') => ((), span, strm') | |
2650 | - | _ => fail() | |
2651 | -(* end case *)) | |
2652 | -fun matchSTARTDIV strm = (case (lex(strm)) | |
2653 | - of (Tok.STARTDIV(x), span, strm') => (x, span, strm') | |
2654 | - | _ => fail() | |
2655 | -(* end case *)) | |
2656 | -fun matchENDDIR strm = (case (lex(strm)) | |
2657 | - of (Tok.ENDDIR, span, strm') => ((), span, strm') | |
2658 | - | _ => fail() | |
2659 | -(* end case *)) | |
2660 | -fun matchSTARTDIR strm = (case (lex(strm)) | |
2661 | - of (Tok.STARTDIR(x), span, strm') => (x, span, strm') | |
2662 | - | _ => fail() | |
2663 | -(* end case *)) | |
2664 | -fun matchENDDFN strm = (case (lex(strm)) | |
2665 | - of (Tok.ENDDFN, span, strm') => ((), span, strm') | |
2666 | - | _ => fail() | |
2667 | -(* end case *)) | |
2668 | -fun matchSTARTDFN strm = (case (lex(strm)) | |
2669 | - of (Tok.STARTDFN(x), span, strm') => (x, span, strm') | |
2670 | - | _ => fail() | |
2671 | -(* end case *)) | |
2672 | -fun matchENDDEL strm = (case (lex(strm)) | |
2673 | - of (Tok.ENDDEL, span, strm') => ((), span, strm') | |
2674 | - | _ => fail() | |
2675 | -(* end case *)) | |
2676 | -fun matchSTARTDEL strm = (case (lex(strm)) | |
2677 | - of (Tok.STARTDEL(x), span, strm') => (x, span, strm') | |
2678 | - | _ => fail() | |
2679 | -(* end case *)) | |
2680 | -fun matchENDDD strm = (case (lex(strm)) | |
2681 | - of (Tok.ENDDD, span, strm') => ((), span, strm') | |
2682 | - | _ => fail() | |
2683 | -(* end case *)) | |
2684 | -fun matchSTARTDD strm = (case (lex(strm)) | |
2685 | - of (Tok.STARTDD(x), span, strm') => (x, span, strm') | |
2686 | - | _ => fail() | |
2687 | -(* end case *)) | |
2688 | -fun matchENDCOLGROUP strm = (case (lex(strm)) | |
2689 | - of (Tok.ENDCOLGROUP, span, strm') => ((), span, strm') | |
2690 | - | _ => fail() | |
2691 | -(* end case *)) | |
2692 | -fun matchSTARTCOLGROUP strm = (case (lex(strm)) | |
2693 | - of (Tok.STARTCOLGROUP(x), span, strm') => (x, span, strm') | |
2694 | - | _ => fail() | |
2695 | -(* end case *)) | |
2696 | -fun matchSTARTCOL strm = (case (lex(strm)) | |
2697 | - of (Tok.STARTCOL(x), span, strm') => (x, span, strm') | |
2698 | - | _ => fail() | |
2699 | -(* end case *)) | |
2700 | -fun matchENDCODE strm = (case (lex(strm)) | |
2701 | - of (Tok.ENDCODE, span, strm') => ((), span, strm') | |
2702 | - | _ => fail() | |
2703 | -(* end case *)) | |
2704 | -fun matchSTARTCODE strm = (case (lex(strm)) | |
2705 | - of (Tok.STARTCODE(x), span, strm') => (x, span, strm') | |
2706 | - | _ => fail() | |
2707 | -(* end case *)) | |
2708 | -fun matchENDCITE strm = (case (lex(strm)) | |
2709 | - of (Tok.ENDCITE, span, strm') => ((), span, strm') | |
2710 | - | _ => fail() | |
2711 | -(* end case *)) | |
2712 | -fun matchSTARTCITE strm = (case (lex(strm)) | |
2713 | - of (Tok.STARTCITE(x), span, strm') => (x, span, strm') | |
2714 | - | _ => fail() | |
2715 | -(* end case *)) | |
2716 | -fun matchENDCENTER strm = (case (lex(strm)) | |
2717 | - of (Tok.ENDCENTER, span, strm') => ((), span, strm') | |
2718 | - | _ => fail() | |
2719 | -(* end case *)) | |
2720 | -fun matchSTARTCENTER strm = (case (lex(strm)) | |
2721 | - of (Tok.STARTCENTER(x), span, strm') => (x, span, strm') | |
2722 | - | _ => fail() | |
2723 | -(* end case *)) | |
2724 | -fun matchENDCAPTION strm = (case (lex(strm)) | |
2725 | - of (Tok.ENDCAPTION, span, strm') => ((), span, strm') | |
2726 | - | _ => fail() | |
2727 | -(* end case *)) | |
2728 | -fun matchSTARTCAPTION strm = (case (lex(strm)) | |
2729 | - of (Tok.STARTCAPTION(x), span, strm') => (x, span, strm') | |
2730 | - | _ => fail() | |
2731 | -(* end case *)) | |
2732 | -fun matchENDBUTTON strm = (case (lex(strm)) | |
2733 | - of (Tok.ENDBUTTON, span, strm') => ((), span, strm') | |
2734 | - | _ => fail() | |
2735 | -(* end case *)) | |
2736 | -fun matchSTARTBUTTON strm = (case (lex(strm)) | |
2737 | - of (Tok.STARTBUTTON(x), span, strm') => (x, span, strm') | |
2738 | - | _ => fail() | |
2739 | -(* end case *)) | |
2740 | -fun matchSTARTBR strm = (case (lex(strm)) | |
2741 | - of (Tok.STARTBR(x), span, strm') => (x, span, strm') | |
2742 | - | _ => fail() | |
2743 | -(* end case *)) | |
2744 | -fun matchENDBODY strm = (case (lex(strm)) | |
2745 | - of (Tok.ENDBODY, span, strm') => ((), span, strm') | |
2746 | - | _ => fail() | |
2747 | -(* end case *)) | |
2748 | -fun matchSTARTBODY strm = (case (lex(strm)) | |
2749 | - of (Tok.STARTBODY(x), span, strm') => (x, span, strm') | |
2750 | - | _ => fail() | |
2751 | -(* end case *)) | |
2752 | -fun matchENDBLOCKQUOTE strm = (case (lex(strm)) | |
2753 | - of (Tok.ENDBLOCKQUOTE, span, strm') => ((), span, strm') | |
2754 | - | _ => fail() | |
2755 | -(* end case *)) | |
2756 | -fun matchSTARTBLOCKQUOTE strm = (case (lex(strm)) | |
2757 | - of (Tok.STARTBLOCKQUOTE(x), span, strm') => (x, span, strm') | |
2758 | - | _ => fail() | |
2759 | -(* end case *)) | |
2760 | -fun matchENDBIG strm = (case (lex(strm)) | |
2761 | - of (Tok.ENDBIG, span, strm') => ((), span, strm') | |
2762 | - | _ => fail() | |
2763 | -(* end case *)) | |
2764 | -fun matchSTARTBIG strm = (case (lex(strm)) | |
2765 | - of (Tok.STARTBIG(x), span, strm') => (x, span, strm') | |
2766 | - | _ => fail() | |
2767 | -(* end case *)) | |
2768 | -fun matchENDBDO strm = (case (lex(strm)) | |
2769 | - of (Tok.ENDBDO, span, strm') => ((), span, strm') | |
2770 | - | _ => fail() | |
2771 | -(* end case *)) | |
2772 | -fun matchSTARTBDO strm = (case (lex(strm)) | |
2773 | - of (Tok.STARTBDO(x), span, strm') => (x, span, strm') | |
2774 | - | _ => fail() | |
2775 | -(* end case *)) | |
2776 | -fun matchSTARTBASEFONT strm = (case (lex(strm)) | |
2777 | - of (Tok.STARTBASEFONT(x), span, strm') => (x, span, strm') | |
2778 | - | _ => fail() | |
2779 | -(* end case *)) | |
2780 | -fun matchSTARTBASE strm = (case (lex(strm)) | |
2781 | - of (Tok.STARTBASE(x), span, strm') => (x, span, strm') | |
2782 | - | _ => fail() | |
2783 | -(* end case *)) | |
2784 | -fun matchENDB strm = (case (lex(strm)) | |
2785 | - of (Tok.ENDB, span, strm') => ((), span, strm') | |
2786 | - | _ => fail() | |
2787 | -(* end case *)) | |
2788 | -fun matchSTARTB strm = (case (lex(strm)) | |
2789 | - of (Tok.STARTB(x), span, strm') => (x, span, strm') | |
2790 | - | _ => fail() | |
2791 | -(* end case *)) | |
2792 | -fun matchSTARTAREA strm = (case (lex(strm)) | |
2793 | - of (Tok.STARTAREA(x), span, strm') => (x, span, strm') | |
2794 | - | _ => fail() | |
2795 | -(* end case *)) | |
2796 | -fun matchENDAPPLET strm = (case (lex(strm)) | |
2797 | - of (Tok.ENDAPPLET, span, strm') => ((), span, strm') | |
2798 | - | _ => fail() | |
2799 | -(* end case *)) | |
2800 | -fun matchSTARTAPPLET strm = (case (lex(strm)) | |
2801 | - of (Tok.STARTAPPLET(x), span, strm') => (x, span, strm') | |
2802 | - | _ => fail() | |
2803 | -(* end case *)) | |
2804 | -fun matchENDADDRESS strm = (case (lex(strm)) | |
2805 | - of (Tok.ENDADDRESS, span, strm') => ((), span, strm') | |
2806 | - | _ => fail() | |
2807 | -(* end case *)) | |
2808 | -fun matchSTARTADDRESS strm = (case (lex(strm)) | |
2809 | - of (Tok.STARTADDRESS(x), span, strm') => (x, span, strm') | |
2810 | - | _ => fail() | |
2811 | -(* end case *)) | |
2812 | -fun matchENDACRONYM strm = (case (lex(strm)) | |
2813 | - of (Tok.ENDACRONYM, span, strm') => ((), span, strm') | |
2814 | - | _ => fail() | |
2815 | -(* end case *)) | |
2816 | -fun matchSTARTACRONYM strm = (case (lex(strm)) | |
2817 | - of (Tok.STARTACRONYM(x), span, strm') => (x, span, strm') | |
2818 | - | _ => fail() | |
2819 | -(* end case *)) | |
2820 | -fun matchENDABBR strm = (case (lex(strm)) | |
2821 | - of (Tok.ENDABBR, span, strm') => ((), span, strm') | |
2822 | - | _ => fail() | |
2823 | -(* end case *)) | |
2824 | -fun matchSTARTABBR strm = (case (lex(strm)) | |
2825 | - of (Tok.STARTABBR(x), span, strm') => (x, span, strm') | |
2826 | - | _ => fail() | |
2827 | -(* end case *)) | |
2828 | -fun matchENDA strm = (case (lex(strm)) | |
2829 | - of (Tok.ENDA, span, strm') => ((), span, strm') | |
2830 | - | _ => fail() | |
2831 | -(* end case *)) | |
2832 | -fun matchSTARTA strm = (case (lex(strm)) | |
2833 | - of (Tok.STARTA(x), span, strm') => (x, span, strm') | |
2834 | - | _ => fail() | |
2835 | -(* end case *)) | |
2836 | -fun matchXML_PROCESSING strm = (case (lex(strm)) | |
2837 | - of (Tok.XML_PROCESSING(x), span, strm') => (x, span, strm') | |
2838 | - | _ => fail() | |
2839 | -(* end case *)) | |
2840 | -fun matchENTITY_REF strm = (case (lex(strm)) | |
2841 | - of (Tok.ENTITY_REF(x), span, strm') => (x, span, strm') | |
2842 | - | _ => fail() | |
2843 | -(* end case *)) | |
2844 | -fun matchCHAR_REF strm = (case (lex(strm)) | |
2845 | - of (Tok.CHAR_REF(x), span, strm') => (x, span, strm') | |
2846 | - | _ => fail() | |
2847 | -(* end case *)) | |
2848 | -fun matchDOCTYPE strm = (case (lex(strm)) | |
2849 | - of (Tok.DOCTYPE(x), span, strm') => (x, span, strm') | |
2850 | - | _ => fail() | |
2851 | -(* end case *)) | |
2852 | -fun matchPCDATA strm = (case (lex(strm)) | |
2853 | - of (Tok.PCDATA(x), span, strm') => (x, span, strm') | |
2854 | - | _ => fail() | |
2855 | -(* end case *)) | |
2856 | -fun matchCOMMENT strm = (case (lex(strm)) | |
2857 | - of (Tok.COMMENT(x), span, strm') => (x, span, strm') | |
2858 | - | _ => fail() | |
2859 | -(* end case *)) | |
2860 | -fun matchCLOSETAG strm = (case (lex(strm)) | |
2861 | - of (Tok.CLOSETAG(x), span, strm') => (x, span, strm') | |
2862 | - | _ => fail() | |
2863 | -(* end case *)) | |
2864 | fun matchOPENTAG strm = (case (lex(strm)) | |
2865 | of (Tok.OPENTAG(x), span, strm') => (x, span, strm') | |
2866 | | _ => fail() | |
2867 | (* end case *)) | |
2868 | +fun matchCLOSETAG strm = (case (lex(strm)) | |
2869 | + of (Tok.CLOSETAG(x), span, strm') => (x, span, strm') | |
2870 | + | _ => fail() | |
2871 | +(* end case *)) | |
2872 | +fun matchCOMMENT strm = (case (lex(strm)) | |
2873 | + of (Tok.COMMENT(x), span, strm') => (x, span, strm') | |
2874 | + | _ => fail() | |
2875 | +(* end case *)) | |
2876 | +fun matchPCDATA strm = (case (lex(strm)) | |
2877 | + of (Tok.PCDATA(x), span, strm') => (x, span, strm') | |
2878 | + | _ => fail() | |
2879 | +(* end case *)) | |
2880 | +fun matchDOCTYPE strm = (case (lex(strm)) | |
2881 | + of (Tok.DOCTYPE(x), span, strm') => (x, span, strm') | |
2882 | + | _ => fail() | |
2883 | +(* end case *)) | |
2884 | +fun matchCHAR_REF strm = (case (lex(strm)) | |
2885 | + of (Tok.CHAR_REF(x), span, strm') => (x, span, strm') | |
2886 | + | _ => fail() | |
2887 | +(* end case *)) | |
2888 | +fun matchENTITY_REF strm = (case (lex(strm)) | |
2889 | + of (Tok.ENTITY_REF(x), span, strm') => (x, span, strm') | |
2890 | + | _ => fail() | |
2891 | +(* end case *)) | |
2892 | +fun matchXML_PROCESSING strm = (case (lex(strm)) | |
2893 | + of (Tok.XML_PROCESSING(x), span, strm') => (x, span, strm') | |
2894 | + | _ => fail() | |
2895 | +(* end case *)) | |
2896 | +fun matchSTARTA strm = (case (lex(strm)) | |
2897 | + of (Tok.STARTA(x), span, strm') => (x, span, strm') | |
2898 | + | _ => fail() | |
2899 | +(* end case *)) | |
2900 | +fun matchENDA strm = (case (lex(strm)) | |
2901 | + of (Tok.ENDA, span, strm') => ((), span, strm') | |
2902 | + | _ => fail() | |
2903 | +(* end case *)) | |
2904 | +fun matchSTARTABBR strm = (case (lex(strm)) | |
2905 | + of (Tok.STARTABBR(x), span, strm') => (x, span, strm') | |
2906 | + | _ => fail() | |
2907 | +(* end case *)) | |
2908 | +fun matchENDABBR strm = (case (lex(strm)) | |
2909 | + of (Tok.ENDABBR, span, strm') => ((), span, strm') | |
2910 | + | _ => fail() | |
2911 | +(* end case *)) | |
2912 | +fun matchSTARTACRONYM strm = (case (lex(strm)) | |
2913 | + of (Tok.STARTACRONYM(x), span, strm') => (x, span, strm') | |
2914 | + | _ => fail() | |
2915 | +(* end case *)) | |
2916 | +fun matchENDACRONYM strm = (case (lex(strm)) | |
2917 | + of (Tok.ENDACRONYM, span, strm') => ((), span, strm') | |
2918 | + | _ => fail() | |
2919 | +(* end case *)) | |
2920 | +fun matchSTARTADDRESS strm = (case (lex(strm)) | |
2921 | + of (Tok.STARTADDRESS(x), span, strm') => (x, span, strm') | |
2922 | + | _ => fail() | |
2923 | +(* end case *)) | |
2924 | +fun matchENDADDRESS strm = (case (lex(strm)) | |
2925 | + of (Tok.ENDADDRESS, span, strm') => ((), span, strm') | |
2926 | + | _ => fail() | |
2927 | +(* end case *)) | |
2928 | +fun matchSTARTAPPLET strm = (case (lex(strm)) | |
2929 | + of (Tok.STARTAPPLET(x), span, strm') => (x, span, strm') | |
2930 | + | _ => fail() | |
2931 | +(* end case *)) | |
2932 | +fun matchENDAPPLET strm = (case (lex(strm)) | |
2933 | + of (Tok.ENDAPPLET, span, strm') => ((), span, strm') | |
2934 | + | _ => fail() | |
2935 | +(* end case *)) | |
2936 | +fun matchSTARTAREA strm = (case (lex(strm)) | |
2937 | + of (Tok.STARTAREA(x), span, strm') => (x, span, strm') | |
2938 | + | _ => fail() | |
2939 | +(* end case *)) | |
2940 | +fun matchSTARTB strm = (case (lex(strm)) | |
2941 | + of (Tok.STARTB(x), span, strm') => (x, span, strm') | |
2942 | + | _ => fail() | |
2943 | +(* end case *)) | |
2944 | +fun matchENDB strm = (case (lex(strm)) | |
2945 | + of (Tok.ENDB, span, strm') => ((), span, strm') | |
2946 | + | _ => fail() | |
2947 | +(* end case *)) | |
2948 | +fun matchSTARTBASE strm = (case (lex(strm)) | |
2949 | + of (Tok.STARTBASE(x), span, strm') => (x, span, strm') | |
2950 | + | _ => fail() | |
2951 | +(* end case *)) | |
2952 | +fun matchSTARTBASEFONT strm = (case (lex(strm)) | |
2953 | + of (Tok.STARTBASEFONT(x), span, strm') => (x, span, strm') | |
2954 | + | _ => fail() | |
2955 | +(* end case *)) | |
2956 | +fun matchSTARTBDO strm = (case (lex(strm)) | |
2957 | + of (Tok.STARTBDO(x), span, strm') => (x, span, strm') | |
2958 | + | _ => fail() | |
2959 | +(* end case *)) | |
2960 | +fun matchENDBDO strm = (case (lex(strm)) | |
2961 | + of (Tok.ENDBDO, span, strm') => ((), span, strm') | |
2962 | + | _ => fail() | |
2963 | +(* end case *)) | |
2964 | +fun matchSTARTBIG strm = (case (lex(strm)) | |
2965 | + of (Tok.STARTBIG(x), span, strm') => (x, span, strm') | |
2966 | + | _ => fail() | |
2967 | +(* end case *)) | |
2968 | +fun matchENDBIG strm = (case (lex(strm)) | |
2969 | + of (Tok.ENDBIG, span, strm') => ((), span, strm') | |
2970 | + | _ => fail() | |
2971 | +(* end case *)) | |
2972 | +fun matchSTARTBLOCKQUOTE strm = (case (lex(strm)) | |
2973 | + of (Tok.STARTBLOCKQUOTE(x), span, strm') => (x, span, strm') | |
2974 | + | _ => fail() | |
2975 | +(* end case *)) | |
2976 | +fun matchENDBLOCKQUOTE strm = (case (lex(strm)) | |
2977 | + of (Tok.ENDBLOCKQUOTE, span, strm') => ((), span, strm') | |
2978 | + | _ => fail() | |
2979 | +(* end case *)) | |
2980 | +fun matchSTARTBODY strm = (case (lex(strm)) | |
2981 | + of (Tok.STARTBODY(x), span, strm') => (x, span, strm') | |
2982 | + | _ => fail() | |
2983 | +(* end case *)) | |
2984 | +fun matchENDBODY strm = (case (lex(strm)) | |
2985 | + of (Tok.ENDBODY, span, strm') => ((), span, strm') | |
2986 | + | _ => fail() | |
2987 | +(* end case *)) | |
2988 | +fun matchSTARTBR strm = (case (lex(strm)) | |
2989 | + of (Tok.STARTBR(x), span, strm') => (x, span, strm') | |
2990 | + | _ => fail() | |
2991 | +(* end case *)) | |
2992 | +fun matchSTARTBUTTON strm = (case (lex(strm)) | |
2993 | + of (Tok.STARTBUTTON(x), span, strm') => (x, span, strm') | |
2994 | + | _ => fail() | |
2995 | +(* end case *)) | |
2996 | +fun matchENDBUTTON strm = (case (lex(strm)) | |
2997 | + of (Tok.ENDBUTTON, span, strm') => ((), span, strm') | |
2998 | + | _ => fail() | |
2999 | +(* end case *)) | |
3000 | +fun matchSTARTCAPTION strm = (case (lex(strm)) | |
3001 | + of (Tok.STARTCAPTION(x), span, strm') => (x, span, strm') | |
3002 | + | _ => fail() | |
3003 | +(* end case *)) | |
3004 | +fun matchENDCAPTION strm = (case (lex(strm)) | |
3005 | + of (Tok.ENDCAPTION, span, strm') => ((), span, strm') | |
3006 | + | _ => fail() | |
3007 | +(* end case *)) | |
3008 | +fun matchSTARTCENTER strm = (case (lex(strm)) | |
3009 | + of (Tok.STARTCENTER(x), span, strm') => (x, span, strm') | |
3010 | + | _ => fail() | |
3011 | +(* end case *)) | |
3012 | +fun matchENDCENTER strm = (case (lex(strm)) | |
3013 | + of (Tok.ENDCENTER, span, strm') => ((), span, strm') | |
3014 | + | _ => fail() | |
3015 | +(* end case *)) | |
3016 | +fun matchSTARTCITE strm = (case (lex(strm)) | |
3017 | + of (Tok.STARTCITE(x), span, strm') => (x, span, strm') | |
3018 | + | _ => fail() | |
3019 | +(* end case *)) | |
3020 | +fun matchENDCITE strm = (case (lex(strm)) | |
3021 | + of (Tok.ENDCITE, span, strm') => ((), span, strm') | |
3022 | + | _ => fail() | |
3023 | +(* end case *)) | |
3024 | +fun matchSTARTCODE strm = (case (lex(strm)) | |
3025 | + of (Tok.STARTCODE(x), span, strm') => (x, span, strm') | |
3026 | + | _ => fail() | |
3027 | +(* end case *)) | |
3028 | +fun matchENDCODE strm = (case (lex(strm)) | |
3029 | + of (Tok.ENDCODE, span, strm') => ((), span, strm') | |
3030 | + | _ => fail() | |
3031 | +(* end case *)) | |
3032 | +fun matchSTARTCOL strm = (case (lex(strm)) | |
3033 | + of (Tok.STARTCOL(x), span, strm') => (x, span, strm') | |
3034 | + | _ => fail() | |
3035 | +(* end case *)) | |
3036 | +fun matchSTARTCOLGROUP strm = (case (lex(strm)) | |
3037 | + of (Tok.STARTCOLGROUP(x), span, strm') => (x, span, strm') | |
3038 | + | _ => fail() | |
3039 | +(* end case *)) | |
3040 | +fun matchENDCOLGROUP strm = (case (lex(strm)) | |
3041 | + of (Tok.ENDCOLGROUP, span, strm') => ((), span, strm') | |
3042 | + | _ => fail() | |
3043 | +(* end case *)) | |
3044 | +fun matchSTARTDD strm = (case (lex(strm)) | |
3045 | + of (Tok.STARTDD(x), span, strm') => (x, span, strm') | |
3046 | + | _ => fail() | |
3047 | +(* end case *)) | |
3048 | +fun matchENDDD strm = (case (lex(strm)) | |
3049 | + of (Tok.ENDDD, span, strm') => ((), span, strm') | |
3050 | + | _ => fail() | |
3051 | +(* end case *)) | |
3052 | +fun matchSTARTDEL strm = (case (lex(strm)) | |
3053 | + of (Tok.STARTDEL(x), span, strm') => (x, span, strm') | |
3054 | + | _ => fail() | |
3055 | +(* end case *)) | |
3056 | +fun matchENDDEL strm = (case (lex(strm)) | |
3057 | + of (Tok.ENDDEL, span, strm') => ((), span, strm') | |
3058 | + | _ => fail() | |
3059 | +(* end case *)) | |
3060 | +fun matchSTARTDFN strm = (case (lex(strm)) | |
3061 | + of (Tok.STARTDFN(x), span, strm') => (x, span, strm') | |
3062 | + | _ => fail() | |
3063 | +(* end case *)) | |
3064 | +fun matchENDDFN strm = (case (lex(strm)) | |
3065 | + of (Tok.ENDDFN, span, strm') => ((), span, strm') | |
3066 | + | _ => fail() | |
3067 | +(* end case *)) | |
3068 | +fun matchSTARTDIR strm = (case (lex(strm)) | |
3069 | + of (Tok.STARTDIR(x), span, strm') => (x, span, strm') | |
3070 | + | _ => fail() | |
3071 | +(* end case *)) | |
3072 | +fun matchENDDIR strm = (case (lex(strm)) | |
3073 | + of (Tok.ENDDIR, span, strm') => ((), span, strm') | |
3074 | + | _ => fail() | |
3075 | +(* end case *)) | |
3076 | +fun matchSTARTDIV strm = (case (lex(strm)) | |
3077 | + of (Tok.STARTDIV(x), span, strm') => (x, span, strm') | |
3078 | + | _ => fail() | |
3079 | +(* end case *)) | |
3080 | +fun matchENDDIV strm = (case (lex(strm)) | |
3081 | + of (Tok.ENDDIV, span, strm') => ((), span, strm') | |
3082 | + | _ => fail() | |
3083 | +(* end case *)) | |
3084 | +fun matchSTARTDL strm = (case (lex(strm)) | |
3085 | + of (Tok.STARTDL(x), span, strm') => (x, span, strm') | |
3086 | + | _ => fail() | |
3087 | +(* end case *)) | |
3088 | +fun matchENDDL strm = (case (lex(strm)) | |
3089 | + of (Tok.ENDDL, span, strm') => ((), span, strm') | |
3090 | + | _ => fail() | |
3091 | +(* end case *)) | |
3092 | +fun matchSTARTDT strm = (case (lex(strm)) | |
3093 | + of (Tok.STARTDT(x), span, strm') => (x, span, strm') | |
3094 | + | _ => fail() | |
3095 | +(* end case *)) | |
3096 | +fun matchENDDT strm = (case (lex(strm)) | |
3097 | + of (Tok.ENDDT, span, strm') => ((), span, strm') | |
3098 | + | _ => fail() | |
3099 | +(* end case *)) | |
3100 | +fun matchSTARTEM strm = (case (lex(strm)) | |
3101 | + of (Tok.STARTEM(x), span, strm') => (x, span, strm') | |
3102 | + | _ => fail() | |
3103 | +(* end case *)) | |
3104 | +fun matchENDEM strm = (case (lex(strm)) | |
3105 | + of (Tok.ENDEM, span, strm') => ((), span, strm') | |
3106 | + | _ => fail() | |
3107 | +(* end case *)) | |
3108 | +fun matchSTARTFIELDSET strm = (case (lex(strm)) | |
3109 | + of (Tok.STARTFIELDSET(x), span, strm') => (x, span, strm') | |
3110 | + | _ => fail() | |
3111 | +(* end case *)) | |
3112 | +fun matchENDFIELDSET strm = (case (lex(strm)) | |
3113 | + of (Tok.ENDFIELDSET, span, strm') => ((), span, strm') | |
3114 | + | _ => fail() | |
3115 | +(* end case *)) | |
3116 | +fun matchSTARTFONT strm = (case (lex(strm)) | |
3117 | + of (Tok.STARTFONT(x), span, strm') => (x, span, strm') | |
3118 | + | _ => fail() | |
3119 | +(* end case *)) | |
3120 | +fun matchENDFONT strm = (case (lex(strm)) | |
3121 | + of (Tok.ENDFONT, span, strm') => ((), span, strm') | |
3122 | + | _ => fail() | |
3123 | +(* end case *)) | |
3124 | +fun matchSTARTFORM strm = (case (lex(strm)) | |
3125 | + of (Tok.STARTFORM(x), span, strm') => (x, span, strm') | |
3126 | + | _ => fail() | |
3127 | +(* end case *)) | |
3128 | +fun matchENDFORM strm = (case (lex(strm)) | |
3129 | + of (Tok.ENDFORM, span, strm') => ((), span, strm') | |
3130 | + | _ => fail() | |
3131 | +(* end case *)) | |
3132 | +fun matchSTARTFRAME strm = (case (lex(strm)) | |
3133 | + of (Tok.STARTFRAME(x), span, strm') => (x, span, strm') | |
3134 | + | _ => fail() | |
3135 | +(* end case *)) | |
3136 | +fun matchSTARTFRAMESET strm = (case (lex(strm)) | |
3137 | + of (Tok.STARTFRAMESET(x), span, strm') => (x, span, strm') | |
3138 | + | _ => fail() | |
3139 | +(* end case *)) | |
3140 | +fun matchENDFRAMESET strm = (case (lex(strm)) | |
3141 | + of (Tok.ENDFRAMESET, span, strm') => ((), span, strm') | |
3142 | + | _ => fail() | |
3143 | +(* end case *)) | |
3144 | +fun matchSTARTH1 strm = (case (lex(strm)) | |
3145 | + of (Tok.STARTH1(x), span, strm') => (x, span, strm') | |
3146 | + | _ => fail() | |
3147 | +(* end case *)) | |
3148 | +fun matchENDH1 strm = (case (lex(strm)) | |
3149 | + of (Tok.ENDH1, span, strm') => ((), span, strm') | |
3150 | + | _ => fail() | |
3151 | +(* end case *)) | |
3152 | +fun matchSTARTH2 strm = (case (lex(strm)) | |
3153 | + of (Tok.STARTH2(x), span, strm') => (x, span, strm') | |
3154 | + | _ => fail() | |
3155 | +(* end case *)) | |
3156 | +fun matchENDH2 strm = (case (lex(strm)) | |
3157 | + of (Tok.ENDH2, span, strm') => ((), span, strm') | |
3158 | + | _ => fail() | |
3159 | +(* end case *)) | |
3160 | +fun matchSTARTH3 strm = (case (lex(strm)) | |
3161 | + of (Tok.STARTH3(x), span, strm') => (x, span, strm') | |
3162 | + | _ => fail() | |
3163 | +(* end case *)) | |
3164 | +fun matchENDH3 strm = (case (lex(strm)) | |
3165 | + of (Tok.ENDH3, span, strm') => ((), span, strm') | |
3166 | + | _ => fail() | |
3167 | +(* end case *)) | |
3168 | +fun matchSTARTH4 strm = (case (lex(strm)) | |
3169 | + of (Tok.STARTH4(x), span, strm') => (x, span, strm') | |
3170 | + | _ => fail() | |
3171 | +(* end case *)) | |
3172 | +fun matchENDH4 strm = (case (lex(strm)) | |
3173 | + of (Tok.ENDH4, span, strm') => ((), span, strm') | |
3174 | + | _ => fail() | |
3175 | +(* end case *)) | |
3176 | +fun matchSTARTH5 strm = (case (lex(strm)) | |
3177 | + of (Tok.STARTH5(x), span, strm') => (x, span, strm') | |
3178 | + | _ => fail() | |
3179 | +(* end case *)) | |
3180 | +fun matchENDH5 strm = (case (lex(strm)) | |
3181 | + of (Tok.ENDH5, span, strm') => ((), span, strm') | |
3182 | + | _ => fail() | |
3183 | +(* end case *)) | |
3184 | +fun matchSTARTH6 strm = (case (lex(strm)) | |
3185 | + of (Tok.STARTH6(x), span, strm') => (x, span, strm') | |
3186 | + | _ => fail() | |
3187 | +(* end case *)) | |
3188 | +fun matchENDH6 strm = (case (lex(strm)) | |
3189 | + of (Tok.ENDH6, span, strm') => ((), span, strm') | |
3190 | + | _ => fail() | |
3191 | +(* end case *)) | |
3192 | +fun matchSTARTHEAD strm = (case (lex(strm)) | |
3193 | + of (Tok.STARTHEAD(x), span, strm') => (x, span, strm') | |
3194 | + | _ => fail() | |
3195 | +(* end case *)) | |
3196 | +fun matchENDHEAD strm = (case (lex(strm)) | |
3197 | + of (Tok.ENDHEAD, span, strm') => ((), span, strm') | |
3198 | + | _ => fail() | |
3199 | +(* end case *)) | |
3200 | +fun matchSTARTHR strm = (case (lex(strm)) | |
3201 | + of (Tok.STARTHR(x), span, strm') => (x, span, strm') | |
3202 | + | _ => fail() | |
3203 | +(* end case *)) | |
3204 | +fun matchSTARTHTML strm = (case (lex(strm)) | |
3205 | + of (Tok.STARTHTML(x), span, strm') => (x, span, strm') | |
3206 | + | _ => fail() | |
3207 | +(* end case *)) | |
3208 | +fun matchENDHTML strm = (case (lex(strm)) | |
3209 | + of (Tok.ENDHTML, span, strm') => ((), span, strm') | |
3210 | + | _ => fail() | |
3211 | +(* end case *)) | |
3212 | +fun matchSTARTI strm = (case (lex(strm)) | |
3213 | + of (Tok.STARTI(x), span, strm') => (x, span, strm') | |
3214 | + | _ => fail() | |
3215 | +(* end case *)) | |
3216 | +fun matchENDI strm = (case (lex(strm)) | |
3217 | + of (Tok.ENDI, span, strm') => ((), span, strm') | |
3218 | + | _ => fail() | |
3219 | +(* end case *)) | |
3220 | +fun matchSTARTIFRAME strm = (case (lex(strm)) | |
3221 | + of (Tok.STARTIFRAME(x), span, strm') => (x, span, strm') | |
3222 | + | _ => fail() | |
3223 | +(* end case *)) | |
3224 | +fun matchENDIFRAME strm = (case (lex(strm)) | |
3225 | + of (Tok.ENDIFRAME, span, strm') => ((), span, strm') | |
3226 | + | _ => fail() | |
3227 | +(* end case *)) | |
3228 | +fun matchSTARTIMG strm = (case (lex(strm)) | |
3229 | + of (Tok.STARTIMG(x), span, strm') => (x, span, strm') | |
3230 | + | _ => fail() | |
3231 | +(* end case *)) | |
3232 | +fun matchSTARTINPUT strm = (case (lex(strm)) | |
3233 | + of (Tok.STARTINPUT(x), span, strm') => (x, span, strm') | |
3234 | + | _ => fail() | |
3235 | +(* end case *)) | |
3236 | +fun matchSTARTINS strm = (case (lex(strm)) | |
3237 | + of (Tok.STARTINS(x), span, strm') => (x, span, strm') | |
3238 | + | _ => fail() | |
3239 | +(* end case *)) | |
3240 | +fun matchENDINS strm = (case (lex(strm)) | |
3241 | + of (Tok.ENDINS, span, strm') => ((), span, strm') | |
3242 | + | _ => fail() | |
3243 | +(* end case *)) | |
3244 | +fun matchSTARTISINDEX strm = (case (lex(strm)) | |
3245 | + of (Tok.STARTISINDEX(x), span, strm') => (x, span, strm') | |
3246 | + | _ => fail() | |
3247 | +(* end case *)) | |
3248 | +fun matchSTARTKBD strm = (case (lex(strm)) | |
3249 | + of (Tok.STARTKBD(x), span, strm') => (x, span, strm') | |
3250 | + | _ => fail() | |
3251 | +(* end case *)) | |
3252 | +fun matchENDKBD strm = (case (lex(strm)) | |
3253 | + of (Tok.ENDKBD, span, strm') => ((), span, strm') | |
3254 | + | _ => fail() | |
3255 | +(* end case *)) | |
3256 | +fun matchSTARTLABEL strm = (case (lex(strm)) | |
3257 | + of (Tok.STARTLABEL(x), span, strm') => (x, span, strm') | |
3258 | + | _ => fail() | |
3259 | +(* end case *)) | |
3260 | +fun matchENDLABEL strm = (case (lex(strm)) | |
3261 | + of (Tok.ENDLABEL, span, strm') => ((), span, strm') | |
3262 | + | _ => fail() | |
3263 | +(* end case *)) | |
3264 | +fun matchSTARTLEGEND strm = (case (lex(strm)) | |
3265 | + of (Tok.STARTLEGEND(x), span, strm') => (x, span, strm') | |
3266 | + | _ => fail() | |
3267 | +(* end case *)) | |
3268 | +fun matchENDLEGEND strm = (case (lex(strm)) | |
3269 | + of (Tok.ENDLEGEND, span, strm') => ((), span, strm') | |
3270 | + | _ => fail() | |
3271 | +(* end case *)) | |
3272 | +fun matchSTARTLI strm = (case (lex(strm)) | |
3273 | + of (Tok.STARTLI(x), span, strm') => (x, span, strm') | |
3274 | + | _ => fail() | |
3275 | +(* end case *)) | |
3276 | +fun matchENDLI strm = (case (lex(strm)) | |
3277 | + of (Tok.ENDLI, span, strm') => ((), span, strm') | |
3278 | + | _ => fail() | |
3279 | +(* end case *)) | |
3280 | +fun matchSTARTLINK strm = (case (lex(strm)) | |
3281 | + of (Tok.STARTLINK(x), span, strm') => (x, span, strm') | |
3282 | + | _ => fail() | |
3283 | +(* end case *)) | |
3284 | +fun matchSTARTMAP strm = (case (lex(strm)) | |
3285 | + of (Tok.STARTMAP(x), span, strm') => (x, span, strm') | |
3286 | + | _ => fail() | |
3287 | +(* end case *)) | |
3288 | +fun matchENDMAP strm = (case (lex(strm)) | |
3289 | + of (Tok.ENDMAP, span, strm') => ((), span, strm') | |
3290 | + | _ => fail() | |
3291 | +(* end case *)) | |
3292 | +fun matchSTARTMENU strm = (case (lex(strm)) | |
3293 | + of (Tok.STARTMENU(x), span, strm') => (x, span, strm') | |
3294 | + | _ => fail() | |
3295 | +(* end case *)) | |
3296 | +fun matchENDMENU strm = (case (lex(strm)) | |
3297 | + of (Tok.ENDMENU, span, strm') => ((), span, strm') | |
3298 | + | _ => fail() | |
3299 | +(* end case *)) | |
3300 | +fun matchSTARTMETA strm = (case (lex(strm)) | |
3301 | + of (Tok.STARTMETA(x), span, strm') => (x, span, strm') | |
3302 | + | _ => fail() | |
3303 | +(* end case *)) | |
3304 | +fun matchSTARTNOFRAMES strm = (case (lex(strm)) | |
3305 | + of (Tok.STARTNOFRAMES(x), span, strm') => (x, span, strm') | |
3306 | + | _ => fail() | |
3307 | +(* end case *)) | |
3308 | +fun matchENDNOFRAMES strm = (case (lex(strm)) | |
3309 | + of (Tok.ENDNOFRAMES, span, strm') => ((), span, strm') | |
3310 | + | _ => fail() | |
3311 | +(* end case *)) | |
3312 | +fun matchSTARTNOSCRIPT strm = (case (lex(strm)) | |
3313 | + of (Tok.STARTNOSCRIPT(x), span, strm') => (x, span, strm') | |
3314 | + | _ => fail() | |
3315 | +(* end case *)) | |
3316 | +fun matchENDNOSCRIPT strm = (case (lex(strm)) | |
3317 | + of (Tok.ENDNOSCRIPT, span, strm') => ((), span, strm') | |
3318 | + | _ => fail() | |
3319 | +(* end case *)) | |
3320 | +fun matchSTARTOBJECT strm = (case (lex(strm)) | |
3321 | + of (Tok.STARTOBJECT(x), span, strm') => (x, span, strm') | |
3322 | + | _ => fail() | |
3323 | +(* end case *)) | |
3324 | +fun matchENDOBJECT strm = (case (lex(strm)) | |
3325 | + of (Tok.ENDOBJECT, span, strm') => ((), span, strm') | |
3326 | + | _ => fail() | |
3327 | +(* end case *)) | |
3328 | +fun matchSTARTOL strm = (case (lex(strm)) | |
3329 | + of (Tok.STARTOL(x), span, strm') => (x, span, strm') | |
3330 | + | _ => fail() | |
3331 | +(* end case *)) | |
3332 | +fun matchENDOL strm = (case (lex(strm)) | |
3333 | + of (Tok.ENDOL, span, strm') => ((), span, strm') | |
3334 | + | _ => fail() | |
3335 | +(* end case *)) | |
3336 | +fun matchSTARTOPTGROUP strm = (case (lex(strm)) | |
3337 | + of (Tok.STARTOPTGROUP(x), span, strm') => (x, span, strm') | |
3338 | + | _ => fail() | |
3339 | +(* end case *)) | |
3340 | +fun matchENDOPTGROUP strm = (case (lex(strm)) | |
3341 | + of (Tok.ENDOPTGROUP, span, strm') => ((), span, strm') | |
3342 | + | _ => fail() | |
3343 | +(* end case *)) | |
3344 | +fun matchSTARTOPTION strm = (case (lex(strm)) | |
3345 | + of (Tok.STARTOPTION(x), span, strm') => (x, span, strm') | |
3346 | + | _ => fail() | |
3347 | +(* end case *)) | |
3348 | +fun matchENDOPTION strm = (case (lex(strm)) | |
3349 | + of (Tok.ENDOPTION, span, strm') => ((), span, strm') | |
3350 | + | _ => fail() | |
3351 | +(* end case *)) | |
3352 | +fun matchSTARTP strm = (case (lex(strm)) | |
3353 | + of (Tok.STARTP(x), span, strm') => (x, span, strm') | |
3354 | + | _ => fail() | |
3355 | +(* end case *)) | |
3356 | +fun matchENDP strm = (case (lex(strm)) | |
3357 | + of (Tok.ENDP, span, strm') => ((), span, strm') | |
3358 | + | _ => fail() | |
3359 | +(* end case *)) | |
3360 | +fun matchSTARTPARAM strm = (case (lex(strm)) | |
3361 | + of (Tok.STARTPARAM(x), span, strm') => (x, span, strm') | |
3362 | + | _ => fail() | |
3363 | +(* end case *)) | |
3364 | +fun matchSTARTPRE strm = (case (lex(strm)) | |
3365 | + of (Tok.STARTPRE(x), span, strm') => (x, span, strm') | |
3366 | + | _ => fail() | |
3367 | +(* end case *)) | |
3368 | +fun matchENDPRE strm = (case (lex(strm)) | |
3369 | + of (Tok.ENDPRE, span, strm') => ((), span, strm') | |
3370 | + | _ => fail() | |
3371 | +(* end case *)) | |
3372 | +fun matchSTARTQ strm = (case (lex(strm)) | |
3373 | + of (Tok.STARTQ(x), span, strm') => (x, span, strm') | |
3374 | + | _ => fail() | |
3375 | +(* end case *)) | |
3376 | +fun matchENDQ strm = (case (lex(strm)) | |
3377 | + of (Tok.ENDQ, span, strm') => ((), span, strm') | |
3378 | + | _ => fail() | |
3379 | +(* end case *)) | |
3380 | +fun matchSTARTS strm = (case (lex(strm)) | |
3381 | + of (Tok.STARTS(x), span, strm') => (x, span, strm') | |
3382 | + | _ => fail() | |
3383 | +(* end case *)) | |
3384 | +fun matchENDS strm = (case (lex(strm)) | |
3385 | + of (Tok.ENDS, span, strm') => ((), span, strm') | |
3386 | + | _ => fail() | |
3387 | +(* end case *)) | |
3388 | +fun matchSTARTSAMP strm = (case (lex(strm)) | |
3389 | + of (Tok.STARTSAMP(x), span, strm') => (x, span, strm') | |
3390 | + | _ => fail() | |
3391 | +(* end case *)) | |
3392 | +fun matchENDSAMP strm = (case (lex(strm)) | |
3393 | + of (Tok.ENDSAMP, span, strm') => ((), span, strm') | |
3394 | + | _ => fail() | |
3395 | +(* end case *)) | |
3396 | +fun matchSTARTSCRIPT strm = (case (lex(strm)) | |
3397 | + of (Tok.STARTSCRIPT(x), span, strm') => (x, span, strm') | |
3398 | + | _ => fail() | |
3399 | +(* end case *)) | |
3400 | +fun matchENDSCRIPT strm = (case (lex(strm)) | |
3401 | + of (Tok.ENDSCRIPT, span, strm') => ((), span, strm') | |
3402 | + | _ => fail() | |
3403 | +(* end case *)) | |
3404 | +fun matchSTARTSELECT strm = (case (lex(strm)) | |
3405 | + of (Tok.STARTSELECT(x), span, strm') => (x, span, strm') | |
3406 | + | _ => fail() | |
3407 | +(* end case *)) | |
3408 | +fun matchENDSELECT strm = (case (lex(strm)) | |
3409 | + of (Tok.ENDSELECT, span, strm') => ((), span, strm') | |
3410 | + | _ => fail() | |
3411 | +(* end case *)) | |
3412 | +fun matchSTARTSMALL strm = (case (lex(strm)) | |
3413 | + of (Tok.STARTSMALL(x), span, strm') => (x, span, strm') | |
3414 | + | _ => fail() | |
3415 | +(* end case *)) | |
3416 | +fun matchENDSMALL strm = (case (lex(strm)) | |
3417 | + of (Tok.ENDSMALL, span, strm') => ((), span, strm') | |
3418 | + | _ => fail() | |
3419 | +(* end case *)) | |
3420 | +fun matchSTARTSPAN strm = (case (lex(strm)) | |
3421 | + of (Tok.STARTSPAN(x), span, strm') => (x, span, strm') | |
3422 | + | _ => fail() | |
3423 | +(* end case *)) | |
3424 | +fun matchENDSPAN strm = (case (lex(strm)) | |
3425 | + of (Tok.ENDSPAN, span, strm') => ((), span, strm') | |
3426 | + | _ => fail() | |
3427 | +(* end case *)) | |
3428 | +fun matchSTARTSTRIKE strm = (case (lex(strm)) | |
3429 | + of (Tok.STARTSTRIKE(x), span, strm') => (x, span, strm') | |
3430 | + | _ => fail() | |
3431 | +(* end case *)) | |
3432 | +fun matchENDSTRIKE strm = (case (lex(strm)) | |
3433 | + of (Tok.ENDSTRIKE, span, strm') => ((), span, strm') | |
3434 | + | _ => fail() | |
3435 | +(* end case *)) | |
3436 | +fun matchSTARTSTRONG strm = (case (lex(strm)) | |
3437 | + of (Tok.STARTSTRONG(x), span, strm') => (x, span, strm') | |
3438 | + | _ => fail() | |
3439 | +(* end case *)) | |
3440 | +fun matchENDSTRONG strm = (case (lex(strm)) | |
3441 | + of (Tok.ENDSTRONG, span, strm') => ((), span, strm') | |
3442 | + | _ => fail() | |
3443 | +(* end case *)) | |
3444 | +fun matchSTARTSTYLE strm = (case (lex(strm)) | |
3445 | + of (Tok.STARTSTYLE(x), span, strm') => (x, span, strm') | |
3446 | + | _ => fail() | |
3447 | +(* end case *)) | |
3448 | +fun matchENDSTYLE strm = (case (lex(strm)) | |
3449 | + of (Tok.ENDSTYLE, span, strm') => ((), span, strm') | |
3450 | + | _ => fail() | |
3451 | +(* end case *)) | |
3452 | +fun matchSTARTSUB strm = (case (lex(strm)) | |
3453 | + of (Tok.STARTSUB(x), span, strm') => (x, span, strm') | |
3454 | + | _ => fail() | |
3455 | +(* end case *)) | |
3456 | +fun matchENDSUB strm = (case (lex(strm)) | |
3457 | + of (Tok.ENDSUB, span, strm') => ((), span, strm') | |
3458 | + | _ => fail() | |
3459 | +(* end case *)) | |
3460 | +fun matchSTARTSUP strm = (case (lex(strm)) | |
3461 | + of (Tok.STARTSUP(x), span, strm') => (x, span, strm') | |
3462 | + | _ => fail() | |
3463 | +(* end case *)) | |
3464 | +fun matchENDSUP strm = (case (lex(strm)) | |
3465 | + of (Tok.ENDSUP, span, strm') => ((), span, strm') | |
3466 | + | _ => fail() | |
3467 | +(* end case *)) | |
3468 | +fun matchSTARTTABLE strm = (case (lex(strm)) | |
3469 | + of (Tok.STARTTABLE(x), span, strm') => (x, span, strm') | |
3470 | + | _ => fail() | |
3471 | +(* end case *)) | |
3472 | +fun matchENDTABLE strm = (case (lex(strm)) | |
3473 | + of (Tok.ENDTABLE, span, strm') => ((), span, strm') | |
3474 | + | _ => fail() | |
3475 | +(* end case *)) | |
3476 | +fun matchSTARTTBODY strm = (case (lex(strm)) | |
3477 | + of (Tok.STARTTBODY(x), span, strm') => (x, span, strm') | |
3478 | + | _ => fail() | |
3479 | +(* end case *)) | |
3480 | +fun matchENDTBODY strm = (case (lex(strm)) | |
3481 | + of (Tok.ENDTBODY, span, strm') => ((), span, strm') | |
3482 | + | _ => fail() | |
3483 | +(* end case *)) | |
3484 | +fun matchSTARTTD strm = (case (lex(strm)) | |
3485 | + of (Tok.STARTTD(x), span, strm') => (x, span, strm') | |
3486 | + | _ => fail() | |
3487 | +(* end case *)) | |
3488 | +fun matchENDTD strm = (case (lex(strm)) | |
3489 | + of (Tok.ENDTD, span, strm') => ((), span, strm') | |
3490 | + | _ => fail() | |
3491 | +(* end case *)) | |
3492 | +fun matchSTARTTEXTAREA strm = (case (lex(strm)) | |
3493 | + of (Tok.STARTTEXTAREA(x), span, strm') => (x, span, strm') | |
3494 | + | _ => fail() | |
3495 | +(* end case *)) | |
3496 | +fun matchENDTEXTAREA strm = (case (lex(strm)) | |
3497 | + of (Tok.ENDTEXTAREA, span, strm') => ((), span, strm') | |
3498 | + | _ => fail() | |
3499 | +(* end case *)) | |
3500 | +fun matchSTARTTFOOT strm = (case (lex(strm)) | |
3501 | + of (Tok.STARTTFOOT(x), span, strm') => (x, span, strm') | |
3502 | + | _ => fail() | |
3503 | +(* end case *)) | |
3504 | +fun matchENDTFOOT strm = (case (lex(strm)) | |
3505 | + of (Tok.ENDTFOOT, span, strm') => ((), span, strm') | |
3506 | + | _ => fail() | |
3507 | +(* end case *)) | |
3508 | +fun matchSTARTTH strm = (case (lex(strm)) | |
3509 | + of (Tok.STARTTH(x), span, strm') => (x, span, strm') | |
3510 | + | _ => fail() | |
3511 | +(* end case *)) | |
3512 | +fun matchENDTH strm = (case (lex(strm)) | |
3513 | + of (Tok.ENDTH, span, strm') => ((), span, strm') | |
3514 | + | _ => fail() | |
3515 | +(* end case *)) | |
3516 | +fun matchSTARTTHEAD strm = (case (lex(strm)) | |
3517 | + of (Tok.STARTTHEAD(x), span, strm') => (x, span, strm') | |
3518 | + | _ => fail() | |
3519 | +(* end case *)) | |
3520 | +fun matchENDTHEAD strm = (case (lex(strm)) | |
3521 | + of (Tok.ENDTHEAD, span, strm') => ((), span, strm') | |
3522 | + | _ => fail() | |
3523 | +(* end case *)) | |
3524 | +fun matchSTARTTITLE strm = (case (lex(strm)) | |
3525 | + of (Tok.STARTTITLE(x), span, strm') => (x, span, strm') | |
3526 | + | _ => fail() | |
3527 | +(* end case *)) | |
3528 | +fun matchENDTITLE strm = (case (lex(strm)) | |
3529 | + of (Tok.ENDTITLE, span, strm') => ((), span, strm') | |
3530 | + | _ => fail() | |
3531 | +(* end case *)) | |
3532 | +fun matchSTARTTR strm = (case (lex(strm)) | |
3533 | + of (Tok.STARTTR(x), span, strm') => (x, span, strm') | |
3534 | + | _ => fail() | |
3535 | +(* end case *)) | |
3536 | +fun matchENDTR strm = (case (lex(strm)) | |
3537 | + of (Tok.ENDTR, span, strm') => ((), span, strm') | |
3538 | + | _ => fail() | |
3539 | +(* end case *)) | |
3540 | +fun matchSTARTTT strm = (case (lex(strm)) | |
3541 | + of (Tok.STARTTT(x), span, strm') => (x, span, strm') | |
3542 | + | _ => fail() | |
3543 | +(* end case *)) | |
3544 | +fun matchENDTT strm = (case (lex(strm)) | |
3545 | + of (Tok.ENDTT, span, strm') => ((), span, strm') | |
3546 | + | _ => fail() | |
3547 | +(* end case *)) | |
3548 | +fun matchSTARTU strm = (case (lex(strm)) | |
3549 | + of (Tok.STARTU(x), span, strm') => (x, span, strm') | |
3550 | + | _ => fail() | |
3551 | +(* end case *)) | |
3552 | +fun matchENDU strm = (case (lex(strm)) | |
3553 | + of (Tok.ENDU, span, strm') => ((), span, strm') | |
3554 | + | _ => fail() | |
3555 | +(* end case *)) | |
3556 | +fun matchSTARTUL strm = (case (lex(strm)) | |
3557 | + of (Tok.STARTUL(x), span, strm') => (x, span, strm') | |
3558 | + | _ => fail() | |
3559 | +(* end case *)) | |
3560 | +fun matchENDUL strm = (case (lex(strm)) | |
3561 | + of (Tok.ENDUL, span, strm') => ((), span, strm') | |
3562 | + | _ => fail() | |
3563 | +(* end case *)) | |
3564 | +fun matchSTARTVAR strm = (case (lex(strm)) | |
3565 | + of (Tok.STARTVAR(x), span, strm') => (x, span, strm') | |
3566 | + | _ => fail() | |
3567 | +(* end case *)) | |
3568 | +fun matchENDVAR strm = (case (lex(strm)) | |
3569 | + of (Tok.ENDVAR, span, strm') => ((), span, strm') | |
3570 | + | _ => fail() | |
3571 | +(* end case *)) | |
3572 | +fun matchEOF strm = (case (lex(strm)) | |
3573 | + of (Tok.EOF, span, strm') => ((), span, strm') | |
3574 | + | _ => fail() | |
3575 | +(* end case *)) | |
3576 | ||
3577 | val (document_NT, body_NT, flow_NT, block_NT, inline_NT, cdata_opt_NT) = | |
3578 | let | |
3579 | diff --git a/HTML4/pp-init.sml b/HTML4/pp-init.sml | |
3580 | new file mode 100644 | |
3581 | index 0000000..ca97b62 | |
3582 | --- /dev/null | |
3583 | +++ b/HTML4/pp-init.sml | |
3584 | @@ -0,0 +1,67 @@ | |
3585 | + (* pp-init.sml | |
3586 | + * | |
3587 | + * COPYRIGHT (c) 2003 The SML/NJ Fellowship | |
3588 | + * | |
3589 | + * An implementation of SML/NJ's PP interface. | |
3590 | + * - This is an (almost) literal copy of the original code in | |
3591 | + * smlnj-lib/PP/examples/old-pp.sml | |
3592 | + *) | |
3593 | + | |
3594 | + | |
3595 | +signature PRETTYPRINT = | |
3596 | +sig | |
3597 | + include PP_STREAM | |
3598 | + val with_pp : device -> (stream -> unit) -> unit | |
3599 | + val pp_to_string : int -> (stream -> 'a -> unit) -> 'a -> string | |
3600 | +end | |
3601 | + | |
3602 | +structure PrettyPrint : PRETTYPRINT = | |
3603 | +struct | |
3604 | + | |
3605 | + type ppconsumer = { | |
3606 | + consumer : string -> unit, | |
3607 | + linewidth : int, | |
3608 | + flush : unit -> unit | |
3609 | + } | |
3610 | + | |
3611 | + structure Dev = | |
3612 | + struct | |
3613 | + type device = ppconsumer | |
3614 | + type style = unit | |
3615 | + fun sameStyle _ = true | |
3616 | + fun pushStyle _ = () | |
3617 | + fun popStyle _ = () | |
3618 | + fun defaultStyle _ = () | |
3619 | + fun depth _ = NONE | |
3620 | + fun lineWidth {consumer, linewidth, flush} = SOME linewidth | |
3621 | + fun textWidth _ = NONE | |
3622 | + fun space ({consumer, linewidth, flush}, n) = | |
3623 | + consumer (StringCvt.padLeft #" " n "") | |
3624 | + fun newline {consumer, linewidth, flush} = consumer "\n" | |
3625 | + fun string ({consumer, linewidth, flush}, s) = consumer s | |
3626 | + fun char ({consumer, linewidth, flush}, c) = consumer(str c) | |
3627 | + fun flush {consumer, linewidth, flush} = flush() | |
3628 | + end | |
3629 | + | |
3630 | + structure PP = PPStreamFn | |
3631 | + (structure Token = StringToken | |
3632 | + structure Device = Dev) | |
3633 | + | |
3634 | + open PP | |
3635 | + | |
3636 | + fun with_pp device (f: PP.stream -> unit) = | |
3637 | + let val ppstrm = PP.openStream device | |
3638 | + in f ppstrm; | |
3639 | + PP.closeStream ppstrm | |
3640 | + end | |
3641 | + | |
3642 | + fun pp_to_string wid ppFn obj = | |
3643 | + let val l = ref ([] : string list) | |
3644 | + fun attach s = l := s :: !l | |
3645 | + val device = {consumer = attach, linewidth = wid, flush = fn()=>()} | |
3646 | + in with_pp device | |
3647 | + (fn ppStrm => ppFn ppStrm obj); | |
3648 | + String.concat(List.rev(!l)) | |
3649 | + end | |
3650 | + | |
3651 | +end (* structure PrettyPrint *) | |
3652 | diff --git a/HashCons/hash-cons-lib.mlb b/HashCons/hash-cons-lib.mlb | |
3653 | new file mode 100644 | |
3654 | index 0000000..d7d2a24 | |
3655 | --- /dev/null | |
3656 | +++ b/HashCons/hash-cons-lib.mlb | |
3657 | @@ -0,0 +1,145 @@ | |
3658 | + | |
3659 | +ann | |
3660 | + "nonexhaustiveBind warn" "nonexhaustiveMatch warn" | |
3661 | + "redundantBind warn" "redundantMatch warn" | |
3662 | + "sequenceNonUnit ignore" | |
3663 | + "warnUnused false" "forceUsed" | |
3664 | +in | |
3665 | + | |
3666 | +local | |
3667 | + basis l8 = | |
3668 | + bas | |
3669 | + (* $/basis.cm ====> *) $(SML_LIB)/basis/basis.mlb | |
3670 | + end | |
3671 | + basis l4 = | |
3672 | + bas | |
3673 | + (* $/smlnj-lib.cm ====> *) $(SML_LIB)/smlnj-lib/Util/smlnj-lib.mlb | |
3674 | + end | |
3675 | +in | |
3676 | +local | |
3677 | + $(SML_LIB)/basis/pervasive.mlb | |
3678 | + local | |
3679 | + open l4 | |
3680 | + in | |
3681 | + structure gs_0 = PrimeSizes | |
3682 | + end | |
3683 | + local | |
3684 | + open l8 | |
3685 | + in | |
3686 | + structure gs_1 = Array | |
3687 | + end | |
3688 | + local | |
3689 | + open l8 | |
3690 | + in | |
3691 | + structure gs_2 = Word | |
3692 | + end | |
3693 | + local | |
3694 | + open l8 | |
3695 | + in | |
3696 | + structure gs_3 = List | |
3697 | + end | |
3698 | + local | |
3699 | + hash-cons-sig.sml | |
3700 | + in | |
3701 | + signature gs_4 = HASH_CONS | |
3702 | + end | |
3703 | + local | |
3704 | + structure Array = gs_1 | |
3705 | + signature HASH_CONS = gs_4 | |
3706 | + structure List = gs_3 | |
3707 | + structure PrimeSizes = gs_0 | |
3708 | + structure Word = gs_2 | |
3709 | + hash-cons.sml | |
3710 | + in | |
3711 | + structure gs_5 = HashCons | |
3712 | + end | |
3713 | + local | |
3714 | + structure HashCons = gs_5 | |
3715 | + hash-cons-set-sig.sml | |
3716 | + in | |
3717 | + signature gs_6 = HASH_CONS_SET | |
3718 | + end | |
3719 | + local | |
3720 | + structure HashCons = gs_5 | |
3721 | + hash-cons-map-sig.sml | |
3722 | + in | |
3723 | + signature gs_7 = HASH_CONS_MAP | |
3724 | + end | |
3725 | + local | |
3726 | + open l4 | |
3727 | + in | |
3728 | + structure gs_8 = WordRedBlackMap | |
3729 | + end | |
3730 | + local | |
3731 | + signature HASH_CONS_SET = gs_6 | |
3732 | + structure HashCons = gs_5 | |
3733 | + structure List = gs_3 | |
3734 | + structure WordRedBlackMap = gs_8 | |
3735 | + hash-cons-set.sml | |
3736 | + in | |
3737 | + structure gs_9 = HashConsSet | |
3738 | + end | |
3739 | + local | |
3740 | + open l8 | |
3741 | + in | |
3742 | + structure gs_10 = Option | |
3743 | + end | |
3744 | + local | |
3745 | + signature HASH_CONS_MAP = gs_7 | |
3746 | + structure HashCons = gs_5 | |
3747 | + structure Option = gs_10 | |
3748 | + structure WordRedBlackMap = gs_8 | |
3749 | + hash-cons-map.sml | |
3750 | + in | |
3751 | + structure gs_11 = HashConsMap | |
3752 | + end | |
3753 | + local | |
3754 | + open l4 | |
3755 | + in | |
3756 | + structure gs_12 = HashString | |
3757 | + end | |
3758 | + local | |
3759 | + open l4 | |
3760 | + in | |
3761 | + signature gs_13 = HASH_KEY | |
3762 | + end | |
3763 | + local | |
3764 | + signature HASH_KEY = gs_13 | |
3765 | + structure HashCons = gs_5 | |
3766 | + hash-cons-ground-fn.sml | |
3767 | + in | |
3768 | + functor gs_14 = HashConsGroundFn | |
3769 | + end | |
3770 | + local | |
3771 | + functor HashConsGroundFn = gs_14 | |
3772 | + structure HashString = gs_12 | |
3773 | + hash-cons-string.sml | |
3774 | + in | |
3775 | + structure gs_15 = HashConsString | |
3776 | + end | |
3777 | + local | |
3778 | + open l4 | |
3779 | + in | |
3780 | + structure gs_16 = Atom | |
3781 | + end | |
3782 | + local | |
3783 | + structure Atom = gs_16 | |
3784 | + functor HashConsGroundFn = gs_14 | |
3785 | + hash-cons-atom.sml | |
3786 | + in | |
3787 | + structure gs_17 = HashConsAtom | |
3788 | + end | |
3789 | +in | |
3790 | + signature HASH_CONS = gs_4 | |
3791 | + signature HASH_CONS_MAP = gs_7 | |
3792 | + signature HASH_CONS_SET = gs_6 | |
3793 | + structure HashCons = gs_5 | |
3794 | + structure HashConsAtom = gs_17 | |
3795 | + functor HashConsGroundFn = gs_14 | |
3796 | + structure HashConsMap = gs_11 | |
3797 | + structure HashConsSet = gs_9 | |
3798 | + structure HashConsString = gs_15 | |
3799 | +end | |
3800 | +end | |
3801 | + | |
3802 | +end | |
3803 | diff --git a/INet/inet-lib.mlb b/INet/inet-lib.mlb | |
3804 | new file mode 100644 | |
3805 | index 0000000..8e91bef | |
3806 | --- /dev/null | |
3807 | +++ b/INet/inet-lib.mlb | |
3808 | @@ -0,0 +1,145 @@ | |
3809 | + | |
3810 | +ann | |
3811 | + "nonexhaustiveBind warn" "nonexhaustiveMatch warn" | |
3812 | + "redundantBind warn" "redundantMatch warn" | |
3813 | + "sequenceNonUnit ignore" | |
3814 | + "warnUnused false" "forceUsed" | |
3815 | +in | |
3816 | + | |
3817 | +local | |
3818 | + basis l4 = | |
3819 | + bas | |
3820 | + (* $/basis.cm ====> *) $(SML_LIB)/basis/basis.mlb | |
3821 | + end | |
3822 | + basis l31 = | |
3823 | + bas | |
3824 | + (* $/smlnj-lib.cm ====> *) $(SML_LIB)/smlnj-lib/Util/smlnj-lib.mlb | |
3825 | + end | |
3826 | +in | |
3827 | +local | |
3828 | + $(SML_LIB)/basis/pervasive.mlb | |
3829 | + local | |
3830 | + open l4 | |
3831 | + in | |
3832 | + structure gs_0 = StringCvt | |
3833 | + end | |
3834 | + local | |
3835 | + open l4 | |
3836 | + in | |
3837 | + structure gs_1 = Word8Array | |
3838 | + end | |
3839 | + local | |
3840 | + open l4 | |
3841 | + in | |
3842 | + structure gs_2 = Word8Vector | |
3843 | + end | |
3844 | + local | |
3845 | + open l4 | |
3846 | + in | |
3847 | + structure gs_3 = NetHostDB | |
3848 | + end | |
3849 | + local | |
3850 | + open l4 | |
3851 | + in | |
3852 | + structure gs_4 = Socket | |
3853 | + end | |
3854 | + local | |
3855 | + open l4 | |
3856 | + in | |
3857 | + structure gs_5 = INetSock | |
3858 | + end | |
3859 | + local | |
3860 | + structure INetSock = gs_5 | |
3861 | + structure NetHostDB = gs_3 | |
3862 | + structure Socket = gs_4 | |
3863 | + structure StringCvt = gs_0 | |
3864 | + structure Word8Array = gs_1 | |
3865 | + structure Word8Vector = gs_2 | |
3866 | + sock-util-sig.sml | |
3867 | + in | |
3868 | + signature gs_6 = SOCK_UTIL | |
3869 | + end | |
3870 | + local | |
3871 | + open l4 | |
3872 | + in | |
3873 | + structure gs_7 = UnixSock | |
3874 | + end | |
3875 | + local | |
3876 | + open l31 | |
3877 | + in | |
3878 | + structure gs_8 = ParserComb | |
3879 | + end | |
3880 | + local | |
3881 | + open l4 | |
3882 | + in | |
3883 | + structure gs_9 = Char | |
3884 | + end | |
3885 | + local | |
3886 | + open l4 | |
3887 | + in | |
3888 | + structure gs_10 = Word8VectorSlice | |
3889 | + end | |
3890 | + local | |
3891 | + open l4 | |
3892 | + in | |
3893 | + structure gs_11 = Word8ArraySlice | |
3894 | + end | |
3895 | + local | |
3896 | + open l4 | |
3897 | + in | |
3898 | + structure gs_12 = NetServDB | |
3899 | + end | |
3900 | + local | |
3901 | + open l4 | |
3902 | + in | |
3903 | + structure gs_13 = Byte | |
3904 | + end | |
3905 | + local | |
3906 | + open l4 | |
3907 | + in | |
3908 | + structure gs_14 = Int | |
3909 | + end | |
3910 | + local | |
3911 | + open l4 | |
3912 | + in | |
3913 | + structure gs_15 = OS | |
3914 | + end | |
3915 | + local | |
3916 | + structure Byte = gs_13 | |
3917 | + structure Char = gs_9 | |
3918 | + structure INetSock = gs_5 | |
3919 | + structure Int = gs_14 | |
3920 | + structure NetHostDB = gs_3 | |
3921 | + structure NetServDB = gs_12 | |
3922 | + structure OS = gs_15 | |
3923 | + structure ParserComb = gs_8 | |
3924 | + signature SOCK_UTIL = gs_6 | |
3925 | + structure Socket = gs_4 | |
3926 | + structure StringCvt = gs_0 | |
3927 | + structure Word8Array = gs_1 | |
3928 | + structure Word8ArraySlice = gs_11 | |
3929 | + structure Word8Vector = gs_2 | |
3930 | + structure Word8VectorSlice = gs_10 | |
3931 | + sock-util.sml | |
3932 | + in | |
3933 | + structure gs_16 = SockUtil | |
3934 | + end | |
3935 | + local | |
3936 | + signature SOCK_UTIL = gs_6 | |
3937 | + structure SockUtil = gs_16 | |
3938 | + structure Socket = gs_4 | |
3939 | + structure UnixSock = gs_7 | |
3940 | + unix-sock-util.sml | |
3941 | + in | |
3942 | + signature gs_17 = UNIX_SOCK_UTIL | |
3943 | + structure gs_18 = UnixSockUtil | |
3944 | + end | |
3945 | +in | |
3946 | + signature SOCK_UTIL = gs_6 | |
3947 | + structure SockUtil = gs_16 | |
3948 | + signature UNIX_SOCK_UTIL = gs_17 | |
3949 | + structure UnixSockUtil = gs_18 | |
3950 | +end | |
3951 | +end | |
3952 | + | |
3953 | +end | |
3954 | diff --git a/JSON/json-lib.mlb b/JSON/json-lib.mlb | |
3955 | index ff960d3..cda206f 100644 | |
3956 | --- a/JSON/json-lib.mlb | |
3957 | +++ b/JSON/json-lib.mlb | |
3958 | @@ -1,47 +1,203 @@ | |
3959 | -(* json-lib.mlb | |
3960 | - * | |
3961 | - * COPYRIGHT (c) 2008 The Fellowship of SML/NJ (http://www.smlnj.org) | |
3962 | - * All rights reserved. | |
3963 | - * | |
3964 | - * An MLB file for the JSON library, so that it can be used by MLton programs. | |
3965 | - * | |
3966 | - * TODO: | |
3967 | - * This is not complete, since MLton does not have the ml-lpt-lib yet. | |
3968 | - *) | |
3969 | - | |
3970 | -local | |
3971 | - | |
3972 | - $(SML_LIB)/basis/basis.mlb | |
3973 | - $(SML_LIB)/smlnj-lib/Util/smlnj-lib.mlb | |
3974 | - $(SML_LIB)/mllpt-lib/ml-lpt-lib.mlb | |
3975 | - | |
3976 | - ann | |
3977 | - "nonexhaustiveMatch warn" "redundantMatch warn" | |
3978 | - "sequenceNonUnit ignore" | |
3979 | - "warnUnused false" "forceUsed" | |
3980 | - in | |
3981 | - | |
3982 | - json-tokens.sml | |
3983 | - json.lex.sml | |
3984 | - json.sml | |
3985 | - json-stream-parser.sml | |
3986 | - json-parser.sml | |
3987 | - json-stream-printer.sml | |
3988 | - json-printer.sml | |
3989 | - json-util.sml | |
3990 | - | |
3991 | - end | |
3992 | ||
3993 | +ann | |
3994 | + "nonexhaustiveBind ignore" "nonexhaustiveMatch warn" | |
3995 | + "redundantBind warn" "redundantMatch warn" | |
3996 | + "sequenceNonUnit ignore" | |
3997 | + "warnUnused false" "forceUsed" | |
3998 | in | |
3999 | ||
4000 | -(* DOM-style API (tree based) *) | |
4001 | - structure JSON | |
4002 | - structure JSONParser | |
4003 | - structure JSONPrinter | |
4004 | - structure JSONUtil | |
4005 | - | |
4006 | -(* SAX-style API (event based) *) | |
4007 | - structure JSONStreamParser | |
4008 | - structure JSONStreamPrinter | |
4009 | +local | |
4010 | + basis l4 = | |
4011 | + bas | |
4012 | + (* $/basis.cm ====> *) $(SML_LIB)/basis/basis.mlb | |
4013 | + end | |
4014 | + basis l75 = | |
4015 | + bas | |
4016 | + (* $/smlnj-lib.cm ====> *) $(SML_LIB)/smlnj-lib/Util/smlnj-lib.mlb | |
4017 | + end | |
4018 | + basis l8 = | |
4019 | + bas | |
4020 | + (* $/ml-lpt-lib.cm ====> *) $(SML_LIB)/mllpt-lib/mllpt-lib.mlb | |
4021 | + end | |
4022 | +in | |
4023 | +local | |
4024 | + $(SML_LIB)/basis/pervasive.mlb | |
4025 | + local | |
4026 | + open l4 | |
4027 | + in | |
4028 | + structure gs_0 = IntInf | |
4029 | + end | |
4030 | + local | |
4031 | + open l8 | |
4032 | + in | |
4033 | + structure gs_1 = AntlrStreamPos | |
4034 | + end | |
4035 | + local | |
4036 | + open l4 | |
4037 | + in | |
4038 | + structure gs_2 = TextIO | |
4039 | + end | |
4040 | + local | |
4041 | + open l4 | |
4042 | + in | |
4043 | + structure gs_3 = String | |
4044 | + end | |
4045 | + local | |
4046 | + open l8 | |
4047 | + in | |
4048 | + structure gs_4 = UTF8 | |
4049 | + end | |
4050 | + local | |
4051 | + open l4 | |
4052 | + in | |
4053 | + structure gs_5 = Real | |
4054 | + end | |
4055 | + local | |
4056 | + open l4 | |
4057 | + in | |
4058 | + structure gs_6 = List | |
4059 | + end | |
4060 | + local | |
4061 | + structure IntInf = gs_0 | |
4062 | + structure List = gs_6 | |
4063 | + structure Real = gs_5 | |
4064 | + structure String = gs_3 | |
4065 | + structure UTF8 = gs_4 | |
4066 | + json-tokens.sml | |
4067 | + in | |
4068 | + structure gs_7 = JSONTokens | |
4069 | + end | |
4070 | + local | |
4071 | + open l4 | |
4072 | + in | |
4073 | + structure gs_8 = StringCvt | |
4074 | + end | |
4075 | + local | |
4076 | + open l4 | |
4077 | + in | |
4078 | + structure gs_9 = LargeReal | |
4079 | + end | |
4080 | + local | |
4081 | + open l4 | |
4082 | + in | |
4083 | + structure gs_10 = Substring | |
4084 | + end | |
4085 | + local | |
4086 | + open l4 | |
4087 | + in | |
4088 | + structure gs_11 = Vector | |
4089 | + end | |
4090 | + local | |
4091 | + open l8 | |
4092 | + in | |
4093 | + structure gs_12 = ULexBuffer | |
4094 | + end | |
4095 | + local | |
4096 | + open l4 | |
4097 | + in | |
4098 | + structure gs_13 = Word | |
4099 | + end | |
4100 | + local | |
4101 | + structure AntlrStreamPos = gs_1 | |
4102 | + structure IntInf = gs_0 | |
4103 | + structure JSONTokens = gs_7 | |
4104 | + structure LargeReal = gs_9 | |
4105 | + structure List = gs_6 | |
4106 | + structure String = gs_3 | |
4107 | + structure StringCvt = gs_8 | |
4108 | + structure Substring = gs_10 | |
4109 | + structure TextIO = gs_2 | |
4110 | + structure ULexBuffer = gs_12 | |
4111 | + structure UTF8 = gs_4 | |
4112 | + structure Vector = gs_11 | |
4113 | + structure Word = gs_13 | |
4114 | + json.lex.sml | |
4115 | + in | |
4116 | + structure gs_14 = JSONLexer | |
4117 | + end | |
4118 | + local | |
4119 | + structure AntlrStreamPos = gs_1 | |
4120 | + structure IntInf = gs_0 | |
4121 | + structure JSONLexer = gs_14 | |
4122 | + structure JSONTokens = gs_7 | |
4123 | + structure TextIO = gs_2 | |
4124 | + json-stream-parser.sml | |
4125 | + in | |
4126 | + structure gs_15 = JSONStreamParser | |
4127 | + end | |
4128 | + local | |
4129 | + structure IntInf = gs_0 | |
4130 | + json.sml | |
4131 | + in | |
4132 | + structure gs_16 = JSON | |
4133 | + end | |
4134 | + local | |
4135 | + structure AntlrStreamPos = gs_1 | |
4136 | + structure JSON = gs_16 | |
4137 | + structure JSONLexer = gs_14 | |
4138 | + structure JSONTokens = gs_7 | |
4139 | + structure List = gs_6 | |
4140 | + structure TextIO = gs_2 | |
4141 | + json-parser.sml | |
4142 | + in | |
4143 | + structure gs_17 = JSONParser | |
4144 | + end | |
4145 | + local | |
4146 | + open l4 | |
4147 | + in | |
4148 | + structure gs_18 = General | |
4149 | + end | |
4150 | + local | |
4151 | + open l4 | |
4152 | + in | |
4153 | + structure gs_19 = Int | |
4154 | + end | |
4155 | + local | |
4156 | + structure General = gs_18 | |
4157 | + structure Int = gs_19 | |
4158 | + structure IntInf = gs_0 | |
4159 | + structure JSON = gs_16 | |
4160 | + structure List = gs_6 | |
4161 | + structure Real = gs_5 | |
4162 | + structure String = gs_3 | |
4163 | + structure Vector = gs_11 | |
4164 | + json-util.sml | |
4165 | + in | |
4166 | + structure gs_20 = JSONUtil | |
4167 | + end | |
4168 | + local | |
4169 | + open l75 | |
4170 | + in | |
4171 | + structure gs_21 = Format | |
4172 | + end | |
4173 | + local | |
4174 | + structure Format = gs_21 | |
4175 | + structure IntInf = gs_0 | |
4176 | + structure List = gs_6 | |
4177 | + structure String = gs_3 | |
4178 | + structure TextIO = gs_2 | |
4179 | + structure UTF8 = gs_4 | |
4180 | + json-stream-printer.sml | |
4181 | + in | |
4182 | + structure gs_22 = JSONStreamPrinter | |
4183 | + end | |
4184 | + local | |
4185 | + structure JSON = gs_16 | |
4186 | + structure JSONStreamPrinter = gs_22 | |
4187 | + structure List = gs_6 | |
4188 | + structure TextIO = gs_2 | |
4189 | + json-printer.sml | |
4190 | + in | |
4191 | + structure gs_23 = JSONPrinter | |
4192 | + end | |
4193 | +in | |
4194 | + structure JSON = gs_16 | |
4195 | + structure JSONParser = gs_17 | |
4196 | + structure JSONPrinter = gs_23 | |
4197 | + structure JSONStreamParser = gs_15 | |
4198 | + structure JSONStreamPrinter = gs_22 | |
4199 | + structure JSONUtil = gs_20 | |
4200 | +end | |
4201 | +end | |
4202 | ||
4203 | end | |
4204 | diff --git a/JSON/json.lex.sml b/JSON/json.lex.sml | |
4205 | index 87e5f17..d488353 100644 | |
4206 | --- a/JSON/json.lex.sml | |
4207 | +++ b/JSON/json.lex.sml | |
4208 | @@ -2,6 +2,8 @@ structure JSONLexer = struct | |
4209 | ||
4210 | datatype yystart_state = | |
4211 | S | INITIAL | |
4212 | + local | |
4213 | + | |
4214 | structure UserDeclarations = | |
4215 | struct | |
4216 | ||
4217 | @@ -23,10 +25,8 @@ S | INITIAL | |
4218 | end | |
4219 | fun finishString () = (T.STRING(String.concat(List.rev(!sbuf))) before sbuf := []) | |
4220 | ||
4221 | - | |
4222 | end | |
4223 | ||
4224 | - local | |
4225 | datatype yymatch | |
4226 | = yyNO_MATCH | |
4227 | | yyMATCH of ULexBuffer.stream * action * yymatch | |
4228 | @@ -70,7 +70,7 @@ Vector.fromList [] | |
4229 | (* start position of token -- can be updated via skip() *) | |
4230 | val yystartPos = ref (yygetPos()) | |
4231 | (* get one char of input *) | |
4232 | - fun yygetc strm = (case UTF8.getu ULexBuffer.getc strm | |
4233 | + fun yygetc strm = (case ULexBuffer.getu strm | |
4234 | of (SOME (0w10, s')) => | |
4235 | (AntlrStreamPos.markNewLine yysm (ULexBuffer.getpos strm); | |
4236 | SOME (0w10, s')) | |
4237 | @@ -104,7 +104,7 @@ Vector.fromList [] | |
4238 | (fn (~1, _, oldMatches) => yystuck oldMatches | |
4239 | | (curState, strm, oldMatches) => let | |
4240 | val (transitions, finals') = Vector.sub (yytable, curState) | |
4241 | - val finals = map (fn i => Vector.sub (actTable, i)) finals' | |
4242 | + val finals = List.map (fn i => Vector.sub (actTable, i)) finals' | |
4243 | fun tryfinal() = | |
4244 | yystuck (yyactsToMatches (strm, finals, oldMatches)) | |
4245 | fun find (c, []) = NONE | |
4246 | diff --git a/PP/pp-lib.mlb b/PP/pp-lib.mlb | |
4247 | new file mode 100644 | |
4248 | index 0000000..6619100 | |
4249 | --- /dev/null | |
4250 | +++ b/PP/pp-lib.mlb | |
4251 | @@ -0,0 +1,213 @@ | |
4252 | + | |
4253 | +ann | |
4254 | + "nonexhaustiveBind warn" "nonexhaustiveMatch warn" | |
4255 | + "redundantBind warn" "redundantMatch warn" | |
4256 | + "sequenceNonUnit ignore" | |
4257 | + "warnUnused false" "forceUsed" | |
4258 | +in | |
4259 | + | |
4260 | +local | |
4261 | + basis l4 = | |
4262 | + bas | |
4263 | + (* $/basis.cm ====> *) $(SML_LIB)/basis/basis.mlb | |
4264 | + end | |
4265 | + basis l26 = | |
4266 | + bas | |
4267 | + (* $/smlnj-lib.cm ====> *) $(SML_LIB)/smlnj-lib/Util/smlnj-lib.mlb | |
4268 | + end | |
4269 | + basis l83 = | |
4270 | + bas | |
4271 | + (* $/html-lib.cm ====> *) $(SML_LIB)/smlnj-lib/HTML/html-lib.mlb | |
4272 | + end | |
4273 | +in | |
4274 | +local | |
4275 | + $(SML_LIB)/basis/pervasive.mlb | |
4276 | + local | |
4277 | + open l4 | |
4278 | + in | |
4279 | + structure gs_0 = TextIO | |
4280 | + end | |
4281 | + local | |
4282 | + src/pp-stream-sig.sml | |
4283 | + in | |
4284 | + signature gs_1 = PP_STREAM | |
4285 | + end | |
4286 | + local | |
4287 | + signature PP_STREAM = gs_1 | |
4288 | + structure TextIO = gs_0 | |
4289 | + src/pp-debug-fn.sml | |
4290 | + in | |
4291 | + functor gs_2 = PPDebugFn | |
4292 | + end | |
4293 | + local | |
4294 | + src/pp-device-sig.sml | |
4295 | + in | |
4296 | + signature gs_3 = PP_DEVICE | |
4297 | + end | |
4298 | + local | |
4299 | + open l4 | |
4300 | + in | |
4301 | + structure gs_4 = StringCvt | |
4302 | + end | |
4303 | + local | |
4304 | + signature PP_DEVICE = gs_3 | |
4305 | + structure StringCvt = gs_4 | |
4306 | + structure TextIO = gs_0 | |
4307 | + devices/simple-textio-dev.sml | |
4308 | + in | |
4309 | + structure gs_5 = SimpleTextIODev | |
4310 | + end | |
4311 | + local | |
4312 | + open l26 | |
4313 | + in | |
4314 | + structure gs_6 = Format | |
4315 | + end | |
4316 | + local | |
4317 | + open l26 | |
4318 | + in | |
4319 | + structure gs_7 = Queue | |
4320 | + end | |
4321 | + local | |
4322 | + open l26 | |
4323 | + in | |
4324 | + structure gs_8 = ListFormat | |
4325 | + end | |
4326 | + local | |
4327 | + open l4 | |
4328 | + in | |
4329 | + structure gs_9 = String | |
4330 | + end | |
4331 | + local | |
4332 | + open l4 | |
4333 | + in | |
4334 | + structure gs_10 = Option | |
4335 | + end | |
4336 | + local | |
4337 | + open l4 | |
4338 | + in | |
4339 | + structure gs_11 = Int | |
4340 | + end | |
4341 | + local | |
4342 | + src/pp-token-sig.sml | |
4343 | + in | |
4344 | + signature gs_12 = PP_TOKEN | |
4345 | + end | |
4346 | + local | |
4347 | + structure Format = gs_6 | |
4348 | + structure Int = gs_11 | |
4349 | + structure ListFormat = gs_8 | |
4350 | + structure Option = gs_10 | |
4351 | + signature PP_DEVICE = gs_3 | |
4352 | + signature PP_STREAM = gs_1 | |
4353 | + signature PP_TOKEN = gs_12 | |
4354 | + structure Queue = gs_7 | |
4355 | + structure String = gs_9 | |
4356 | + structure TextIO = gs_0 | |
4357 | + src/pp-stream-fn.sml | |
4358 | + in | |
4359 | + functor gs_13 = PPStreamFn | |
4360 | + end | |
4361 | + local | |
4362 | + signature PP_STREAM = gs_1 | |
4363 | + src/pp-desc-sig.sml | |
4364 | + in | |
4365 | + signature gs_14 = PP_DESC | |
4366 | + end | |
4367 | + local | |
4368 | + signature PP_DESC = gs_14 | |
4369 | + signature PP_STREAM = gs_1 | |
4370 | + src/pp-desc-fn.sml | |
4371 | + in | |
4372 | + functor gs_15 = PPDescFn | |
4373 | + end | |
4374 | + local | |
4375 | + signature PP_TOKEN = gs_12 | |
4376 | + structure String = gs_9 | |
4377 | + devices/string-token.sml | |
4378 | + in | |
4379 | + structure gs_16 = StringToken | |
4380 | + end | |
4381 | + local | |
4382 | + functor PPStreamFn = gs_13 | |
4383 | + signature PP_STREAM = gs_1 | |
4384 | + structure SimpleTextIODev = gs_5 | |
4385 | + structure StringToken = gs_16 | |
4386 | + structure TextIO = gs_0 | |
4387 | + devices/textio-pp.sml | |
4388 | + in | |
4389 | + structure gs_17 = TextIOPP | |
4390 | + end | |
4391 | + local | |
4392 | + open l26 | |
4393 | + in | |
4394 | + structure gs_18 = ANSITerm | |
4395 | + end | |
4396 | + local | |
4397 | + open l4 | |
4398 | + in | |
4399 | + structure gs_19 = TextPrimIO | |
4400 | + end | |
4401 | + local | |
4402 | + open l4 | |
4403 | + in | |
4404 | + structure gs_20 = OS | |
4405 | + end | |
4406 | + local | |
4407 | + structure ANSITerm = gs_18 | |
4408 | + structure OS = gs_20 | |
4409 | + signature PP_DEVICE = gs_3 | |
4410 | + structure StringCvt = gs_4 | |
4411 | + structure TextIO = gs_0 | |
4412 | + structure TextPrimIO = gs_19 | |
4413 | + devices/ansi-term-dev.sml | |
4414 | + in | |
4415 | + structure gs_21 = ANSITermDev | |
4416 | + end | |
4417 | + local | |
4418 | + open l4 | |
4419 | + in | |
4420 | + structure gs_22 = List | |
4421 | + end | |
4422 | + local | |
4423 | + open l83 | |
4424 | + in | |
4425 | + structure gs_23 = HTML | |
4426 | + end | |
4427 | + local | |
4428 | + structure HTML = gs_23 | |
4429 | + structure List = gs_22 | |
4430 | + signature PP_DEVICE = gs_3 | |
4431 | + structure String = gs_9 | |
4432 | + devices/html-dev.sml | |
4433 | + in | |
4434 | + structure gs_24 = HTMLDev | |
4435 | + end | |
4436 | + local | |
4437 | + structure ANSITermDev = gs_21 | |
4438 | + functor PPStreamFn = gs_13 | |
4439 | + signature PP_STREAM = gs_1 | |
4440 | + signature PP_TOKEN = gs_12 | |
4441 | + structure String = gs_9 | |
4442 | + structure TextIO = gs_0 | |
4443 | + devices/ansi-term-pp.sml | |
4444 | + in | |
4445 | + structure gs_25 = ANSITermPP | |
4446 | + end | |
4447 | +in | |
4448 | + structure ANSITermDev = gs_21 | |
4449 | + structure ANSITermPP = gs_25 | |
4450 | + structure HTMLDev = gs_24 | |
4451 | + functor PPDebugFn = gs_2 | |
4452 | + functor PPDescFn = gs_15 | |
4453 | + functor PPStreamFn = gs_13 | |
4454 | + signature PP_DESC = gs_14 | |
4455 | + signature PP_DEVICE = gs_3 | |
4456 | + signature PP_STREAM = gs_1 | |
4457 | + signature PP_TOKEN = gs_12 | |
4458 | + structure SimpleTextIODev = gs_5 | |
4459 | + structure StringToken = gs_16 | |
4460 | + structure TextIOPP = gs_17 | |
4461 | +end | |
4462 | +end | |
4463 | + | |
4464 | +end | |
4465 | diff --git a/README.mlton b/README.mlton | |
4466 | new file mode 100644 | |
4467 | index 0000000..96eeebc | |
4468 | --- /dev/null | |
4469 | +++ b/README.mlton | |
4470 | @@ -0,0 +1,11 @@ | |
4471 | +The following changes were made to the SML/NJ Library, in addition to | |
4472 | +deriving the `.mlb` files from the `.cm` files: | |
4473 | + | |
4474 | +* `HTML4/pp-init.sml` (added): Implements `structure PrettyPrint` using the SML/NJ PP Library. This implementation is taken from the SML/NJ compiler source, since the SML/NJ HTML4 Library used the `structure PrettyPrint` provided by the SML/NJ compiler itself. | |
4475 | +* `Util/base64.sml` (modified): Rewrote use of `Unsafe.CharVector.create` and `Unsafe.CharVector.update`; MLton assumes that vectors are immutable. | |
4476 | +* `Util/engine.mlton.sml` (added, not exported): Implements `structure Engine`, providing time-limited, resumable computations using <:MLtonThread:>, <:MLtonSignal:>, and <:MLtonItimer:>. | |
4477 | +* `Util/graph-scc-fn.sml` (modified): Rewrote use of `where` structure specification. | |
4478 | +* `Util/redblack-map-fn.sml` (modified): Rewrote use of `where` structure specification. | |
4479 | +* `Util/redblack-set-fn.sml` (modified): Rewrote use of `where` structure specification. | |
4480 | +* `Util/time-limit.mlb` (added): Exports `structure TimeLimit`, which is _not_ exported by `smlnj-lib.mlb`. Since MLton is very conservative in the presence of threads and signals, program performance may be adversely affected by unnecessarily including `structure TimeLimit`. | |
4481 | +* `Util/time-limit.mlton.sml` (added): Implements `structure TimeLimit` using `structure Engine`. The SML/NJ implementation of `structure TimeLimit` uses SML/NJ's first-class continuations, signals, and interval timer. | |
4482 | diff --git a/Reactive/reactive-lib.mlb b/Reactive/reactive-lib.mlb | |
4483 | new file mode 100644 | |
4484 | index 0000000..ceb3bff | |
4485 | --- /dev/null | |
4486 | +++ b/Reactive/reactive-lib.mlb | |
4487 | @@ -0,0 +1,72 @@ | |
4488 | + | |
4489 | +ann | |
4490 | + "nonexhaustiveBind warn" "nonexhaustiveMatch warn" | |
4491 | + "redundantBind warn" "redundantMatch warn" | |
4492 | + "sequenceNonUnit ignore" | |
4493 | + "warnUnused false" "forceUsed" | |
4494 | +in | |
4495 | + | |
4496 | +local | |
4497 | + basis l14 = | |
4498 | + bas | |
4499 | + (* $/basis.cm ====> *) $(SML_LIB)/basis/basis.mlb | |
4500 | + end | |
4501 | + basis l4 = | |
4502 | + bas | |
4503 | + (* $/smlnj-lib.cm ====> *) $(SML_LIB)/smlnj-lib/Util/smlnj-lib.mlb | |
4504 | + end | |
4505 | +in | |
4506 | +local | |
4507 | + $(SML_LIB)/basis/pervasive.mlb | |
4508 | + local | |
4509 | + open l4 | |
4510 | + in | |
4511 | + structure gs_0 = Atom | |
4512 | + end | |
4513 | + local | |
4514 | + structure Atom = gs_0 | |
4515 | + reactive-sig.sml | |
4516 | + in | |
4517 | + signature gs_1 = REACTIVE | |
4518 | + end | |
4519 | + local | |
4520 | + open l4 | |
4521 | + in | |
4522 | + structure gs_2 = AtomBinaryMap | |
4523 | + end | |
4524 | + local | |
4525 | + open l14 | |
4526 | + in | |
4527 | + structure gs_3 = List | |
4528 | + end | |
4529 | + local | |
4530 | + structure Atom = gs_0 | |
4531 | + instruction.sml | |
4532 | + in | |
4533 | + structure gs_4 = Instruction | |
4534 | + end | |
4535 | + local | |
4536 | + structure Atom = gs_0 | |
4537 | + structure Instruction = gs_4 | |
4538 | + structure List = gs_3 | |
4539 | + machine.sml | |
4540 | + in | |
4541 | + structure gs_5 = Machine | |
4542 | + end | |
4543 | + local | |
4544 | + structure AtomBinaryMap = gs_2 | |
4545 | + structure Instruction = gs_4 | |
4546 | + structure List = gs_3 | |
4547 | + structure Machine = gs_5 | |
4548 | + signature REACTIVE = gs_1 | |
4549 | + reactive.sml | |
4550 | + in | |
4551 | + structure gs_6 = Reactive | |
4552 | + end | |
4553 | +in | |
4554 | + signature REACTIVE = gs_1 | |
4555 | + structure Reactive = gs_6 | |
4556 | +end | |
4557 | +end | |
4558 | + | |
4559 | +end | |
4560 | diff --git a/RegExp/regexp-lib.mlb b/RegExp/regexp-lib.mlb | |
4561 | new file mode 100644 | |
4562 | index 0000000..3c701d6 | |
4563 | --- /dev/null | |
4564 | +++ b/RegExp/regexp-lib.mlb | |
4565 | @@ -0,0 +1,236 @@ | |
4566 | + | |
4567 | +ann | |
4568 | + "nonexhaustiveBind ignore" "nonexhaustiveMatch ignore" | |
4569 | + "redundantBind warn" "redundantMatch warn" | |
4570 | + "sequenceNonUnit ignore" | |
4571 | + "warnUnused false" "forceUsed" | |
4572 | +in | |
4573 | + | |
4574 | +local | |
4575 | + basis l4 = | |
4576 | + bas | |
4577 | + (* $/basis.cm ====> *) $(SML_LIB)/basis/basis.mlb | |
4578 | + end | |
4579 | + basis l16 = | |
4580 | + bas | |
4581 | + (* $/smlnj-lib.cm ====> *) $(SML_LIB)/smlnj-lib/Util/smlnj-lib.mlb | |
4582 | + end | |
4583 | +in | |
4584 | +local | |
4585 | + $(SML_LIB)/basis/pervasive.mlb | |
4586 | + local | |
4587 | + open l4 | |
4588 | + in | |
4589 | + structure gs_0 = StringCvt | |
4590 | + end | |
4591 | + local | |
4592 | + open l4 | |
4593 | + in | |
4594 | + structure gs_1 = List | |
4595 | + end | |
4596 | + local | |
4597 | + structure List = gs_1 | |
4598 | + Glue/match-tree.sml | |
4599 | + in | |
4600 | + signature gs_2 = MATCH_TREE | |
4601 | + structure gs_3 = MatchTree | |
4602 | + end | |
4603 | + local | |
4604 | + open l16 | |
4605 | + in | |
4606 | + functor gs_4 = ListSetFn | |
4607 | + end | |
4608 | + local | |
4609 | + open l4 | |
4610 | + in | |
4611 | + structure gs_5 = Char | |
4612 | + end | |
4613 | + local | |
4614 | + open l16 | |
4615 | + in | |
4616 | + signature gs_6 = ORD_SET | |
4617 | + end | |
4618 | + local | |
4619 | + signature ORD_SET = gs_6 | |
4620 | + FrontEnd/syntax-sig.sml | |
4621 | + in | |
4622 | + signature gs_7 = REGEXP_SYNTAX | |
4623 | + end | |
4624 | + local | |
4625 | + structure Char = gs_5 | |
4626 | + structure List = gs_1 | |
4627 | + functor ListSetFn = gs_4 | |
4628 | + signature REGEXP_SYNTAX = gs_7 | |
4629 | + FrontEnd/syntax.sml | |
4630 | + in | |
4631 | + structure gs_8 = RegExpSyntax | |
4632 | + end | |
4633 | + local | |
4634 | + signature MATCH_TREE = gs_2 | |
4635 | + structure MatchTree = gs_3 | |
4636 | + structure RegExpSyntax = gs_8 | |
4637 | + structure StringCvt = gs_0 | |
4638 | + BackEnd/engine-sig.sml | |
4639 | + in | |
4640 | + signature gs_9 = REGEXP_ENGINE | |
4641 | + end | |
4642 | + local | |
4643 | + open l4 | |
4644 | + in | |
4645 | + structure gs_10 = Array | |
4646 | + end | |
4647 | + local | |
4648 | + open l4 | |
4649 | + in | |
4650 | + structure gs_11 = Vector | |
4651 | + end | |
4652 | + local | |
4653 | + open l4 | |
4654 | + in | |
4655 | + structure gs_12 = Int | |
4656 | + end | |
4657 | + local | |
4658 | + structure Array = gs_10 | |
4659 | + structure Char = gs_5 | |
4660 | + structure Int = gs_12 | |
4661 | + structure List = gs_1 | |
4662 | + signature MATCH_TREE = gs_2 | |
4663 | + structure MatchTree = gs_3 | |
4664 | + signature REGEXP_ENGINE = gs_9 | |
4665 | + structure RegExpSyntax = gs_8 | |
4666 | + structure StringCvt = gs_0 | |
4667 | + structure Vector = gs_11 | |
4668 | + BackEnd/thompson-engine.sml | |
4669 | + in | |
4670 | + structure gs_13 = ThompsonEngine | |
4671 | + end | |
4672 | + local | |
4673 | + open l16 | |
4674 | + in | |
4675 | + functor gs_14 = ListMapFn | |
4676 | + end | |
4677 | + local | |
4678 | + open l4 | |
4679 | + in | |
4680 | + structure gs_15 = Array2 | |
4681 | + end | |
4682 | + local | |
4683 | + open l4 | |
4684 | + in | |
4685 | + structure gs_16 = TextIO | |
4686 | + end | |
4687 | + local | |
4688 | + open l4 | |
4689 | + in | |
4690 | + structure gs_17 = ListPair | |
4691 | + end | |
4692 | + local | |
4693 | + structure Array = gs_10 | |
4694 | + structure Array2 = gs_15 | |
4695 | + structure Char = gs_5 | |
4696 | + structure Int = gs_12 | |
4697 | + structure List = gs_1 | |
4698 | + functor ListMapFn = gs_14 | |
4699 | + structure ListPair = gs_17 | |
4700 | + functor ListSetFn = gs_4 | |
4701 | + signature ORD_SET = gs_6 | |
4702 | + structure RegExpSyntax = gs_8 | |
4703 | + structure TextIO = gs_16 | |
4704 | + BackEnd/fsm.sml | |
4705 | + in | |
4706 | + signature gs_18 = DFA | |
4707 | + structure gs_19 = Dfa | |
4708 | + signature gs_20 = NFA | |
4709 | + structure gs_21 = Nfa | |
4710 | + end | |
4711 | + local | |
4712 | + signature DFA = gs_18 | |
4713 | + structure Dfa = gs_19 | |
4714 | + signature MATCH_TREE = gs_2 | |
4715 | + structure MatchTree = gs_3 | |
4716 | + signature NFA = gs_20 | |
4717 | + structure Nfa = gs_21 | |
4718 | + signature REGEXP_ENGINE = gs_9 | |
4719 | + structure RegExpSyntax = gs_8 | |
4720 | + structure Vector = gs_11 | |
4721 | + BackEnd/dfa-engine.sml | |
4722 | + in | |
4723 | + structure gs_22 = DfaEngine | |
4724 | + end | |
4725 | + local | |
4726 | + signature MATCH_TREE = gs_2 | |
4727 | + structure MatchTree = gs_3 | |
4728 | + structure StringCvt = gs_0 | |
4729 | + Glue/regexp-sig.sml | |
4730 | + in | |
4731 | + signature gs_23 = REGEXP | |
4732 | + end | |
4733 | + local | |
4734 | + structure RegExpSyntax = gs_8 | |
4735 | + structure StringCvt = gs_0 | |
4736 | + FrontEnd/parser-sig.sml | |
4737 | + in | |
4738 | + signature gs_24 = REGEXP_PARSER | |
4739 | + end | |
4740 | + local | |
4741 | + signature MATCH_TREE = gs_2 | |
4742 | + structure MatchTree = gs_3 | |
4743 | + signature REGEXP = gs_23 | |
4744 | + signature REGEXP_ENGINE = gs_9 | |
4745 | + signature REGEXP_PARSER = gs_24 | |
4746 | + structure RegExpSyntax = gs_8 | |
4747 | + structure StringCvt = gs_0 | |
4748 | + Glue/regexp-fn.sml | |
4749 | + in | |
4750 | + functor gs_25 = RegExpFn | |
4751 | + end | |
4752 | + local | |
4753 | + open l4 | |
4754 | + in | |
4755 | + structure gs_26 = Word8 | |
4756 | + end | |
4757 | + local | |
4758 | + structure Char = gs_5 | |
4759 | + structure Int = gs_12 | |
4760 | + structure List = gs_1 | |
4761 | + signature REGEXP_PARSER = gs_24 | |
4762 | + structure RegExpSyntax = gs_8 | |
4763 | + structure StringCvt = gs_0 | |
4764 | + structure Word8 = gs_26 | |
4765 | + FrontEnd/awk-syntax.sml | |
4766 | + in | |
4767 | + structure gs_27 = AwkSyntax | |
4768 | + end | |
4769 | + local | |
4770 | + open l4 | |
4771 | + in | |
4772 | + structure gs_28 = Option | |
4773 | + end | |
4774 | + local | |
4775 | + structure List = gs_1 | |
4776 | + signature MATCH_TREE = gs_2 | |
4777 | + structure MatchTree = gs_3 | |
4778 | + structure Option = gs_28 | |
4779 | + signature REGEXP_ENGINE = gs_9 | |
4780 | + structure RegExpSyntax = gs_8 | |
4781 | + BackEnd/bt-engine.sml | |
4782 | + in | |
4783 | + structure gs_29 = BackTrackEngine | |
4784 | + end | |
4785 | +in | |
4786 | + structure AwkSyntax = gs_27 | |
4787 | + structure BackTrackEngine = gs_29 | |
4788 | + structure DfaEngine = gs_22 | |
4789 | + signature MATCH_TREE = gs_2 | |
4790 | + structure MatchTree = gs_3 | |
4791 | + signature REGEXP = gs_23 | |
4792 | + signature REGEXP_ENGINE = gs_9 | |
4793 | + signature REGEXP_PARSER = gs_24 | |
4794 | + signature REGEXP_SYNTAX = gs_7 | |
4795 | + functor RegExpFn = gs_25 | |
4796 | + structure RegExpSyntax = gs_8 | |
4797 | + structure ThompsonEngine = gs_13 | |
4798 | +end | |
4799 | +end | |
4800 | + | |
4801 | +end | |
4802 | diff --git a/SExp/sexp-lib.mlb b/SExp/sexp-lib.mlb | |
4803 | index d7287e5..47e2c8c 100644 | |
4804 | --- a/SExp/sexp-lib.mlb | |
4805 | +++ b/SExp/sexp-lib.mlb | |
4806 | @@ -1,51 +1,172 @@ | |
4807 | -(* sexp-lib.mlb | |
4808 | - * | |
4809 | - * COPYRIGHT (c) 2011 The Fellowship of SML/NJ (http://www.smlnj.org) | |
4810 | - * All rights reserved. | |
4811 | - * | |
4812 | - * Author: Damon Wang (with modifications by John Reppy) | |
4813 | - * | |
4814 | - * An MLB file for the JSON library, so that it can be used by MLton programs. | |
4815 | - * | |
4816 | - * TODO: | |
4817 | - * This is not complete, since MLton does not have the ml-lpt-lib yet. | |
4818 | - *) | |
4819 | - | |
4820 | -local | |
4821 | - | |
4822 | - $(SML_LIB)/basis/basis.mlb | |
4823 | - $(SML_LIB)/smlnj-lib/Util/smlnj-lib.mlb | |
4824 | -(* I don't know what the path to this library will be | |
4825 | - ??/ml-lpt-lib/ml-lpt-lib.mlb | |
4826 | -*) | |
4827 | - | |
4828 | - ann | |
4829 | - "nonexhaustiveMatch warn" "redundantMatch warn" | |
4830 | - "sequenceNonUnit ignore" | |
4831 | - "warnUnused false" "forceUsed" | |
4832 | - in | |
4833 | - | |
4834 | - sexp-tokens.sml | |
4835 | - sexp.lex.sml | |
4836 | - sexp.sml | |
4837 | -(* sexp-stream-parser.sml *) | |
4838 | - sexp-parser.sml | |
4839 | -(* sexp-stream-printer.sml *) | |
4840 | - sexp-printer.sml | |
4841 | - | |
4842 | - end | |
4843 | ||
4844 | +ann | |
4845 | + "nonexhaustiveBind ignore" "nonexhaustiveMatch warn" | |
4846 | + "redundantBind warn" "redundantMatch warn" | |
4847 | + "sequenceNonUnit ignore" | |
4848 | + "warnUnused false" "forceUsed" | |
4849 | in | |
4850 | ||
4851 | -(* DOM-style API (tree based) *) | |
4852 | - structure SExp | |
4853 | - structure SExpParser | |
4854 | - structure SExpPrinter | |
4855 | - | |
4856 | -(* SAX-style API (event based) *) | |
4857 | -(* | |
4858 | - structure SExpStreamParser | |
4859 | - structure SExpStreamPrinter | |
4860 | -*) | |
4861 | +local | |
4862 | + basis l8 = | |
4863 | + bas | |
4864 | + (* $/basis.cm ====> *) $(SML_LIB)/basis/basis.mlb | |
4865 | + end | |
4866 | + basis l4 = | |
4867 | + bas | |
4868 | + (* $/smlnj-lib.cm ====> *) $(SML_LIB)/smlnj-lib/Util/smlnj-lib.mlb | |
4869 | + end | |
4870 | + basis l38 = | |
4871 | + bas | |
4872 | + (* $/ml-lpt-lib.cm ====> *) $(SML_LIB)/mllpt-lib/mllpt-lib.mlb | |
4873 | + end | |
4874 | +in | |
4875 | +local | |
4876 | + $(SML_LIB)/basis/pervasive.mlb | |
4877 | + local | |
4878 | + open l4 | |
4879 | + in | |
4880 | + structure gs_0 = Format | |
4881 | + end | |
4882 | + local | |
4883 | + open l8 | |
4884 | + in | |
4885 | + structure gs_1 = TextIO | |
4886 | + end | |
4887 | + local | |
4888 | + open l8 | |
4889 | + in | |
4890 | + structure gs_2 = String | |
4891 | + end | |
4892 | + local | |
4893 | + open l8 | |
4894 | + in | |
4895 | + structure gs_3 = List | |
4896 | + end | |
4897 | + local | |
4898 | + open l4 | |
4899 | + in | |
4900 | + structure gs_4 = Atom | |
4901 | + end | |
4902 | + local | |
4903 | + open l8 | |
4904 | + in | |
4905 | + structure gs_5 = IntInf | |
4906 | + end | |
4907 | + local | |
4908 | + open l8 | |
4909 | + in | |
4910 | + structure gs_6 = ListPair | |
4911 | + end | |
4912 | + local | |
4913 | + open l8 | |
4914 | + in | |
4915 | + structure gs_7 = Real | |
4916 | + end | |
4917 | + local | |
4918 | + structure Atom = gs_4 | |
4919 | + structure IntInf = gs_5 | |
4920 | + structure ListPair = gs_6 | |
4921 | + structure Real = gs_7 | |
4922 | + sexp.sml | |
4923 | + in | |
4924 | + structure gs_8 = SExp | |
4925 | + end | |
4926 | + local | |
4927 | + structure Atom = gs_4 | |
4928 | + structure Format = gs_0 | |
4929 | + structure List = gs_3 | |
4930 | + structure SExp = gs_8 | |
4931 | + structure String = gs_2 | |
4932 | + structure TextIO = gs_1 | |
4933 | + sexp-printer.sml | |
4934 | + in | |
4935 | + structure gs_9 = SExpPrinter | |
4936 | + end | |
4937 | + local | |
4938 | + open l38 | |
4939 | + in | |
4940 | + structure gs_10 = AntlrStreamPos | |
4941 | + end | |
4942 | + local | |
4943 | + open l38 | |
4944 | + in | |
4945 | + structure gs_11 = UTF8 | |
4946 | + end | |
4947 | + local | |
4948 | + structure IntInf = gs_5 | |
4949 | + structure List = gs_3 | |
4950 | + structure Real = gs_7 | |
4951 | + structure String = gs_2 | |
4952 | + structure UTF8 = gs_11 | |
4953 | + sexp-tokens.sml | |
4954 | + in | |
4955 | + structure gs_12 = SExpTokens | |
4956 | + end | |
4957 | + local | |
4958 | + open l8 | |
4959 | + in | |
4960 | + structure gs_13 = StringCvt | |
4961 | + end | |
4962 | + local | |
4963 | + open l8 | |
4964 | + in | |
4965 | + structure gs_14 = LargeReal | |
4966 | + end | |
4967 | + local | |
4968 | + open l8 | |
4969 | + in | |
4970 | + structure gs_15 = Substring | |
4971 | + end | |
4972 | + local | |
4973 | + open l8 | |
4974 | + in | |
4975 | + structure gs_16 = Vector | |
4976 | + end | |
4977 | + local | |
4978 | + open l38 | |
4979 | + in | |
4980 | + structure gs_17 = ULexBuffer | |
4981 | + end | |
4982 | + local | |
4983 | + open l8 | |
4984 | + in | |
4985 | + structure gs_18 = Word | |
4986 | + end | |
4987 | + local | |
4988 | + structure AntlrStreamPos = gs_10 | |
4989 | + structure IntInf = gs_5 | |
4990 | + structure LargeReal = gs_14 | |
4991 | + structure List = gs_3 | |
4992 | + structure SExpTokens = gs_12 | |
4993 | + structure String = gs_2 | |
4994 | + structure StringCvt = gs_13 | |
4995 | + structure Substring = gs_15 | |
4996 | + structure TextIO = gs_1 | |
4997 | + structure ULexBuffer = gs_17 | |
4998 | + structure UTF8 = gs_11 | |
4999 | + structure Vector = gs_16 | |
5000 | + structure Word = gs_18 | |
5001 | + sexp.lex.sml | |
5002 | + in | |
5003 | + structure gs_19 = SExpLexer | |
5004 | + end | |
5005 | + local | |
5006 | + structure AntlrStreamPos = gs_10 | |
5007 | + structure Atom = gs_4 | |
5008 | + structure List = gs_3 | |
5009 | + structure SExp = gs_8 | |
5010 | + structure SExpLexer = gs_19 | |
5011 | + structure SExpTokens = gs_12 | |
5012 | + structure TextIO = gs_1 | |
5013 | + sexp-parser.sml | |
5014 | + in | |
5015 | + structure gs_20 = SExpParser | |
5016 | + end | |
5017 | +in | |
5018 | + structure SExp = gs_8 | |
5019 | + structure SExpParser = gs_20 | |
5020 | + structure SExpPrinter = gs_9 | |
5021 | +end | |
5022 | +end | |
5023 | ||
5024 | end | |
5025 | diff --git a/SExp/sexp.lex.sml b/SExp/sexp.lex.sml | |
5026 | index 9a5cb8e..7c0b9a6 100644 | |
5027 | --- a/SExp/sexp.lex.sml | |
5028 | +++ b/SExp/sexp.lex.sml | |
5029 | @@ -2,6 +2,8 @@ structure SExpLexer = struct | |
5030 | ||
5031 | datatype yystart_state = | |
5032 | S | INITIAL | |
5033 | + local | |
5034 | + | |
5035 | structure UserDeclarations = | |
5036 | struct | |
5037 | ||
5038 | @@ -23,10 +25,8 @@ S | INITIAL | |
5039 | end | |
5040 | fun finishString () = (T.STRING(String.concat(List.rev(!sbuf))) before sbuf := []) | |
5041 | ||
5042 | - | |
5043 | end | |
5044 | ||
5045 | - local | |
5046 | datatype yymatch | |
5047 | = yyNO_MATCH | |
5048 | | yyMATCH of ULexBuffer.stream * action * yymatch | |
5049 | @@ -104,7 +104,7 @@ Vector.fromList [] | |
5050 | (fn (~1, _, oldMatches) => yystuck oldMatches | |
5051 | | (curState, strm, oldMatches) => let | |
5052 | val (transitions, finals') = Vector.sub (yytable, curState) | |
5053 | - val finals = map (fn i => Vector.sub (actTable, i)) finals' | |
5054 | + val finals = List.map (fn i => Vector.sub (actTable, i)) finals' | |
5055 | fun tryfinal() = | |
5056 | yystuck (yyactsToMatches (strm, finals, oldMatches)) | |
5057 | fun find (c, []) = NONE | |
5058 | diff --git a/Unix/unix-lib.mlb b/Unix/unix-lib.mlb | |
5059 | new file mode 100644 | |
5060 | index 0000000..1481806 | |
5061 | --- /dev/null | |
5062 | +++ b/Unix/unix-lib.mlb | |
5063 | @@ -0,0 +1,46 @@ | |
5064 | + | |
5065 | +ann | |
5066 | + "nonexhaustiveBind warn" "nonexhaustiveMatch warn" | |
5067 | + "redundantBind warn" "redundantMatch warn" | |
5068 | + "sequenceNonUnit ignore" | |
5069 | + "warnUnused false" "forceUsed" | |
5070 | +in | |
5071 | + | |
5072 | +local | |
5073 | + basis l4 = | |
5074 | + bas | |
5075 | + (* $/basis.cm ====> *) $(SML_LIB)/basis/basis.mlb | |
5076 | + end | |
5077 | +in | |
5078 | +local | |
5079 | + $(SML_LIB)/basis/pervasive.mlb | |
5080 | + local | |
5081 | + open l4 | |
5082 | + in | |
5083 | + structure gs_0 = Substring | |
5084 | + end | |
5085 | + local | |
5086 | + open l4 | |
5087 | + in | |
5088 | + structure gs_1 = Posix | |
5089 | + end | |
5090 | + local | |
5091 | + unix-env-sig.sml | |
5092 | + in | |
5093 | + signature gs_2 = UNIX_ENV | |
5094 | + end | |
5095 | + local | |
5096 | + structure Posix = gs_1 | |
5097 | + structure Substring = gs_0 | |
5098 | + signature UNIX_ENV = gs_2 | |
5099 | + unix-env.sml | |
5100 | + in | |
5101 | + structure gs_3 = UnixEnv | |
5102 | + end | |
5103 | +in | |
5104 | + signature UNIX_ENV = gs_2 | |
5105 | + structure UnixEnv = gs_3 | |
5106 | +end | |
5107 | +end | |
5108 | + | |
5109 | +end | |
5110 | diff --git a/Util/base64.sml b/Util/base64.sml | |
5111 | index 2432737..8e989c8 100644 | |
5112 | --- a/Util/base64.sml | |
5113 | +++ b/Util/base64.sml | |
5114 | @@ -11,9 +11,11 @@ | |
5115 | structure Base64 : BASE64 = | |
5116 | struct | |
5117 | ||
5118 | + structure CA = CharArray | |
5119 | structure W8 = Word8 | |
5120 | structure W8V = Word8Vector | |
5121 | structure W8A = Word8Array | |
5122 | + structure UCA = Unsafe.CharArray | |
5123 | structure UCV = Unsafe.CharVector | |
5124 | structure UW8V = Unsafe.Word8Vector | |
5125 | ||
5126 | @@ -59,16 +61,16 @@ structure Base64 : BASE64 = | |
5127 | local | |
5128 | fun encode64 (vec, start, len) = let | |
5129 | val outLen = 4 * Int.quot(len + 2, 3) | |
5130 | - val outBuf = Unsafe.CharVector.create outLen | |
5131 | + val outBuf = UCA.create outLen | |
5132 | val nTriples = Int.quot(len, 3) | |
5133 | val extra = Int.rem(len, 3) | |
5134 | fun insBuf (i, (c1, c2, c3, c4)) = let | |
5135 | val idx = 4*i | |
5136 | in | |
5137 | - UCV.update(outBuf, idx, c1); | |
5138 | - UCV.update(outBuf, idx+1, c2); | |
5139 | - UCV.update(outBuf, idx+2, c3); | |
5140 | - UCV.update(outBuf, idx+3, c4) | |
5141 | + UCA.update(outBuf, idx, c1); | |
5142 | + UCA.update(outBuf, idx+1, c2); | |
5143 | + UCA.update(outBuf, idx+2, c3); | |
5144 | + UCA.update(outBuf, idx+3, c4) | |
5145 | end | |
5146 | fun loop (i, idx) = if (i < nTriples) | |
5147 | then ( | |
5148 | @@ -81,7 +83,7 @@ structure Base64 : BASE64 = | |
5149 | (* end case *)) | |
5150 | in | |
5151 | loop (0, start); | |
5152 | - outBuf | |
5153 | + CA.vector outBuf | |
5154 | end | |
5155 | in | |
5156 | ||
5157 | diff --git a/Util/engine.mlton.sml b/Util/engine.mlton.sml | |
5158 | new file mode 100644 | |
5159 | index 0000000..deb0c42 | |
5160 | --- /dev/null | |
5161 | +++ b/Util/engine.mlton.sml | |
5162 | @@ -0,0 +1,99 @@ | |
5163 | +(* Copyright (C) 1999-2004 Henry Cejtin, Matthew Fluet, Suresh | |
5164 | + * Jagannathan, and Stephen Weeks. | |
5165 | + * | |
5166 | + * MLton is released under the GNU General Public License (GPL). | |
5167 | + * Please see the file MLton-LICENSE for license information. | |
5168 | + *) | |
5169 | + | |
5170 | +signature ENGINE = | |
5171 | + sig | |
5172 | + type 'a t | |
5173 | + | |
5174 | + datatype 'a res = | |
5175 | + Done of 'a | |
5176 | + | Raise of exn | |
5177 | + | TimeOut of 'a t | |
5178 | + | |
5179 | + val new: (unit -> 'a) -> 'a t | |
5180 | + val repeat: {thunk: unit -> 'a, | |
5181 | + limit: Time.time, | |
5182 | + tries: int} -> 'a option | |
5183 | + val run: 'a t * Time.time -> 'a res | |
5184 | + val timeLimit: Time.time * (unit -> 'a) -> 'a option | |
5185 | + end | |
5186 | + | |
5187 | +structure Engine: ENGINE = | |
5188 | +struct | |
5189 | + | |
5190 | +open MLton | |
5191 | + | |
5192 | +datatype 'a t = T of {return: 'a res Thread.t option ref, | |
5193 | + thread: Thread.Runnable.t} | |
5194 | +and 'a res = | |
5195 | + Done of 'a | |
5196 | + | Raise of exn | |
5197 | + | TimeOut of 'a t | |
5198 | + | |
5199 | +val which = Itimer.Real | |
5200 | +val signal = Itimer.signal which | |
5201 | + | |
5202 | +fun done (return): unit = | |
5203 | + (return := NONE | |
5204 | + ; Itimer.set (which, {value = Time.zeroTime, | |
5205 | + interval = Time.zeroTime}) | |
5206 | + ; Signal.setHandler (signal, Signal.Handler.default)) | |
5207 | + | |
5208 | +fun new (f: unit -> 'a): 'a t = | |
5209 | + let | |
5210 | + val return = ref NONE | |
5211 | + val thread = | |
5212 | + Thread.new | |
5213 | + (fn () => | |
5214 | + let | |
5215 | + val res = Done (f ()) handle e => Raise e | |
5216 | + val ret = valOf (!return) | |
5217 | + val _ = done return | |
5218 | + in | |
5219 | + Thread.switch (fn _ => Thread.prepare (ret, res)) | |
5220 | + end) | |
5221 | + val thread = Thread.prepare (thread, ()) | |
5222 | + in | |
5223 | + T {return = return, thread = thread} | |
5224 | + end | |
5225 | + | |
5226 | +fun run (T {return, thread}, time: Time.time): 'a res = | |
5227 | + Thread.switch | |
5228 | + (fn cur: 'a res Thread.t => | |
5229 | + let | |
5230 | + val _ = return := SOME cur | |
5231 | + fun handler (me: Thread.Runnable.t): Thread.Runnable.t = | |
5232 | + Thread.prepare | |
5233 | + (Thread.prepend (cur, fn () => (done return | |
5234 | + ; TimeOut (T {return = return, | |
5235 | + thread = me}))), | |
5236 | + ()) | |
5237 | + val _ = Signal.setHandler (signal, Signal.Handler.handler handler) | |
5238 | + val _ = Itimer.set (which, {value = time, | |
5239 | + interval = Time.zeroTime}) | |
5240 | + in | |
5241 | + thread | |
5242 | + end) | |
5243 | + | |
5244 | +fun timeLimit (t: Time.time, f: unit -> 'a): 'a option = | |
5245 | + case run (new f, t) of | |
5246 | + Done a => SOME a | |
5247 | + | Raise e => raise e | |
5248 | + | TimeOut _ => NONE | |
5249 | + | |
5250 | +fun repeat {thunk, limit, tries} = | |
5251 | + let | |
5252 | + fun loop (n: int) = | |
5253 | + if n <= 0 | |
5254 | + then NONE | |
5255 | + else (case timeLimit (limit, thunk) of | |
5256 | + NONE => loop (n - 1) | |
5257 | + | SOME a => SOME a) | |
5258 | + in loop tries | |
5259 | + end | |
5260 | + | |
5261 | +end | |
5262 | diff --git a/Util/graph-scc-fn.sml b/Util/graph-scc-fn.sml | |
5263 | index 0dc3b32..4ae2d01 100644 | |
5264 | --- a/Util/graph-scc-fn.sml | |
5265 | +++ b/Util/graph-scc-fn.sml | |
5266 | @@ -8,7 +8,7 @@ | |
5267 | * author: Matthias Blume | |
5268 | *) | |
5269 | ||
5270 | -functor GraphSCCFn (Nd: ORD_KEY) :> GRAPH_SCC where Nd = Nd = | |
5271 | +functor GraphSCCFn (Nd: ORD_KEY) :> GRAPH_SCC where type Nd.ord_key = Nd.ord_key = | |
5272 | struct | |
5273 | structure Nd = Nd | |
5274 | ||
5275 | diff --git a/Util/redblack-map-fn.sml b/Util/redblack-map-fn.sml | |
5276 | index 526bdc1..c26cb8f 100644 | |
5277 | --- a/Util/redblack-map-fn.sml | |
5278 | +++ b/Util/redblack-map-fn.sml | |
5279 | @@ -23,7 +23,7 @@ | |
5280 | * will be black and its child will be a red leaf. | |
5281 | *) | |
5282 | ||
5283 | -functor RedBlackMapFn (K : ORD_KEY) :> ORD_MAP where Key = K = | |
5284 | +functor RedBlackMapFn (K : ORD_KEY) :> ORD_MAP where type Key.ord_key = K.ord_key = | |
5285 | struct | |
5286 | ||
5287 | structure Key = K | |
5288 | diff --git a/Util/redblack-set-fn.sml b/Util/redblack-set-fn.sml | |
5289 | index 3a16a82..ebfbb5a 100644 | |
5290 | --- a/Util/redblack-set-fn.sml | |
5291 | +++ b/Util/redblack-set-fn.sml | |
5292 | @@ -23,7 +23,7 @@ | |
5293 | * will be black and its child will be a red leaf. | |
5294 | *) | |
5295 | ||
5296 | -functor RedBlackSetFn (K : ORD_KEY) :> ORD_SET where Key = K = | |
5297 | +functor RedBlackSetFn (K : ORD_KEY) :> ORD_SET where type Key.ord_key = K.ord_key = | |
5298 | struct | |
5299 | ||
5300 | structure Key = K | |
5301 | diff --git a/Util/smlnj-lib.mlb b/Util/smlnj-lib.mlb | |
5302 | new file mode 100644 | |
5303 | index 0000000..7194e93 | |
5304 | --- /dev/null | |
5305 | +++ b/Util/smlnj-lib.mlb | |
5306 | @@ -0,0 +1,1173 @@ | |
5307 | + | |
5308 | +ann | |
5309 | + "nonexhaustiveBind ignore" "nonexhaustiveMatch warn" | |
5310 | + "redundantBind ignore" "redundantMatch warn" | |
5311 | + "sequenceNonUnit ignore" | |
5312 | + "warnUnused false" "forceUsed" | |
5313 | +in | |
5314 | + | |
5315 | +local | |
5316 | + basis l4 = | |
5317 | + bas | |
5318 | + (* $/basis.cm ====> *) $(SML_LIB)/basis/basis.mlb $(SML_LIB)/basis/unsafe.mlb $(SML_LIB)/basis/sml-nj.mlb | |
5319 | + end | |
5320 | +in | |
5321 | +local | |
5322 | + $(SML_LIB)/basis/pervasive.mlb | |
5323 | + local | |
5324 | + open l4 | |
5325 | + in | |
5326 | + structure gs_0 = List | |
5327 | + end | |
5328 | + local | |
5329 | + ord-key-sig.sml | |
5330 | + in | |
5331 | + signature gs_1 = ORD_KEY | |
5332 | + end | |
5333 | + local | |
5334 | + signature ORD_KEY = gs_1 | |
5335 | + ord-set-sig.sml | |
5336 | + in | |
5337 | + signature gs_2 = ORD_SET | |
5338 | + end | |
5339 | + local | |
5340 | + open l4 | |
5341 | + in | |
5342 | + structure gs_3 = Int | |
5343 | + end | |
5344 | + local | |
5345 | + lib-base-sig.sml | |
5346 | + in | |
5347 | + signature gs_4 = LIB_BASE | |
5348 | + end | |
5349 | + local | |
5350 | + structure Int = gs_3 | |
5351 | + signature LIB_BASE = gs_4 | |
5352 | + lib-base.sml | |
5353 | + in | |
5354 | + structure gs_5 = LibBase | |
5355 | + end | |
5356 | + local | |
5357 | + structure LibBase = gs_5 | |
5358 | + structure List = gs_0 | |
5359 | + signature ORD_KEY = gs_1 | |
5360 | + signature ORD_SET = gs_2 | |
5361 | + list-set-fn.sml | |
5362 | + in | |
5363 | + functor gs_6 = ListSetFn | |
5364 | + end | |
5365 | + local | |
5366 | + signature ORD_KEY = gs_1 | |
5367 | + ord-map-sig.sml | |
5368 | + in | |
5369 | + signature gs_7 = ORD_MAP | |
5370 | + end | |
5371 | + local | |
5372 | + structure LibBase = gs_5 | |
5373 | + structure List = gs_0 | |
5374 | + signature ORD_KEY = gs_1 | |
5375 | + signature ORD_MAP = gs_7 | |
5376 | + list-map-fn.sml | |
5377 | + in | |
5378 | + functor gs_8 = ListMapFn | |
5379 | + end | |
5380 | + local | |
5381 | + structure Int = gs_3 | |
5382 | + structure LibBase = gs_5 | |
5383 | + structure List = gs_0 | |
5384 | + signature ORD_SET = gs_2 | |
5385 | + int-binary-set.sml | |
5386 | + in | |
5387 | + structure gs_9 = IntBinarySet | |
5388 | + end | |
5389 | + local | |
5390 | + structure Int = gs_3 | |
5391 | + structure LibBase = gs_5 | |
5392 | + signature ORD_MAP = gs_7 | |
5393 | + int-binary-map.sml | |
5394 | + in | |
5395 | + structure gs_10 = IntBinaryMap | |
5396 | + end | |
5397 | + local | |
5398 | + prime-sizes.sml | |
5399 | + in | |
5400 | + structure gs_11 = PrimeSizes | |
5401 | + end | |
5402 | + local | |
5403 | + open l4 | |
5404 | + in | |
5405 | + structure gs_12 = Array | |
5406 | + end | |
5407 | + local | |
5408 | + open l4 | |
5409 | + in | |
5410 | + structure gs_13 = ArraySlice | |
5411 | + end | |
5412 | + local | |
5413 | + open l4 | |
5414 | + in | |
5415 | + structure gs_14 = General | |
5416 | + end | |
5417 | + local | |
5418 | + dynamic-array-sig.sml | |
5419 | + in | |
5420 | + signature gs_15 = DYNAMIC_ARRAY | |
5421 | + end | |
5422 | + local | |
5423 | + structure Array = gs_12 | |
5424 | + structure ArraySlice = gs_13 | |
5425 | + signature DYNAMIC_ARRAY = gs_15 | |
5426 | + structure General = gs_14 | |
5427 | + structure Int = gs_3 | |
5428 | + dynamic-array.sml | |
5429 | + in | |
5430 | + structure gs_16 = DynamicArray | |
5431 | + end | |
5432 | + local | |
5433 | + io-util-sig.sml | |
5434 | + in | |
5435 | + signature gs_17 = IO_UTIL | |
5436 | + end | |
5437 | + local | |
5438 | + splaytree-sig.sml | |
5439 | + in | |
5440 | + signature gs_18 = SPLAY_TREE | |
5441 | + end | |
5442 | + local | |
5443 | + signature SPLAY_TREE = gs_18 | |
5444 | + splaytree.sml | |
5445 | + in | |
5446 | + structure gs_19 = SplayTree | |
5447 | + end | |
5448 | + local | |
5449 | + structure LibBase = gs_5 | |
5450 | + structure List = gs_0 | |
5451 | + signature ORD_KEY = gs_1 | |
5452 | + signature ORD_SET = gs_2 | |
5453 | + structure SplayTree = gs_19 | |
5454 | + splay-set-fn.sml | |
5455 | + in | |
5456 | + functor gs_20 = SplaySetFn | |
5457 | + end | |
5458 | + local | |
5459 | + structure LibBase = gs_5 | |
5460 | + signature ORD_KEY = gs_1 | |
5461 | + signature ORD_MAP = gs_7 | |
5462 | + structure SplayTree = gs_19 | |
5463 | + splay-map-fn.sml | |
5464 | + in | |
5465 | + functor gs_21 = SplayMapFn | |
5466 | + end | |
5467 | + local | |
5468 | + open l4 | |
5469 | + in | |
5470 | + structure gs_22 = TextIO | |
5471 | + end | |
5472 | + local | |
5473 | + structure Int = gs_3 | |
5474 | + structure List = gs_0 | |
5475 | + structure TextIO = gs_22 | |
5476 | + ansi-term.sml | |
5477 | + in | |
5478 | + structure gs_23 = ANSITerm | |
5479 | + end | |
5480 | + local | |
5481 | + signature IO_UTIL = gs_17 | |
5482 | + structure TextIO = gs_22 | |
5483 | + io-util.sml | |
5484 | + in | |
5485 | + structure gs_24 = IOUtil | |
5486 | + end | |
5487 | + local | |
5488 | + plist-sig.sml | |
5489 | + in | |
5490 | + signature gs_25 = PROP_LIST | |
5491 | + end | |
5492 | + local | |
5493 | + open l4 | |
5494 | + in | |
5495 | + structure gs_26 = Substring | |
5496 | + end | |
5497 | + local | |
5498 | + open l4 | |
5499 | + in | |
5500 | + structure gs_27 = StringCvt | |
5501 | + end | |
5502 | + local | |
5503 | + open l4 | |
5504 | + in | |
5505 | + structure gs_28 = String | |
5506 | + end | |
5507 | + local | |
5508 | + open l4 | |
5509 | + in | |
5510 | + structure gs_29 = Option | |
5511 | + end | |
5512 | + local | |
5513 | + open l4 | |
5514 | + in | |
5515 | + structure gs_30 = Char | |
5516 | + end | |
5517 | + local | |
5518 | + getopt-sig.sml | |
5519 | + in | |
5520 | + signature gs_31 = GET_OPT | |
5521 | + end | |
5522 | + local | |
5523 | + structure Char = gs_30 | |
5524 | + signature GET_OPT = gs_31 | |
5525 | + structure Int = gs_3 | |
5526 | + structure List = gs_0 | |
5527 | + structure Option = gs_29 | |
5528 | + structure String = gs_28 | |
5529 | + structure StringCvt = gs_27 | |
5530 | + structure Substring = gs_26 | |
5531 | + getopt.sml | |
5532 | + in | |
5533 | + structure gs_32 = GetOpt | |
5534 | + end | |
5535 | + local | |
5536 | + interval-domain-sig.sml | |
5537 | + in | |
5538 | + signature gs_33 = INTERVAL_DOMAIN | |
5539 | + end | |
5540 | + local | |
5541 | + signature INTERVAL_DOMAIN = gs_33 | |
5542 | + interval-set-sig.sml | |
5543 | + in | |
5544 | + signature gs_34 = INTERVAL_SET | |
5545 | + end | |
5546 | + local | |
5547 | + structure StringCvt = gs_27 | |
5548 | + parser-comb-sig.sml | |
5549 | + in | |
5550 | + signature gs_35 = PARSER_COMB | |
5551 | + end | |
5552 | + local | |
5553 | + open l4 | |
5554 | + in | |
5555 | + structure gs_36 = Word8 | |
5556 | + end | |
5557 | + local | |
5558 | + open l4 | |
5559 | + in | |
5560 | + structure gs_37 = CharVector | |
5561 | + end | |
5562 | + local | |
5563 | + open l4 | |
5564 | + in | |
5565 | + structure gs_38 = LargeWord | |
5566 | + end | |
5567 | + local | |
5568 | + open l4 | |
5569 | + in | |
5570 | + structure gs_39 = LargeInt | |
5571 | + end | |
5572 | + local | |
5573 | + open l4 | |
5574 | + in | |
5575 | + structure gs_40 = Word | |
5576 | + end | |
5577 | + local | |
5578 | + open l4 | |
5579 | + in | |
5580 | + structure gs_41 = Real | |
5581 | + end | |
5582 | + local | |
5583 | + open l4 | |
5584 | + in | |
5585 | + structure gs_42 = LargeReal | |
5586 | + end | |
5587 | + local | |
5588 | + atom-sig.sml | |
5589 | + in | |
5590 | + signature gs_43 = ATOM | |
5591 | + end | |
5592 | + local | |
5593 | + open l4 | |
5594 | + in | |
5595 | + structure gs_44 = Unsafe | |
5596 | + end | |
5597 | + local | |
5598 | + structure Char = gs_30 | |
5599 | + structure Substring = gs_26 | |
5600 | + structure Unsafe = gs_44 | |
5601 | + structure Word = gs_40 | |
5602 | + hash-string.sml | |
5603 | + in | |
5604 | + structure gs_45 = HashString | |
5605 | + end | |
5606 | + local | |
5607 | + signature ATOM = gs_43 | |
5608 | + structure Array = gs_12 | |
5609 | + structure HashString = gs_45 | |
5610 | + structure String = gs_28 | |
5611 | + structure Substring = gs_26 | |
5612 | + structure Word = gs_40 | |
5613 | + atom.sml | |
5614 | + in | |
5615 | + structure gs_46 = Atom | |
5616 | + end | |
5617 | + local | |
5618 | + structure Atom = gs_46 | |
5619 | + structure Int = gs_3 | |
5620 | + structure LargeInt = gs_39 | |
5621 | + structure LargeReal = gs_42 | |
5622 | + structure LargeWord = gs_38 | |
5623 | + structure Real = gs_41 | |
5624 | + structure Word = gs_40 | |
5625 | + structure Word8 = gs_36 | |
5626 | + format-sig.sml | |
5627 | + in | |
5628 | + signature gs_47 = FORMAT | |
5629 | + end | |
5630 | + local | |
5631 | + structure Int = gs_3 | |
5632 | + structure String = gs_28 | |
5633 | + structure StringCvt = gs_27 | |
5634 | + real-format.sml | |
5635 | + in | |
5636 | + structure gs_48 = RealFormat | |
5637 | + end | |
5638 | + local | |
5639 | + structure Atom = gs_46 | |
5640 | + structure Char = gs_30 | |
5641 | + structure Int = gs_3 | |
5642 | + structure LargeInt = gs_39 | |
5643 | + structure LargeReal = gs_42 | |
5644 | + structure LargeWord = gs_38 | |
5645 | + structure Real = gs_41 | |
5646 | + structure StringCvt = gs_27 | |
5647 | + structure Substring = gs_26 | |
5648 | + structure Word = gs_40 | |
5649 | + structure Word8 = gs_36 | |
5650 | + fmt-fields.sml | |
5651 | + in | |
5652 | + structure gs_49 = FmtFields | |
5653 | + end | |
5654 | + local | |
5655 | + structure Atom = gs_46 | |
5656 | + structure Char = gs_30 | |
5657 | + structure CharVector = gs_37 | |
5658 | + signature FORMAT = gs_47 | |
5659 | + structure FmtFields = gs_49 | |
5660 | + structure Int = gs_3 | |
5661 | + structure LargeInt = gs_39 | |
5662 | + structure LargeWord = gs_38 | |
5663 | + structure Real = gs_41 | |
5664 | + structure RealFormat = gs_48 | |
5665 | + structure String = gs_28 | |
5666 | + structure StringCvt = gs_27 | |
5667 | + structure Substring = gs_26 | |
5668 | + structure Word = gs_40 | |
5669 | + structure Word8 = gs_36 | |
5670 | + format.sml | |
5671 | + in | |
5672 | + structure gs_50 = Format | |
5673 | + end | |
5674 | + local | |
5675 | + priority-sig.sml | |
5676 | + in | |
5677 | + signature gs_51 = PRIORITY | |
5678 | + end | |
5679 | + local | |
5680 | + hash-key-sig.sml | |
5681 | + in | |
5682 | + signature gs_52 = HASH_KEY | |
5683 | + end | |
5684 | + local | |
5685 | + signature HASH_KEY = gs_52 | |
5686 | + mono-hash-table-sig.sml | |
5687 | + in | |
5688 | + signature gs_53 = MONO_HASH_TABLE | |
5689 | + end | |
5690 | + local | |
5691 | + structure Array = gs_12 | |
5692 | + structure Word = gs_40 | |
5693 | + hash-table-rep.sml | |
5694 | + in | |
5695 | + structure gs_54 = HashTableRep | |
5696 | + end | |
5697 | + local | |
5698 | + structure Array = gs_12 | |
5699 | + structure HashTableRep = gs_54 | |
5700 | + signature MONO_HASH_TABLE = gs_53 | |
5701 | + structure Word = gs_40 | |
5702 | + int-hash-table.sml | |
5703 | + in | |
5704 | + structure gs_55 = IntHashTable | |
5705 | + end | |
5706 | + local | |
5707 | + open l4 | |
5708 | + in | |
5709 | + signature gs_56 = MONO_ARRAY | |
5710 | + end | |
5711 | + local | |
5712 | + signature MONO_ARRAY = gs_56 | |
5713 | + bit-array-sig.sml | |
5714 | + in | |
5715 | + signature gs_57 = BIT_ARRAY | |
5716 | + end | |
5717 | + local | |
5718 | + structure LibBase = gs_5 | |
5719 | + structure List = gs_0 | |
5720 | + signature ORD_KEY = gs_1 | |
5721 | + signature ORD_SET = gs_2 | |
5722 | + redblack-set-fn.sml | |
5723 | + in | |
5724 | + functor gs_58 = RedBlackSetFn | |
5725 | + end | |
5726 | + local | |
5727 | + structure Atom = gs_46 | |
5728 | + functor RedBlackSetFn = gs_58 | |
5729 | + atom-redblack-set.sml | |
5730 | + in | |
5731 | + structure gs_59 = AtomRedBlackSet | |
5732 | + end | |
5733 | + local | |
5734 | + structure AtomRedBlackSet = gs_59 | |
5735 | + atom-set.sml | |
5736 | + in | |
5737 | + structure gs_60 = AtomSet | |
5738 | + end | |
5739 | + local | |
5740 | + structure LibBase = gs_5 | |
5741 | + signature ORD_KEY = gs_1 | |
5742 | + signature ORD_MAP = gs_7 | |
5743 | + redblack-map-fn.sml | |
5744 | + in | |
5745 | + functor gs_61 = RedBlackMapFn | |
5746 | + end | |
5747 | + local | |
5748 | + structure Atom = gs_46 | |
5749 | + functor RedBlackMapFn = gs_61 | |
5750 | + atom-redblack-map.sml | |
5751 | + in | |
5752 | + structure gs_62 = AtomRedBlackMap | |
5753 | + end | |
5754 | + local | |
5755 | + structure AtomRedBlackMap = gs_62 | |
5756 | + atom-map.sml | |
5757 | + in | |
5758 | + structure gs_63 = AtomMap | |
5759 | + end | |
5760 | + local | |
5761 | + open l4 | |
5762 | + in | |
5763 | + structure gs_64 = Word8Array | |
5764 | + end | |
5765 | + local | |
5766 | + open l4 | |
5767 | + in | |
5768 | + structure gs_65 = Word8Vector | |
5769 | + end | |
5770 | + local | |
5771 | + open l4 | |
5772 | + in | |
5773 | + structure gs_66 = CharArray | |
5774 | + end | |
5775 | + local | |
5776 | + open l4 | |
5777 | + in | |
5778 | + structure gs_67 = Word8VectorSlice | |
5779 | + end | |
5780 | + local | |
5781 | + open l4 | |
5782 | + in | |
5783 | + structure gs_68 = Word8ArraySlice | |
5784 | + end | |
5785 | + local | |
5786 | + structure Word8Vector = gs_65 | |
5787 | + structure Word8VectorSlice = gs_67 | |
5788 | + base64-sig.sml | |
5789 | + in | |
5790 | + signature gs_69 = BASE64 | |
5791 | + end | |
5792 | + local | |
5793 | + signature BASE64 = gs_69 | |
5794 | + structure Char = gs_30 | |
5795 | + structure CharArray = gs_66 | |
5796 | + structure CharVector = gs_37 | |
5797 | + structure Int = gs_3 | |
5798 | + structure String = gs_28 | |
5799 | + structure Substring = gs_26 | |
5800 | + structure Unsafe = gs_44 | |
5801 | + structure Word = gs_40 | |
5802 | + structure Word8 = gs_36 | |
5803 | + structure Word8Array = gs_64 | |
5804 | + structure Word8ArraySlice = gs_68 | |
5805 | + structure Word8Vector = gs_65 | |
5806 | + structure Word8VectorSlice = gs_67 | |
5807 | + base64.sml | |
5808 | + in | |
5809 | + structure gs_70 = Base64 | |
5810 | + end | |
5811 | + local | |
5812 | + structure List = gs_0 | |
5813 | + signature PROP_LIST = gs_25 | |
5814 | + plist.sml | |
5815 | + in | |
5816 | + structure gs_71 = PropList | |
5817 | + end | |
5818 | + local | |
5819 | + open l4 | |
5820 | + in | |
5821 | + structure gs_72 = Vector | |
5822 | + end | |
5823 | + local | |
5824 | + char-map-sig.sml | |
5825 | + in | |
5826 | + signature gs_73 = CHAR_MAP | |
5827 | + end | |
5828 | + local | |
5829 | + structure Array = gs_12 | |
5830 | + signature CHAR_MAP = gs_73 | |
5831 | + structure Char = gs_30 | |
5832 | + structure String = gs_28 | |
5833 | + structure Vector = gs_72 | |
5834 | + char-map.sml | |
5835 | + in | |
5836 | + structure gs_74 = CharMap | |
5837 | + end | |
5838 | + local | |
5839 | + list-xprod-sig.sml | |
5840 | + in | |
5841 | + signature gs_75 = LIST_XPROD | |
5842 | + end | |
5843 | + local | |
5844 | + signature ORD_KEY = gs_1 | |
5845 | + graph-scc-sig.sml | |
5846 | + in | |
5847 | + signature gs_76 = GRAPH_SCC | |
5848 | + end | |
5849 | + local | |
5850 | + signature GRAPH_SCC = gs_76 | |
5851 | + structure List = gs_0 | |
5852 | + signature ORD_KEY = gs_1 | |
5853 | + functor RedBlackMapFn = gs_61 | |
5854 | + graph-scc-fn.sml | |
5855 | + in | |
5856 | + functor gs_77 = GraphSCCFn | |
5857 | + end | |
5858 | + local | |
5859 | + structure Array = gs_12 | |
5860 | + signature HASH_KEY = gs_52 | |
5861 | + structure HashTableRep = gs_54 | |
5862 | + signature MONO_HASH_TABLE = gs_53 | |
5863 | + structure Word = gs_40 | |
5864 | + hash-table-fn.sml | |
5865 | + in | |
5866 | + functor gs_78 = HashTableFn | |
5867 | + end | |
5868 | + local | |
5869 | + structure Atom = gs_46 | |
5870 | + functor HashTableFn = gs_78 | |
5871 | + atom-table.sml | |
5872 | + in | |
5873 | + structure gs_79 = AtomTable | |
5874 | + end | |
5875 | + local | |
5876 | + structure StringCvt = gs_27 | |
5877 | + list-format-sig.sml | |
5878 | + in | |
5879 | + signature gs_80 = LIST_FORMAT | |
5880 | + end | |
5881 | + local | |
5882 | + signature LIST_FORMAT = gs_80 | |
5883 | + structure String = gs_28 | |
5884 | + structure StringCvt = gs_27 | |
5885 | + list-format.sml | |
5886 | + in | |
5887 | + structure gs_81 = ListFormat | |
5888 | + end | |
5889 | + local | |
5890 | + open l4 | |
5891 | + in | |
5892 | + signature gs_82 = MONO_VECTOR | |
5893 | + end | |
5894 | + local | |
5895 | + signature MONO_VECTOR = gs_82 | |
5896 | + bit-vector-sig.sml | |
5897 | + in | |
5898 | + signature gs_83 = BIT_VECTOR | |
5899 | + end | |
5900 | + local | |
5901 | + signature PARSER_COMB = gs_35 | |
5902 | + structure StringCvt = gs_27 | |
5903 | + structure Substring = gs_26 | |
5904 | + parser-comb.sml | |
5905 | + in | |
5906 | + structure gs_84 = ParserComb | |
5907 | + end | |
5908 | + local | |
5909 | + signature HASH_KEY = gs_52 | |
5910 | + mono-hash2-table-sig.sml | |
5911 | + in | |
5912 | + signature gs_85 = MONO_HASH2_TABLE | |
5913 | + end | |
5914 | + local | |
5915 | + signature INTERVAL_DOMAIN = gs_33 | |
5916 | + signature INTERVAL_SET = gs_34 | |
5917 | + structure List = gs_0 | |
5918 | + interval-set-fn.sml | |
5919 | + in | |
5920 | + functor gs_86 = IntervalSetFn | |
5921 | + end | |
5922 | + local | |
5923 | + structure LibBase = gs_5 | |
5924 | + structure List = gs_0 | |
5925 | + signature ORD_SET = gs_2 | |
5926 | + structure Word = gs_40 | |
5927 | + word-redblack-set.sml | |
5928 | + in | |
5929 | + structure gs_87 = WordRedBlackSet | |
5930 | + end | |
5931 | + local | |
5932 | + structure LibBase = gs_5 | |
5933 | + signature ORD_MAP = gs_7 | |
5934 | + structure Word = gs_40 | |
5935 | + word-redblack-map.sml | |
5936 | + in | |
5937 | + structure gs_88 = WordRedBlackMap | |
5938 | + end | |
5939 | + local | |
5940 | + structure Int = gs_3 | |
5941 | + structure LibBase = gs_5 | |
5942 | + structure List = gs_0 | |
5943 | + signature ORD_SET = gs_2 | |
5944 | + int-list-set.sml | |
5945 | + in | |
5946 | + structure gs_89 = IntListSet | |
5947 | + end | |
5948 | + local | |
5949 | + structure Int = gs_3 | |
5950 | + structure LibBase = gs_5 | |
5951 | + structure List = gs_0 | |
5952 | + signature ORD_MAP = gs_7 | |
5953 | + int-list-map.sml | |
5954 | + in | |
5955 | + structure gs_90 = IntListMap | |
5956 | + end | |
5957 | + local | |
5958 | + open l4 | |
5959 | + in | |
5960 | + structure gs_91 = OS | |
5961 | + end | |
5962 | + local | |
5963 | + path-util-sig.sml | |
5964 | + in | |
5965 | + signature gs_92 = PATH_UTIL | |
5966 | + end | |
5967 | + local | |
5968 | + structure OS = gs_91 | |
5969 | + signature PATH_UTIL = gs_92 | |
5970 | + path-util.sml | |
5971 | + in | |
5972 | + structure gs_93 = PathUtil | |
5973 | + end | |
5974 | + local | |
5975 | + structure LibBase = gs_5 | |
5976 | + structure List = gs_0 | |
5977 | + signature ORD_KEY = gs_1 | |
5978 | + signature ORD_SET = gs_2 | |
5979 | + binary-set-fn.sml | |
5980 | + in | |
5981 | + functor gs_94 = BinarySetFn | |
5982 | + end | |
5983 | + local | |
5984 | + structure LibBase = gs_5 | |
5985 | + signature ORD_KEY = gs_1 | |
5986 | + signature ORD_MAP = gs_7 | |
5987 | + binary-map-fn.sml | |
5988 | + in | |
5989 | + functor gs_95 = BinaryMapFn | |
5990 | + end | |
5991 | + local | |
5992 | + open l4 | |
5993 | + in | |
5994 | + structure gs_96 = Math | |
5995 | + end | |
5996 | + local | |
5997 | + open l4 | |
5998 | + in | |
5999 | + structure gs_97 = PackWord32Big | |
6000 | + end | |
6001 | + local | |
6002 | + open l4 | |
6003 | + in | |
6004 | + structure gs_98 = Word31 | |
6005 | + end | |
6006 | + local | |
6007 | + open l4 | |
6008 | + in | |
6009 | + structure gs_99 = Byte | |
6010 | + end | |
6011 | + local | |
6012 | + random-sig.sml | |
6013 | + in | |
6014 | + signature gs_100 = RANDOM | |
6015 | + end | |
6016 | + local | |
6017 | + structure Array = gs_12 | |
6018 | + structure Byte = gs_99 | |
6019 | + structure LargeWord = gs_38 | |
6020 | + structure LibBase = gs_5 | |
6021 | + structure PackWord32Big = gs_97 | |
6022 | + signature RANDOM = gs_100 | |
6023 | + structure Word31 = gs_98 | |
6024 | + structure Word8Array = gs_64 | |
6025 | + structure Word8Vector = gs_65 | |
6026 | + random.sml | |
6027 | + in | |
6028 | + structure gs_101 = Random | |
6029 | + end | |
6030 | + local | |
6031 | + structure Array = gs_12 | |
6032 | + structure ArraySlice = gs_13 | |
6033 | + structure Random = gs_101 | |
6034 | + structure Real = gs_41 | |
6035 | + structure Unsafe = gs_44 | |
6036 | + structure Word = gs_40 | |
6037 | + real-order-stats.sml | |
6038 | + in | |
6039 | + structure gs_102 = RealOrderStats | |
6040 | + end | |
6041 | + local | |
6042 | + structure Array = gs_12 | |
6043 | + structure ArraySlice = gs_13 | |
6044 | + structure Math = gs_96 | |
6045 | + structure RealOrderStats = gs_102 | |
6046 | + structure Unsafe = gs_44 | |
6047 | + univariate-stats.sml | |
6048 | + in | |
6049 | + structure gs_103 = UnivariateStats | |
6050 | + end | |
6051 | + local | |
6052 | + signature BIT_ARRAY = gs_57 | |
6053 | + structure Byte = gs_99 | |
6054 | + structure Int = gs_3 | |
6055 | + structure LibBase = gs_5 | |
6056 | + structure List = gs_0 | |
6057 | + structure Unsafe = gs_44 | |
6058 | + structure Word = gs_40 | |
6059 | + structure Word8 = gs_36 | |
6060 | + structure Word8Array = gs_64 | |
6061 | + structure Word8Vector = gs_65 | |
6062 | + bit-array.sml | |
6063 | + in | |
6064 | + structure gs_104 = BitArray | |
6065 | + end | |
6066 | + local | |
6067 | + structure Array = gs_12 | |
6068 | + signature MONO_ARRAY = gs_56 | |
6069 | + structure Vector = gs_72 | |
6070 | + mono-array-fn.sml | |
6071 | + in | |
6072 | + functor gs_105 = MonoArrayFn | |
6073 | + end | |
6074 | + local | |
6075 | + signature MONO_ARRAY = gs_56 | |
6076 | + bsearch-fn.sml | |
6077 | + in | |
6078 | + functor gs_106 = BSearchFn | |
6079 | + end | |
6080 | + local | |
6081 | + mono-dynamic-array-sig.sml | |
6082 | + in | |
6083 | + signature gs_107 = MONO_DYNAMIC_ARRAY | |
6084 | + end | |
6085 | + local | |
6086 | + open l4 | |
6087 | + in | |
6088 | + structure gs_108 = Bool | |
6089 | + end | |
6090 | + local | |
6091 | + structure StringCvt = gs_27 | |
6092 | + format-comb-sig.sml | |
6093 | + in | |
6094 | + signature gs_109 = FORMAT_COMB | |
6095 | + end | |
6096 | + local | |
6097 | + structure Bool = gs_108 | |
6098 | + structure Char = gs_30 | |
6099 | + signature FORMAT_COMB = gs_109 | |
6100 | + structure Int = gs_3 | |
6101 | + structure List = gs_0 | |
6102 | + structure Real = gs_41 | |
6103 | + structure String = gs_28 | |
6104 | + structure StringCvt = gs_27 | |
6105 | + format-comb.sml | |
6106 | + in | |
6107 | + structure gs_110 = FormatComb | |
6108 | + end | |
6109 | + local | |
6110 | + queue-sig.sml | |
6111 | + in | |
6112 | + signature gs_111 = QUEUE | |
6113 | + end | |
6114 | + local | |
6115 | + fifo-sig.sml | |
6116 | + in | |
6117 | + signature gs_112 = FIFO | |
6118 | + end | |
6119 | + local | |
6120 | + signature FIFO = gs_112 | |
6121 | + structure List = gs_0 | |
6122 | + fifo.sml | |
6123 | + in | |
6124 | + structure gs_113 = Fifo | |
6125 | + end | |
6126 | + local | |
6127 | + structure Fifo = gs_113 | |
6128 | + signature QUEUE = gs_111 | |
6129 | + queue.sml | |
6130 | + in | |
6131 | + structure gs_114 = Queue | |
6132 | + end | |
6133 | + local | |
6134 | + structure Array = gs_12 | |
6135 | + signature HASH_KEY = gs_52 | |
6136 | + structure HashTableRep = gs_54 | |
6137 | + signature MONO_HASH2_TABLE = gs_85 | |
6138 | + structure Word = gs_40 | |
6139 | + hash2-table-fn.sml | |
6140 | + in | |
6141 | + functor gs_115 = Hash2TableFn | |
6142 | + end | |
6143 | + local | |
6144 | + structure Array = gs_12 | |
6145 | + structure HashTableRep = gs_54 | |
6146 | + signature MONO_HASH_TABLE = gs_53 | |
6147 | + structure Word = gs_40 | |
6148 | + word-hash-table.sml | |
6149 | + in | |
6150 | + structure gs_116 = WordHashTable | |
6151 | + end | |
6152 | + local | |
6153 | + structure Atom = gs_46 | |
6154 | + structure AtomTable = gs_79 | |
6155 | + structure List = gs_0 | |
6156 | + keyword-fn.sml | |
6157 | + in | |
6158 | + functor gs_117 = KeywordFn | |
6159 | + end | |
6160 | + local | |
6161 | + mono-priorityq-sig.sml | |
6162 | + in | |
6163 | + signature gs_118 = MONO_PRIORITYQ | |
6164 | + end | |
6165 | + local | |
6166 | + structure List = gs_0 | |
6167 | + signature MONO_PRIORITYQ = gs_118 | |
6168 | + signature PRIORITY = gs_51 | |
6169 | + left-priorityq-fn.sml | |
6170 | + in | |
6171 | + functor gs_119 = LeftPriorityQFn | |
6172 | + end | |
6173 | + local | |
6174 | + hash-table-sig.sml | |
6175 | + in | |
6176 | + signature gs_120 = HASH_TABLE | |
6177 | + end | |
6178 | + local | |
6179 | + structure Array = gs_12 | |
6180 | + signature HASH_TABLE = gs_120 | |
6181 | + structure HashTableRep = gs_54 | |
6182 | + structure Word = gs_40 | |
6183 | + hash-table.sml | |
6184 | + in | |
6185 | + structure gs_121 = HashTable | |
6186 | + end | |
6187 | + local | |
6188 | + structure Array = gs_12 | |
6189 | + signature HASH_KEY = gs_52 | |
6190 | + structure List = gs_0 | |
6191 | + structure Word = gs_40 | |
6192 | + hash-set-fn.sml | |
6193 | + in | |
6194 | + signature gs_122 = HASH_SET | |
6195 | + functor gs_123 = HashSetFn | |
6196 | + end | |
6197 | + local | |
6198 | + structure General = gs_14 | |
6199 | + structure Int = gs_3 | |
6200 | + signature MONO_ARRAY = gs_56 | |
6201 | + signature MONO_DYNAMIC_ARRAY = gs_107 | |
6202 | + dynamic-array-fn.sml | |
6203 | + in | |
6204 | + functor gs_124 = DynamicArrayFn | |
6205 | + end | |
6206 | + local | |
6207 | + signature MONO_ARRAY = gs_56 | |
6208 | + mono-array-sort-sig.sml | |
6209 | + in | |
6210 | + signature gs_125 = MONO_ARRAY_SORT | |
6211 | + end | |
6212 | + local | |
6213 | + structure Int = gs_3 | |
6214 | + structure LibBase = gs_5 | |
6215 | + structure List = gs_0 | |
6216 | + signature ORD_SET = gs_2 | |
6217 | + int-redblack-set.sml | |
6218 | + in | |
6219 | + structure gs_126 = IntRedBlackSet | |
6220 | + end | |
6221 | + local | |
6222 | + structure Int = gs_3 | |
6223 | + structure LibBase = gs_5 | |
6224 | + signature ORD_MAP = gs_7 | |
6225 | + int-redblack-map.sml | |
6226 | + in | |
6227 | + structure gs_127 = IntRedBlackMap | |
6228 | + end | |
6229 | + local | |
6230 | + array-sort-sig.sml | |
6231 | + in | |
6232 | + signature gs_128 = ARRAY_SORT | |
6233 | + end | |
6234 | + local | |
6235 | + signature ARRAY_SORT = gs_128 | |
6236 | + structure Array = gs_12 | |
6237 | + structure Int = gs_3 | |
6238 | + structure Unsafe = gs_44 | |
6239 | + array-qsort.sml | |
6240 | + in | |
6241 | + structure gs_129 = ArrayQSort | |
6242 | + end | |
6243 | + local | |
6244 | + uref-sig.sml | |
6245 | + in | |
6246 | + signature gs_130 = UREF | |
6247 | + end | |
6248 | + local | |
6249 | + signature UREF = gs_130 | |
6250 | + simple-uref.sml | |
6251 | + in | |
6252 | + structure gs_131 = SimpleURef | |
6253 | + end | |
6254 | + local | |
6255 | + listsort-sig.sml | |
6256 | + in | |
6257 | + signature gs_132 = LIST_SORT | |
6258 | + end | |
6259 | + local | |
6260 | + signature LIST_SORT = gs_132 | |
6261 | + list-mergesort.sml | |
6262 | + in | |
6263 | + structure gs_133 = ListMergeSort | |
6264 | + end | |
6265 | + local | |
6266 | + structure Int = gs_3 | |
6267 | + signature MONO_ARRAY = gs_56 | |
6268 | + signature MONO_ARRAY_SORT = gs_125 | |
6269 | + array-qsort-fn.sml | |
6270 | + in | |
6271 | + functor gs_134 = ArrayQSortFn | |
6272 | + end | |
6273 | + local | |
6274 | + structure Atom = gs_46 | |
6275 | + functor BinarySetFn = gs_94 | |
6276 | + atom-binary-set.sml | |
6277 | + in | |
6278 | + structure gs_135 = AtomBinarySet | |
6279 | + end | |
6280 | + local | |
6281 | + structure Atom = gs_46 | |
6282 | + functor BinaryMapFn = gs_95 | |
6283 | + atom-binary-map.sml | |
6284 | + in | |
6285 | + structure gs_136 = AtomBinaryMap | |
6286 | + end | |
6287 | + local | |
6288 | + structure StringCvt = gs_27 | |
6289 | + utf8-sig.sml | |
6290 | + in | |
6291 | + signature gs_137 = UTF8 | |
6292 | + end | |
6293 | + local | |
6294 | + structure Char = gs_30 | |
6295 | + structure String = gs_28 | |
6296 | + structure StringCvt = gs_27 | |
6297 | + structure Substring = gs_26 | |
6298 | + signature UTF8 = gs_137 | |
6299 | + structure Word = gs_40 | |
6300 | + utf8.sml | |
6301 | + in | |
6302 | + structure gs_138 = UTF8 | |
6303 | + end | |
6304 | + local | |
6305 | + signature UREF = gs_130 | |
6306 | + uref.sml | |
6307 | + in | |
6308 | + structure gs_139 = URef | |
6309 | + end | |
6310 | + local | |
6311 | + structure Atom = gs_46 | |
6312 | + structure Int = gs_3 | |
6313 | + structure LargeInt = gs_39 | |
6314 | + structure LargeReal = gs_42 | |
6315 | + structure LargeWord = gs_38 | |
6316 | + structure Real = gs_41 | |
6317 | + structure StringCvt = gs_27 | |
6318 | + structure Word = gs_40 | |
6319 | + structure Word8 = gs_36 | |
6320 | + scan-sig.sml | |
6321 | + in | |
6322 | + signature gs_140 = SCAN | |
6323 | + end | |
6324 | + local | |
6325 | + structure Bool = gs_108 | |
6326 | + structure Char = gs_30 | |
6327 | + structure FmtFields = gs_49 | |
6328 | + structure Int = gs_3 | |
6329 | + structure LargeInt = gs_39 | |
6330 | + structure LargeReal = gs_42 | |
6331 | + signature SCAN = gs_140 | |
6332 | + structure StringCvt = gs_27 | |
6333 | + structure Substring = gs_26 | |
6334 | + structure Word8Array = gs_64 | |
6335 | + scan.sml | |
6336 | + in | |
6337 | + structure gs_141 = Scan | |
6338 | + end | |
6339 | + local | |
6340 | + open l4 | |
6341 | + in | |
6342 | + structure gs_142 = Int32 | |
6343 | + end | |
6344 | + local | |
6345 | + structure Word31 = gs_98 | |
6346 | + rand-sig.sml | |
6347 | + in | |
6348 | + signature gs_143 = RAND | |
6349 | + end | |
6350 | + local | |
6351 | + structure Int32 = gs_142 | |
6352 | + structure LibBase = gs_5 | |
6353 | + signature RAND = gs_143 | |
6354 | + structure Real = gs_41 | |
6355 | + structure Word31 = gs_98 | |
6356 | + rand.sml | |
6357 | + in | |
6358 | + structure gs_144 = Rand | |
6359 | + end | |
6360 | + local | |
6361 | + signature LIST_XPROD = gs_75 | |
6362 | + list-xprod.sml | |
6363 | + in | |
6364 | + structure gs_145 = ListXProd | |
6365 | + end | |
6366 | +in | |
6367 | + structure ANSITerm = gs_23 | |
6368 | + signature ARRAY_SORT = gs_128 | |
6369 | + signature ATOM = gs_43 | |
6370 | + structure ArrayQSort = gs_129 | |
6371 | + functor ArrayQSortFn = gs_134 | |
6372 | + structure Atom = gs_46 | |
6373 | + structure AtomBinaryMap = gs_136 | |
6374 | + structure AtomBinarySet = gs_135 | |
6375 | + structure AtomMap = gs_63 | |
6376 | + structure AtomRedBlackMap = gs_62 | |
6377 | + structure AtomRedBlackSet = gs_59 | |
6378 | + structure AtomSet = gs_60 | |
6379 | + structure AtomTable = gs_79 | |
6380 | + signature BASE64 = gs_69 | |
6381 | + signature BIT_ARRAY = gs_57 | |
6382 | + signature BIT_VECTOR = gs_83 | |
6383 | + functor BSearchFn = gs_106 | |
6384 | + structure Base64 = gs_70 | |
6385 | + functor BinaryMapFn = gs_95 | |
6386 | + functor BinarySetFn = gs_94 | |
6387 | + structure BitArray = gs_104 | |
6388 | + signature CHAR_MAP = gs_73 | |
6389 | + structure CharMap = gs_74 | |
6390 | + signature DYNAMIC_ARRAY = gs_15 | |
6391 | + structure DynamicArray = gs_16 | |
6392 | + functor DynamicArrayFn = gs_124 | |
6393 | + signature FIFO = gs_112 | |
6394 | + signature FORMAT = gs_47 | |
6395 | + signature FORMAT_COMB = gs_109 | |
6396 | + structure Fifo = gs_113 | |
6397 | + structure Format = gs_50 | |
6398 | + structure FormatComb = gs_110 | |
6399 | + signature GET_OPT = gs_31 | |
6400 | + signature GRAPH_SCC = gs_76 | |
6401 | + structure GetOpt = gs_32 | |
6402 | + functor GraphSCCFn = gs_77 | |
6403 | + signature HASH_KEY = gs_52 | |
6404 | + signature HASH_SET = gs_122 | |
6405 | + signature HASH_TABLE = gs_120 | |
6406 | + functor Hash2TableFn = gs_115 | |
6407 | + functor HashSetFn = gs_123 | |
6408 | + structure HashString = gs_45 | |
6409 | + structure HashTable = gs_121 | |
6410 | + functor HashTableFn = gs_78 | |
6411 | + signature INTERVAL_DOMAIN = gs_33 | |
6412 | + signature INTERVAL_SET = gs_34 | |
6413 | + structure IOUtil = gs_24 | |
6414 | + signature IO_UTIL = gs_17 | |
6415 | + structure IntBinaryMap = gs_10 | |
6416 | + structure IntBinarySet = gs_9 | |
6417 | + structure IntHashTable = gs_55 | |
6418 | + structure IntListMap = gs_90 | |
6419 | + structure IntListSet = gs_89 | |
6420 | + structure IntRedBlackMap = gs_127 | |
6421 | + structure IntRedBlackSet = gs_126 | |
6422 | + functor IntervalSetFn = gs_86 | |
6423 | + functor KeywordFn = gs_117 | |
6424 | + signature LIB_BASE = gs_4 | |
6425 | + signature LIST_FORMAT = gs_80 | |
6426 | + signature LIST_SORT = gs_132 | |
6427 | + signature LIST_XPROD = gs_75 | |
6428 | + functor LeftPriorityQFn = gs_119 | |
6429 | + structure LibBase = gs_5 | |
6430 | + structure ListFormat = gs_81 | |
6431 | + functor ListMapFn = gs_8 | |
6432 | + structure ListMergeSort = gs_133 | |
6433 | + functor ListSetFn = gs_6 | |
6434 | + structure ListXProd = gs_145 | |
6435 | + signature MONO_ARRAY_SORT = gs_125 | |
6436 | + signature MONO_DYNAMIC_ARRAY = gs_107 | |
6437 | + signature MONO_HASH2_TABLE = gs_85 | |
6438 | + signature MONO_HASH_TABLE = gs_53 | |
6439 | + signature MONO_PRIORITYQ = gs_118 | |
6440 | + functor MonoArrayFn = gs_105 | |
6441 | + signature ORD_KEY = gs_1 | |
6442 | + signature ORD_MAP = gs_7 | |
6443 | + signature ORD_SET = gs_2 | |
6444 | + signature PARSER_COMB = gs_35 | |
6445 | + signature PATH_UTIL = gs_92 | |
6446 | + signature PRIORITY = gs_51 | |
6447 | + signature PROP_LIST = gs_25 | |
6448 | + structure ParserComb = gs_84 | |
6449 | + structure PathUtil = gs_93 | |
6450 | + structure PrimeSizes = gs_11 | |
6451 | + structure PropList = gs_71 | |
6452 | + signature QUEUE = gs_111 | |
6453 | + structure Queue = gs_114 | |
6454 | + signature RAND = gs_143 | |
6455 | + signature RANDOM = gs_100 | |
6456 | + structure Rand = gs_144 | |
6457 | + structure Random = gs_101 | |
6458 | + structure RealOrderStats = gs_102 | |
6459 | + functor RedBlackMapFn = gs_61 | |
6460 | + functor RedBlackSetFn = gs_58 | |
6461 | + signature SCAN = gs_140 | |
6462 | + signature SPLAY_TREE = gs_18 | |
6463 | + structure Scan = gs_141 | |
6464 | + structure SimpleURef = gs_131 | |
6465 | + functor SplayMapFn = gs_21 | |
6466 | + functor SplaySetFn = gs_20 | |
6467 | + structure SplayTree = gs_19 | |
6468 | + signature UREF = gs_130 | |
6469 | + structure URef = gs_139 | |
6470 | + signature UTF8 = gs_137 | |
6471 | + structure UTF8 = gs_138 | |
6472 | + structure UnivariateStats = gs_103 | |
6473 | + structure WordHashTable = gs_116 | |
6474 | + structure WordRedBlackMap = gs_88 | |
6475 | + structure WordRedBlackSet = gs_87 | |
6476 | +end | |
6477 | +end | |
6478 | + | |
6479 | +end | |
6480 | diff --git a/Util/time-limit.mlb b/Util/time-limit.mlb | |
6481 | new file mode 100644 | |
6482 | index 0000000..c4ca078 | |
6483 | --- /dev/null | |
6484 | +++ b/Util/time-limit.mlb | |
6485 | @@ -0,0 +1,16 @@ | |
6486 | +ann | |
6487 | + "nonexhaustiveMatch warn" "redundantMatch warn" | |
6488 | + "sequenceNonUnit warn" | |
6489 | + "warnUnused false" "forceUsed" | |
6490 | +in | |
6491 | + | |
6492 | +local | |
6493 | + $(SML_LIB)/basis/basis.mlb | |
6494 | + $(SML_LIB)/basis/mlton.mlb | |
6495 | + engine.mlton.sml | |
6496 | + time-limit.mlton.sml | |
6497 | +in | |
6498 | + structure TimeLimit = TimeLimit | |
6499 | +end | |
6500 | + | |
6501 | +end | |
6502 | diff --git a/Util/time-limit.mlton.sml b/Util/time-limit.mlton.sml | |
6503 | new file mode 100644 | |
6504 | index 0000000..0f585b7 | |
6505 | --- /dev/null | |
6506 | +++ b/Util/time-limit.mlton.sml | |
6507 | @@ -0,0 +1,24 @@ | |
6508 | +(* time-limit.mlton.sml | |
6509 | + * | |
6510 | + * Copyright (C) 1999-2004 Henry Cejtin, Matthew Fluet, Suresh | |
6511 | + * Jagannathan, and Stephen Weeks. | |
6512 | + * | |
6513 | + * MLton is released under the GNU General Public License (GPL). | |
6514 | + * Please see the file MLton-LICENSE for license information. | |
6515 | + * | |
6516 | + *) | |
6517 | + | |
6518 | +structure TimeLimit: | |
6519 | +sig | |
6520 | + exception TimeOut | |
6521 | + val timeLimit : Time.time -> ('a -> 'b) -> 'a -> 'b | |
6522 | +end = | |
6523 | +struct | |
6524 | + exception TimeOut | |
6525 | + | |
6526 | + fun timeLimit t f x = | |
6527 | + case Engine.run (Engine.new (fn () => f x), t) of | |
6528 | + Engine.Done res => res | |
6529 | + | Engine.Raise exn => raise exn | |
6530 | + | Engine.TimeOut _ => raise TimeOut | |
6531 | +end | |
6532 | diff --git a/XML/xml-lexer.lex.sml b/XML/xml-lexer.lex.sml | |
6533 | index a162cf4..6652b22 100644 | |
6534 | --- a/XML/xml-lexer.lex.sml | |
6535 | +++ b/XML/xml-lexer.lex.sml | |
6536 | @@ -2,6 +2,8 @@ structure XMLLexer = struct | |
6537 | ||
6538 | datatype yystart_state = | |
6539 | COM | TAG | LIT1 | LIT2 | INITIAL | DOCTYPE | |
6540 | + local | |
6541 | + | |
6542 | structure UserDeclarations = | |
6543 | struct | |
6544 | ||
6545 | @@ -24,10 +26,8 @@ COM | TAG | LIT1 | LIT2 | INITIAL | DOCTYPE | |
6546 | (* trim m characters from the left and n characters from the right *) | |
6547 | fun trim (m, ss, n) = Substring.string(Substring.triml m (Substring.trimr n ss)) | |
6548 | ||
6549 | - | |
6550 | end | |
6551 | ||
6552 | - local | |
6553 | datatype yymatch | |
6554 | = yyNO_MATCH | |
6555 | | yyMATCH of ULexBuffer.stream * action * yymatch | |
6556 | @@ -105,7 +105,7 @@ Vector.fromList [] | |
6557 | (fn (~1, _, oldMatches) => yystuck oldMatches | |
6558 | | (curState, strm, oldMatches) => let | |
6559 | val (transitions, finals') = Vector.sub (yytable, curState) | |
6560 | - val finals = map (fn i => Vector.sub (actTable, i)) finals' | |
6561 | + val finals = List.map (fn i => Vector.sub (actTable, i)) finals' | |
6562 | fun tryfinal() = | |
6563 | yystuck (yyactsToMatches (strm, finals, oldMatches)) | |
6564 | fun find (c, []) = NONE | |
6565 | diff --git a/XML/xml-lib.mlb b/XML/xml-lib.mlb | |
6566 | new file mode 100644 | |
6567 | index 0000000..5b59f54 | |
6568 | --- /dev/null | |
6569 | +++ b/XML/xml-lib.mlb | |
6570 | @@ -0,0 +1,167 @@ | |
6571 | + | |
6572 | +ann | |
6573 | + "nonexhaustiveBind warn" "nonexhaustiveMatch warn" | |
6574 | + "redundantBind warn" "redundantMatch warn" | |
6575 | + "sequenceNonUnit ignore" | |
6576 | + "warnUnused false" "forceUsed" | |
6577 | +in | |
6578 | + | |
6579 | +local | |
6580 | + basis l4 = | |
6581 | + bas | |
6582 | + (* $/basis.cm ====> *) $(SML_LIB)/basis/basis.mlb | |
6583 | + end | |
6584 | + basis l11 = | |
6585 | + bas | |
6586 | + (* $/smlnj-lib.cm ====> *) $(SML_LIB)/smlnj-lib/Util/smlnj-lib.mlb | |
6587 | + end | |
6588 | + basis l30 = | |
6589 | + bas | |
6590 | + (* $/ml-lpt-lib.cm ====> *) $(SML_LIB)/mllpt-lib/mllpt-lib.mlb | |
6591 | + end | |
6592 | +in | |
6593 | +local | |
6594 | + $(SML_LIB)/basis/pervasive.mlb | |
6595 | + local | |
6596 | + open l4 | |
6597 | + in | |
6598 | + structure gs_0 = CharVector | |
6599 | + end | |
6600 | + local | |
6601 | + open l4 | |
6602 | + in | |
6603 | + structure gs_1 = Char | |
6604 | + end | |
6605 | + local | |
6606 | + open l11 | |
6607 | + in | |
6608 | + structure gs_2 = Atom | |
6609 | + end | |
6610 | + local | |
6611 | + xml-schema-sig.sml | |
6612 | + in | |
6613 | + signature gs_3 = XML_SCHEMA | |
6614 | + end | |
6615 | + local | |
6616 | + signature XML_SCHEMA = gs_3 | |
6617 | + xml-tree-sig.sml | |
6618 | + in | |
6619 | + signature gs_4 = XML_TREE | |
6620 | + end | |
6621 | + local | |
6622 | + signature XML_SCHEMA = gs_3 | |
6623 | + signature XML_TREE = gs_4 | |
6624 | + xml-tree-fn.sml | |
6625 | + in | |
6626 | + functor gs_5 = XMLTreeFn | |
6627 | + end | |
6628 | + local | |
6629 | + structure Atom = gs_2 | |
6630 | + structure Char = gs_1 | |
6631 | + structure CharVector = gs_0 | |
6632 | + functor XMLTreeFn = gs_5 | |
6633 | + generic-xml-tree.sml | |
6634 | + in | |
6635 | + structure gs_6 = GenericXMLTree | |
6636 | + end | |
6637 | + local | |
6638 | + open l30 | |
6639 | + in | |
6640 | + structure gs_7 = AntlrStreamPos | |
6641 | + end | |
6642 | + local | |
6643 | + open l4 | |
6644 | + in | |
6645 | + structure gs_8 = TextIO | |
6646 | + end | |
6647 | + local | |
6648 | + open l4 | |
6649 | + in | |
6650 | + structure gs_9 = String | |
6651 | + end | |
6652 | + local | |
6653 | + open l4 | |
6654 | + in | |
6655 | + structure gs_10 = List | |
6656 | + end | |
6657 | + local | |
6658 | + open l4 | |
6659 | + in | |
6660 | + structure gs_11 = Substring | |
6661 | + end | |
6662 | + local | |
6663 | + open l4 | |
6664 | + in | |
6665 | + structure gs_12 = Vector | |
6666 | + end | |
6667 | + local | |
6668 | + open l30 | |
6669 | + in | |
6670 | + structure gs_13 = ULexBuffer | |
6671 | + end | |
6672 | + local | |
6673 | + open l4 | |
6674 | + in | |
6675 | + structure gs_14 = Option | |
6676 | + end | |
6677 | + local | |
6678 | + open l4 | |
6679 | + in | |
6680 | + structure gs_15 = Word | |
6681 | + end | |
6682 | + local | |
6683 | + open l30 | |
6684 | + in | |
6685 | + structure gs_16 = UTF8 | |
6686 | + end | |
6687 | + local | |
6688 | + open l4 | |
6689 | + in | |
6690 | + structure gs_17 = Int | |
6691 | + end | |
6692 | + local | |
6693 | + xml-tokens.sml | |
6694 | + in | |
6695 | + structure gs_18 = XMLTokens | |
6696 | + end | |
6697 | + local | |
6698 | + structure AntlrStreamPos = gs_7 | |
6699 | + structure Int = gs_17 | |
6700 | + structure List = gs_10 | |
6701 | + structure Option = gs_14 | |
6702 | + structure String = gs_9 | |
6703 | + structure Substring = gs_11 | |
6704 | + structure TextIO = gs_8 | |
6705 | + structure ULexBuffer = gs_13 | |
6706 | + structure UTF8 = gs_16 | |
6707 | + structure Vector = gs_12 | |
6708 | + structure Word = gs_15 | |
6709 | + structure XMLTokens = gs_18 | |
6710 | + xml-lexer.lex.sml | |
6711 | + in | |
6712 | + structure gs_19 = XMLLexer | |
6713 | + end | |
6714 | + local | |
6715 | + structure AntlrStreamPos = gs_7 | |
6716 | + structure List = gs_10 | |
6717 | + structure String = gs_9 | |
6718 | + structure TextIO = gs_8 | |
6719 | + structure XMLLexer = gs_19 | |
6720 | + structure XMLTokens = gs_18 | |
6721 | + signature XML_TREE = gs_4 | |
6722 | + xml-parser-fn.sml | |
6723 | + in | |
6724 | + functor gs_20 = XMLParserFn | |
6725 | + signature gs_21 = XML_PARSER | |
6726 | + end | |
6727 | +in | |
6728 | + structure GenericXMLTree = gs_6 | |
6729 | + functor XMLParserFn = gs_20 | |
6730 | + functor XMLTreeFn = gs_5 | |
6731 | + signature XML_PARSER = gs_21 | |
6732 | + signature XML_SCHEMA = gs_3 | |
6733 | + signature XML_TREE = gs_4 | |
6734 | +end | |
6735 | +end | |
6736 | + | |
6737 | +end | |
6738 | diff --git a/smlnj-lib.mlb b/smlnj-lib.mlb | |
6739 | new file mode 100644 | |
6740 | index 0000000..6a916cf | |
6741 | --- /dev/null | |
6742 | +++ b/smlnj-lib.mlb | |
6743 | @@ -0,0 +1,17 @@ | |
6744 | +local | |
6745 | + Controls/controls-lib.mlb | |
6746 | + HTML/html-lib.mlb | |
6747 | + HTML4/html4-lib.mlb | |
6748 | + HashCons/hash-cons-lib.mlb | |
6749 | + INet/inet-lib.mlb | |
6750 | + JSON/json-lib.mlb | |
6751 | + PP/pp-lib.mlb | |
6752 | + Reactive/reactive-lib.mlb | |
6753 | + RegExp/regexp-lib.mlb | |
6754 | + SExp/sexp-lib.mlb | |
6755 | + Unix/unix-lib.mlb | |
6756 | + Util/smlnj-lib.mlb | |
6757 | + Util/time-limit.mlb | |
6758 | + XML/xml-lib.mlb | |
6759 | +in | |
6760 | +end |