@plurnk/plurnk-grammar 0.25.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -19,7 +19,7 @@ const result = PlurnkParser.parse(input);
19
19
  // result.unparsedTail?: { from, reason }
20
20
  ```
21
21
 
22
- Discriminate on `item.kind`. For `statement` items, narrow on `statement.op` (one of `FIND READ EDIT COPY MOVE SHOW HIDE SEND EXEC`) to access per-OP typed fields. Full API: [SPEC.md §12](SPEC.md#12-public-api).
22
+ Discriminate on `item.kind`. For `statement` items, narrow on `statement.op` (one of `FIND READ EDIT COPY MOVE OPEN FOLD SEND EXEC KILL`) to access per-OP typed fields. Full API: [SPEC.md §12](SPEC.md#12-public-api).
23
23
 
24
24
  ## cli
25
25
 
@@ -38,7 +38,7 @@ Exit `0` on clean parse, `1` on any error or unparsed tail.
38
38
 
39
39
  | slot | shape |
40
40
  |----------|----------------------------------------------------|
41
- | `OP` | `FIND READ EDIT COPY MOVE SHOW HIDE SEND EXEC` |
41
+ | `OP` | `FIND READ EDIT COPY MOVE OPEN FOLD SEND EXEC KILL` |
42
42
  | `suffix` | `[A-Za-z0-9_]*` glued to `OP`; used for nesting |
43
43
  | `[…]` | optional CSV; per-OP semantics |
44
44
  | `(…)` | optional URI |
@@ -52,10 +52,11 @@ Exit `0` on clean parse, `1` on any error or unparsed tail.
52
52
  | EDIT | tags | content (empty=clear) | entry lines |
53
53
  | COPY | tags-to-apply | destination URI | entry lines |
54
54
  | MOVE | tags-to-apply | destination URI | entry lines |
55
- | SHOW | tag filter | matcher | result-set range |
56
- | HIDE | tag filter | matcher | result-set range |
55
+ | OPEN | tag filter | matcher | result-set range |
56
+ | FOLD | tag filter | matcher | result-set range |
57
57
  | SEND | HTTP status int | payload (JSON conv.) | n/a |
58
58
  | EXEC | executor | command or code | n/a |
59
+ | KILL | unix signal int | annotation (opaque) | n/a |
59
60
 
60
61
  Matcher body dialect by leading char: `//` xpath · `/…/flags` regex · `$` jsonpath · `~` semantic · `@` graph · else glob. A body that fails its prefix-indicated dialect falls back to glob.
61
62
 
