@plurnk/plurnk-grammar 0.71.0 → 0.73.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/dist/plurnk.gbnf +13 -6
- package/package.json +1 -1
- package/plurnk.md +3 -3
package/dist/plurnk.gbnf
CHANGED
|
@@ -124,18 +124,21 @@ send-b1 ::= ("S" send-b2 | ":" send-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] se
|
|
|
124
124
|
send-b2 ::= ("E" send-b3 | ":" send-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] send-b0)?
|
|
125
125
|
send-b3 ::= ("N" send-b4 | ":" send-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] send-b0)?
|
|
126
126
|
send-b4 ::= (":" send-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] send-b0)?
|
|
127
|
+
send-b0ne ::= ":" send-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-b0
|
|
127
128
|
send-1-b0 ::= (":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-1-b0)?
|
|
128
129
|
send-1-b1 ::= ("S" send-1-b2 | ":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] send-1-b0)?
|
|
129
130
|
send-1-b2 ::= ("E" send-1-b3 | ":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] send-1-b0)?
|
|
130
131
|
send-1-b3 ::= ("N" send-1-b4 | ":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] send-1-b0)?
|
|
131
132
|
send-1-b4 ::= ("D" send-1-b5 | ":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] send-1-b0)?
|
|
132
133
|
send-1-b5 ::= (":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:1] send-1-b0)?
|
|
134
|
+
send-1-b0ne ::= ":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-1-b0
|
|
133
135
|
send-2-b0 ::= (":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-2-b0)?
|
|
134
136
|
send-2-b1 ::= ("S" send-2-b2 | ":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] send-2-b0)?
|
|
135
137
|
send-2-b2 ::= ("E" send-2-b3 | ":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] send-2-b0)?
|
|
136
138
|
send-2-b3 ::= ("N" send-2-b4 | ":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] send-2-b0)?
|
|
137
139
|
send-2-b4 ::= ("D" send-2-b5 | ":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] send-2-b0)?
|
|
138
140
|
send-2-b5 ::= (":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:2] send-2-b0)?
|
|
141
|
+
send-2-b0ne ::= ":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-2-b0
|
|
139
142
|
exec-b0 ::= (":" exec-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] exec-b0)?
|
|
140
143
|
exec-b1 ::= ("E" exec-b2 | ":" exec-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] exec-b0)?
|
|
141
144
|
exec-b2 ::= ("X" exec-b3 | ":" exec-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:X] exec-b0)?
|
|
@@ -175,7 +178,8 @@ plan-b1 ::= ("P" plan-b2 | ":" plan-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:P] pl
|
|
|
175
178
|
plan-b2 ::= ("L" plan-b3 | ":" plan-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] plan-b0)?
|
|
176
179
|
plan-b3 ::= ("A" plan-b4 | ":" plan-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:A] plan-b0)?
|
|
177
180
|
plan-b4 ::= (":" plan-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] plan-b0)?
|
|
178
|
-
plan ::= "
|
|
181
|
+
plan-b0ne ::= ":" plan-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] plan-b0
|
|
182
|
+
plan ::= "<<PLAN" ":" plan-b0ne ":PLAN"
|
|
179
183
|
sep ::= [ \t\r\n]? [ \t\r\n]? [ \t\r\n]? [ \t\r\n]? [ \t\r\n]? [ \t\r\n]? [ \t\r\n]?
|
|
180
184
|
batch-step ::= mid-statement sep
|
|
181
185
|
mid-statement ::= op-statement | send-mid-any
|
|
@@ -262,7 +266,7 @@ op-statement-45 ::= tags? target line? ":" open-b0 ":OPEN" | "1" op-statement-46
|
|
|
262
266
|
op-statement-44 ::= "N" op-statement-45
|
|
263
267
|
op-statement-43 ::= "E" op-statement-44
|
|
264
268
|
op-statement-42 ::= "P" op-statement-43
|
|
265
|
-
op-statement-51 ::= ":" plan-
|
|
269
|
+
op-statement-51 ::= ":" plan-b0ne ":PLAN"
|
|
266
270
|
op-statement-50 ::= "N" op-statement-51
|
|
267
271
|
op-statement-49 ::= "A" op-statement-50
|
|
268
272
|
op-statement-48 ::= "L" op-statement-49
|
|
@@ -284,9 +288,9 @@ send-mid-any-2 ::= "E" send-mid-any-3
|
|
|
284
288
|
send-mid-any-1 ::= "S" send-mid-any-2
|
|
285
289
|
send-mid-any-0 ::= "<" send-mid-any-1
|
|
286
290
|
send-mid-any ::= "<" send-mid-any-0
|
|
287
|
-
send-final-any-6 ::= "[" status-final "]" target? ":" send-1-
|
|
288
|
-
send-final-any-7 ::= "[" status-final "]" target? ":" send-2-
|
|
289
|
-
send-final-any-5 ::= "[" status-final "]" target? ":" send-
|
|
291
|
+
send-final-any-6 ::= "[" status-final "]" target? ":" send-1-b0ne ":SEND1"
|
|
292
|
+
send-final-any-7 ::= "[" status-final "]" target? ":" send-2-b0ne ":SEND2"
|
|
293
|
+
send-final-any-5 ::= "[" status-final "]" target? ":" send-b0ne ":SEND" | "1" send-final-any-6 | "2" send-final-any-7
|
|
290
294
|
send-final-any-4 ::= "D" send-final-any-5
|
|
291
295
|
send-final-any-3 ::= "N" send-final-any-4
|
|
292
296
|
send-final-any-2 ::= "E" send-final-any-3
|
|
@@ -298,7 +302,10 @@ status-mid ::= "10" [0-13-9] | "1" [1-9] [0-9] | "20" [13-9] | "2" [1-9] [0-9] |
|
|
|
298
302
|
tags ::= "[" tag tag-rest* "]"
|
|
299
303
|
tag ::= [A-Za-z0-9_.-]+
|
|
300
304
|
tag-rest ::= "," tag
|
|
301
|
-
target ::= "("
|
|
305
|
+
target ::= "(" target-inner ")" | "(" target-regex ")"
|
|
306
|
+
target-inner ::= [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F)<\r\n]+
|
|
307
|
+
target-regex ::= "#" target-rx-char* "#" [a-zA-Z]*
|
|
308
|
+
target-rx-char ::= "\\" [^\r\n] | [^#\r\n]
|
|
302
309
|
line ::= "<" int line-rest* ">"
|
|
303
310
|
line-rest ::= "," " "? int
|
|
304
311
|
int ::= "-"? [0-9]+ frac?
|
package/package.json
CHANGED
package/plurnk.md
CHANGED
|
@@ -26,7 +26,7 @@ Slots between `<<OPsuffix` and `:body:` are all optional. `:body:` fences are re
|
|
|
26
26
|
|
|
27
27
|
Operations emit their status and/or results on the subsequent turn.
|
|
28
28
|
READ output prefixes every line with line numbers and a hard tab, `N: `. The prefix is not part of the source.
|
|
29
|
-
EDIT is only for entries. Do not attempt to edit log items.
|
|
29
|
+
EDIT is only for adding or modifying entries. Do not attempt to edit log items.
|
|
30
30
|
EXEC defaults to `sh`; override with an optional executor (`sqlite`, `node`, etc.).
|
|
31
31
|
|
|
32
32
|
## Context
|
|
@@ -77,12 +77,12 @@ URI-shaped: `[scheme://]rest`.
|
|
|
77
77
|
* Bare paths (no scheme) default to local relative project file paths.
|
|
78
78
|
* Glob metacharacters match within path segments; a standalone `#pattern#flags` matches the whole target by regex.
|
|
79
79
|
* Path suffix (`.json`, `.md`, `.txt`, etc.) declares mimetype.
|
|
80
|
-
*
|
|
80
|
+
* Percent-encode reserved characters in paths: `)`→`%29`, `<`→`%3C`.
|
|
81
81
|
* Append `#channel` to select a channel (e.g. `#stdout`, `#stderr`); absent, the scheme's default channel is used.
|
|
82
82
|
|
|
83
83
|
## Suffix
|
|
84
84
|
|
|
85
|
-
When quoting plurnk operations in a body, YOU MUST use a matching single-digit suffix (`1`–`9`) on the opening and closing tags.
|
|
85
|
+
When quoting plurnk operations in a body, YOU MUST use a matching single-digit suffix (`1`–`9`) or label (`[a-z]+`) on the opening and closing tags.
|
|
86
86
|
|
|
87
87
|
<<EDIT1(known:///demo):
|
|
88
88
|
quoted: <<EDIT(known:///inner):hello:EDIT
|