@plurnk/plurnk-grammar 0.27.0 → 0.28.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 +1 -1
- package/dist/plurnk.gbnf +30 -13
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -184,7 +184,7 @@ Errors are JSON-serializable. Shape: `{ line, column, source, message }` where `
|
|
|
184
184
|
|
|
185
185
|
## gbnf
|
|
186
186
|
|
|
187
|
-
`dist/plurnk.gbnf` ships in the package — a generated [GBNF](https://github.com/ggml-org/llama.cpp/blob/master/grammars/README.md) grammar for llama.cpp constrained sampling. It dictates the canonical form (digit suffixes, comma line markers, three-digit SEND signals); the parser remains the permissive contract — everything the GBNF can generate, the parser accepts.
|
|
187
|
+
`dist/plurnk.gbnf` ships in the package — a generated [GBNF](https://github.com/ggml-org/llama.cpp/blob/master/grammars/README.md) grammar for llama.cpp constrained sampling. It dictates the canonical form (digit suffixes, comma line markers, three-digit SEND signals); the parser remains the permissive contract — everything the GBNF can generate, the parser accepts. The root encodes the turn shape: a batch of ops (mid-batch SENDs allowed) closed by a final pathless `SEND[102]`/`SEND[200]` status update, after which nothing is admissible — termination is structural (forced EOS), not an optional stop a near-greedy decoder can skip.
|
|
188
188
|
|
|
189
189
|
```ts
|
|
190
190
|
import.meta.resolve("@plurnk/plurnk-grammar/plurnk.gbnf")
|
package/dist/plurnk.gbnf
CHANGED
|
@@ -487,70 +487,80 @@ send-b1 ::= ("S" send-b2 | ":" send-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] se
|
|
|
487
487
|
send-b2 ::= ("E" send-b3 | ":" send-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] send-b0)?
|
|
488
488
|
send-b3 ::= ("N" send-b4 | ":" send-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] send-b0)?
|
|
489
489
|
send-b4 ::= (":" send-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] send-b0)?
|
|
490
|
-
send ::= "<<SEND" "[" status "]" target
|
|
490
|
+
send-mid ::= "<<SEND" "[" status "]" target ":" send-b0 ":SEND" | "<<SEND" "[" status-mid "]" ":" send-b0 ":SEND"
|
|
491
|
+
send-final ::= "<<SEND" "[" status-final "]" ":" send-b0 ":SEND"
|
|
491
492
|
send-1-b0 ::= (":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-1-b0)?
|
|
492
493
|
send-1-b1 ::= ("S" send-1-b2 | ":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] send-1-b0)?
|
|
493
494
|
send-1-b2 ::= ("E" send-1-b3 | ":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] send-1-b0)?
|
|
494
495
|
send-1-b3 ::= ("N" send-1-b4 | ":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] send-1-b0)?
|
|
495
496
|
send-1-b4 ::= ("D" send-1-b5 | ":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] send-1-b0)?
|
|
496
497
|
send-1-b5 ::= (":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:1] send-1-b0)?
|
|
497
|
-
send-1 ::= "<<SEND1" "[" status "]" target
|
|
498
|
+
send-1-mid ::= "<<SEND1" "[" status "]" target ":" send-1-b0 ":SEND1" | "<<SEND1" "[" status-mid "]" ":" send-1-b0 ":SEND1"
|
|
499
|
+
send-1-final ::= "<<SEND1" "[" status-final "]" ":" send-1-b0 ":SEND1"
|
|
498
500
|
send-2-b0 ::= (":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-2-b0)?
|
|
499
501
|
send-2-b1 ::= ("S" send-2-b2 | ":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] send-2-b0)?
|
|
500
502
|
send-2-b2 ::= ("E" send-2-b3 | ":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] send-2-b0)?
|
|
501
503
|
send-2-b3 ::= ("N" send-2-b4 | ":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] send-2-b0)?
|
|
502
504
|
send-2-b4 ::= ("D" send-2-b5 | ":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] send-2-b0)?
|
|
503
505
|
send-2-b5 ::= (":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:2] send-2-b0)?
|
|
504
|
-
send-2 ::= "<<SEND2" "[" status "]" target
|
|
506
|
+
send-2-mid ::= "<<SEND2" "[" status "]" target ":" send-2-b0 ":SEND2" | "<<SEND2" "[" status-mid "]" ":" send-2-b0 ":SEND2"
|
|
507
|
+
send-2-final ::= "<<SEND2" "[" status-final "]" ":" send-2-b0 ":SEND2"
|
|
505
508
|
send-3-b0 ::= (":" send-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-3-b0)?
|
|
506
509
|
send-3-b1 ::= ("S" send-3-b2 | ":" send-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] send-3-b0)?
|
|
507
510
|
send-3-b2 ::= ("E" send-3-b3 | ":" send-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] send-3-b0)?
|
|
508
511
|
send-3-b3 ::= ("N" send-3-b4 | ":" send-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] send-3-b0)?
|
|
509
512
|
send-3-b4 ::= ("D" send-3-b5 | ":" send-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] send-3-b0)?
|
|
510
513
|
send-3-b5 ::= (":" send-3-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:3] send-3-b0)?
|
|
511
|
-
send-3 ::= "<<SEND3" "[" status "]" target
|
|
514
|
+
send-3-mid ::= "<<SEND3" "[" status "]" target ":" send-3-b0 ":SEND3" | "<<SEND3" "[" status-mid "]" ":" send-3-b0 ":SEND3"
|
|
515
|
+
send-3-final ::= "<<SEND3" "[" status-final "]" ":" send-3-b0 ":SEND3"
|
|
512
516
|
send-4-b0 ::= (":" send-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-4-b0)?
|
|
513
517
|
send-4-b1 ::= ("S" send-4-b2 | ":" send-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] send-4-b0)?
|
|
514
518
|
send-4-b2 ::= ("E" send-4-b3 | ":" send-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] send-4-b0)?
|
|
515
519
|
send-4-b3 ::= ("N" send-4-b4 | ":" send-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] send-4-b0)?
|
|
516
520
|
send-4-b4 ::= ("D" send-4-b5 | ":" send-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] send-4-b0)?
|
|
517
521
|
send-4-b5 ::= (":" send-4-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:4] send-4-b0)?
|
|
518
|
-
send-4 ::= "<<SEND4" "[" status "]" target
|
|
522
|
+
send-4-mid ::= "<<SEND4" "[" status "]" target ":" send-4-b0 ":SEND4" | "<<SEND4" "[" status-mid "]" ":" send-4-b0 ":SEND4"
|
|
523
|
+
send-4-final ::= "<<SEND4" "[" status-final "]" ":" send-4-b0 ":SEND4"
|
|
519
524
|
send-5-b0 ::= (":" send-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-5-b0)?
|
|
520
525
|
send-5-b1 ::= ("S" send-5-b2 | ":" send-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] send-5-b0)?
|
|
521
526
|
send-5-b2 ::= ("E" send-5-b3 | ":" send-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] send-5-b0)?
|
|
522
527
|
send-5-b3 ::= ("N" send-5-b4 | ":" send-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] send-5-b0)?
|
|
523
528
|
send-5-b4 ::= ("D" send-5-b5 | ":" send-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] send-5-b0)?
|
|
524
529
|
send-5-b5 ::= (":" send-5-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:5] send-5-b0)?
|
|
525
|
-
send-5 ::= "<<SEND5" "[" status "]" target
|
|
530
|
+
send-5-mid ::= "<<SEND5" "[" status "]" target ":" send-5-b0 ":SEND5" | "<<SEND5" "[" status-mid "]" ":" send-5-b0 ":SEND5"
|
|
531
|
+
send-5-final ::= "<<SEND5" "[" status-final "]" ":" send-5-b0 ":SEND5"
|
|
526
532
|
send-6-b0 ::= (":" send-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-6-b0)?
|
|
527
533
|
send-6-b1 ::= ("S" send-6-b2 | ":" send-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] send-6-b0)?
|
|
528
534
|
send-6-b2 ::= ("E" send-6-b3 | ":" send-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] send-6-b0)?
|
|
529
535
|
send-6-b3 ::= ("N" send-6-b4 | ":" send-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] send-6-b0)?
|
|
530
536
|
send-6-b4 ::= ("D" send-6-b5 | ":" send-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] send-6-b0)?
|
|
531
537
|
send-6-b5 ::= (":" send-6-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:6] send-6-b0)?
|
|
532
|
-
send-6 ::= "<<SEND6" "[" status "]" target
|
|
538
|
+
send-6-mid ::= "<<SEND6" "[" status "]" target ":" send-6-b0 ":SEND6" | "<<SEND6" "[" status-mid "]" ":" send-6-b0 ":SEND6"
|
|
539
|
+
send-6-final ::= "<<SEND6" "[" status-final "]" ":" send-6-b0 ":SEND6"
|
|
533
540
|
send-7-b0 ::= (":" send-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-7-b0)?
|
|
534
541
|
send-7-b1 ::= ("S" send-7-b2 | ":" send-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] send-7-b0)?
|
|
535
542
|
send-7-b2 ::= ("E" send-7-b3 | ":" send-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] send-7-b0)?
|
|
536
543
|
send-7-b3 ::= ("N" send-7-b4 | ":" send-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] send-7-b0)?
|
|
537
544
|
send-7-b4 ::= ("D" send-7-b5 | ":" send-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] send-7-b0)?
|
|
538
545
|
send-7-b5 ::= (":" send-7-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:7] send-7-b0)?
|
|
539
|
-
send-7 ::= "<<SEND7" "[" status "]" target
|
|
546
|
+
send-7-mid ::= "<<SEND7" "[" status "]" target ":" send-7-b0 ":SEND7" | "<<SEND7" "[" status-mid "]" ":" send-7-b0 ":SEND7"
|
|
547
|
+
send-7-final ::= "<<SEND7" "[" status-final "]" ":" send-7-b0 ":SEND7"
|
|
540
548
|
send-8-b0 ::= (":" send-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-8-b0)?
|
|
541
549
|
send-8-b1 ::= ("S" send-8-b2 | ":" send-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] send-8-b0)?
|
|
542
550
|
send-8-b2 ::= ("E" send-8-b3 | ":" send-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] send-8-b0)?
|
|
543
551
|
send-8-b3 ::= ("N" send-8-b4 | ":" send-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] send-8-b0)?
|
|
544
552
|
send-8-b4 ::= ("D" send-8-b5 | ":" send-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] send-8-b0)?
|
|
545
553
|
send-8-b5 ::= (":" send-8-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:8] send-8-b0)?
|
|
546
|
-
send-8 ::= "<<SEND8" "[" status "]" target
|
|
554
|
+
send-8-mid ::= "<<SEND8" "[" status "]" target ":" send-8-b0 ":SEND8" | "<<SEND8" "[" status-mid "]" ":" send-8-b0 ":SEND8"
|
|
555
|
+
send-8-final ::= "<<SEND8" "[" status-final "]" ":" send-8-b0 ":SEND8"
|
|
547
556
|
send-9-b0 ::= (":" send-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-9-b0)?
|
|
548
557
|
send-9-b1 ::= ("S" send-9-b2 | ":" send-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] send-9-b0)?
|
|
549
558
|
send-9-b2 ::= ("E" send-9-b3 | ":" send-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] send-9-b0)?
|
|
550
559
|
send-9-b3 ::= ("N" send-9-b4 | ":" send-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] send-9-b0)?
|
|
551
560
|
send-9-b4 ::= ("D" send-9-b5 | ":" send-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] send-9-b0)?
|
|
552
561
|
send-9-b5 ::= (":" send-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:9] send-9-b0)?
|
|
553
|
-
send-9 ::= "<<SEND9" "[" status "]" target
|
|
562
|
+
send-9-mid ::= "<<SEND9" "[" status "]" target ":" send-9-b0 ":SEND9" | "<<SEND9" "[" status-mid "]" ":" send-9-b0 ":SEND9"
|
|
563
|
+
send-9-final ::= "<<SEND9" "[" status-final "]" ":" send-9-b0 ":SEND9"
|
|
554
564
|
exec-b0 ::= (":" exec-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] exec-b0)?
|
|
555
565
|
exec-b1 ::= ("E" exec-b2 | ":" exec-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] exec-b0)?
|
|
556
566
|
exec-b2 ::= ("X" exec-b3 | ":" exec-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:X] exec-b0)?
|
|
@@ -689,9 +699,16 @@ kill-9-b3 ::= ("L" kill-9-b4 | ":" kill-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F
|
|
|
689
699
|
kill-9-b4 ::= ("L" kill-9-b5 | ":" kill-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-9-b0)?
|
|
690
700
|
kill-9-b5 ::= (":" kill-9-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:9] kill-9-b0)?
|
|
691
701
|
kill-9 ::= "<<KILL9" kill-sig? target ":" kill-9-b0 ":KILL9"
|
|
692
|
-
root ::= "\n"
|
|
693
|
-
|
|
694
|
-
statement ::=
|
|
702
|
+
root ::= "\n"? batch-step* send-final-any "\n"?
|
|
703
|
+
batch-step ::= mid-statement "\n" "\n"?
|
|
704
|
+
mid-statement ::= op-statement | send-mid-any
|
|
705
|
+
op-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 | 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
|
|
706
|
+
send-mid-any ::= send-mid | send-1-mid | send-2-mid | send-3-mid | send-4-mid | send-5-mid | send-6-mid | send-7-mid | send-8-mid | send-9-mid
|
|
707
|
+
send-final-any ::= send-final | send-1-final | send-2-final | send-3-final | send-4-final | send-5-final | send-6-final | send-7-final | send-8-final | send-9-final
|
|
708
|
+
send-statement ::= send-mid-any | send-final-any
|
|
709
|
+
statement ::= op-statement | send-statement
|
|
710
|
+
status-final ::= "102" | "200"
|
|
711
|
+
status-mid ::= "10" [0-13-9] | "1" [1-9] [0-9] | "20" [1-9] | "2" [1-9] [0-9] | [03-9] [0-9] [0-9]
|
|
695
712
|
tags ::= "[" tag tag-rest* "]"
|
|
696
713
|
tag ::= [A-Za-z0-9_.-]+
|
|
697
714
|
tag-rest ::= "," tag
|