@plurnk/plurnk-grammar 0.2.1 → 0.6.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.
Files changed (77) hide show
  1. package/bin/plurnk.js +1 -1
  2. package/{schema → dist/schema}/LogEntry.json +1 -1
  3. package/{schema → dist/schema}/Packet.json +16 -4
  4. package/{schema → dist/schema}/ProviderDeclaration.json +3 -3
  5. package/{schema → dist/schema}/Run.json +6 -1
  6. package/{schema → dist/schema}/Session.json +1 -1
  7. package/{schema → dist/schema}/Turn.json +10 -1
  8. package/dist/src/AstBuilder.d.ts +19 -0
  9. package/dist/src/AstBuilder.d.ts.map +1 -0
  10. package/{src/AstBuilder.ts → dist/src/AstBuilder.js} +176 -161
  11. package/dist/src/AstBuilder.js.map +1 -0
  12. package/dist/src/PlurnkErrorStrategy.d.ts +10 -0
  13. package/dist/src/PlurnkErrorStrategy.d.ts.map +1 -0
  14. package/{src/PlurnkErrorStrategy.ts → dist/src/PlurnkErrorStrategy.js} +41 -49
  15. package/dist/src/PlurnkErrorStrategy.js.map +1 -0
  16. package/dist/src/PlurnkParseError.d.ts +14 -0
  17. package/dist/src/PlurnkParseError.d.ts.map +1 -0
  18. package/{src/PlurnkParseError.ts → dist/src/PlurnkParseError.js} +6 -9
  19. package/dist/src/PlurnkParseError.js.map +1 -0
  20. package/dist/src/PlurnkParser.d.ts +6 -0
  21. package/dist/src/PlurnkParser.d.ts.map +1 -0
  22. package/{src/PlurnkParser.ts → dist/src/PlurnkParser.js} +32 -40
  23. package/dist/src/PlurnkParser.js.map +1 -0
  24. package/dist/src/RecordingListener.d.ts +9 -0
  25. package/dist/src/RecordingListener.d.ts.map +1 -0
  26. package/dist/src/RecordingListener.js +19 -0
  27. package/dist/src/RecordingListener.js.map +1 -0
  28. package/dist/src/Validator.d.ts +28 -0
  29. package/dist/src/Validator.d.ts.map +1 -0
  30. package/dist/src/Validator.js +86 -0
  31. package/dist/src/Validator.js.map +1 -0
  32. package/dist/src/generated/plurnkLexer.d.ts +88 -0
  33. package/dist/src/generated/plurnkLexer.d.ts.map +1 -0
  34. package/dist/src/generated/plurnkLexer.js +440 -0
  35. package/dist/src/generated/plurnkLexer.js.map +1 -0
  36. package/dist/src/generated/plurnkParser.d.ts +274 -0
  37. package/dist/src/generated/plurnkParser.d.ts.map +1 -0
  38. package/dist/src/generated/plurnkParser.js +1833 -0
  39. package/dist/src/generated/plurnkParser.js.map +1 -0
  40. package/{src/generated/plurnkParserVisitor.ts → dist/src/generated/plurnkParserVisitor.d.ts} +2 -7
  41. package/dist/src/generated/plurnkParserVisitor.d.ts.map +1 -0
  42. package/dist/src/generated/plurnkParserVisitor.js +131 -0
  43. package/dist/src/generated/plurnkParserVisitor.js.map +1 -0
  44. package/dist/src/index.d.ts +10 -0
  45. package/dist/src/index.d.ts.map +1 -0
  46. package/dist/src/index.js +7 -0
  47. package/dist/src/index.js.map +1 -0
  48. package/dist/src/types.d.ts +23 -0
  49. package/dist/src/types.d.ts.map +1 -0
  50. package/dist/src/types.generated.d.ts +472 -0
  51. package/dist/src/types.generated.d.ts.map +1 -0
  52. package/dist/src/types.generated.js +4 -0
  53. package/dist/src/types.generated.js.map +1 -0
  54. package/dist/src/types.js +4 -0
  55. package/dist/src/types.js.map +1 -0
  56. package/package.json +10 -7
  57. package/plurnk.md +1 -1
  58. package/src/RecordingListener.ts +0 -34
  59. package/src/Validator.ts +0 -94
  60. package/src/generated/plurnkLexer.ts +0 -467
  61. package/src/generated/plurnkParser.ts +0 -1891
  62. package/src/index.ts +0 -29
  63. package/src/types.generated.ts +0 -497
  64. package/src/types.ts +0 -30
  65. /package/{schema → dist/schema}/Agent.json +0 -0
  66. /package/{schema → dist/schema}/ChannelContent.json +0 -0
  67. /package/{schema → dist/schema}/Entry.json +0 -0
  68. /package/{schema → dist/schema}/LineMarker.json +0 -0
  69. /package/{schema → dist/schema}/Loop.json +0 -0
  70. /package/{schema → dist/schema}/MatcherBody.json +0 -0
  71. /package/{schema → dist/schema}/Params.json +0 -0
  72. /package/{schema → dist/schema}/ParsedPath.json +0 -0
  73. /package/{schema → dist/schema}/PlurnkStatement.json +0 -0
  74. /package/{schema → dist/schema}/Position.json +0 -0
  75. /package/{schema → dist/schema}/SchemeRegistration.json +0 -0
  76. /package/{schema → dist/schema}/SendBody.json +0 -0
  77. /package/{schema → dist/schema}/Visibility.json +0 -0
