@plurnk/plurnk-contracts 1.4.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/LICENSE +21 -0
- package/README.md +119 -0
- package/SPEC.md +954 -0
- package/bin/plurnk-contracts.js +43 -0
- package/dist/plurnk.gbnf +394 -0
- package/dist/schema/ClientDisplayCapabilities.json +54 -0
- package/dist/schema/ClientStatement.json +68 -0
- package/dist/schema/EntryReadResult.json +101 -0
- package/dist/schema/LineMarker.json +16 -0
- package/dist/schema/LoopFlags.json +16 -0
- package/dist/schema/MatcherBody.json +84 -0
- package/dist/schema/Notice.json +67 -0
- package/dist/schema/OperationResult.json +44 -0
- package/dist/schema/ParsedPath.json +64 -0
- package/dist/schema/PlurnkStatement.json +264 -0
- package/dist/schema/Position.json +20 -0
- package/dist/schema/ProblemDetails.json +51 -0
- package/dist/schema/ProposalDisposition.json +26 -0
- package/dist/schema/ProposalProjection.json +44 -0
- package/dist/schema/ProviderCost.json +69 -0
- package/dist/schema/ResourceSelection.json +20 -0
- package/dist/schema/SendBody.json +13 -0
- package/dist/schema/TextRegion.json +31 -0
- package/dist/src/AstBuilder.d.ts +24 -0
- package/dist/src/AstBuilder.d.ts.map +1 -0
- package/dist/src/AstBuilder.js +609 -0
- package/dist/src/AstBuilder.js.map +1 -0
- package/dist/src/PathSyntax.d.ts +9 -0
- package/dist/src/PathSyntax.d.ts.map +1 -0
- package/dist/src/PathSyntax.js +36 -0
- package/dist/src/PathSyntax.js.map +1 -0
- package/dist/src/PlurnkErrorStrategy.d.ts +10 -0
- package/dist/src/PlurnkErrorStrategy.d.ts.map +1 -0
- package/dist/src/PlurnkErrorStrategy.js +147 -0
- package/dist/src/PlurnkErrorStrategy.js.map +1 -0
- package/dist/src/PlurnkParseError.d.ts +17 -0
- package/dist/src/PlurnkParseError.d.ts.map +1 -0
- package/dist/src/PlurnkParseError.js +24 -0
- package/dist/src/PlurnkParseError.js.map +1 -0
- package/dist/src/PlurnkParser.d.ts +9 -0
- package/dist/src/PlurnkParser.d.ts.map +1 -0
- package/dist/src/PlurnkParser.js +396 -0
- package/dist/src/PlurnkParser.js.map +1 -0
- package/dist/src/Problems.d.ts +8 -0
- package/dist/src/Problems.d.ts.map +1 -0
- package/dist/src/Problems.js +23 -0
- package/dist/src/Problems.js.map +1 -0
- package/dist/src/RecordingListener.d.ts +9 -0
- package/dist/src/RecordingListener.d.ts.map +1 -0
- package/dist/src/RecordingListener.js +19 -0
- package/dist/src/RecordingListener.js.map +1 -0
- package/dist/src/Validator.d.ts +49 -0
- package/dist/src/Validator.d.ts.map +1 -0
- package/dist/src/Validator.js +211 -0
- package/dist/src/Validator.js.map +1 -0
- package/dist/src/generated/plurnkLexer.d.ts +129 -0
- package/dist/src/generated/plurnkLexer.d.ts.map +1 -0
- package/dist/src/generated/plurnkLexer.js +808 -0
- package/dist/src/generated/plurnkLexer.js.map +1 -0
- package/dist/src/generated/plurnkParser.d.ts +525 -0
- package/dist/src/generated/plurnkParser.d.ts.map +1 -0
- package/dist/src/generated/plurnkParser.js +3896 -0
- package/dist/src/generated/plurnkParser.js.map +1 -0
- package/dist/src/generated/plurnkParserVisitor.d.ts +298 -0
- package/dist/src/generated/plurnkParserVisitor.d.ts.map +1 -0
- package/dist/src/generated/plurnkParserVisitor.js +257 -0
- package/dist/src/generated/plurnkParserVisitor.js.map +1 -0
- package/dist/src/index.d.ts +13 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +10 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/types.d.ts +29 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.generated.d.ts +450 -0
- package/dist/src/types.generated.d.ts.map +1 -0
- package/dist/src/types.generated.js +4 -0
- package/dist/src/types.generated.js.map +1 -0
- package/dist/src/types.js +23 -0
- package/dist/src/types.js.map +1 -0
- package/package.json +87 -0
- package/plurnk.md +220 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { readFileSync } from "node:fs";
|
|
3
|
+
import { parseArgs } from "node:util";
|
|
4
|
+
import { PlurnkParser } from "../dist/src/index.js";
|
|
5
|
+
|
|
6
|
+
const USAGE = `Usage:
|
|
7
|
+
plurnk-contracts [file] Parse plurnk source from a file (or stdin if omitted or '-')
|
|
8
|
+
and print the result as JSON.
|
|
9
|
+
plurnk-contracts --help Show this message.
|
|
10
|
+
|
|
11
|
+
Exit codes:
|
|
12
|
+
0 parse succeeded with no errors and no unparsed tail
|
|
13
|
+
1 parse produced one or more errors, or left an unparsed tail`;
|
|
14
|
+
|
|
15
|
+
const { values, positionals } = parseArgs({
|
|
16
|
+
args: process.argv.slice(2),
|
|
17
|
+
options: {
|
|
18
|
+
help: { type: "boolean", short: "h" },
|
|
19
|
+
},
|
|
20
|
+
allowPositionals: true,
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
if (values.help) {
|
|
24
|
+
process.stdout.write(`${USAGE}\n`);
|
|
25
|
+
process.exit(0);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const target = positionals[0];
|
|
29
|
+
const input = !target || target === "-"
|
|
30
|
+
? readFileSync(0, "utf8")
|
|
31
|
+
: readFileSync(target, "utf8");
|
|
32
|
+
|
|
33
|
+
const result = PlurnkParser.parse(input);
|
|
34
|
+
|
|
35
|
+
const serialized = JSON.stringify(
|
|
36
|
+
result,
|
|
37
|
+
(_key, value) => (value instanceof RegExp ? value.toString() : value),
|
|
38
|
+
2,
|
|
39
|
+
);
|
|
40
|
+
process.stdout.write(`${serialized}\n`);
|
|
41
|
+
|
|
42
|
+
const hasIssues = result.items.some((i) => i.kind === "error") || result.unparsedTail !== undefined;
|
|
43
|
+
process.exit(hasIssues ? 1 : 0);
|
package/dist/plurnk.gbnf
ADDED
|
@@ -0,0 +1,394 @@
|
|
|
1
|
+
# @generated by scriptify/generate-gbnf.ts — do not edit; run `npm run build:gbnf`.
|
|
2
|
+
root ::= root-turn
|
|
3
|
+
find-b0 ::= (":" find-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] find-b0)?
|
|
4
|
+
find-b1 ::= ("F" find-b2 | ":" find-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:F] find-b0)?
|
|
5
|
+
find-b2 ::= ("I" find-b3 | ":" find-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:I] find-b0)?
|
|
6
|
+
find-b3 ::= ("N" find-b4 | ":" find-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:N] find-b0)?
|
|
7
|
+
find-b4 ::= (":" find-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:D] find-b0)?
|
|
8
|
+
find-pattern-start ::= ([^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] find-b0)?
|
|
9
|
+
find-1-b0 ::= (":" find-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] find-1-b0)?
|
|
10
|
+
find-1-b1 ::= ("F" find-1-b2 | ":" find-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:F] find-1-b0)?
|
|
11
|
+
find-1-b2 ::= ("I" find-1-b3 | ":" find-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:I] find-1-b0)?
|
|
12
|
+
find-1-b3 ::= ("N" find-1-b4 | ":" find-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:N] find-1-b0)?
|
|
13
|
+
find-1-b4 ::= ("D" find-1-b5 | ":" find-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:D] find-1-b0)?
|
|
14
|
+
find-1-b5 ::= (":" find-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:1] find-1-b0)?
|
|
15
|
+
find-1-pattern-start ::= ([^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] find-1-b0)?
|
|
16
|
+
find-2-b0 ::= (":" find-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] find-2-b0)?
|
|
17
|
+
find-2-b1 ::= ("F" find-2-b2 | ":" find-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:F] find-2-b0)?
|
|
18
|
+
find-2-b2 ::= ("I" find-2-b3 | ":" find-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:I] find-2-b0)?
|
|
19
|
+
find-2-b3 ::= ("N" find-2-b4 | ":" find-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:N] find-2-b0)?
|
|
20
|
+
find-2-b4 ::= ("D" find-2-b5 | ":" find-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:D] find-2-b0)?
|
|
21
|
+
find-2-b5 ::= (":" find-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:2] find-2-b0)?
|
|
22
|
+
find-2-pattern-start ::= ([^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] find-2-b0)?
|
|
23
|
+
read-b0 ::= (":" read-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] read-b0)?
|
|
24
|
+
read-b1 ::= ("R" read-b2 | ":" read-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:R] read-b0)?
|
|
25
|
+
read-b2 ::= ("E" read-b3 | ":" read-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:E] read-b0)?
|
|
26
|
+
read-b3 ::= ("A" read-b4 | ":" read-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:A] read-b0)?
|
|
27
|
+
read-b4 ::= (":" read-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:D] read-b0)?
|
|
28
|
+
read-pattern-start ::= ([^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] read-b0)?
|
|
29
|
+
read-1-b0 ::= (":" read-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] read-1-b0)?
|
|
30
|
+
read-1-b1 ::= ("R" read-1-b2 | ":" read-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:R] read-1-b0)?
|
|
31
|
+
read-1-b2 ::= ("E" read-1-b3 | ":" read-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:E] read-1-b0)?
|
|
32
|
+
read-1-b3 ::= ("A" read-1-b4 | ":" read-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:A] read-1-b0)?
|
|
33
|
+
read-1-b4 ::= ("D" read-1-b5 | ":" read-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:D] read-1-b0)?
|
|
34
|
+
read-1-b5 ::= (":" read-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:1] read-1-b0)?
|
|
35
|
+
read-1-pattern-start ::= ([^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] read-1-b0)?
|
|
36
|
+
read-2-b0 ::= (":" read-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] read-2-b0)?
|
|
37
|
+
read-2-b1 ::= ("R" read-2-b2 | ":" read-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:R] read-2-b0)?
|
|
38
|
+
read-2-b2 ::= ("E" read-2-b3 | ":" read-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:E] read-2-b0)?
|
|
39
|
+
read-2-b3 ::= ("A" read-2-b4 | ":" read-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:A] read-2-b0)?
|
|
40
|
+
read-2-b4 ::= ("D" read-2-b5 | ":" read-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:D] read-2-b0)?
|
|
41
|
+
read-2-b5 ::= (":" read-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:2] read-2-b0)?
|
|
42
|
+
read-2-pattern-start ::= ([^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] read-2-b0)?
|
|
43
|
+
edit-b0 ::= (":" edit-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] edit-b0)?
|
|
44
|
+
edit-b1 ::= ("E" edit-b2 | ":" edit-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] edit-b0)?
|
|
45
|
+
edit-b2 ::= ("D" edit-b3 | ":" edit-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] edit-b0)?
|
|
46
|
+
edit-b3 ::= ("I" edit-b4 | ":" edit-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] edit-b0)?
|
|
47
|
+
edit-b4 ::= (":" edit-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:T] edit-b0)?
|
|
48
|
+
edit-1-b0 ::= (":" edit-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] edit-1-b0)?
|
|
49
|
+
edit-1-b1 ::= ("E" edit-1-b2 | ":" edit-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] edit-1-b0)?
|
|
50
|
+
edit-1-b2 ::= ("D" edit-1-b3 | ":" edit-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] edit-1-b0)?
|
|
51
|
+
edit-1-b3 ::= ("I" edit-1-b4 | ":" edit-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] edit-1-b0)?
|
|
52
|
+
edit-1-b4 ::= ("T" edit-1-b5 | ":" edit-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:T] edit-1-b0)?
|
|
53
|
+
edit-1-b5 ::= (":" edit-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:1] edit-1-b0)?
|
|
54
|
+
edit-2-b0 ::= (":" edit-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] edit-2-b0)?
|
|
55
|
+
edit-2-b1 ::= ("E" edit-2-b2 | ":" edit-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] edit-2-b0)?
|
|
56
|
+
edit-2-b2 ::= ("D" edit-2-b3 | ":" edit-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] edit-2-b0)?
|
|
57
|
+
edit-2-b3 ::= ("I" edit-2-b4 | ":" edit-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] edit-2-b0)?
|
|
58
|
+
edit-2-b4 ::= ("T" edit-2-b5 | ":" edit-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:T] edit-2-b0)?
|
|
59
|
+
edit-2-b5 ::= (":" edit-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:2] edit-2-b0)?
|
|
60
|
+
copy-b0 ::= (":" copy-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] copy-b0)?
|
|
61
|
+
copy-b1 ::= ("C" copy-b2 | ":" copy-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:C] copy-b0)?
|
|
62
|
+
copy-b2 ::= ("O" copy-b3 | ":" copy-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] copy-b0)?
|
|
63
|
+
copy-b3 ::= ("P" copy-b4 | ":" copy-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:P] copy-b0)?
|
|
64
|
+
copy-b4 ::= (":" copy-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:Y] copy-b0)?
|
|
65
|
+
copy-1-b0 ::= (":" copy-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] copy-1-b0)?
|
|
66
|
+
copy-1-b1 ::= ("C" copy-1-b2 | ":" copy-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:C] copy-1-b0)?
|
|
67
|
+
copy-1-b2 ::= ("O" copy-1-b3 | ":" copy-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] copy-1-b0)?
|
|
68
|
+
copy-1-b3 ::= ("P" copy-1-b4 | ":" copy-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:P] copy-1-b0)?
|
|
69
|
+
copy-1-b4 ::= ("Y" copy-1-b5 | ":" copy-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:Y] copy-1-b0)?
|
|
70
|
+
copy-1-b5 ::= (":" copy-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:1] copy-1-b0)?
|
|
71
|
+
copy-2-b0 ::= (":" copy-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] copy-2-b0)?
|
|
72
|
+
copy-2-b1 ::= ("C" copy-2-b2 | ":" copy-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:C] copy-2-b0)?
|
|
73
|
+
copy-2-b2 ::= ("O" copy-2-b3 | ":" copy-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] copy-2-b0)?
|
|
74
|
+
copy-2-b3 ::= ("P" copy-2-b4 | ":" copy-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:P] copy-2-b0)?
|
|
75
|
+
copy-2-b4 ::= ("Y" copy-2-b5 | ":" copy-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:Y] copy-2-b0)?
|
|
76
|
+
copy-2-b5 ::= (":" copy-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:2] copy-2-b0)?
|
|
77
|
+
move-b0 ::= (":" move-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] move-b0)?
|
|
78
|
+
move-b1 ::= ("M" move-b2 | ":" move-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:M] move-b0)?
|
|
79
|
+
move-b2 ::= ("O" move-b3 | ":" move-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] move-b0)?
|
|
80
|
+
move-b3 ::= ("V" move-b4 | ":" move-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:V] move-b0)?
|
|
81
|
+
move-b4 ::= (":" move-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] move-b0)?
|
|
82
|
+
move-1-b0 ::= (":" move-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] move-1-b0)?
|
|
83
|
+
move-1-b1 ::= ("M" move-1-b2 | ":" move-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:M] move-1-b0)?
|
|
84
|
+
move-1-b2 ::= ("O" move-1-b3 | ":" move-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] move-1-b0)?
|
|
85
|
+
move-1-b3 ::= ("V" move-1-b4 | ":" move-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:V] move-1-b0)?
|
|
86
|
+
move-1-b4 ::= ("E" move-1-b5 | ":" move-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] move-1-b0)?
|
|
87
|
+
move-1-b5 ::= (":" move-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:1] move-1-b0)?
|
|
88
|
+
move-2-b0 ::= (":" move-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] move-2-b0)?
|
|
89
|
+
move-2-b1 ::= ("M" move-2-b2 | ":" move-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:M] move-2-b0)?
|
|
90
|
+
move-2-b2 ::= ("O" move-2-b3 | ":" move-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] move-2-b0)?
|
|
91
|
+
move-2-b3 ::= ("V" move-2-b4 | ":" move-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:V] move-2-b0)?
|
|
92
|
+
move-2-b4 ::= ("E" move-2-b5 | ":" move-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] move-2-b0)?
|
|
93
|
+
move-2-b5 ::= (":" move-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:2] move-2-b0)?
|
|
94
|
+
open-b0 ::= (":" open-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] open-b0)?
|
|
95
|
+
open-b1 ::= ("O" open-b2 | ":" open-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:O] open-b0)?
|
|
96
|
+
open-b2 ::= ("P" open-b3 | ":" open-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:P] open-b0)?
|
|
97
|
+
open-b3 ::= ("E" open-b4 | ":" open-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:E] open-b0)?
|
|
98
|
+
open-b4 ::= (":" open-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:N] open-b0)?
|
|
99
|
+
open-pattern-start ::= ([^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] open-b0)?
|
|
100
|
+
open-1-b0 ::= (":" open-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] open-1-b0)?
|
|
101
|
+
open-1-b1 ::= ("O" open-1-b2 | ":" open-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:O] open-1-b0)?
|
|
102
|
+
open-1-b2 ::= ("P" open-1-b3 | ":" open-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:P] open-1-b0)?
|
|
103
|
+
open-1-b3 ::= ("E" open-1-b4 | ":" open-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:E] open-1-b0)?
|
|
104
|
+
open-1-b4 ::= ("N" open-1-b5 | ":" open-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:N] open-1-b0)?
|
|
105
|
+
open-1-b5 ::= (":" open-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:1] open-1-b0)?
|
|
106
|
+
open-1-pattern-start ::= ([^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] open-1-b0)?
|
|
107
|
+
open-2-b0 ::= (":" open-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] open-2-b0)?
|
|
108
|
+
open-2-b1 ::= ("O" open-2-b2 | ":" open-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:O] open-2-b0)?
|
|
109
|
+
open-2-b2 ::= ("P" open-2-b3 | ":" open-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:P] open-2-b0)?
|
|
110
|
+
open-2-b3 ::= ("E" open-2-b4 | ":" open-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:E] open-2-b0)?
|
|
111
|
+
open-2-b4 ::= ("N" open-2-b5 | ":" open-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:N] open-2-b0)?
|
|
112
|
+
open-2-b5 ::= (":" open-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:2] open-2-b0)?
|
|
113
|
+
open-2-pattern-start ::= ([^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] open-2-b0)?
|
|
114
|
+
fold-b0 ::= (":" fold-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] fold-b0)?
|
|
115
|
+
fold-b1 ::= ("F" fold-b2 | ":" fold-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:F] fold-b0)?
|
|
116
|
+
fold-b2 ::= ("O" fold-b3 | ":" fold-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:O] fold-b0)?
|
|
117
|
+
fold-b3 ::= ("L" fold-b4 | ":" fold-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:L] fold-b0)?
|
|
118
|
+
fold-b4 ::= (":" fold-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:D] fold-b0)?
|
|
119
|
+
fold-pattern-start ::= ([^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] fold-b0)?
|
|
120
|
+
fold-1-b0 ::= (":" fold-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] fold-1-b0)?
|
|
121
|
+
fold-1-b1 ::= ("F" fold-1-b2 | ":" fold-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:F] fold-1-b0)?
|
|
122
|
+
fold-1-b2 ::= ("O" fold-1-b3 | ":" fold-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:O] fold-1-b0)?
|
|
123
|
+
fold-1-b3 ::= ("L" fold-1-b4 | ":" fold-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:L] fold-1-b0)?
|
|
124
|
+
fold-1-b4 ::= ("D" fold-1-b5 | ":" fold-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:D] fold-1-b0)?
|
|
125
|
+
fold-1-b5 ::= (":" fold-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:1] fold-1-b0)?
|
|
126
|
+
fold-1-pattern-start ::= ([^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] fold-1-b0)?
|
|
127
|
+
fold-2-b0 ::= (":" fold-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] fold-2-b0)?
|
|
128
|
+
fold-2-b1 ::= ("F" fold-2-b2 | ":" fold-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:F] fold-2-b0)?
|
|
129
|
+
fold-2-b2 ::= ("O" fold-2-b3 | ":" fold-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:O] fold-2-b0)?
|
|
130
|
+
fold-2-b3 ::= ("L" fold-2-b4 | ":" fold-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:L] fold-2-b0)?
|
|
131
|
+
fold-2-b4 ::= ("D" fold-2-b5 | ":" fold-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:D] fold-2-b0)?
|
|
132
|
+
fold-2-b5 ::= (":" fold-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:2] fold-2-b0)?
|
|
133
|
+
fold-2-pattern-start ::= ([^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\n\r:] fold-2-b0)?
|
|
134
|
+
send-b0 ::= (":" send-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-b0)?
|
|
135
|
+
send-b1 ::= ("S" send-b2 | ":" send-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] send-b0)?
|
|
136
|
+
send-b2 ::= ("E" send-b3 | ":" send-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] send-b0)?
|
|
137
|
+
send-b3 ::= ("N" send-b4 | ":" send-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] send-b0)?
|
|
138
|
+
send-b4 ::= (":" send-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] send-b0)?
|
|
139
|
+
send-b0ne ::= ":" send-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-b0
|
|
140
|
+
send-1-b0 ::= (":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-1-b0)?
|
|
141
|
+
send-1-b1 ::= ("S" send-1-b2 | ":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] send-1-b0)?
|
|
142
|
+
send-1-b2 ::= ("E" send-1-b3 | ":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] send-1-b0)?
|
|
143
|
+
send-1-b3 ::= ("N" send-1-b4 | ":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] send-1-b0)?
|
|
144
|
+
send-1-b4 ::= ("D" send-1-b5 | ":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] send-1-b0)?
|
|
145
|
+
send-1-b5 ::= (":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:1] send-1-b0)?
|
|
146
|
+
send-1-b0ne ::= ":" send-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-1-b0
|
|
147
|
+
send-2-b0 ::= (":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-2-b0)?
|
|
148
|
+
send-2-b1 ::= ("S" send-2-b2 | ":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:S] send-2-b0)?
|
|
149
|
+
send-2-b2 ::= ("E" send-2-b3 | ":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] send-2-b0)?
|
|
150
|
+
send-2-b3 ::= ("N" send-2-b4 | ":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N] send-2-b0)?
|
|
151
|
+
send-2-b4 ::= ("D" send-2-b5 | ":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:D] send-2-b0)?
|
|
152
|
+
send-2-b5 ::= (":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:2] send-2-b0)?
|
|
153
|
+
send-2-b0ne ::= ":" send-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] send-2-b0
|
|
154
|
+
exec-b0 ::= (":" exec-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] exec-b0)?
|
|
155
|
+
exec-b1 ::= ("E" exec-b2 | ":" exec-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] exec-b0)?
|
|
156
|
+
exec-b2 ::= ("X" exec-b3 | ":" exec-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:X] exec-b0)?
|
|
157
|
+
exec-b3 ::= ("E" exec-b4 | ":" exec-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] exec-b0)?
|
|
158
|
+
exec-b4 ::= (":" exec-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:C] exec-b0)?
|
|
159
|
+
exec-1-b0 ::= (":" exec-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] exec-1-b0)?
|
|
160
|
+
exec-1-b1 ::= ("E" exec-1-b2 | ":" exec-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] exec-1-b0)?
|
|
161
|
+
exec-1-b2 ::= ("X" exec-1-b3 | ":" exec-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:X] exec-1-b0)?
|
|
162
|
+
exec-1-b3 ::= ("E" exec-1-b4 | ":" exec-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] exec-1-b0)?
|
|
163
|
+
exec-1-b4 ::= ("C" exec-1-b5 | ":" exec-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:C] exec-1-b0)?
|
|
164
|
+
exec-1-b5 ::= (":" exec-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:1] exec-1-b0)?
|
|
165
|
+
exec-2-b0 ::= (":" exec-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] exec-2-b0)?
|
|
166
|
+
exec-2-b1 ::= ("E" exec-2-b2 | ":" exec-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] exec-2-b0)?
|
|
167
|
+
exec-2-b2 ::= ("X" exec-2-b3 | ":" exec-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:X] exec-2-b0)?
|
|
168
|
+
exec-2-b3 ::= ("E" exec-2-b4 | ":" exec-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:E] exec-2-b0)?
|
|
169
|
+
exec-2-b4 ::= ("C" exec-2-b5 | ":" exec-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:C] exec-2-b0)?
|
|
170
|
+
exec-2-b5 ::= (":" exec-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:2] exec-2-b0)?
|
|
171
|
+
work-b0 ::= (":" work-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] work-b0)?
|
|
172
|
+
work-b1 ::= ("W" work-b2 | ":" work-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:W] work-b0)?
|
|
173
|
+
work-b2 ::= ("O" work-b3 | ":" work-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] work-b0)?
|
|
174
|
+
work-b3 ::= ("R" work-b4 | ":" work-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:R] work-b0)?
|
|
175
|
+
work-b4 ::= (":" work-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:K] work-b0)?
|
|
176
|
+
work-b0ne ::= ":" work-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] work-b0
|
|
177
|
+
work-1-b0 ::= (":" work-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] work-1-b0)?
|
|
178
|
+
work-1-b1 ::= ("W" work-1-b2 | ":" work-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:W] work-1-b0)?
|
|
179
|
+
work-1-b2 ::= ("O" work-1-b3 | ":" work-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] work-1-b0)?
|
|
180
|
+
work-1-b3 ::= ("R" work-1-b4 | ":" work-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:R] work-1-b0)?
|
|
181
|
+
work-1-b4 ::= ("K" work-1-b5 | ":" work-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:K] work-1-b0)?
|
|
182
|
+
work-1-b5 ::= (":" work-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:1] work-1-b0)?
|
|
183
|
+
work-1-b0ne ::= ":" work-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] work-1-b0
|
|
184
|
+
work-2-b0 ::= (":" work-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] work-2-b0)?
|
|
185
|
+
work-2-b1 ::= ("W" work-2-b2 | ":" work-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:W] work-2-b0)?
|
|
186
|
+
work-2-b2 ::= ("O" work-2-b3 | ":" work-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] work-2-b0)?
|
|
187
|
+
work-2-b3 ::= ("R" work-2-b4 | ":" work-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:R] work-2-b0)?
|
|
188
|
+
work-2-b4 ::= ("K" work-2-b5 | ":" work-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:K] work-2-b0)?
|
|
189
|
+
work-2-b5 ::= (":" work-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:2] work-2-b0)?
|
|
190
|
+
work-2-b0ne ::= ":" work-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] work-2-b0
|
|
191
|
+
fork-b0 ::= (":" fork-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] fork-b0)?
|
|
192
|
+
fork-b1 ::= ("F" fork-b2 | ":" fork-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:F] fork-b0)?
|
|
193
|
+
fork-b2 ::= ("O" fork-b3 | ":" fork-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] fork-b0)?
|
|
194
|
+
fork-b3 ::= ("R" fork-b4 | ":" fork-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:R] fork-b0)?
|
|
195
|
+
fork-b4 ::= (":" fork-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:K] fork-b0)?
|
|
196
|
+
fork-b0ne ::= ":" fork-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] fork-b0
|
|
197
|
+
fork-1-b0 ::= (":" fork-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] fork-1-b0)?
|
|
198
|
+
fork-1-b1 ::= ("F" fork-1-b2 | ":" fork-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:F] fork-1-b0)?
|
|
199
|
+
fork-1-b2 ::= ("O" fork-1-b3 | ":" fork-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] fork-1-b0)?
|
|
200
|
+
fork-1-b3 ::= ("R" fork-1-b4 | ":" fork-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:R] fork-1-b0)?
|
|
201
|
+
fork-1-b4 ::= ("K" fork-1-b5 | ":" fork-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:K] fork-1-b0)?
|
|
202
|
+
fork-1-b5 ::= (":" fork-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:1] fork-1-b0)?
|
|
203
|
+
fork-1-b0ne ::= ":" fork-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] fork-1-b0
|
|
204
|
+
fork-2-b0 ::= (":" fork-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] fork-2-b0)?
|
|
205
|
+
fork-2-b1 ::= ("F" fork-2-b2 | ":" fork-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:F] fork-2-b0)?
|
|
206
|
+
fork-2-b2 ::= ("O" fork-2-b3 | ":" fork-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:O] fork-2-b0)?
|
|
207
|
+
fork-2-b3 ::= ("R" fork-2-b4 | ":" fork-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:R] fork-2-b0)?
|
|
208
|
+
fork-2-b4 ::= ("K" fork-2-b5 | ":" fork-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:K] fork-2-b0)?
|
|
209
|
+
fork-2-b5 ::= (":" fork-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:2] fork-2-b0)?
|
|
210
|
+
fork-2-b0ne ::= ":" fork-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] fork-2-b0
|
|
211
|
+
kill-b0 ::= (":" kill-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] kill-b0)?
|
|
212
|
+
kill-b1 ::= ("K" kill-b2 | ":" kill-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:K] kill-b0)?
|
|
213
|
+
kill-b2 ::= ("I" kill-b3 | ":" kill-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] kill-b0)?
|
|
214
|
+
kill-b3 ::= ("L" kill-b4 | ":" kill-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-b0)?
|
|
215
|
+
kill-b4 ::= (":" kill-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-b0)?
|
|
216
|
+
kill-1-b0 ::= (":" kill-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] kill-1-b0)?
|
|
217
|
+
kill-1-b1 ::= ("K" kill-1-b2 | ":" kill-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:K] kill-1-b0)?
|
|
218
|
+
kill-1-b2 ::= ("I" kill-1-b3 | ":" kill-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] kill-1-b0)?
|
|
219
|
+
kill-1-b3 ::= ("L" kill-1-b4 | ":" kill-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-1-b0)?
|
|
220
|
+
kill-1-b4 ::= ("L" kill-1-b5 | ":" kill-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-1-b0)?
|
|
221
|
+
kill-1-b5 ::= (":" kill-1-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:1] kill-1-b0)?
|
|
222
|
+
kill-2-b0 ::= (":" kill-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:] kill-2-b0)?
|
|
223
|
+
kill-2-b1 ::= ("K" kill-2-b2 | ":" kill-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:K] kill-2-b0)?
|
|
224
|
+
kill-2-b2 ::= ("I" kill-2-b3 | ":" kill-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:I] kill-2-b0)?
|
|
225
|
+
kill-2-b3 ::= ("L" kill-2-b4 | ":" kill-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-2-b0)?
|
|
226
|
+
kill-2-b4 ::= ("L" kill-2-b5 | ":" kill-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L] kill-2-b0)?
|
|
227
|
+
kill-2-b5 ::= (":" kill-2-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:2] kill-2-b0)?
|
|
228
|
+
plan-b0 ::= (":" plan-b1 | "<" plan-lt | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:<] plan-b0)?
|
|
229
|
+
plan-b1 ::= ("P" plan-b2 | ":" plan-b1 | "<" plan-lt | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:P<] plan-b0)?
|
|
230
|
+
plan-b2 ::= ("L" plan-b3 | ":" plan-b1 | "<" plan-lt | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:L<] plan-b0)?
|
|
231
|
+
plan-b3 ::= ("A" plan-b4 | ":" plan-b1 | "<" plan-lt | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:A<] plan-b0)?
|
|
232
|
+
plan-b4 ::= (":" plan-b1 | "<" plan-lt | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:N<] plan-b0)?
|
|
233
|
+
plan-lt ::= (":" plan-b1 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:<] plan-b0)?
|
|
234
|
+
plan-b0ne ::= ":" plan-b1 | "<" plan-lt | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F:<] plan-b0
|
|
235
|
+
plan ::= "<<PLAN" ":" plan-b0ne ":PLAN"
|
|
236
|
+
sep ::= [ \t\r\n]? [ \t\r\n]? [ \t\r\n]? [ \t\r\n]? [ \t\r\n]? [ \t\r\n]? [ \t\r\n]?
|
|
237
|
+
rz-chan-b0 ::= ("<" rz-chan-b1 | [|chanel>toug\n] rz-chan-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
238
|
+
rz-chan-b1 ::= ("<" rz-chan-b1 | "|" rz-chan-b2 | "c" rz-chan-b18 | [hanel>toug\n] rz-chan-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
239
|
+
rz-chan-b2 ::= ("<" rz-chan-b1 | [|hanel>toug\n] rz-chan-b0 | "c" rz-chan-b3 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
240
|
+
rz-chan-b3 ::= ("<" rz-chan-b1 | [|canel>toug\n] rz-chan-b0 | "h" rz-chan-b4 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
241
|
+
rz-chan-b4 ::= ("<" rz-chan-b1 | [|chnel>toug\n] rz-chan-b0 | "a" rz-chan-b5 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
242
|
+
rz-chan-b5 ::= ("<" rz-chan-b1 | [|chael>toug\n] rz-chan-b0 | "n" rz-chan-b6 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
243
|
+
rz-chan-b6 ::= ("<" rz-chan-b1 | [|chael>toug\n] rz-chan-b0 | "n" rz-chan-b7 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
244
|
+
rz-chan-b7 ::= ("<" rz-chan-b1 | [|chanl>toug\n] rz-chan-b0 | "e" rz-chan-b8 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
245
|
+
rz-chan-b8 ::= ("<" rz-chan-b1 | [|chane>toug\n] rz-chan-b0 | "l" rz-chan-b9 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
246
|
+
rz-chan-b9 ::= ("<" rz-chan-b1 | [|chaneltoug\n] rz-chan-b0 | ">" rz-chan-b10 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
247
|
+
rz-chan-b10 ::= ("<" rz-chan-b1 | [|chanel>oug\n] rz-chan-b0 | "t" rz-chan-b11 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
248
|
+
rz-chan-b11 ::= ("<" rz-chan-b1 | [|canel>toug\n] rz-chan-b0 | "h" rz-chan-b12 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
249
|
+
rz-chan-b12 ::= ("<" rz-chan-b1 | [|chanel>tug\n] rz-chan-b0 | "o" rz-chan-b13 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
250
|
+
rz-chan-b13 ::= ("<" rz-chan-b1 | [|chanel>tog\n] rz-chan-b0 | "u" rz-chan-b14 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
251
|
+
rz-chan-b14 ::= ("<" rz-chan-b1 | [|chanel>tou\n] rz-chan-b0 | "g" rz-chan-b15 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
252
|
+
rz-chan-b15 ::= ("<" rz-chan-b1 | [|canel>toug\n] rz-chan-b0 | "h" rz-chan-b16 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
253
|
+
rz-chan-b16 ::= ("<" rz-chan-b1 | [|chanel>oug\n] rz-chan-b0 | "t" rz-chan-b17 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
254
|
+
rz-chan-b17 ::= ("<" rz-chan-b1 | [|chanel>toug] rz-chan-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
255
|
+
rz-chan-b18 ::= ("<" rz-chan-b1 | [|canel>toug\n] rz-chan-b0 | "h" rz-chan-b19 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
256
|
+
rz-chan-b19 ::= ("<" rz-chan-b1 | [|chnel>toug\n] rz-chan-b0 | "a" rz-chan-b20 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
257
|
+
rz-chan-b20 ::= ("<" rz-chan-b1 | [|chael>toug\n] rz-chan-b0 | "n" rz-chan-b21 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
258
|
+
rz-chan-b21 ::= ("<" rz-chan-b1 | [|chael>toug\n] rz-chan-b0 | "n" rz-chan-b22 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
259
|
+
rz-chan-b22 ::= ("<" rz-chan-b1 | [|chanl>toug\n] rz-chan-b0 | "e" rz-chan-b23 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
260
|
+
rz-chan-b23 ::= ("<" rz-chan-b1 | [|chane>toug\n] rz-chan-b0 | "l" rz-chan-b24 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
261
|
+
rz-chan-b24 ::= ("<" rz-chan-b1 | "|" rz-chan-b25 | [chanel>toug\n] rz-chan-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
262
|
+
rz-chan-b25 ::= ("<" rz-chan-b1 | [|chaneltoug\n] rz-chan-b0 | [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F<|chanel>toug\n] rz-chan-b0)?
|
|
263
|
+
channel ::= "<|channel>thought\n" rz-chan-b0 "<channel|>"
|
|
264
|
+
tail-0 ::= send-mid-any sep tail-1 | op-statement sep tail-1 | send-final-first sep
|
|
265
|
+
tail-1 ::= send-mid-any sep tail-2 | op-statement sep tail-2 | send-final-any sep
|
|
266
|
+
tail-2 ::= send-mid-any sep tail-3 | op-statement sep tail-3 | send-final-any sep
|
|
267
|
+
tail-3 ::= send-mid-any sep tail-4 | op-statement sep tail-4 | send-final-any sep
|
|
268
|
+
tail-4 ::= send-mid-any sep tail-5 | op-statement sep tail-5 | send-final-any sep
|
|
269
|
+
tail-5 ::= send-mid-any sep tail-6 | op-statement sep tail-6 | send-final-any sep
|
|
270
|
+
tail-6 ::= send-mid-any sep tail-7 | op-statement sep tail-7 | send-final-any sep
|
|
271
|
+
tail-7 ::= send-mid-any sep tail-8 | op-statement sep tail-8 | send-final-any sep
|
|
272
|
+
tail-8 ::= send-mid-any sep tail-9 | op-statement sep tail-9 | send-final-any sep
|
|
273
|
+
tail-9 ::= send-mid-any sep tail-10 | op-statement sep tail-10 | send-final-any sep
|
|
274
|
+
tail-10 ::= send-mid-any sep tail-11 | op-statement sep tail-11 | send-final-any sep
|
|
275
|
+
tail-11 ::= send-mid-any sep tail-12 | op-statement sep tail-12 | send-final-any sep
|
|
276
|
+
tail-12 ::= send-mid-any sep tail-13 | op-statement sep tail-13 | send-final-any sep
|
|
277
|
+
tail-13 ::= send-mid-any sep tail-14 | op-statement sep tail-14 | send-final-any sep
|
|
278
|
+
tail-14 ::= send-final-any sep
|
|
279
|
+
root-turn ::= channel sep plan sep tail-0
|
|
280
|
+
op-statement-6 ::= tags? target line? ":" copy-1-b0 ":COPY1"
|
|
281
|
+
op-statement-7 ::= tags? target line? ":" copy-2-b0 ":COPY2"
|
|
282
|
+
op-statement-5 ::= tags? target line? ":" copy-b0 ":COPY" | "1" op-statement-6 | "2" op-statement-7
|
|
283
|
+
op-statement-4 ::= "Y" op-statement-5
|
|
284
|
+
op-statement-3 ::= "P" op-statement-4
|
|
285
|
+
op-statement-2 ::= "O" op-statement-3
|
|
286
|
+
op-statement-12 ::= tags? target line? ":" edit-1-b0 ":EDIT1"
|
|
287
|
+
op-statement-13 ::= tags? target line? ":" edit-2-b0 ":EDIT2"
|
|
288
|
+
op-statement-11 ::= tags? target line? ":" edit-b0 ":EDIT" | "1" op-statement-12 | "2" op-statement-13
|
|
289
|
+
op-statement-10 ::= "T" op-statement-11
|
|
290
|
+
op-statement-9 ::= "I" op-statement-10
|
|
291
|
+
op-statement-17 ::= exec-sig? target? line? ":" exec-1-b0 ":EXEC1"
|
|
292
|
+
op-statement-18 ::= exec-sig? target? line? ":" exec-2-b0 ":EXEC2"
|
|
293
|
+
op-statement-16 ::= exec-sig? target? line? ":" exec-b0 ":EXEC" | "1" op-statement-17 | "2" op-statement-18
|
|
294
|
+
op-statement-15 ::= "C" op-statement-16
|
|
295
|
+
op-statement-14 ::= "E" op-statement-15
|
|
296
|
+
op-statement-8 ::= "D" op-statement-9 | "X" op-statement-14
|
|
297
|
+
op-statement-23 ::= tags? target line? ":" find-1-pattern-start ":FIND1"
|
|
298
|
+
op-statement-24 ::= tags? target line? ":" find-2-pattern-start ":FIND2"
|
|
299
|
+
op-statement-22 ::= tags? target line? ":" find-pattern-start ":FIND" | "1" op-statement-23 | "2" op-statement-24
|
|
300
|
+
op-statement-21 ::= "D" op-statement-22
|
|
301
|
+
op-statement-20 ::= "N" op-statement-21
|
|
302
|
+
op-statement-28 ::= tags? target ":" fold-1-pattern-start ":FOLD1"
|
|
303
|
+
op-statement-29 ::= tags? target ":" fold-2-pattern-start ":FOLD2"
|
|
304
|
+
op-statement-27 ::= tags? target ":" fold-pattern-start ":FOLD" | "1" op-statement-28 | "2" op-statement-29
|
|
305
|
+
op-statement-26 ::= "D" op-statement-27
|
|
306
|
+
op-statement-32 ::= branch? target ":" fork-1-b0ne ":FORK1"
|
|
307
|
+
op-statement-33 ::= branch? target ":" fork-2-b0ne ":FORK2"
|
|
308
|
+
op-statement-31 ::= branch? target ":" fork-b0ne ":FORK" | "1" op-statement-32 | "2" op-statement-33
|
|
309
|
+
op-statement-30 ::= "K" op-statement-31
|
|
310
|
+
op-statement-25 ::= "L" op-statement-26 | "R" op-statement-30
|
|
311
|
+
op-statement-19 ::= "I" op-statement-20 | "O" op-statement-25
|
|
312
|
+
op-statement-38 ::= kill-sig? target ":" kill-1-b0 ":KILL1"
|
|
313
|
+
op-statement-39 ::= kill-sig? target ":" kill-2-b0 ":KILL2"
|
|
314
|
+
op-statement-37 ::= kill-sig? target ":" kill-b0 ":KILL" | "1" op-statement-38 | "2" op-statement-39
|
|
315
|
+
op-statement-36 ::= "L" op-statement-37
|
|
316
|
+
op-statement-35 ::= "L" op-statement-36
|
|
317
|
+
op-statement-34 ::= "I" op-statement-35
|
|
318
|
+
op-statement-44 ::= tags? target line? ":" move-1-b0 ":MOVE1"
|
|
319
|
+
op-statement-45 ::= tags? target line? ":" move-2-b0 ":MOVE2"
|
|
320
|
+
op-statement-43 ::= tags? target line? ":" move-b0 ":MOVE" | "1" op-statement-44 | "2" op-statement-45
|
|
321
|
+
op-statement-42 ::= "E" op-statement-43
|
|
322
|
+
op-statement-41 ::= "V" op-statement-42
|
|
323
|
+
op-statement-40 ::= "O" op-statement-41
|
|
324
|
+
op-statement-50 ::= tags? target ":" open-1-pattern-start ":OPEN1"
|
|
325
|
+
op-statement-51 ::= tags? target ":" open-2-pattern-start ":OPEN2"
|
|
326
|
+
op-statement-49 ::= tags? target ":" open-pattern-start ":OPEN" | "1" op-statement-50 | "2" op-statement-51
|
|
327
|
+
op-statement-48 ::= "N" op-statement-49
|
|
328
|
+
op-statement-47 ::= "E" op-statement-48
|
|
329
|
+
op-statement-46 ::= "P" op-statement-47
|
|
330
|
+
op-statement-56 ::= tags? target line? ":" read-1-pattern-start ":READ1"
|
|
331
|
+
op-statement-57 ::= tags? target line? ":" read-2-pattern-start ":READ2"
|
|
332
|
+
op-statement-55 ::= tags? target line? ":" read-pattern-start ":READ" | "1" op-statement-56 | "2" op-statement-57
|
|
333
|
+
op-statement-54 ::= "D" op-statement-55
|
|
334
|
+
op-statement-53 ::= "A" op-statement-54
|
|
335
|
+
op-statement-52 ::= "E" op-statement-53
|
|
336
|
+
op-statement-62 ::= branch? target ":" work-1-b0ne ":WORK1"
|
|
337
|
+
op-statement-63 ::= branch? target ":" work-2-b0ne ":WORK2"
|
|
338
|
+
op-statement-61 ::= branch? target ":" work-b0ne ":WORK" | "1" op-statement-62 | "2" op-statement-63
|
|
339
|
+
op-statement-60 ::= "K" op-statement-61
|
|
340
|
+
op-statement-59 ::= "R" op-statement-60
|
|
341
|
+
op-statement-58 ::= "O" op-statement-59
|
|
342
|
+
op-statement-1 ::= "C" op-statement-2 | "E" op-statement-8 | "F" op-statement-19 | "K" op-statement-34 | "M" op-statement-40 | "O" op-statement-46 | "R" op-statement-52 | "W" op-statement-58
|
|
343
|
+
op-statement-0 ::= "<" op-statement-1
|
|
344
|
+
op-statement ::= "<" op-statement-0
|
|
345
|
+
send-mid-any-6 ::= "[" status-mid "]" target ":" send-1-b0 ":SEND1" | target ":" send-1-b0 ":SEND1" | "[" status-mid "]" ":" send-1-b0 ":SEND1" | ":" send-1-b0 ":SEND1"
|
|
346
|
+
send-mid-any-7 ::= "[" status-mid "]" target ":" send-2-b0 ":SEND2" | target ":" send-2-b0 ":SEND2" | "[" status-mid "]" ":" send-2-b0 ":SEND2" | ":" send-2-b0 ":SEND2"
|
|
347
|
+
send-mid-any-5 ::= "[" status-mid "]" target ":" send-b0 ":SEND" | target ":" send-b0 ":SEND" | "[" status-mid "]" ":" send-b0 ":SEND" | ":" send-b0 ":SEND" | "1" send-mid-any-6 | "2" send-mid-any-7
|
|
348
|
+
send-mid-any-4 ::= "D" send-mid-any-5
|
|
349
|
+
send-mid-any-3 ::= "N" send-mid-any-4
|
|
350
|
+
send-mid-any-2 ::= "E" send-mid-any-3
|
|
351
|
+
send-mid-any-1 ::= "S" send-mid-any-2
|
|
352
|
+
send-mid-any-0 ::= "<" send-mid-any-1
|
|
353
|
+
send-mid-any ::= "<" send-mid-any-0
|
|
354
|
+
send-final-any-6 ::= "[102]" target? ":" send-1-b0ne ":SEND1" | "[202]" target? park? ":" send-1-b0ne ":SEND1" | "[" status-final-rest "]" target? ":" send-1-b0ne ":SEND1"
|
|
355
|
+
send-final-any-7 ::= "[102]" target? ":" send-2-b0ne ":SEND2" | "[202]" target? park? ":" send-2-b0ne ":SEND2" | "[" status-final-rest "]" target? ":" send-2-b0ne ":SEND2"
|
|
356
|
+
send-final-any-5 ::= "[102]" target? ":" send-b0ne ":SEND" | "[202]" target? park? ":" send-b0ne ":SEND" | "[" status-final-rest "]" target? ":" send-b0ne ":SEND" | "1" send-final-any-6 | "2" send-final-any-7
|
|
357
|
+
send-final-any-4 ::= "D" send-final-any-5
|
|
358
|
+
send-final-any-3 ::= "N" send-final-any-4
|
|
359
|
+
send-final-any-2 ::= "E" send-final-any-3
|
|
360
|
+
send-final-any-1 ::= "S" send-final-any-2
|
|
361
|
+
send-final-any-0 ::= "<" send-final-any-1
|
|
362
|
+
send-final-any ::= "<" send-final-any-0
|
|
363
|
+
send-final-first-6 ::= "[202]" target? park? ":" send-1-b0ne ":SEND1" | "[" status-final-rest "]" target? ":" send-1-b0ne ":SEND1"
|
|
364
|
+
send-final-first-7 ::= "[202]" target? park? ":" send-2-b0ne ":SEND2" | "[" status-final-rest "]" target? ":" send-2-b0ne ":SEND2"
|
|
365
|
+
send-final-first-5 ::= "[202]" target? park? ":" send-b0ne ":SEND" | "[" status-final-rest "]" target? ":" send-b0ne ":SEND" | "1" send-final-first-6 | "2" send-final-first-7
|
|
366
|
+
send-final-first-4 ::= "D" send-final-first-5
|
|
367
|
+
send-final-first-3 ::= "N" send-final-first-4
|
|
368
|
+
send-final-first-2 ::= "E" send-final-first-3
|
|
369
|
+
send-final-first-1 ::= "S" send-final-first-2
|
|
370
|
+
send-final-first-0 ::= "<" send-final-first-1
|
|
371
|
+
send-final-first ::= "<" send-final-first-0
|
|
372
|
+
status-final-rest ::= "200" | "300" | "499"
|
|
373
|
+
park ::= "<" park-t park-poll? ">"
|
|
374
|
+
park-t ::= "-1" | [0-9]+
|
|
375
|
+
park-poll ::= "," [0-9]+
|
|
376
|
+
status-mid ::= [05-9] [0-9] [0-9] | "1" status-mid-1 | "2" status-mid-2 | "3" status-mid-3 | "4" status-mid-4
|
|
377
|
+
status-mid-1 ::= "0" [0-13-9] | [1-9] [0-9]
|
|
378
|
+
status-mid-2 ::= "0" [13-9] | [1-9] [0-9]
|
|
379
|
+
status-mid-3 ::= "0" [1-9] | [1-9] [0-9]
|
|
380
|
+
status-mid-4 ::= "9" [0-8] | [0-8] [0-9]
|
|
381
|
+
tags ::= "[" tag tag-rest* "]"
|
|
382
|
+
branch ::= "[" [A-Za-z0-9_./-]+ "]"
|
|
383
|
+
tag ::= [A-Za-z0-9_.-]+
|
|
384
|
+
tag-rest ::= "," tag
|
|
385
|
+
target ::= "(" target-inner ")"
|
|
386
|
+
target-inner ::= target-atom+
|
|
387
|
+
target-atom ::= [^\x00-\x08\x0B-\x0C\x0E-\x1F\x7F\\()<\r\n] | target-escape
|
|
388
|
+
target-escape ::= "\\\\" | "\\(" | "\\)"
|
|
389
|
+
line ::= "<" int line-rest* ">"
|
|
390
|
+
line-rest ::= "," " "? int
|
|
391
|
+
int ::= "-"? [0-9]+ frac?
|
|
392
|
+
frac ::= "." [0-9]+
|
|
393
|
+
exec-sig ::= "[" [a-z] [a-z0-9_-]* "]"
|
|
394
|
+
kill-sig ::= "[" [0-9] [0-9]? "]"
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schemas.plurnk.dev/v0/ClientDisplayCapabilities.json",
|
|
4
|
+
"title": "ClientDisplayCapabilities",
|
|
5
|
+
"description": "The installed scheme and MIME capability identities with optional opaque client presentation metadata.",
|
|
6
|
+
"type": "array",
|
|
7
|
+
"items": {
|
|
8
|
+
"oneOf": [
|
|
9
|
+
{ "$ref": "#/$defs/schemeCapability" },
|
|
10
|
+
{ "$ref": "#/$defs/mimetypeCapability" }
|
|
11
|
+
]
|
|
12
|
+
},
|
|
13
|
+
"$defs": {
|
|
14
|
+
"display": {
|
|
15
|
+
"title": "CapabilityDisplay",
|
|
16
|
+
"type": "object",
|
|
17
|
+
"additionalProperties": false,
|
|
18
|
+
"properties": {
|
|
19
|
+
"glyph": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"minLength": 1
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"schemeCapability": {
|
|
26
|
+
"title": "SchemeDisplayCapability",
|
|
27
|
+
"type": "object",
|
|
28
|
+
"required": ["kind", "scheme", "display"],
|
|
29
|
+
"additionalProperties": false,
|
|
30
|
+
"properties": {
|
|
31
|
+
"kind": { "const": "scheme" },
|
|
32
|
+
"scheme": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"minLength": 1
|
|
35
|
+
},
|
|
36
|
+
"display": { "$ref": "#/$defs/display" }
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"mimetypeCapability": {
|
|
40
|
+
"title": "MimetypeDisplayCapability",
|
|
41
|
+
"type": "object",
|
|
42
|
+
"required": ["kind", "mimetype", "display"],
|
|
43
|
+
"additionalProperties": false,
|
|
44
|
+
"properties": {
|
|
45
|
+
"kind": { "const": "mimetype" },
|
|
46
|
+
"mimetype": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"minLength": 1
|
|
49
|
+
},
|
|
50
|
+
"display": { "$ref": "#/$defs/display" }
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schemas.plurnk.dev/v0/ClientStatement.json",
|
|
4
|
+
"title": "ClientStatement",
|
|
5
|
+
"description": "The client-tier AST returned by PlurnkParser.parseClient: the closed protocol PlurnkStatement union plus read-shaped LOOK and BUFF utility statements.",
|
|
6
|
+
"oneOf": [
|
|
7
|
+
{ "$ref": "https://schemas.plurnk.dev/v0/PlurnkStatement.json" },
|
|
8
|
+
{ "$ref": "#/$defs/LookStatement" },
|
|
9
|
+
{ "$ref": "#/$defs/BuffStatement" }
|
|
10
|
+
],
|
|
11
|
+
"$defs": {
|
|
12
|
+
"TagSignal": {
|
|
13
|
+
"oneOf": [
|
|
14
|
+
{ "type": "array", "items": { "type": "string" } },
|
|
15
|
+
{ "type": "null" }
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
"PathOrNull": {
|
|
19
|
+
"oneOf": [
|
|
20
|
+
{ "$ref": "https://schemas.plurnk.dev/v0/ParsedPath.json" },
|
|
21
|
+
{ "type": "null" }
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
"LineMarkerOrNull": {
|
|
25
|
+
"oneOf": [
|
|
26
|
+
{ "$ref": "https://schemas.plurnk.dev/v0/LineMarker.json" },
|
|
27
|
+
{ "type": "null" }
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
"MatcherBodyOrNull": {
|
|
31
|
+
"oneOf": [
|
|
32
|
+
{ "$ref": "https://schemas.plurnk.dev/v0/MatcherBody.json" },
|
|
33
|
+
{ "type": "null" }
|
|
34
|
+
]
|
|
35
|
+
},
|
|
36
|
+
"PositionRef": {
|
|
37
|
+
"$ref": "https://schemas.plurnk.dev/v0/Position.json"
|
|
38
|
+
},
|
|
39
|
+
"LookStatement": {
|
|
40
|
+
"type": "object",
|
|
41
|
+
"required": ["op", "suffix", "signal", "target", "lineMarker", "body", "position"],
|
|
42
|
+
"additionalProperties": false,
|
|
43
|
+
"properties": {
|
|
44
|
+
"op": { "const": "LOOK" },
|
|
45
|
+
"suffix": { "type": "string" },
|
|
46
|
+
"signal": { "$ref": "#/$defs/TagSignal" },
|
|
47
|
+
"target": { "$ref": "#/$defs/PathOrNull" },
|
|
48
|
+
"lineMarker": { "$ref": "#/$defs/LineMarkerOrNull" },
|
|
49
|
+
"body": { "$ref": "#/$defs/MatcherBodyOrNull" },
|
|
50
|
+
"position": { "$ref": "#/$defs/PositionRef" }
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"BuffStatement": {
|
|
54
|
+
"type": "object",
|
|
55
|
+
"required": ["op", "suffix", "signal", "target", "lineMarker", "body", "position"],
|
|
56
|
+
"additionalProperties": false,
|
|
57
|
+
"properties": {
|
|
58
|
+
"op": { "const": "BUFF" },
|
|
59
|
+
"suffix": { "type": "string" },
|
|
60
|
+
"signal": { "$ref": "#/$defs/TagSignal" },
|
|
61
|
+
"target": { "$ref": "#/$defs/PathOrNull" },
|
|
62
|
+
"lineMarker": { "$ref": "#/$defs/LineMarkerOrNull" },
|
|
63
|
+
"body": { "$ref": "#/$defs/MatcherBodyOrNull" },
|
|
64
|
+
"position": { "$ref": "#/$defs/PositionRef" }
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|