@@ -109,10 +110,10 @@ Nesting: outer body may contain inner `<<OP:…:OP` statements; outer must use a
109
110
  <<EDIT(known://countries/france/capital)::EDIT
110
111
 
111
112
  13. Collapse every distilled fetch-log row
112
- <<HIDE(log://1/*/*/get)::HIDE
113
+ <<FOLD(log://1/*/*/get)::FOLD
113
114
 
114
115
  14. Restore collapsed log rows by tag filter
115
- <<SHOW[france](log://**)::SHOW
116
+ <<OPEN[france](log://**)::OPEN
116
117
 
117
118
  15. Rename a draft entry
118
119
  <<MOVE(known://draft):known://final/answer:MOVE
@@ -148,16 +149,16 @@ Nesting: outer body may contain inner `<<OP:…:OP` statements; outer must use a
148
149
  :EXEC
149
150
 
150
151
  25. Restore log rows tagged france whose content matches (combined filters)
151
- <<SHOW[france](log://**):Paris*:SHOW
152
+ <<OPEN[france](log://**):Paris*:OPEN
152
153
 
153
154
  26. Collapse the second hundred of stale fetch-log rows (pagination)
154
- <<HIDE(log://**/get)<101-200>::HIDE
155
+ <<FOLD(log://**/get)<101-200>::FOLD
155
156
 
156
157
  27. Deliver a structured answer (JSON body)
157
158
  <<SEND[200]:{"answer":"Paris","confidence":0.95}:SEND
158
159
 
159
160
  28. Report a client error (JSON body the model can traverse with jsonpath)
160
- <<SEND[400]:{"reason":"unrecognized OP","got":"FOOBAR","expected":["FIND","READ","EDIT","COPY","MOVE","SHOW","HIDE","SEND","EXEC"]}:SEND
161
+ <<SEND[400]:{"reason":"unrecognized OP","got":"FOOBAR","expected":["FIND","READ","EDIT","COPY","MOVE","OPEN","FOLD","SEND","EXEC","KILL"]}:SEND
161
162
 
162
163
  29. Report a server error with explicit recipient
163
164
  <<SEND[503](log://errors):{"reason":"git unavailable","command":"git status"}:SEND
@@ -165,7 +166,13 @@ Nesting: outer body may contain inner `<<OP:…:OP` statements; outer must use a
165
166
  30. Direct an informational message at a named agent
166
167
  <<SEND[102](agent://supervisor):decomposition complete; awaiting clearance:SEND
167
168
 
168
- 31. Quote a plurnk operation inside another (nesting via suffix discipline)
169
+ 31. Kill a runaway process
170
+ <<KILL(exec://3/1/2)::KILL
171
+
172
+ 32. Permanently delete an entry
173
+ <<KILL(known://obsolete/note)::KILL
174
+
175
+ 33. Quote a plurnk operation inside another (nesting via suffix discipline)
169
176
  <<EDITouter(known://demo):
170
177
  The following is a quoted plurnk operation, preserved verbatim:
171
178
  <<EDIT(known://inner):hello world:EDIT
package/dist/plurnk.gbnf CHANGED
@@ -344,144 +344,144 @@ move-9-b3 ::= ("V" move-9-b4 | ":" move-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F
344
344
  move-9-b4 ::= ("E" move-9-b5 | ":" move-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] move-9-b0)?
345
345
  move-9-b5 ::= (":" move-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:9] move-9-b0)?
346
346
  move-9 ::= "<<MOVE9" tags? target line? ":" move-9-b0 ":MOVE9"
347
- show-b0 ::= (":" show-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] show-b0)?
348
- show-b1 ::= ("S" show-b2 | ":" show-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] show-b0)?
349
- show-b2 ::= ("H" show-b3 | ":" show-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:H] show-b0)?
350
- show-b3 ::= ("O" show-b4 | ":" show-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] show-b0)?
351
- show-b4 ::= (":" show-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:W] show-b0)?
352
- show ::= "<<SHOW" tags? target line? ":" show-b0 ":SHOW"
353
- show-1-b0 ::= (":" show-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] show-1-b0)?
354
- show-1-b1 ::= ("S" show-1-b2 | ":" show-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] show-1-b0)?
355
- show-1-b2 ::= ("H" show-1-b3 | ":" show-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:H] show-1-b0)?
356
- show-1-b3 ::= ("O" show-1-b4 | ":" show-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] show-1-b0)?
357
- show-1-b4 ::= ("W" show-1-b5 | ":" show-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:W] show-1-b0)?
358
- show-1-b5 ::= (":" show-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:1] show-1-b0)?
359
- show-1 ::= "<<SHOW1" tags? target line? ":" show-1-b0 ":SHOW1"
360
- show-2-b0 ::= (":" show-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] show-2-b0)?
361
- show-2-b1 ::= ("S" show-2-b2 | ":" show-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] show-2-b0)?
362
- show-2-b2 ::= ("H" show-2-b3 | ":" show-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:H] show-2-b0)?
363
- show-2-b3 ::= ("O" show-2-b4 | ":" show-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] show-2-b0)?
364
- show-2-b4 ::= ("W" show-2-b5 | ":" show-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:W] show-2-b0)?
365
- show-2-b5 ::= (":" show-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:2] show-2-b0)?
366
- show-2 ::= "<<SHOW2" tags? target line? ":" show-2-b0 ":SHOW2"
367
- show-3-b0 ::= (":" show-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] show-3-b0)?
368
- show-3-b1 ::= ("S" show-3-b2 | ":" show-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] show-3-b0)?
369
- show-3-b2 ::= ("H" show-3-b3 | ":" show-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:H] show-3-b0)?
370
- show-3-b3 ::= ("O" show-3-b4 | ":" show-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] show-3-b0)?
371
- show-3-b4 ::= ("W" show-3-b5 | ":" show-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:W] show-3-b0)?
372
- show-3-b5 ::= (":" show-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:3] show-3-b0)?
373
- show-3 ::= "<<SHOW3" tags? target line? ":" show-3-b0 ":SHOW3"
374
- show-4-b0 ::= (":" show-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] show-4-b0)?
375
- show-4-b1 ::= ("S" show-4-b2 | ":" show-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] show-4-b0)?
376
- show-4-b2 ::= ("H" show-4-b3 | ":" show-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:H] show-4-b0)?
377
- show-4-b3 ::= ("O" show-4-b4 | ":" show-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] show-4-b0)?
378
- show-4-b4 ::= ("W" show-4-b5 | ":" show-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:W] show-4-b0)?
379
- show-4-b5 ::= (":" show-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:4] show-4-b0)?
380
- show-4 ::= "<<SHOW4" tags? target line? ":" show-4-b0 ":SHOW4"
381
- show-5-b0 ::= (":" show-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] show-5-b0)?
382
- show-5-b1 ::= ("S" show-5-b2 | ":" show-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] show-5-b0)?
383
- show-5-b2 ::= ("H" show-5-b3 | ":" show-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:H] show-5-b0)?
384
- show-5-b3 ::= ("O" show-5-b4 | ":" show-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] show-5-b0)?
385
- show-5-b4 ::= ("W" show-5-b5 | ":" show-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:W] show-5-b0)?
386
- show-5-b5 ::= (":" show-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:5] show-5-b0)?
387
- show-5 ::= "<<SHOW5" tags? target line? ":" show-5-b0 ":SHOW5"
388
- show-6-b0 ::= (":" show-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] show-6-b0)?
389
- show-6-b1 ::= ("S" show-6-b2 | ":" show-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] show-6-b0)?
390
- show-6-b2 ::= ("H" show-6-b3 | ":" show-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:H] show-6-b0)?
391
- show-6-b3 ::= ("O" show-6-b4 | ":" show-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] show-6-b0)?
392
- show-6-b4 ::= ("W" show-6-b5 | ":" show-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:W] show-6-b0)?
393
- show-6-b5 ::= (":" show-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:6] show-6-b0)?
394
- show-6 ::= "<<SHOW6" tags? target line? ":" show-6-b0 ":SHOW6"
395
- show-7-b0 ::= (":" show-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] show-7-b0)?
396
- show-7-b1 ::= ("S" show-7-b2 | ":" show-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] show-7-b0)?
397
- show-7-b2 ::= ("H" show-7-b3 | ":" show-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:H] show-7-b0)?
398
- show-7-b3 ::= ("O" show-7-b4 | ":" show-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] show-7-b0)?
399
- show-7-b4 ::= ("W" show-7-b5 | ":" show-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:W] show-7-b0)?
400
- show-7-b5 ::= (":" show-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:7] show-7-b0)?
401
- show-7 ::= "<<SHOW7" tags? target line? ":" show-7-b0 ":SHOW7"
402
- show-8-b0 ::= (":" show-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] show-8-b0)?
403
- show-8-b1 ::= ("S" show-8-b2 | ":" show-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] show-8-b0)?
404
- show-8-b2 ::= ("H" show-8-b3 | ":" show-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:H] show-8-b0)?
405
- show-8-b3 ::= ("O" show-8-b4 | ":" show-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] show-8-b0)?
406
- show-8-b4 ::= ("W" show-8-b5 | ":" show-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:W] show-8-b0)?
407
- show-8-b5 ::= (":" show-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:8] show-8-b0)?
408
- show-8 ::= "<<SHOW8" tags? target line? ":" show-8-b0 ":SHOW8"
409
- show-9-b0 ::= (":" show-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] show-9-b0)?
410
- show-9-b1 ::= ("S" show-9-b2 | ":" show-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] show-9-b0)?
411
- show-9-b2 ::= ("H" show-9-b3 | ":" show-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:H] show-9-b0)?
412
- show-9-b3 ::= ("O" show-9-b4 | ":" show-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] show-9-b0)?
413
- show-9-b4 ::= ("W" show-9-b5 | ":" show-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:W] show-9-b0)?
414
- show-9-b5 ::= (":" show-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:9] show-9-b0)?
415
- show-9 ::= "<<SHOW9" tags? target line? ":" show-9-b0 ":SHOW9"
416
- hide-b0 ::= (":" hide-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] hide-b0)?
417
- hide-b1 ::= ("H" hide-b2 | ":" hide-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:H] hide-b0)?
418
- hide-b2 ::= ("I" hide-b3 | ":" hide-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] hide-b0)?
419
- hide-b3 ::= ("D" hide-b4 | ":" hide-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] hide-b0)?
420
- hide-b4 ::= (":" hide-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] hide-b0)?
421
- hide ::= "<<HIDE" tags? target line? ":" hide-b0 ":HIDE"
422
- hide-1-b0 ::= (":" hide-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] hide-1-b0)?
423
- hide-1-b1 ::= ("H" hide-1-b2 | ":" hide-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:H] hide-1-b0)?
424
- hide-1-b2 ::= ("I" hide-1-b3 | ":" hide-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] hide-1-b0)?
425
- hide-1-b3 ::= ("D" hide-1-b4 | ":" hide-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] hide-1-b0)?
426
- hide-1-b4 ::= ("E" hide-1-b5 | ":" hide-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] hide-1-b0)?
427
- hide-1-b5 ::= (":" hide-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:1] hide-1-b0)?
428
- hide-1 ::= "<<HIDE1" tags? target line? ":" hide-1-b0 ":HIDE1"
429
- hide-2-b0 ::= (":" hide-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] hide-2-b0)?
430
- hide-2-b1 ::= ("H" hide-2-b2 | ":" hide-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:H] hide-2-b0)?
431
- hide-2-b2 ::= ("I" hide-2-b3 | ":" hide-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] hide-2-b0)?
432
- hide-2-b3 ::= ("D" hide-2-b4 | ":" hide-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] hide-2-b0)?
433
- hide-2-b4 ::= ("E" hide-2-b5 | ":" hide-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] hide-2-b0)?
434
- hide-2-b5 ::= (":" hide-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:2] hide-2-b0)?
435
- hide-2 ::= "<<HIDE2" tags? target line? ":" hide-2-b0 ":HIDE2"
436
- hide-3-b0 ::= (":" hide-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] hide-3-b0)?
437
- hide-3-b1 ::= ("H" hide-3-b2 | ":" hide-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:H] hide-3-b0)?
438
- hide-3-b2 ::= ("I" hide-3-b3 | ":" hide-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] hide-3-b0)?
439
- hide-3-b3 ::= ("D" hide-3-b4 | ":" hide-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] hide-3-b0)?
440
- hide-3-b4 ::= ("E" hide-3-b5 | ":" hide-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] hide-3-b0)?
441
- hide-3-b5 ::= (":" hide-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:3] hide-3-b0)?
442
- hide-3 ::= "<<HIDE3" tags? target line? ":" hide-3-b0 ":HIDE3"
443
- hide-4-b0 ::= (":" hide-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] hide-4-b0)?
444
- hide-4-b1 ::= ("H" hide-4-b2 | ":" hide-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:H] hide-4-b0)?
445
- hide-4-b2 ::= ("I" hide-4-b3 | ":" hide-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] hide-4-b0)?
446
- hide-4-b3 ::= ("D" hide-4-b4 | ":" hide-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] hide-4-b0)?
447
- hide-4-b4 ::= ("E" hide-4-b5 | ":" hide-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] hide-4-b0)?
448
- hide-4-b5 ::= (":" hide-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:4] hide-4-b0)?
449
- hide-4 ::= "<<HIDE4" tags? target line? ":" hide-4-b0 ":HIDE4"
450
- hide-5-b0 ::= (":" hide-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] hide-5-b0)?
451
- hide-5-b1 ::= ("H" hide-5-b2 | ":" hide-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:H] hide-5-b0)?
452
- hide-5-b2 ::= ("I" hide-5-b3 | ":" hide-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] hide-5-b0)?
453
- hide-5-b3 ::= ("D" hide-5-b4 | ":" hide-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] hide-5-b0)?
454
- hide-5-b4 ::= ("E" hide-5-b5 | ":" hide-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] hide-5-b0)?
455
- hide-5-b5 ::= (":" hide-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:5] hide-5-b0)?
456
- hide-5 ::= "<<HIDE5" tags? target line? ":" hide-5-b0 ":HIDE5"
457
- hide-6-b0 ::= (":" hide-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] hide-6-b0)?
458
- hide-6-b1 ::= ("H" hide-6-b2 | ":" hide-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:H] hide-6-b0)?
459
- hide-6-b2 ::= ("I" hide-6-b3 | ":" hide-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] hide-6-b0)?
460
- hide-6-b3 ::= ("D" hide-6-b4 | ":" hide-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] hide-6-b0)?
461
- hide-6-b4 ::= ("E" hide-6-b5 | ":" hide-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] hide-6-b0)?
462
- hide-6-b5 ::= (":" hide-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:6] hide-6-b0)?
463
- hide-6 ::= "<<HIDE6" tags? target line? ":" hide-6-b0 ":HIDE6"
464
- hide-7-b0 ::= (":" hide-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] hide-7-b0)?
465
- hide-7-b1 ::= ("H" hide-7-b2 | ":" hide-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:H] hide-7-b0)?
466
- hide-7-b2 ::= ("I" hide-7-b3 | ":" hide-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] hide-7-b0)?
467
- hide-7-b3 ::= ("D" hide-7-b4 | ":" hide-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] hide-7-b0)?
468
- hide-7-b4 ::= ("E" hide-7-b5 | ":" hide-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] hide-7-b0)?
469
- hide-7-b5 ::= (":" hide-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:7] hide-7-b0)?
470
- hide-7 ::= "<<HIDE7" tags? target line? ":" hide-7-b0 ":HIDE7"
471
- hide-8-b0 ::= (":" hide-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] hide-8-b0)?
472
- hide-8-b1 ::= ("H" hide-8-b2 | ":" hide-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:H] hide-8-b0)?
473
- hide-8-b2 ::= ("I" hide-8-b3 | ":" hide-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] hide-8-b0)?
474
- hide-8-b3 ::= ("D" hide-8-b4 | ":" hide-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] hide-8-b0)?
475
- hide-8-b4 ::= ("E" hide-8-b5 | ":" hide-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] hide-8-b0)?
476
- hide-8-b5 ::= (":" hide-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:8] hide-8-b0)?
477
- hide-8 ::= "<<HIDE8" tags? target line? ":" hide-8-b0 ":HIDE8"
478
- hide-9-b0 ::= (":" hide-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] hide-9-b0)?
479
- hide-9-b1 ::= ("H" hide-9-b2 | ":" hide-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:H] hide-9-b0)?
480
- hide-9-b2 ::= ("I" hide-9-b3 | ":" hide-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] hide-9-b0)?
481
- hide-9-b3 ::= ("D" hide-9-b4 | ":" hide-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] hide-9-b0)?
482
- hide-9-b4 ::= ("E" hide-9-b5 | ":" hide-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] hide-9-b0)?
483
- hide-9-b5 ::= (":" hide-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:9] hide-9-b0)?
484
- hide-9 ::= "<<HIDE9" tags? target line? ":" hide-9-b0 ":HIDE9"
347
+ open-b0 ::= (":" open-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] open-b0)?
348
+ open-b1 ::= ("O" open-b2 | ":" open-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] open-b0)?
349
+ open-b2 ::= ("P" open-b3 | ":" open-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:P] open-b0)?
350
+ open-b3 ::= ("E" open-b4 | ":" open-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] open-b0)?
351
+ open-b4 ::= (":" open-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] open-b0)?
352
+ open ::= "<<OPEN" tags? target line? ":" open-b0 ":OPEN"
353
+ open-1-b0 ::= (":" open-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] open-1-b0)?
354
+ open-1-b1 ::= ("O" open-1-b2 | ":" open-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] open-1-b0)?
355
+ open-1-b2 ::= ("P" open-1-b3 | ":" open-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:P] open-1-b0)?
356
+ open-1-b3 ::= ("E" open-1-b4 | ":" open-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] open-1-b0)?
357
+ open-1-b4 ::= ("N" open-1-b5 | ":" open-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] open-1-b0)?
358
+ open-1-b5 ::= (":" open-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:1] open-1-b0)?
359
+ open-1 ::= "<<OPEN1" tags? target line? ":" open-1-b0 ":OPEN1"
360
+ open-2-b0 ::= (":" open-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] open-2-b0)?
361
+ open-2-b1 ::= ("O" open-2-b2 | ":" open-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] open-2-b0)?
362
+ open-2-b2 ::= ("P" open-2-b3 | ":" open-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:P] open-2-b0)?
363
+ open-2-b3 ::= ("E" open-2-b4 | ":" open-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] open-2-b0)?
364
+ open-2-b4 ::= ("N" open-2-b5 | ":" open-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] open-2-b0)?
365
+ open-2-b5 ::= (":" open-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:2] open-2-b0)?
366
+ open-2 ::= "<<OPEN2" tags? target line? ":" open-2-b0 ":OPEN2"
367
+ open-3-b0 ::= (":" open-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] open-3-b0)?
368
+ open-3-b1 ::= ("O" open-3-b2 | ":" open-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] open-3-b0)?
369
+ open-3-b2 ::= ("P" open-3-b3 | ":" open-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:P] open-3-b0)?
370
+ open-3-b3 ::= ("E" open-3-b4 | ":" open-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] open-3-b0)?
371
+ open-3-b4 ::= ("N" open-3-b5 | ":" open-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] open-3-b0)?
372
+ open-3-b5 ::= (":" open-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:3] open-3-b0)?
373
+ open-3 ::= "<<OPEN3" tags? target line? ":" open-3-b0 ":OPEN3"
374
+ open-4-b0 ::= (":" open-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] open-4-b0)?
375
+ open-4-b1 ::= ("O" open-4-b2 | ":" open-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] open-4-b0)?
376
+ open-4-b2 ::= ("P" open-4-b3 | ":" open-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:P] open-4-b0)?
377
+ open-4-b3 ::= ("E" open-4-b4 | ":" open-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] open-4-b0)?
378
+ open-4-b4 ::= ("N" open-4-b5 | ":" open-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] open-4-b0)?
379
+ open-4-b5 ::= (":" open-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:4] open-4-b0)?
380
+ open-4 ::= "<<OPEN4" tags? target line? ":" open-4-b0 ":OPEN4"
381
+ open-5-b0 ::= (":" open-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] open-5-b0)?
382
+ open-5-b1 ::= ("O" open-5-b2 | ":" open-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] open-5-b0)?
383
+ open-5-b2 ::= ("P" open-5-b3 | ":" open-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:P] open-5-b0)?
384
+ open-5-b3 ::= ("E" open-5-b4 | ":" open-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] open-5-b0)?
385
+ open-5-b4 ::= ("N" open-5-b5 | ":" open-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] open-5-b0)?
386
+ open-5-b5 ::= (":" open-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:5] open-5-b0)?
387
+ open-5 ::= "<<OPEN5" tags? target line? ":" open-5-b0 ":OPEN5"
388
+ open-6-b0 ::= (":" open-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] open-6-b0)?
389
+ open-6-b1 ::= ("O" open-6-b2 | ":" open-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] open-6-b0)?
390
+ open-6-b2 ::= ("P" open-6-b3 | ":" open-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:P] open-6-b0)?
391
+ open-6-b3 ::= ("E" open-6-b4 | ":" open-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] open-6-b0)?
392
+ open-6-b4 ::= ("N" open-6-b5 | ":" open-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] open-6-b0)?
393
+ open-6-b5 ::= (":" open-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:6] open-6-b0)?
394
+ open-6 ::= "<<OPEN6" tags? target line? ":" open-6-b0 ":OPEN6"
395
+ open-7-b0 ::= (":" open-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] open-7-b0)?
396
+ open-7-b1 ::= ("O" open-7-b2 | ":" open-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] open-7-b0)?
397
+ open-7-b2 ::= ("P" open-7-b3 | ":" open-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:P] open-7-b0)?
398
+ open-7-b3 ::= ("E" open-7-b4 | ":" open-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] open-7-b0)?
399
+ open-7-b4 ::= ("N" open-7-b5 | ":" open-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] open-7-b0)?
400
+ open-7-b5 ::= (":" open-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:7] open-7-b0)?
401
+ open-7 ::= "<<OPEN7" tags? target line? ":" open-7-b0 ":OPEN7"
402
+ open-8-b0 ::= (":" open-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] open-8-b0)?
403
+ open-8-b1 ::= ("O" open-8-b2 | ":" open-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] open-8-b0)?
404
+ open-8-b2 ::= ("P" open-8-b3 | ":" open-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:P] open-8-b0)?
405
+ open-8-b3 ::= ("E" open-8-b4 | ":" open-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] open-8-b0)?
406
+ open-8-b4 ::= ("N" open-8-b5 | ":" open-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] open-8-b0)?
407
+ open-8-b5 ::= (":" open-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:8] open-8-b0)?
408
+ open-8 ::= "<<OPEN8" tags? target line? ":" open-8-b0 ":OPEN8"
409
+ open-9-b0 ::= (":" open-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] open-9-b0)?
410
+ open-9-b1 ::= ("O" open-9-b2 | ":" open-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] open-9-b0)?
411
+ open-9-b2 ::= ("P" open-9-b3 | ":" open-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:P] open-9-b0)?
412
+ open-9-b3 ::= ("E" open-9-b4 | ":" open-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] open-9-b0)?
413
+ open-9-b4 ::= ("N" open-9-b5 | ":" open-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] open-9-b0)?
414
+ open-9-b5 ::= (":" open-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:9] open-9-b0)?
415
+ open-9 ::= "<<OPEN9" tags? target line? ":" open-9-b0 ":OPEN9"
416
+ fold-b0 ::= (":" fold-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] fold-b0)?
417
+ fold-b1 ::= ("F" fold-b2 | ":" fold-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:F] fold-b0)?
418
+ fold-b2 ::= ("O" fold-b3 | ":" fold-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] fold-b0)?
419
+ fold-b3 ::= ("L" fold-b4 | ":" fold-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] fold-b0)?
420
+ fold-b4 ::= (":" fold-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] fold-b0)?
421
+ fold ::= "<<FOLD" tags? target line? ":" fold-b0 ":FOLD"
422
+ fold-1-b0 ::= (":" fold-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] fold-1-b0)?
423
+ fold-1-b1 ::= ("F" fold-1-b2 | ":" fold-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:F] fold-1-b0)?
424
+ fold-1-b2 ::= ("O" fold-1-b3 | ":" fold-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] fold-1-b0)?
425
+ fold-1-b3 ::= ("L" fold-1-b4 | ":" fold-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] fold-1-b0)?
426
+ fold-1-b4 ::= ("D" fold-1-b5 | ":" fold-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] fold-1-b0)?
427
+ fold-1-b5 ::= (":" fold-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:1] fold-1-b0)?
428
+ fold-1 ::= "<<FOLD1" tags? target line? ":" fold-1-b0 ":FOLD1"
429
+ fold-2-b0 ::= (":" fold-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] fold-2-b0)?
430
+ fold-2-b1 ::= ("F" fold-2-b2 | ":" fold-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:F] fold-2-b0)?
431
+ fold-2-b2 ::= ("O" fold-2-b3 | ":" fold-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] fold-2-b0)?
432
+ fold-2-b3 ::= ("L" fold-2-b4 | ":" fold-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] fold-2-b0)?
433
+ fold-2-b4 ::= ("D" fold-2-b5 | ":" fold-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] fold-2-b0)?
434
+ fold-2-b5 ::= (":" fold-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:2] fold-2-b0)?
435
+ fold-2 ::= "<<FOLD2" tags? target line? ":" fold-2-b0 ":FOLD2"
436
+ fold-3-b0 ::= (":" fold-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] fold-3-b0)?
437
+ fold-3-b1 ::= ("F" fold-3-b2 | ":" fold-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:F] fold-3-b0)?
438
+ fold-3-b2 ::= ("O" fold-3-b3 | ":" fold-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] fold-3-b0)?
439
+ fold-3-b3 ::= ("L" fold-3-b4 | ":" fold-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] fold-3-b0)?
440
+ fold-3-b4 ::= ("D" fold-3-b5 | ":" fold-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] fold-3-b0)?
441
+ fold-3-b5 ::= (":" fold-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:3] fold-3-b0)?
442
+ fold-3 ::= "<<FOLD3" tags? target line? ":" fold-3-b0 ":FOLD3"
443
+ fold-4-b0 ::= (":" fold-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] fold-4-b0)?
444
+ fold-4-b1 ::= ("F" fold-4-b2 | ":" fold-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:F] fold-4-b0)?
445
+ fold-4-b2 ::= ("O" fold-4-b3 | ":" fold-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] fold-4-b0)?
446
+ fold-4-b3 ::= ("L" fold-4-b4 | ":" fold-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] fold-4-b0)?
447
+ fold-4-b4 ::= ("D" fold-4-b5 | ":" fold-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] fold-4-b0)?
448
+ fold-4-b5 ::= (":" fold-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:4] fold-4-b0)?
449
+ fold-4 ::= "<<FOLD4" tags? target line? ":" fold-4-b0 ":FOLD4"
450
+ fold-5-b0 ::= (":" fold-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] fold-5-b0)?
451
+ fold-5-b1 ::= ("F" fold-5-b2 | ":" fold-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:F] fold-5-b0)?
452
+ fold-5-b2 ::= ("O" fold-5-b3 | ":" fold-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] fold-5-b0)?
453
+ fold-5-b3 ::= ("L" fold-5-b4 | ":" fold-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] fold-5-b0)?
454
+ fold-5-b4 ::= ("D" fold-5-b5 | ":" fold-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] fold-5-b0)?
455
+ fold-5-b5 ::= (":" fold-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:5] fold-5-b0)?
456
+ fold-5 ::= "<<FOLD5" tags? target line? ":" fold-5-b0 ":FOLD5"
457
+ fold-6-b0 ::= (":" fold-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] fold-6-b0)?
458
+ fold-6-b1 ::= ("F" fold-6-b2 | ":" fold-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:F] fold-6-b0)?
459
+ fold-6-b2 ::= ("O" fold-6-b3 | ":" fold-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] fold-6-b0)?
460
+ fold-6-b3 ::= ("L" fold-6-b4 | ":" fold-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] fold-6-b0)?
461
+ fold-6-b4 ::= ("D" fold-6-b5 | ":" fold-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] fold-6-b0)?
462
+ fold-6-b5 ::= (":" fold-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:6] fold-6-b0)?
463
+ fold-6 ::= "<<FOLD6" tags? target line? ":" fold-6-b0 ":FOLD6"
464
+ fold-7-b0 ::= (":" fold-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] fold-7-b0)?
465
+ fold-7-b1 ::= ("F" fold-7-b2 | ":" fold-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:F] fold-7-b0)?
466
+ fold-7-b2 ::= ("O" fold-7-b3 | ":" fold-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] fold-7-b0)?
467
+ fold-7-b3 ::= ("L" fold-7-b4 | ":" fold-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] fold-7-b0)?
468
+ fold-7-b4 ::= ("D" fold-7-b5 | ":" fold-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] fold-7-b0)?
469
+ fold-7-b5 ::= (":" fold-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:7] fold-7-b0)?
470
+ fold-7 ::= "<<FOLD7" tags? target line? ":" fold-7-b0 ":FOLD7"
471
+ fold-8-b0 ::= (":" fold-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] fold-8-b0)?
472
+ fold-8-b1 ::= ("F" fold-8-b2 | ":" fold-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:F] fold-8-b0)?
473
+ fold-8-b2 ::= ("O" fold-8-b3 | ":" fold-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] fold-8-b0)?
474
+ fold-8-b3 ::= ("L" fold-8-b4 | ":" fold-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] fold-8-b0)?
475
+ fold-8-b4 ::= ("D" fold-8-b5 | ":" fold-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] fold-8-b0)?
476
+ fold-8-b5 ::= (":" fold-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:8] fold-8-b0)?
477
+ fold-8 ::= "<<FOLD8" tags? target line? ":" fold-8-b0 ":FOLD8"
478
+ fold-9-b0 ::= (":" fold-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] fold-9-b0)?
479
+ fold-9-b1 ::= ("F" fold-9-b2 | ":" fold-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:F] fold-9-b0)?
480
+ fold-9-b2 ::= ("O" fold-9-b3 | ":" fold-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] fold-9-b0)?
481
+ fold-9-b3 ::= ("L" fold-9-b4 | ":" fold-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] fold-9-b0)?
482
+ fold-9-b4 ::= ("D" fold-9-b5 | ":" fold-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] fold-9-b0)?
483
+ fold-9-b5 ::= (":" fold-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:9] fold-9-b0)?
484
+ fold-9 ::= "<<FOLD9" tags? target line? ":" fold-9-b0 ":FOLD9"
485
485
  send-b0 ::= (":" send-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-b0)?