@@ -1,18 +1,8 @@
1
- import {
2
- DefaultErrorStrategy,
3
- InputMismatchException,
4
- NoViableAltException,
5
- Token,
6
- type Parser,
7
- type RecognitionException,
8
- } from "antlr4ng";
9
- import { plurnkParser } from "./generated/plurnkParser.ts";
10
- import { plurnkLexer } from "./generated/plurnkLexer.ts";
11
-
1
+ import { DefaultErrorStrategy, InputMismatchException, NoViableAltException, Token, } from "antlr4ng";
2
+ import { plurnkParser } from "./generated/plurnkParser.js";
12
3
  export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
13
4
  static #OFFENDING_CHAR_RE = /at: '([^']*)'$/;
14
-
15
- static #LEXER_MODE_CONTEXT: Record<string, string> = {
5
+ static #LEXER_MODE_CONTEXT = {
16
6
  DEFAULT_MODE: "between statements",
17
7
  SLOTS: "in slot region — expected `[signal]`, `(path)`, `<L>`, or `:body:` (any order)",
18
8
  SIGNAL_TAGS: "in tag signal — expected tag, `,`, or `]`",
@@ -21,8 +11,7 @@ export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
21
11
  PATH: "in path slot — expected path characters or `)`",
22
12
  BODY: "in body",
23
13
  };
24
-
25
- static #SLOT_BY_TOKEN: Record<number, string> = {
14
+ static #SLOT_BY_TOKEN = {
26
15
  [plurnkParser.OPEN_FIND]: "open tag `<<OPsuffix`",
27
16
  [plurnkParser.OPEN_READ]: "open tag `<<OPsuffix`",
28
17
  [plurnkParser.OPEN_EDIT]: "open tag `<<OPsuffix`",
@@ -47,69 +36,71 @@ export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
47
36
  [plurnkParser.CLOSE_TAG]: "close tag `:OPsuffix`",
48
37
  [plurnkParser.TEXT]: "text between statements",
49
38
  };
50
-
51
- static translateLexerMessage(lexer: plurnkLexer, originalMsg: string): string {
39
+ static translateLexerMessage(lexer, originalMsg) {
52
40
  const modeName = lexer.modeNames[lexer.mode] ?? "DEFAULT_MODE";
53
41
  const context = PlurnkErrorStrategy.#LEXER_MODE_CONTEXT[modeName] ?? "between statements";
54
42
  const ch = PlurnkErrorStrategy.#extractOffendingChar(originalMsg);
55
43
  return `unrecognized character ${ch} ${context}`;
56
44
  }
57
-
58
- static #extractOffendingChar(msg: string): string {
45
+ static #extractOffendingChar(msg) {
59
46
  const m = PlurnkErrorStrategy.#OFFENDING_CHAR_RE.exec(msg);
60
- if (!m) return "input";
47
+ if (!m)
48
+ return "input";
61
49
  const text = m[1];
62
50
  return text === "" ? "end of input" : `'${text}'`;
63
51
  }
64
-
65
- static #describeToken(tok: Token | null): string {
66
- if (!tok || tok.type === Token.EOF) return "end of input";
52
+ static #describeToken(tok) {
53
+ if (!tok || tok.type === Token.EOF)
54
+ return "end of input";
67
55
  const slot = PlurnkErrorStrategy.#SLOT_BY_TOKEN[tok.type];
68
- if (slot) return slot;
56
+ if (slot)
57
+ return slot;
69
58
  const text = tok.text ?? "";
70
59
  return text.length > 0 ? `'${text}'` : "input";
71
60
  }
72
-
73
- static #describeExpected(e: RecognitionException): string | null {
61
+ static #describeExpected(e) {
74
62
  const expected = e.getExpectedTokens();
75
- if (!expected) return null;
76
- const types: number[] = expected.toArray();
77
- if (types.length === 0) return null;
63
+ if (!expected)
64
+ return null;
65
+ const types = expected.toArray();
66
+ if (types.length === 0)
67
+ return null;
78
68
  const names = types
