@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 +17 -10
- package/dist/plurnk.gbnf +209 -139
- package/dist/schema/LogEntry.json +11 -2
- package/dist/schema/MatcherBody.json +1 -1
- package/dist/schema/PlurnkStatement.json +28 -8
- package/dist/src/AstBuilder.d.ts.map +1 -1
- package/dist/src/AstBuilder.js +29 -14
- package/dist/src/AstBuilder.js.map +1 -1
- package/dist/src/PlurnkErrorStrategy.d.ts.map +1 -1
- package/dist/src/PlurnkErrorStrategy.js +5 -4
- package/dist/src/PlurnkErrorStrategy.js.map +1 -1
- package/dist/src/generated/plurnkLexer.d.ts +13 -10
- package/dist/src/generated/plurnkLexer.d.ts.map +1 -1
- package/dist/src/generated/plurnkLexer.js +187 -168
- package/dist/src/generated/plurnkLexer.js.map +1 -1
- package/dist/src/generated/plurnkParser.d.ts +44 -30
- package/dist/src/generated/plurnkParser.d.ts.map +1 -1
- package/dist/src/generated/plurnkParser.js +398 -302
- package/dist/src/generated/plurnkParser.js.map +1 -1
- package/dist/src/generated/plurnkParserVisitor.d.ts +16 -9
- package/dist/src/generated/plurnkParserVisitor.d.ts.map +1 -1
- package/dist/src/generated/plurnkParserVisitor.js +12 -6
- package/dist/src/generated/plurnkParserVisitor.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/types.d.ts +1 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.generated.d.ts +17 -8
- package/dist/src/types.generated.d.ts.map +1 -1
- package/dist/src/types.generated.js.map +1 -1
- package/package.json +1 -1
- package/plurnk.md +13 -11
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
|
|
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
|
|
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
|
-
|
|
|
56
|
-
|
|
|
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
|
-
<<
|
|
113
|
+
<<FOLD(log://1/*/*/get)::FOLD
|
|
113
114
|
|
|
114
115
|
14. Restore collapsed log rows by tag filter
|
|
115
|
-
<<
|
|
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
|
-
<<
|
|
152
|
+
<<OPEN[france](log://**):Paris*:OPEN
|
|
152
153
|
|
|
153
154
|
26. Collapse the second hundred of stale fetch-log rows (pagination)
|
|
154
|
-
<<
|
|
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","
|
|
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.
|
|
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
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
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 |
|
|
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", "
|
|
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": { "
|
|
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/
|
|
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" },
|