486
486
  send-b1 ::= ("S" send-b2 | ":" send-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] send-b0)?
487
487
  send-b2 ::= ("E" send-b3 | ":" send-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] send-b0)?
@@ -620,9 +620,78 @@ exec-9-b3 ::= ("E" exec-9-b4 | ":" exec-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F
620
620
  exec-9-b4 ::= ("C" exec-9-b5 | ":" exec-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:C] exec-9-b0)?
621
621
  exec-9-b5 ::= (":" exec-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:9] exec-9-b0)?
622
622
  exec-9 ::= "<<EXEC9" exec-sig? target? ":" exec-9-b0 ":EXEC9"
623
+ kill-b0 ::= (":" kill-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] kill-b0)?
624
+ kill-b1 ::= ("K" kill-b2 | ":" kill-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:K] kill-b0)?
625
+ kill-b2 ::= ("I" kill-b3 | ":" kill-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] kill-b0)?
626
+ kill-b3 ::= ("L" kill-b4 | ":" kill-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-b0)?
627
+ kill-b4 ::= (":" kill-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-b0)?
628
+ kill ::= "<<KILL" kill-sig? target ":" kill-b0 ":KILL"
629
+ kill-1-b0 ::= (":" kill-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] kill-1-b0)?
630
+ kill-1-b1 ::= ("K" kill-1-b2 | ":" kill-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:K] kill-1-b0)?
631
+ kill-1-b2 ::= ("I" kill-1-b3 | ":" kill-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] kill-1-b0)?
632
+ kill-1-b3 ::= ("L" kill-1-b4 | ":" kill-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-1-b0)?
633
+ kill-1-b4 ::= ("L" kill-1-b5 | ":" kill-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-1-b0)?
634
+ kill-1-b5 ::= (":" kill-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:1] kill-1-b0)?
635
+ kill-1 ::= "<<KILL1" kill-sig? target ":" kill-1-b0 ":KILL1"
636
+ kill-2-b0 ::= (":" kill-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] kill-2-b0)?
637
+ kill-2-b1 ::= ("K" kill-2-b2 | ":" kill-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:K] kill-2-b0)?
638
+ kill-2-b2 ::= ("I" kill-2-b3 | ":" kill-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] kill-2-b0)?
639
+ kill-2-b3 ::= ("L" kill-2-b4 | ":" kill-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-2-b0)?
640
+ kill-2-b4 ::= ("L" kill-2-b5 | ":" kill-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-2-b0)?
641
+ kill-2-b5 ::= (":" kill-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:2] kill-2-b0)?
642
+ kill-2 ::= "<<KILL2" kill-sig? target ":" kill-2-b0 ":KILL2"
643
+ kill-3-b0 ::= (":" kill-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] kill-3-b0)?
644
+ kill-3-b1 ::= ("K" kill-3-b2 | ":" kill-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:K] kill-3-b0)?
645
+ kill-3-b2 ::= ("I" kill-3-b3 | ":" kill-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] kill-3-b0)?
646
+ kill-3-b3 ::= ("L" kill-3-b4 | ":" kill-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-3-b0)?
647
+ kill-3-b4 ::= ("L" kill-3-b5 | ":" kill-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-3-b0)?
648
+ kill-3-b5 ::= (":" kill-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:3] kill-3-b0)?
649
+ kill-3 ::= "<<KILL3" kill-sig? target ":" kill-3-b0 ":KILL3"
650
+ kill-4-b0 ::= (":" kill-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] kill-4-b0)?
651
+ kill-4-b1 ::= ("K" kill-4-b2 | ":" kill-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:K] kill-4-b0)?
652
+ kill-4-b2 ::= ("I" kill-4-b3 | ":" kill-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] kill-4-b0)?
653
+ kill-4-b3 ::= ("L" kill-4-b4 | ":" kill-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-4-b0)?
654
+ kill-4-b4 ::= ("L" kill-4-b5 | ":" kill-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-4-b0)?
655
+ kill-4-b5 ::= (":" kill-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:4] kill-4-b0)?
656
+ kill-4 ::= "<<KILL4" kill-sig? target ":" kill-4-b0 ":KILL4"
657
+ kill-5-b0 ::= (":" kill-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] kill-5-b0)?
658
+ kill-5-b1 ::= ("K" kill-5-b2 | ":" kill-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:K] kill-5-b0)?
659
+ kill-5-b2 ::= ("I" kill-5-b3 | ":" kill-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] kill-5-b0)?
660
+ kill-5-b3 ::= ("L" kill-5-b4 | ":" kill-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-5-b0)?
661
+ kill-5-b4 ::= ("L" kill-5-b5 | ":" kill-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-5-b0)?
662
+ kill-5-b5 ::= (":" kill-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:5] kill-5-b0)?
663
+ kill-5 ::= "<<KILL5" kill-sig? target ":" kill-5-b0 ":KILL5"
664
+ kill-6-b0 ::= (":" kill-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] kill-6-b0)?
665
+ kill-6-b1 ::= ("K" kill-6-b2 | ":" kill-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:K] kill-6-b0)?
666
+ kill-6-b2 ::= ("I" kill-6-b3 | ":" kill-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] kill-6-b0)?
667
+ kill-6-b3 ::= ("L" kill-6-b4 | ":" kill-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-6-b0)?
668
+ kill-6-b4 ::= ("L" kill-6-b5 | ":" kill-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-6-b0)?
669
+ kill-6-b5 ::= (":" kill-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:6] kill-6-b0)?
670
+ kill-6 ::= "<<KILL6" kill-sig? target ":" kill-6-b0 ":KILL6"
671
+ kill-7-b0 ::= (":" kill-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] kill-7-b0)?
672
+ kill-7-b1 ::= ("K" kill-7-b2 | ":" kill-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:K] kill-7-b0)?
673
+ kill-7-b2 ::= ("I" kill-7-b3 | ":" kill-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] kill-7-b0)?
674
+ kill-7-b3 ::= ("L" kill-7-b4 | ":" kill-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-7-b0)?
675
+ kill-7-b4 ::= ("L" kill-7-b5 | ":" kill-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-7-b0)?
676
+ kill-7-b5 ::= (":" kill-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:7] kill-7-b0)?
677
+ kill-7 ::= "<<KILL7" kill-sig? target ":" kill-7-b0 ":KILL7"
678
+ kill-8-b0 ::= (":" kill-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] kill-8-b0)?
679
+ kill-8-b1 ::= ("K" kill-8-b2 | ":" kill-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:K] kill-8-b0)?
680
+ kill-8-b2 ::= ("I" kill-8-b3 | ":" kill-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] kill-8-b0)?
681
+ kill-8-b3 ::= ("L" kill-8-b4 | ":" kill-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-8-b0)?
682
+ kill-8-b4 ::= ("L" kill-8-b5 | ":" kill-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-8-b0)?
683
+ kill-8-b5 ::= (":" kill-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:8] kill-8-b0)?
684
+ kill-8 ::= "<<KILL8" kill-sig? target ":" kill-8-b0 ":KILL8"
685
+ kill-9-b0 ::= (":" kill-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] kill-9-b0)?
686
+ kill-9-b1 ::= ("K" kill-9-b2 | ":" kill-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:K] kill-9-b0)?
687
+ kill-9-b2 ::= ("I" kill-9-b3 | ":" kill-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] kill-9-b0)?
688
+ kill-9-b3 ::= ("L" kill-9-b4 | ":" kill-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-9-b0)?
689
+ kill-9-b4 ::= ("L" kill-9-b5 | ":" kill-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-9-b0)?
690
+ kill-9-b5 ::= (":" kill-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:9] kill-9-b0)?
691
+ kill-9 ::= "<<KILL9" kill-sig? target ":" kill-9-b0 ":KILL9"
623
692
  root ::= "\n"* statement root-rest* "\n"*