79
69
  .map((t) => PlurnkErrorStrategy.#SLOT_BY_TOKEN[t])
80
- .filter((s): s is string => Boolean(s));
81
- if (names.length === 0) return null;
82
- if (names.length === 1) return names[0];
83
- if (names.length === 2) return `${names[0]} or ${names[1]}`;
70
+ .filter((s) => Boolean(s));
71
+ if (names.length === 0)
72
+ return null;
73
+ if (names.length === 1)
74
+ return names[0];
75
+ if (names.length === 2)
76
+ return `${names[0]} or ${names[1]}`;
84
77
  return `${names.slice(0, -1).join(", ")}, or ${names[names.length - 1]}`;
85
78
  }
86
-
87
- public override reportError(recognizer: Parser, e: RecognitionException): void {
88
- if (this.inErrorRecoveryMode(recognizer)) return;
79
+ reportError(recognizer, e) {
80
+ if (this.inErrorRecoveryMode(recognizer))
81
+ return;
89
82
  this.beginErrorCondition(recognizer);
90
-
91
83
  const got = PlurnkErrorStrategy.#describeToken(e.offendingToken);
92
84
  const expected = PlurnkErrorStrategy.#describeExpected(e);
93
-
94
- let msg: string;
85
+ let msg;
95
86
  if (e instanceof InputMismatchException || e instanceof NoViableAltException) {
96
87
  msg = expected ? `unexpected ${got}; expected ${expected}` : `unexpected ${got}`;
97
- } else {
88
+ }
89
+ else {
98
90
  msg = `unexpected ${got}`;
99
91
  }
100
-
101
92
  recognizer.notifyErrorListeners(msg, e.offendingToken, e);
102
93
  }
103
-
104
- public override reportMissingToken(recognizer: Parser): void {
105
- if (this.inErrorRecoveryMode(recognizer)) return;
94
+ reportMissingToken(recognizer) {
95
+ if (this.inErrorRecoveryMode(recognizer))
96
+ return;
106
97
  this.beginErrorCondition(recognizer);
107
98
  const tok = recognizer.getCurrentToken();
108
99
  const expectedTokens = this.getExpectedTokens(recognizer);
109
100
  const expectedNames = expectedTokens
110
101
  .toArray()
111
102
  .map((t) => PlurnkErrorStrategy.#SLOT_BY_TOKEN[t])
112
- .filter((s): s is string => Boolean(s));
103
+ .filter((s) => Boolean(s));
113
104
  const expected = expectedNames.length > 0
114
105
  ? (expectedNames.length === 1 ? expectedNames[0] : expectedNames.join(" or "))
115
106
  : "more input";
@@ -117,9 +108,9 @@ export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
117
108
  const msg = `expected ${expected}; got ${got}`;
118
109
  recognizer.notifyErrorListeners(msg, tok, null);
119
110
  }
120
-
121
- public override reportUnwantedToken(recognizer: Parser): void {
122
- if (this.inErrorRecoveryMode(recognizer)) return;
111
+ reportUnwantedToken(recognizer) {
112
+ if (this.inErrorRecoveryMode(recognizer))
113
+ return;
123
114
  this.beginErrorCondition(recognizer);
124
115
  const tok = recognizer.getCurrentToken();
125
116
  const got = PlurnkErrorStrategy.#describeToken(tok);
@@ -127,7 +118,7 @@ export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
127
118
  const expectedNames = expectedTokens
128
119
  .toArray()
129
120
  .map((t) => PlurnkErrorStrategy.#SLOT_BY_TOKEN[t])
130
- .filter((s): s is string => Boolean(s));
121
+ .filter((s) => Boolean(s));
131
122
  const expected = expectedNames.length > 0
132
123
  ? (expectedNames.length === 1 ? expectedNames[0] : expectedNames.join(" or "))
133
124
  : null;
@@ -137,3 +128,4 @@ export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
137
128
  recognizer.notifyErrorListeners(msg, tok, null);
138
129
  }
139
130
  }
131
+ //# sourceMappingURL=PlurnkErrorStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlurnkErrorStrategy.js","sourceRoot":"","sources":["../../src/PlurnkErrorStrategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export type ErrorSource = "lexer" | "parser" | "visitor";
2
+ export default class PlurnkParseError extends Error {
3
+ readonly line: number;
4
+ readonly column: number;
5
+ readonly source: ErrorSource;
6
+ constructor(line: number, column: number, source: ErrorSource, message: string);
7
+ toJSON(): {
8
+ line: number;
9
+ column: number;
10
+ source: ErrorSource;
11
+ message: string;
12
+ };
13
+ }
14
+ //# sourceMappingURL=PlurnkParseError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlurnkParseError.d.ts","sourceRoot":"","sources":["../../src/PlurnkParseError.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEzD,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;gBAEjB,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM;IAQ9E,MAAM,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;CAQnF"}
@@ -1,19 +1,15 @@
1
- export type ErrorSource = "lexer" | "parser" | "visitor";
2
-
3
1
  export default class PlurnkParseError extends Error {
4
- readonly line: number;
5
- readonly column: number;
6
- readonly source: ErrorSource;
7
-
8
- constructor(line: number, column: number, source: ErrorSource, message: string) {
2
+ line;
3
+ column;
4
+ source;
5
+ constructor(line, column, source, message) {
9
6
  super(`Plurnk ${source} error at ${line}:${column} — ${message}`);
10
7
  this.name = "PlurnkParseError";
11
8
  this.line = line;
12
9
  this.column = column;
13
10
  this.source = source;
14
11
  }
15
-
16
- toJSON(): { line: number; column: number; source: ErrorSource; message: string } {
12
+ toJSON() {
17
13
  return {
18
14
  line: this.line,
19
15
  column: this.column,
@@ -22,3 +18,4 @@ export default class PlurnkParseError extends Error {
22
18
  };
23
19
  }
24
20
  }
21
+ //# sourceMappingURL=PlurnkParseError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlurnkParseError.js","sourceRoot":"","sources":["../../src/PlurnkParseError.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,KAAK;IACtC,IAAI,CAAS;IACb,MAAM,CAAS;IACf,MAAM,CAAc;IAE7B,YAAY,IAAY,EAAE,MAAc,EAAE,MAAmB,EAAE,OAAe;QAC1E,KAAK,CAAC,UAAU,MAAM,aAAa,IAAI,IAAI,MAAM,MAAM,OAAO,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,MAAM;QACF,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;SACxB,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1,6 @@
1
+ import type { ParseResult } from "./types.ts";
2
+ export default class PlurnkParser {
3
+ #private;
4
+ static parse(input: string): ParseResult;
5
+ }
6
+ //# sourceMappingURL=PlurnkParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlurnkParser.d.ts","sourceRoot":"","sources":["../../src/PlurnkParser.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAa,WAAW,EAAY,MAAM,YAAY,CAAC;AAEnE,MAAM,CAAC,OAAO,OAAO,YAAY;;IAC7B,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;CAiF3C"}
@@ -1,67 +1,61 @@
1
1
  import { CharStream, CommonTokenStream } from "antlr4ng";
2
- import { plurnkLexer } from "./generated/plurnkLexer.ts";
3
- import { plurnkParser } from "./generated/plurnkParser.ts";
4
- import AstBuilder from "./AstBuilder.ts";
5
- import PlurnkParseError from "./PlurnkParseError.ts";
6
- import PlurnkErrorStrategy from "./PlurnkErrorStrategy.ts";
7
- import RecordingListener from "./RecordingListener.ts";
8
- import type { ParseItem, ParseResult, Position } from "./types.ts";
9
-
2
+ import { plurnkLexer } from "./generated/plurnkLexer.js";
3
+ import { plurnkParser } from "./generated/plurnkParser.js";
4
+ import AstBuilder from "./AstBuilder.js";
5
+ import PlurnkParseError from "./PlurnkParseError.js";
6
+ import PlurnkErrorStrategy from "./PlurnkErrorStrategy.js";
7
+ import RecordingListener from "./RecordingListener.js";
10
8
  export default class PlurnkParser {
11
- static parse(input: string): ParseResult {
9
+ static parse(input) {
12
10
  const lexer = new plurnkLexer(CharStream.fromString(input));
13
- const errors: PlurnkParseError[] = [];
11
+ const errors = [];
14
12
  lexer.removeErrorListeners();
15
13
  lexer.addErrorListener(new RecordingListener("lexer", errors));
16
-
17
14
  const tokenStream = new CommonTokenStream(lexer);
18
15
  const parser = new plurnkParser(tokenStream);
19
16
  parser.removeErrorListeners();
20
17
  parser.addErrorListener(new RecordingListener("parser", errors));
21
18
  parser.errorHandler = new PlurnkErrorStrategy();
22
-
23
19
  const tree = parser.document();
24
-
25
- const items: ParseItem[] = [];
26
- const consumedErrors = new Set<PlurnkParseError>();
27
-
20
+ const items = [];
21
+ const consumedErrors = new Set();
28
22
  for (const child of tree.children ?? []) {
29
- const ctx = child as any;
23
+ const ctx = child;
30
24
  const start = ctx.start ?? ctx.symbol;
31
25
  const stop = ctx.stop ?? ctx.symbol;
32
- if (!start) continue;
33
-
26
+ if (!start)
27
+ continue;
34
28
  if (ctx.ruleIndex === plurnkParser.RULE_statement) {
35
- const errForStatement = errors.find(
36
- (e) => !consumedErrors.has(e) && PlurnkParser.#errorInRange(e, start, stop ?? start),
37
- );
29
+ const errForStatement = errors.find((e) => !consumedErrors.has(e) && PlurnkParser.#errorInRange(e, start, stop ?? start));
38
30
  if (errForStatement) {
39
31
  consumedErrors.add(errForStatement);
40
32
  items.push({ kind: "error", error: errForStatement });
41
- } else {
33
+ }
34
+ else {
42
35
  try {
43
36
  items.push({ kind: "statement", statement: AstBuilder.build(ctx) });
44
- } catch (e) {
37
+ }
38
+ catch (e) {
45
39
  if (e instanceof PlurnkParseError) {
46
40
  items.push({ kind: "error", error: e });
47
- } else {
41
+ }
42
+ else {
48
43
  throw e;
49
44
  }
50
45
  }
51
46
  }
52
- } else if (ctx.symbol?.type === plurnkLexer.TEXT) {
53
- const position: Position = { line: start.line, column: start.column };
47
+ }
48
+ else if (ctx.symbol?.type === plurnkLexer.TEXT) {
49
+ const position = { line: start.line, column: start.column };
54
50
  items.push({ kind: "text", text: ctx.symbol.text ?? "", position });
55
51
  }
56
52
  }
57
-
58
53
  for (const err of errors) {
59
54
  if (!consumedErrors.has(err)) {
60
55
  items.push({ kind: "error", error: err });
61
56
  }
62
57
  }
63
-
64
- let unparsedTail: ParseResult["unparsedTail"];
58
+ let unparsedTail;
65
59
  if (lexer.mode !== 0) {
66
60
  const openTag = lexer.getOpenTag();
67
61
  const from = { line: lexer.getOpenTagLine(), column: lexer.getOpenTagColumn() };
@@ -75,18 +69,16 @@ export default class PlurnkParser {
75
69
  : `statement \`<<${openTag}\` opened at line ${from.line} but never reached its close tag — add \`:${openTag}\` to terminate`;
76
70
  unparsedTail = { from, reason };
77
71
  }
78
-
79
72
  return { items, unparsedTail };
80
73
  }
81
-
82
- static #errorInRange(
83
- err: PlurnkParseError,
84
- start: { line: number; column: number },
85
- stop: { line: number; column: number },
86
- ): boolean {
87
- if (err.line < start.line || err.line > stop.line) return false;
88
- if (err.line === start.line && err.column < start.column) return false;
89
- if (err.line === stop.line && err.column > stop.column) return false;
74
+ static #errorInRange(err, start, stop) {
75
+ if (err.line < start.line || err.line > stop.line)
76
+ return false;
77
+ if (err.line === start.line && err.column < start.column)
78
+ return false;
79
+ if (err.line === stop.line && err.column > stop.column)
80
+ return false;
90
81
  return true;
91
82
  }
92
83
  }
84
+ //# sourceMappingURL=PlurnkParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlurnkParser.js","sourceRoot":"","sources":["../../src/PlurnkParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { BaseErrorListener, type RecognitionException, type Recognizer, type Token } from "antlr4ng";
2
+ import PlurnkParseError from "./PlurnkParseError.ts";
3
+ export default class RecordingListener extends BaseErrorListener {
4
+ readonly errors: PlurnkParseError[];
5
+ readonly source: "lexer" | "parser";
6
+ constructor(source: "lexer" | "parser", errors: PlurnkParseError[]);
7
+ syntaxError(recognizer: Recognizer<any>, _offendingSymbol: Token | null, line: number, column: number, msg: string, _e: RecognitionException | null): void;
8
+ }
9
+ //# sourceMappingURL=RecordingListener.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecordingListener.d.ts","sourceRoot":"","sources":["../../src/RecordingListener.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,UAAU,EACf,KAAK,KAAK,EACb,MAAM,UAAU,CAAC;AAElB,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAGrD,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,iBAAiB;IAC5D,QAAQ,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,QAAQ,CAAC;gBAExB,MAAM,EAAE,OAAO,GAAG,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE;IAMzD,WAAW,CAChB,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,EAC3B,gBAAgB,EAAE,KAAK,GAAG,IAAI,EAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,oBAAoB,GAAG,IAAI,GAChC,IAAI;CAMV"}
@@ -0,0 +1,19 @@
1
+ import { BaseErrorListener, } from "antlr4ng";
2
+ import PlurnkParseError from "./PlurnkParseError.js";
3
+ import PlurnkErrorStrategy from "./PlurnkErrorStrategy.js";
4
+ export default class RecordingListener extends BaseErrorListener {
5
+ errors;
6
+ source;
7
+ constructor(source, errors) {
8
+ super();
9
+ this.source = source;
10
+ this.errors = errors;
11
+ }
12
+ syntaxError(recognizer, _offendingSymbol, line, column, msg, _e) {
13
+ const translated = this.source === "lexer"
14
+ ? PlurnkErrorStrategy.translateLexerMessage(recognizer, msg)
15
+ : msg;
16
+ this.errors.push(new PlurnkParseError(line, column, this.source, translated));
17
+ }
18
+ }
19
+ //# sourceMappingURL=RecordingListener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecordingListener.js","sourceRoot":"","sources":["../../src/RecordingListener.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iBAAiB,GAIpB,MAAM,UAAU,CAAC;AAElB,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAE3D,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,iBAAiB;IACnD,MAAM,CAAqB;IAC3B,MAAM,CAAqB;IAEpC,YAAY,MAA0B,EAAE,MAA0B;QAC9D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEQ,WAAW,CAChB,UAA2B,EAC3B,gBAA8B,EAC9B,IAAY,EACZ,MAAc,EACd,GAAW,EACX,EAA+B;QAE/B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,KAAK,OAAO;YACtC,CAAC,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,UAAyB,EAAE,GAAG,CAAC;YAC3E,CAAC,CAAC,GAAG,CAAC;QACV,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAClF,CAAC;CACJ"}
@@ -0,0 +1,28 @@
1
+ import { type OutputUnit } from "@cfworker/json-schema";
2
+ export type ValidationResult = {
3
+ valid: boolean;
4
+ errors: OutputUnit[];
5
+ };
6
+ export default class Validator {
7
+ #private;
8
+ static validatePosition(obj: unknown): ValidationResult;
9
+ static validateLineMarker(obj: unknown): ValidationResult;
10
+ static validateParams(obj: unknown): ValidationResult;
11
+ static validateChannelContent(obj: unknown): ValidationResult;
12
+ static validateParsedPath(obj: unknown): ValidationResult;
13
+ static validateMatcherBody(obj: unknown): ValidationResult;
14
+ static validateSendBody(obj: unknown): ValidationResult;
15
+ static validateEntry(obj: unknown): ValidationResult;
16
+ static validateSchemeRegistration(obj: unknown): ValidationResult;
17
+ static validateProviderDeclaration(obj: unknown): ValidationResult;
18
+ static validateVisibility(obj: unknown): ValidationResult;
19
+ static validateLogEntry(obj: unknown): ValidationResult;
20
+ static validatePlurnkStatement(obj: unknown): ValidationResult;
21
+ static validateTurn(obj: unknown): ValidationResult;
22
+ static validateLoop(obj: unknown): ValidationResult;
23
+ static validateRun(obj: unknown): ValidationResult;
24
+ static validateSession(obj: unknown): ValidationResult;
25
+ static validateAgent(obj: unknown): ValidationResult;
26
+ static validatePacket(obj: unknown): ValidationResult;
27
+ }
28
+ //# sourceMappingURL=Validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Validator.d.ts","sourceRoot":"","sources":["../../src/Validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,UAAU,EAAe,MAAM,uBAAuB,CAAC;AAqB/F,MAAM,MAAM,gBAAgB,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,UAAU,EAAE,CAAA;CAAE,CAAC;AAaxE,MAAM,CAAC,OAAO,OAAO,SAAS;;IAmC1B,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACvD,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACzD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACrD,MAAM,CAAC,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IAC7D,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACzD,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IAC1D,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACvD,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACpD,MAAM,CAAC,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACjE,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IAClE,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACzD,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACvD,MAAM,CAAC,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IAC9D,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACnD,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACnD,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IAClD,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACtD,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IACpD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;CAMxD"}
@@ -0,0 +1,86 @@
1
+ import { Validator as CfValidator } from "@cfworker/json-schema";
2
+ import positionSchema from "../schema/Position.json" with { type: "json" };
3
+ import lineMarkerSchema from "../schema/LineMarker.json" with { type: "json" };
4
+ import paramsSchema from "../schema/Params.json" with { type: "json" };
5
+ import channelContentSchema from "../schema/ChannelContent.json" with { type: "json" };
6
+ import parsedPathSchema from "../schema/ParsedPath.json" with { type: "json" };
7
+ import matcherBodySchema from "../schema/MatcherBody.json" with { type: "json" };
8
+ import sendBodySchema from "../schema/SendBody.json" with { type: "json" };
9
+ import entrySchema from "../schema/Entry.json" with { type: "json" };
10
+ import schemeRegistrationSchema from "../schema/SchemeRegistration.json" with { type: "json" };
11
+ import providerDeclarationSchema from "../schema/ProviderDeclaration.json" with { type: "json" };
12
+ import visibilitySchema from "../schema/Visibility.json" with { type: "json" };
13
+ import logEntrySchema from "../schema/LogEntry.json" with { type: "json" };
14
+ import plurnkStatementSchema from "../schema/PlurnkStatement.json" with { type: "json" };
15
+ import turnSchema from "../schema/Turn.json" with { type: "json" };
16
+ import loopSchema from "../schema/Loop.json" with { type: "json" };
17
+ import runSchema from "../schema/Run.json" with { type: "json" };
18
+ import sessionSchema from "../schema/Session.json" with { type: "json" };
19
+ import agentSchema from "../schema/Agent.json" with { type: "json" };
20
+ import packetSchema from "../schema/Packet.json" with { type: "json" };
21
+ // All foundational schemas — handy when a top-level shape transitively references many others.
22
+ const FOUNDATIONAL = [
23
+ positionSchema, lineMarkerSchema, paramsSchema, channelContentSchema,
24
+ parsedPathSchema, matcherBodySchema, sendBodySchema,
25
+ plurnkStatementSchema,
26
+ entrySchema, logEntrySchema,
27
+ schemeRegistrationSchema, providerDeclarationSchema,
28
+ visibilitySchema,
29
+ packetSchema,
30
+ ];
31
+ export default class Validator {
32
+ static #position = new CfValidator(positionSchema, "2020-12");
33
+ static #lineMarker = new CfValidator(lineMarkerSchema, "2020-12");
34
+ static #params = new CfValidator(paramsSchema, "2020-12");
35
+ static #channelContent = new CfValidator(channelContentSchema, "2020-12");
36
+ static #parsedPath = Validator.#buildWithRefs(parsedPathSchema, [paramsSchema]);
37
+ static #matcherBody = new CfValidator(matcherBodySchema, "2020-12");
38
+ static #sendBody = new CfValidator(sendBodySchema, "2020-12");
39
+ static #entry = Validator.#buildWithRefs(entrySchema, [paramsSchema, channelContentSchema]);
40
+ static #schemeRegistration = new CfValidator(schemeRegistrationSchema, "2020-12");
41
+ static #providerDeclaration = new CfValidator(providerDeclarationSchema, "2020-12");
42
+ static #visibility = new CfValidator(visibilitySchema, "2020-12");
43
+ static #logEntry = Validator.#buildWithRefs(logEntrySchema, [paramsSchema, lineMarkerSchema]);
44
+ static #plurnkStatement = Validator.#buildWithRefs(plurnkStatementSchema, [positionSchema, lineMarkerSchema, paramsSchema, parsedPathSchema, matcherBodySchema, sendBodySchema]);
45
+ static #turn = Validator.#buildWithRefs(turnSchema, FOUNDATIONAL);
46
+ static #loop = new CfValidator(loopSchema, "2020-12");
47
+ static #run = new CfValidator(runSchema, "2020-12");
48
+ static #session = Validator.#buildWithRefs(sessionSchema, [schemeRegistrationSchema]);
49
+ static #agent = Validator.#buildWithRefs(agentSchema, [providerDeclarationSchema, schemeRegistrationSchema]);
50
+ static #packet = Validator.#buildWithRefs(packetSchema, FOUNDATIONAL);
51
+ static #buildWithRefs(mainSchema, refSchemas) {
52
+ const validator = new CfValidator(mainSchema, "2020-12");
53
+ const mainId = mainSchema.$id;
54
+ for (const ref of refSchemas) {
55
+ const refId = ref.$id;
56
+ if (refId && refId === mainId)
57
+ continue;
58
+ validator.addSchema(ref);
59
+ }
60
+ return validator;
61
+ }
62
+ static validatePosition(obj) { return Validator.#run_(Validator.#position, obj); }
63
+ static validateLineMarker(obj) { return Validator.#run_(Validator.#lineMarker, obj); }
64
+ static validateParams(obj) { return Validator.#run_(Validator.#params, obj); }
65
+ static validateChannelContent(obj) { return Validator.#run_(Validator.#channelContent, obj); }
66
+ static validateParsedPath(obj) { return Validator.#run_(Validator.#parsedPath, obj); }
67
+ static validateMatcherBody(obj) { return Validator.#run_(Validator.#matcherBody, obj); }
68
+ static validateSendBody(obj) { return Validator.#run_(Validator.#sendBody, obj); }
69
+ static validateEntry(obj) { return Validator.#run_(Validator.#entry, obj); }
70
+ static validateSchemeRegistration(obj) { return Validator.#run_(Validator.#schemeRegistration, obj); }
71
+ static validateProviderDeclaration(obj) { return Validator.#run_(Validator.#providerDeclaration, obj); }
72
+ static validateVisibility(obj) { return Validator.#run_(Validator.#visibility, obj); }
73
+ static validateLogEntry(obj) { return Validator.#run_(Validator.#logEntry, obj); }
74
+ static validatePlurnkStatement(obj) { return Validator.#run_(Validator.#plurnkStatement, obj); }
75
+ static validateTurn(obj) { return Validator.#run_(Validator.#turn, obj); }
76
+ static validateLoop(obj) { return Validator.#run_(Validator.#loop, obj); }
77
+ static validateRun(obj) { return Validator.#run_(Validator.#run, obj); }
78
+ static validateSession(obj) { return Validator.#run_(Validator.#session, obj); }
79
+ static validateAgent(obj) { return Validator.#run_(Validator.#agent, obj); }
80
+ static validatePacket(obj) { return Validator.#run_(Validator.#packet, obj); }
81
+ static #run_(validator, obj) {
82
+ const result = validator.validate(obj);
83
+ return { valid: result.valid, errors: result.errors };
84
+ }
85
+ }
86
+ //# sourceMappingURL=Validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Validator.js","sourceRoot":"","sources":["../../src/Validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ import * as antlr from "antlr4ng";
2
+ export declare class plurnkLexer extends antlr.Lexer {
3
+ static readonly LBRACKET = 1;
4
+ static readonly RBRACKET = 2;
5
+ static readonly LPAREN = 3;
6
+ static readonly RPAREN = 4;
7
+ static readonly L_MARKER = 5;
8
+ static readonly COLON = 6;
9
+ static readonly COMMA = 7;
10
+ static readonly INT = 8;
11
+ static readonly IDENT = 9;
12
+ static readonly TAG = 10;
13
+ static readonly PATH_TEXT = 11;
14
+ static readonly BODY_TEXT = 12;
15
+ static readonly CLOSE_TAG = 13;
16
+ static readonly TEXT = 14;
17
+ static readonly OPEN_FIND = 15;
18
+ static readonly OPEN_READ = 16;
19
+ static readonly OPEN_EDIT = 17;
20
+ static readonly OPEN_COPY = 18;
21
+ static readonly OPEN_MOVE = 19;
22
+ static readonly OPEN_SHOW = 20;
23
+ static readonly OPEN_HIDE = 21;
24
+ static readonly OPEN_SEND = 22;
25
+ static readonly OPEN_EXEC = 23;
26
+ static readonly SLOTS_WS = 24;
27
+ static readonly ST_WS = 25;
28
+ static readonly SI_WS = 26;
29
+ static readonly SD_WS = 27;
30
+ static readonly ST_COMMA = 28;
31
+ static readonly B_COLON = 29;
32
+ static readonly SLOTS = 1;
33
+ static readonly SIGNAL_TAGS = 2;
34
+ static readonly SIGNAL_INT = 3;
35
+ static readonly SIGNAL_IDENT = 4;
36
+ static readonly PATH = 5;
37
+ static readonly BODY = 6;
38
+ static readonly channelNames: string[];
39
+ static readonly literalNames: (string | null)[];
40
+ static readonly symbolicNames: (string | null)[];
41
+ static readonly modeNames: string[];
42
+ static readonly ruleNames: string[];
43
+ private openTag;
44
+ private openTagLine;
45
+ private openTagColumn;
46
+ private setOpenTag;
47
+ getOpenTag(): string;
48
+ getOpenTagLine(): number;
49
+ getOpenTagColumn(): number;
50
+ private atColonCloseTag;
51
+ private isIdentChar;
52
+ private consumeRestOfCloseTagAfterColon;
53
+ private isOpKeywordAfterLtLt;
54
+ private isSendOp;
55
+ private isExecOp;
56
+ constructor(input: antlr.CharStream);
57
+ get grammarFileName(): string;
58
+ get literalNames(): (string | null)[];
59
+ get symbolicNames(): (string | null)[];
60
+ get ruleNames(): string[];
61
+ get serializedATN(): number[];
62
+ get channelNames(): string[];
63
+ get modeNames(): string[];
64
+ action(localContext: antlr.ParserRuleContext | null, ruleIndex: number, actionIndex: number): void;
65
+ private OPEN_FIND_action;
66
+ private OPEN_READ_action;
67
+ private OPEN_EDIT_action;
68
+ private OPEN_COPY_action;
69
+ private OPEN_MOVE_action;
70
+ private OPEN_SHOW_action;
71
+ private OPEN_HIDE_action;
72
+ private OPEN_SEND_action;
73
+ private OPEN_EXEC_action;
74
+ private B_CLOSE_action;
75
+ sempred(localContext: antlr.ParserRuleContext | null, ruleIndex: number, predIndex: number): boolean;
76
+ private TEXT_sempred;
77
+ private SLOTS_LB_TAGS_sempred;
78
+ private SLOTS_LB_INT_sempred;
79
+ private SLOTS_LB_IDENT_sempred;
80
+ private B_CLOSE_sempred;
81
+ static readonly _serializedATN: number[];
82
+ private static __ATN;
83
+ static get _ATN(): antlr.ATN;
84
+ private static readonly vocabulary;
85
+ get vocabulary(): antlr.Vocabulary;
86
+ private static readonly decisionsToDFA;
87
+ }
88
+ //# sourceMappingURL=plurnkLexer.d.ts.map