52
52
< a href ="#d2e311 "> Options</ a >
53
53
</ li >
54
54
< li >
55
- < a href ="#d2e406 "> Loading grammars and inputs from external sources</ a >
55
+ < a href ="#d2e422 "> Loading grammars and inputs from external sources</ a >
56
56
< ul >
57
57
< li >
58
- < a href ="#d2e433 "> Grammars in XML</ a >
58
+ < a href ="#d2e449 "> Grammars in XML</ a >
59
59
</ li >
60
60
</ ul >
61
61
</ li >
62
62
< li >
63
- < a href ="#d2e451 "> Change history</ a >
63
+ < a href ="#d2e467 "> Change history</ a >
64
64
< ul >
65
65
< li >
66
- < a href ="#d2e455 "> Version 1.1 - 2022nov01</ a >
66
+ < a href ="#d2e471 "> Version 1.1 - 2022nov01</ a >
67
+ </ li >
68
+ < li >
69
+ < a href ="#d2e489 "> Version 1.3 - 2023may27</ a >
67
70
</ li >
68
71
</ ul >
69
72
</ li >
70
73
</ ul >
71
74
< p > TODO:</ p >
72
75
< ul >
73
- < li > Change the pictures to reflect version 1.1 </ li >
76
+ < li > Change the pictures to reflect version 1.3 </ li >
74
77
< li > Look into adding an undo facility</ li >
75
78
</ ul >
76
79
< section >
103
106
usual keystokes are supported, but there is no 'syntax awareness' during input:</ p >
104
107
< img width ="400 " src ="img1.png "/>
105
108
< p > The 'format' button above the textarea will, for a valid grammar, 'pretty-print' by replacing the text
106
- with a canonical < em > ixml</ em > rendering of the parsed grammar. This form will line up all the rules so all their
107
- names are right aligned and their definitions left-aligned. Strings should be enclosed in the quotation characters used in the
108
- original (doubling such characters within the string as necessary). For alternatives, the separator character used is the first separator character
109
- (i.e. < code > ';'</ code > or < code > '|'</ code > ) encountered whilst parsing that set of alternatives. If the
110
- serialisation of the definition of a rule will be longer than 50 characters, top-level alternatives will
111
- have a newline and appropriate indentation attached to their separators. </ p >
109
+ with a canonical < em > ixml</ em > rendering of the parsed grammar. This form will line up all the rules so
110
+ all their names are right aligned and their definitions left-aligned. Strings should be enclosed in the
111
+ quotation characters used in the original (doubling such characters within the string as necessary). For
112
+ alternatives, the separator character used is the first separator character (i.e. < code > ';'</ code > or
113
+ < code > '|'</ code > ) encountered whilst parsing that set of alternatives. If the serialisation of the
114
+ definition of a rule will be longer than 50 characters, top-level alternatives will have a newline and
115
+ appropriate indentation attached to their separators. </ p >
112
116
< p > This means that, for instance, an original line of the form: </ p >
113
117
< pre > a: [L] | "s" ; '"', #a; bcdef ; bcdef ,"a", bcdef; bcdef, "b", bcdef.
114
118
bcdef: [N]|("1"; "2" | "3").</ pre >
@@ -312,16 +316,22 @@ Multiple nodes may not be the final parse result:<expression/>,@compare,&l
312
316
< td > When checked, all non-terminals in the grammar must be reachable through a reference path from the
313
317
start (first) rule.</ td >
314
318
</ tr >
319
+ < tr >
320
+ < td class ="option "> Permit missing non-terminals (grammar parsing only)</ td >
321
+ < td > When checked, missing non-terminals in the grammar may be referenced in the grammar (for
322
+ experimentation in grammar combination)</ td >
323
+ </ tr >
315
324
< tr >
316
325
< td class ="option "> Tovey-Walsh rewrites</ td >
317
326
< td > When checked, < code > f+</ code > constructs are rewritten as < code > f+ => f-plus. f-plus: f, f-plus|
318
- ().</ code > rather than the < code > f-plus: f, f*.</ code > rewrite given in the spec. This is likely
319
- to become the default eventually , as it seems to perform significantly quicker.</ td >
327
+ ().</ code > rather than the < code > f-plus: f, f*.</ code > rewrite given in the spec. This is
328
+ currently the default, as it seems to perform significantly quicker.</ td >
320
329
</ tr >
321
330
< tr >
322
331
< td class ="option "> Allow an empty string as input</ td >
323
332
< td > Normally if the input is an empty string, no attempt is made to parse - just the grammar is
324
- processed and displayed. Checking this allows processing of an empty string as input.</ td >
333
+ processed and displayed. Checking this allows processing of an empty string as input, which is
334
+ probably only needed for cetain test cases.</ td >
325
335
</ tr >
326
336
< tr >
327
337
< td class ="option "> Treat as records</ td >
@@ -348,12 +358,18 @@ Multiple nodes may not be the final parse result:<expression/>,@compare,&l
348
358
and not to artefactual marks, such as those used for generated non-terminals implementing
349
359
optionality or repetition.</ td >
350
360
</ tr >
361
+ < tr >
362
+ < td class ="option "> Indent result</ td >
363
+ < td > When checked, the results will be displayed as a serialization of the XML tree with indentation
364
+ applied. This means that whitespace-only text nodes may be altered or in some cases deleted. If
365
+ your application requires strict whitespace preservation, uncheck this option.</ td >
366
+ </ tr >
351
367
</ tbody >
352
368
</ table >
353
369
</ section >
354
370
< section >
355
371
< h3 >
356
- < a id ="d2e406 "> Loading grammars and inputs from external sources</ a >
372
+ < a id ="d2e422 "> Loading grammars and inputs from external sources</ a >
357
373
</ h3 >
358
374
< p > Both grammar and input texts can be read from local filestore by using the appropriate 'Choose file' (or
359
375
'Browse') button, which permits a file to be read and its text loaded into the textarea. The name of the
@@ -370,7 +386,7 @@ Multiple nodes may not be the final parse result:<expression/>,@compare,&l
370
386
< img width ="300 " src ="img10.png "/>
371
387
< section >
372
388
< h4 >
373
- < a id ="d2e433 "> Grammars in XML</ a >
389
+ < a id ="d2e449 "> Grammars in XML</ a >
374
390
</ h4 >
375
391
< p > Note that some of these test cases provide the iXML grammar in its XML serialisation form. The workbench
376
392
recognises such a situation and will show and use that form, but editing in the textarea under these
@@ -382,11 +398,11 @@ Multiple nodes may not be the final parse result:<expression/>,@compare,&l
382
398
</ section >
383
399
< section >
384
400
< h3 >
385
- < a id ="d2e451 "> Change history</ a >
401
+ < a id ="d2e467 "> Change history</ a >
386
402
</ h3 >
387
403
< section >
388
404
< h4 >
389
- < a id ="d2e455 "> Version 1.1 - 2022nov01</ a >
405
+ < a id ="d2e471 "> Version 1.1 - 2022nov01</ a >
390
406
</ h4 >
391
407
< ul >
392
408
< li > Improvements to error reporting.</ li >
@@ -396,6 +412,19 @@ Multiple nodes may not be the final parse result:<expression/>,@compare,&l
396
412
< li > Corrected ixml serialisation of multi-part (alts) option and repetition constructs.</ li >
397
413
</ ul >
398
414
</ section >
415
+ < section >
416
+ < h4 >
417
+ < a id ="d2e489 "> Version 1.3 - 2023may27</ a >
418
+ </ h4 >
419
+ < ul >
420
+ < li > Tooltip help boxes added.</ li >
421
+ < li > Improvements to error reporting,- tracing now identifies original source line in case of expanded
422
+ repeats and optionals.</ li >
423
+ < li > Support for 'Tovry-Walsh' repetition and optional rewrites.</ li >
424
+ < li > Addition of 'permit missing non-terminals' option, for grammar combination testing.</ li >
425
+ < li > Addition of 'identation suppression' in result XML (for cases with significant whitespace)</ li >
426
+ </ ul >
427
+ </ section >
399
428
</ section >
400
429
</ body >
401
430
</ html >
0 commit comments