624
693
  root-rest ::= "\n"+ statement
625
- statement ::= find | find-1 | find-2 | find-3 | find-4 | find-5 | find-6 | find-7 | find-8 | find-9 | read | read-1 | read-2 | read-3 | read-4 | read-5 | read-6 | read-7 | read-8 | read-9 | edit | edit-1 | edit-2 | edit-3 | edit-4 | edit-5 | edit-6 | edit-7 | edit-8 | edit-9 | copy | copy-1 | copy-2 | copy-3 | copy-4 | copy-5 | copy-6 | copy-7 | copy-8 | copy-9 | move | move-1 | move-2 | move-3 | move-4 | move-5 | move-6 | move-7 | move-8 | move-9 | show | show-1 | show-2 | show-3 | show-4 | show-5 | show-6 | show-7 | show-8 | show-9 | hide | hide-1 | hide-2 | hide-3 | hide-4 | hide-5 | hide-6 | hide-7 | hide-8 | hide-9 | send | send-1 | send-2 | send-3 | send-4 | send-5 | send-6 | send-7 | send-8 | send-9 | exec | exec-1 | exec-2 | exec-3 | exec-4 | exec-5 | exec-6 | exec-7 | exec-8 | exec-9
694
+ statement ::= find | find-1 | find-2 | find-3 | find-4 | find-5 | find-6 | find-7 | find-8 | find-9 | read | read-1 | read-2 | read-3 | read-4 | read-5 | read-6 | read-7 | read-8 | read-9 | edit | edit-1 | edit-2 | edit-3 | edit-4 | edit-5 | edit-6 | edit-7 | edit-8 | edit-9 | copy | copy-1 | copy-2 | copy-3 | copy-4 | copy-5 | copy-6 | copy-7 | copy-8 | copy-9 | move | move-1 | move-2 | move-3 | move-4 | move-5 | move-6 | move-7 | move-8 | move-9 | open | open-1 | open-2 | open-3 | open-4 | open-5 | open-6 | open-7 | open-8 | open-9 | fold | fold-1 | fold-2 | fold-3 | fold-4 | fold-5 | fold-6 | fold-7 | fold-8 | fold-9 | send | send-1 | send-2 | send-3 | send-4 | send-5 | send-6 | send-7 | send-8 | send-9 | exec | exec-1 | exec-2 | exec-3 | exec-4 | exec-5 | exec-6 | exec-7 | exec-8 | exec-9 | kill | kill-1 | kill-2 | kill-3 | kill-4 | kill-5 | kill-6 | kill-7 | kill-8 | kill-9
626
695
  tags ::= "[" tag tag-rest* "]"
627
696
  tag ::= [A-Za-z0-9_.-]+
628
697
  tag-rest ::= "," tag
@@ -636,3 +705,4 @@ line ::= "<" int ">" | "<" int "," int ">"
636
705
  int ::= "-"? [0-9]+
637
706
  status ::= [0-9] [0-9] [0-9]
638
707
  exec-sig ::= "[" [a-z] [a-z0-9_-]* "]"
708
+ kill-sig ::= "[" [0-9] [0-9]? "]"
@@ -26,7 +26,7 @@
26
26
  "sequence": { "type": "integer", "minimum": 1, "description": "1-based within the turn; resets at each new turn." },
27
27
  "at": { "type": "string", "format": "date-time" },
28
28
  "origin": { "enum": ["model", "client", "system", "plugin"] },
29
- "op": { "enum": ["FIND", "READ", "EDIT", "COPY", "MOVE", "SHOW", "HIDE", "SEND", "EXEC"] },
29
+ "op": { "enum": ["FIND", "READ", "EDIT", "COPY", "MOVE", "OPEN", "FOLD", "SEND", "EXEC", "KILL"] },
30
30
  "suffix": { "type": "string" },
31
31
  "signal": {
32
32
  "oneOf": [
@@ -93,7 +93,16 @@
93
93
  }
94
94
  },
95
95
  {
96
- "if": { "properties": { "op": { "enum": ["FIND", "READ", "EDIT", "COPY", "MOVE", "SHOW", "HIDE"] } } },
96
+ "if": { "properties": { "op": { "const": "KILL" } } },
97
+ "then": {
98
+ "properties": {
99
+ "signal": { "type": ["number", "null"] },
100
+ "lineMarker": { "type": "null" }
101
+ }
102
+ }
103
+ },
104
+ {
105
+ "if": { "properties": { "op": { "enum": ["FIND", "READ", "EDIT", "COPY", "MOVE", "OPEN", "FOLD"] } } },
97
106
  "then": {
98
107
  "properties": {
99
108
  "signal": {
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://schemas.plurnk.dev/v0/MatcherBody.json",
4
4
  "title": "MatcherBody",
5
- "description": "Parsed body of a FIND/READ/SHOW/HIDE statement, discriminated on `dialect`. The dialect is determined by the body's leading characters (`//` xpath, `/` regex, `$` jsonpath, `~` semantic, `@` graph, else glob). The regex variant carries pattern/flags split out of the `/pattern/flags` literal; the compiled `RegExp` object on the in-memory AST is a runtime ergonomic only and is not part of the persisted/wire contract.",
5
+ "description": "Parsed body of a FIND/READ/OPEN/FOLD statement, discriminated on `dialect`. The dialect is determined by the body's leading characters (`//` xpath, `/` regex, `$` jsonpath, `~` semantic, `@` graph, else glob). The regex variant carries pattern/flags split out of the `/pattern/flags` literal; the compiled `RegExp` object on the in-memory AST is a runtime ergonomic only and is not part of the persisted/wire contract.",
6
6
  "oneOf": [
7
7
  { "$ref": "#/$defs/XPathBody" },
8
8
  { "$ref": "#/$defs/RegexBody" },