@plurnk/plurnk-parser 1.18.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 (37) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +71 -0
  3. package/SPEC.md +35 -0
  4. package/bin/plurnk-parser.js +43 -0
  5. package/dist/AstBuilder.d.ts +21 -0
  6. package/dist/AstBuilder.d.ts.map +1 -0
  7. package/dist/AstBuilder.js +871 -0
  8. package/dist/AstBuilder.js.map +1 -0
  9. package/dist/PlurnkErrorStrategy.d.ts +11 -0
  10. package/dist/PlurnkErrorStrategy.d.ts.map +1 -0
  11. package/dist/PlurnkErrorStrategy.js +288 -0
  12. package/dist/PlurnkErrorStrategy.js.map +1 -0
  13. package/dist/PlurnkParser.d.ts +15 -0
  14. package/dist/PlurnkParser.d.ts.map +1 -0
  15. package/dist/PlurnkParser.js +324 -0
  16. package/dist/PlurnkParser.js.map +1 -0
  17. package/dist/RecordingListener.d.ts +9 -0
  18. package/dist/RecordingListener.d.ts.map +1 -0
  19. package/dist/RecordingListener.js +37 -0
  20. package/dist/RecordingListener.js.map +1 -0
  21. package/dist/generated/plurnkLexer.d.ts +172 -0
  22. package/dist/generated/plurnkLexer.d.ts.map +1 -0
  23. package/dist/generated/plurnkLexer.js +1168 -0
  24. package/dist/generated/plurnkLexer.js.map +1 -0
  25. package/dist/generated/plurnkParser.d.ts +437 -0
  26. package/dist/generated/plurnkParser.d.ts.map +1 -0
  27. package/dist/generated/plurnkParser.js +2974 -0
  28. package/dist/generated/plurnkParser.js.map +1 -0
  29. package/dist/generated/plurnkParserVisitor.d.ts +263 -0
  30. package/dist/generated/plurnkParserVisitor.d.ts.map +1 -0
  31. package/dist/generated/plurnkParserVisitor.js +227 -0
  32. package/dist/generated/plurnkParserVisitor.js.map +1 -0
  33. package/dist/index.d.ts +4 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +5 -0
  36. package/dist/index.js.map +1 -0
  37. package/package.json +73 -0
@@ -0,0 +1,1168 @@
1
+ import * as antlr from "antlr4ng";
2
+ export class plurnkLexer extends antlr.Lexer {
3
+ static OPEN_FIND = 1;
4
+ static OPEN_READ = 2;
5
+ static OPEN_EDIT = 3;
6
+ static OPEN_COPY = 4;
7
+ static OPEN_MOVE = 5;
8
+ static OPEN_SEND = 6;
9
+ static OPEN_TASK = 7;
10
+ static OPEN_EXEC = 8;
11
+ static OPEN_BARE = 9;
12
+ static OPEN_WORK = 10;
13
+ static OPEN_FORK = 11;
14
+ static OPEN_KILL = 12;
15
+ static OPEN_LOOK = 13;
16
+ static LPAREN = 14;
17
+ static RPAREN = 15;
18
+ static LBRACKET = 16;
19
+ static RBRACKET = 17;
20
+ static L_MARKER = 18;
21
+ static BODY_OPEN = 19;
22
+ static SECTION_END = 20;
23
+ static TARGET_TEXT = 21;
24
+ static METADATA_TEXT = 22;
25
+ static BODY_TEXT = 23;
26
+ static TEXT = 24;
27
+ static ASIDE = 25;
28
+ static OPEN = 26;
29
+ static WS = 27;
30
+ static SLOTS_WS = 28;
31
+ static SLOTS_INLINE_CLOSER = 29;
32
+ static TARGET_BACKSLASH = 30;
33
+ static TARGET_TICK = 31;
34
+ static METADATA_QUOTE = 32;
35
+ static B_CR = 33;
36
+ static SLOTS = 1;
37
+ static TARGET = 2;
38
+ static METADATA = 3;
39
+ static BODY = 4;
40
+ static channelNames = [
41
+ "DEFAULT_TOKEN_CHANNEL", "HIDDEN"
42
+ ];
43
+ static literalNames = [
44
+ null, null, null, null, null, null, null, null, null, null, null,
45
+ null, null, null, null, null, null, null, null, null, null, null,
46
+ null, null, null, null, null, null, null, null, "'\\'", null, "'\"'",
47
+ "'\\r'"
48
+ ];
49
+ static symbolicNames = [
50
+ null, "OPEN_FIND", "OPEN_READ", "OPEN_EDIT", "OPEN_COPY", "OPEN_MOVE",
51
+ "OPEN_SEND", "OPEN_TASK", "OPEN_EXEC", "OPEN_BARE", "OPEN_WORK",
52
+ "OPEN_FORK", "OPEN_KILL", "OPEN_LOOK", "LPAREN", "RPAREN", "LBRACKET",
53
+ "RBRACKET", "L_MARKER", "BODY_OPEN", "SECTION_END", "TARGET_TEXT",
54
+ "METADATA_TEXT", "BODY_TEXT", "TEXT", "ASIDE", "OPEN", "WS", "SLOTS_WS",
55
+ "SLOTS_INLINE_CLOSER", "TARGET_BACKSLASH", "TARGET_TICK", "METADATA_QUOTE",
56
+ "B_CR"
57
+ ];
58
+ static modeNames = [
59
+ "DEFAULT_MODE", "SLOTS", "TARGET", "METADATA", "BODY",
60
+ ];
61
+ static ruleNames = [
62
+ "FENCE", "NAME", "NUM", "L_PATTERN", "LINE_ANCHOR", "DIGIT_ANCHOR",
63
+ "TEXT_COORD", "TEXT_L_PATTERN", "COMBINED_LINE_COORD", "COMBINED_TEXT_COORD",
64
+ "COMBINED_TEXT_L_PATTERN", "EOL", "OPEN", "UNKNOWN_TAG", "WS", "THINK_BLOCK",
65
+ "CHANNEL_BLOCK", "TEXT_RUN", "TEXT_TICK", "SLOTS_NEXT_OPENER", "SLOTS_WS",
66
+ "SLOTS_LPAREN", "SLOTS_LBRACKET", "SLOTS_TEXT_L", "SLOTS_L", "SLOTS_COMBINED_TEXT_L",
67
+ "SLOTS_ASIDE", "SLOTS_ASIDE_OPEN", "SLOTS_INLINE_CLOSER", "SLOTS_END",
68
+ "SLOTS_INLINE_BODY", "SLOTS_CLOSED_EOL", "SLOTS_NEXT_HEADING", "SLOTS_BODY_OPEN",
69
+ "TARGET_FENCE", "TARGET_BODY_OPEN", "TARGET_ESCAPE", "TARGET_INNER",
70
+ "TARGET_BACKSLASH", "TARGET_NEST_OPEN", "TARGET_NEST_END", "TARGET_TEXT_SCOPE",
71
+ "TARGET_SCOPE", "TARGET_TICK", "TARGET_END", "METADATA_FENCE", "METADATA_BODY_OPEN",
72
+ "METADATA_STRING", "METADATA_INNER", "METADATA_TICK", "METADATA_QUOTE",
73
+ "METADATA_NEST_OPEN", "METADATA_NEST_END", "METADATA_END", "B_END",
74
+ "B_EMPTY_END", "B_CLOSED_EOL", "B_NEXT_HEADING", "B_RUN", "B_TICK",
75
+ "B_CRLF", "B_LF", "B_CR",
76
+ ];
77
+ openOp = "";
78
+ // {§executor-runtime-declaration} — the opener names a runtime rather than an operation keyword.
79
+ execFence = false;
80
+ openHeading = "";
81
+ openHeadingLine = 0;
82
+ openHeadingColumn = 0;
83
+ fenceLength = 0;
84
+ fenceDelimiter = "";
85
+ started = false;
86
+ // {§inline-chain} — a closer on the heading line may be followed by the next opener on the same line.
87
+ inlineChain = false;
88
+ // {§transparent-inline-closer} — a closer already consumed mid-heading, so the line's end closes.
89
+ inlineCloserSeen = false;
90
+ unclosedAsides = [];
91
+ // After a closer's text, does an opener (backticks, digits, a known name) follow on the same line?
92
+ openerFollows() {
93
+ let cursor = 1;
94
+ while (this.inputStream.LA(cursor) === 0x20 || this.inputStream.LA(cursor) === 0x09)
95
+ cursor++;
96
+ let ticks = 0;
97
+ while (this.inputStream.LA(cursor) === 0x60) {
98
+ ticks++;
99
+ cursor++;
100
+ }
101
+ if (ticks < 3)
102
+ return false;
103
+ while (this.inputStream.LA(cursor) >= 0x30 && this.inputStream.LA(cursor) <= 0x39)
104
+ cursor++;
105
+ let name = "";
106
+ for (;;) {
107
+ const c = this.inputStream.LA(cursor);
108
+ if (c <= 0)
109
+ break;
110
+ const ch = String.fromCharCode(c);
111
+ if (!/[A-Za-z0-9_.+-]/.test(ch))
112
+ break;
113
+ name += ch;
114
+ cursor++;
115
+ }
116
+ return name !== "" && (Object.hasOwn(plurnkLexer.OPERATIONS, name) || this.knownExecutor(name));
117
+ }
118
+ noteUnclosedAside() {
119
+ this.unclosedAsides.push({ line: this.currentTokenStartLine, column: this.currentTokenColumn });
120
+ }
121
+ takeUnclosedAsides() {
122
+ const taken = this.unclosedAsides;
123
+ this.unclosedAsides = [];
124
+ return taken;
125
+ }
126
+ asideClosesOnLine() {
127
+ let cursor = 1;
128
+ for (;;) {
129
+ const c = this.inputStream.LA(cursor);
130
+ if (c <= 0 || c === 0x0A || c === 0x0D)
131
+ return false;
132
+ if (c === 0x2D && this.inputStream.LA(cursor + 1) === 0x2D && this.inputStream.LA(cursor + 2) === 0x3E)
133
+ return true;
134
+ cursor++;
135
+ }
136
+ }
137
+ // {§fence-heading-in-body} - tags that end an open block from inside it; the host adds executors.
138
+ knownExecutors = new Set(["sh"]);
139
+ // {§executor-case} - an executor tag matches its registered name in any case (`SH` is `sh`).
140
+ knownExecutor(name) {
141
+ if (this.knownExecutors.has(name))
142
+ return true;
143
+ const lower = name.toLowerCase();
144
+ for (const known of this.knownExecutors)
145
+ if (known.toLowerCase() === lower)
146
+ return true;
147
+ return false;
148
+ }
149
+ slotReady = false;
150
+ targetDepth = 0;
151
+ metadataDepth = 0;
152
+ metadataReady = false;
153
+ inlineBody = false;
154
+ inlineBodies = [];
155
+ unknownTags = [];
156
+ // {§interstitial-fence} - only a native operation or a known executor opens a block.
157
+ knownHeading() {
158
+ const name = this.text.replace(/^\x60+[0-9]*/, "");
159
+ return Object.hasOwn(plurnkLexer.OPERATIONS, name) || this.knownExecutor(name);
160
+ }
161
+ noteUnknownTag() {
162
+ this.unknownTags.push({ line: this.currentTokenStartLine, column: this.currentTokenColumn, tag: this.text.replace(/^\x60+[0-9]*/, "") });
163
+ }
164
+ takeUnknownTags() {
165
+ const taken = this.unknownTags;
166
+ this.unknownTags = [];
167
+ return taken;
168
+ }
169
+ static OPERATIONS = {
170
+ FIND: plurnkLexer.OPEN_FIND, READ: plurnkLexer.OPEN_READ,
171
+ EDIT: plurnkLexer.OPEN_EDIT, COPY: plurnkLexer.OPEN_COPY, MOVE: plurnkLexer.OPEN_MOVE,
172
+ SEND: plurnkLexer.OPEN_SEND, BARE: plurnkLexer.OPEN_BARE,
173
+ TASK: plurnkLexer.OPEN_TASK,
174
+ WORK: plurnkLexer.OPEN_WORK, FORK: plurnkLexer.OPEN_FORK, KILL: plurnkLexer.OPEN_KILL,
175
+ LOOK: plurnkLexer.OPEN_LOOK,
176
+ };
177
+ open(implicitName) {
178
+ this.fenceLength = 0;
179
+ while (this.text.charCodeAt(this.fenceLength) === 0x60)
180
+ this.fenceLength++;
181
+ // {§numeric-delimiter} - digits between the backticks and the name identify the block.
182
+ let digits = this.fenceLength;
183
+ while (this.text.charCodeAt(digits) >= 0x30 && this.text.charCodeAt(digits) <= 0x39)
184
+ digits++;
185
+ this.fenceDelimiter = this.text.slice(this.fenceLength, digits);
186
+ const name = implicitName ?? this.text.slice(digits);
187
+ const native = Object.hasOwn(plurnkLexer.OPERATIONS, name) ? plurnkLexer.OPERATIONS[name] : undefined;
188
+ this.openOp = name;
189
+ this.execFence = native === undefined;
190
+ this.type = native ?? plurnkLexer.OPEN_EXEC;
191
+ this.inlineChain = false;
192
+ this.inlineCloserSeen = false;
193
+ this.openHeading = this.text;
194
+ this.openHeadingLine = this.currentTokenStartLine;
195
+ this.openHeadingColumn = this.currentTokenColumn;
196
+ this.started = true;
197
+ this.slotReady = true;
198
+ // {§one-line-turn} - TASK takes its inventory as a heading-line block; a bracket there is a slot.
199
+ this.metadataReady = this.execFence || this.openOp === "TASK";
200
+ this.inlineBody = false;
201
+ }
202
+ // {§indented-fences} - a fence line may carry leading horizontal whitespace; the line still
203
+ // starts there for every fence purpose (CommonMark allows three spaces; this allows any).
204
+ atLineStart() {
205
+ for (let back = 1;; back++) {
206
+ const c = this.inputStream.LA(-back);
207
+ if (c <= 0 || c === 0x0A || c === 0x0D)
208
+ return true;
209
+ if (c !== 0x20 && c !== 0x09)
210
+ return false;
211
+ }
212
+ }
213
+ skipHorizontal(offset) {
214
+ while (this.inputStream.LA(offset) === 0x20 || this.inputStream.LA(offset) === 0x09)
215
+ offset++;
216
+ return offset;
217
+ }
218
+ offsetAfterEol(offset) {
219
+ if (this.inputStream.LA(offset) === 0x0D && this.inputStream.LA(offset + 1) === 0x0A)
220
+ return offset + 2;
221
+ return this.inputStream.LA(offset) === 0x0A ? offset + 1 : null;
222
+ }
223
+ // {§fence-closer} - a closer is a line of at least the opener's backticks carrying exactly the
224
+ // opener's numeric delimiter (none when the opener had none). Count is CommonMark's rule; the
225
+ // delimiter is what lets an equal-count block nest ({§numeric-delimiter}).
226
+ closingAt(offset) {
227
+ if (this.inputStream.LA(offset === 1 ? -1 : offset - 1) === 0x60)
228
+ return false;
229
+ offset = this.skipHorizontal(offset);
230
+ let cursor = offset;
231
+ while (this.inputStream.LA(cursor) === 0x60)
232
+ cursor++;
233
+ if (cursor - offset < this.fenceLength)
234
+ return false;
235
+ let digits = "";
236
+ while (this.inputStream.LA(cursor) >= 0x30 && this.inputStream.LA(cursor) <= 0x39) {
237
+ digits += String.fromCharCode(this.inputStream.LA(cursor));
238
+ cursor++;
239
+ }
240
+ if (digits !== this.fenceDelimiter)
241
+ return false;
242
+ while (this.inputStream.LA(cursor) === 0x20 || this.inputStream.LA(cursor) === 0x09)
243
+ cursor++;
244
+ if (this.inputStream.LA(cursor) <= 0 || this.offsetAfterEol(cursor) !== null)
245
+ return true;
246
+ // {§inline-chain} — a closer followed on its line by the next opener still closes.
247
+ let ticks = 0;
248
+ while (this.inputStream.LA(cursor + ticks) === 0x60)
249
+ ticks++;
250
+ if (ticks < 3)
251
+ return false;
252
+ let at = cursor + ticks;
253
+ while (this.inputStream.LA(at) >= 0x30 && this.inputStream.LA(at) <= 0x39)
254
+ at++;
255
+ let name = "";
256
+ for (;;) {
257
+ const c = this.inputStream.LA(at);
258
+ if (c <= 0)
259
+ break;
260
+ const ch = String.fromCharCode(c);
261
+ if (!/[A-Za-z0-9_.+-]/.test(ch))
262
+ break;
263
+ name += ch;
264
+ at++;
265
+ }
266
+ return name !== "" && (Object.hasOwn(plurnkLexer.OPERATIONS, name) || this.knownExecutor(name));
267
+ }
268
+ // {§fence-heading-in-body} - a fence line of four or more backticks naming an operation or a known
269
+ // executor is a heading wherever it stands: it ends the open block without closing it, so a
270
+ // glued opener (eight backticks then READ) can never swallow the turn. A delimited block is exempt: its
271
+ // delimiter says everything up to its own closer is body ({§numeric-delimiter}).
272
+ headingAt(offset) {
273
+ let cursor = offset;
274
+ while (this.inputStream.LA(cursor) === 0x60)
275
+ cursor++;
276
+ if (cursor - offset < 4)
277
+ return false;
278
+ while (this.inputStream.LA(cursor) >= 0x30 && this.inputStream.LA(cursor) <= 0x39)
279
+ cursor++;
280
+ let name = "";
281
+ for (;;) {
282
+ const c = this.inputStream.LA(cursor);
283
+ if (c <= 0)
284
+ break;
285
+ const ch = String.fromCharCode(c);
286
+ if (!/[A-Za-z0-9_.+-]/.test(ch))
287
+ break;
288
+ name += ch;
289
+ cursor++;
290
+ }
291
+ if (name === "")
292
+ return false;
293
+ if (!Object.hasOwn(plurnkLexer.OPERATIONS, name) && !this.knownExecutor(name))
294
+ return false;
295
+ const next = this.inputStream.LA(cursor);
296
+ return next <= 0 || next === 0x20 || next === 0x09 || next === 0x28 || next === 0x3C || next === 0x5B
297
+ || this.offsetAfterEol(cursor) !== null;
298
+ }
299
+ headingAfterEol() {
300
+ const after = this.offsetAfterEol(1);
301
+ return after !== null && this.headingAt(this.skipHorizontal(after));
302
+ }
303
+ closingAfterEol() {
304
+ const after = this.offsetAfterEol(1);
305
+ return after !== null && this.closingAt(this.skipHorizontal(after));
306
+ }
307
+ // {§transparent-inline-closer} — true when the run here closes the open block but more of the
308
+ // heading follows on the line and it is not the next opener. Slots, matchers, asides and option
309
+ // blocks all still belong to this heading, so the closer is skipped and reading continues.
310
+ closerWithHeadingAhead() {
311
+ if (this.inputStream.LA(-1) === 0x60)
312
+ return false;
313
+ let cursor = 1;
314
+ let ticks = 0;
315
+ while (this.inputStream.LA(cursor + ticks) === 0x60)
316
+ ticks++;
317
+ if (ticks < this.fenceLength)
318
+ return false;
319
+ let at = cursor + ticks;
320
+ let digits = "";
321
+ while (this.inputStream.LA(at) >= 0x30 && this.inputStream.LA(at) <= 0x39) {
322
+ digits += String.fromCharCode(this.inputStream.LA(at));
323
+ at++;
324
+ }
325
+ if (digits !== this.fenceDelimiter)
326
+ return false;
327
+ while (this.inputStream.LA(at) === 0x20 || this.inputStream.LA(at) === 0x09)
328
+ at++;
329
+ // End of line or input: the ordinary closer owns it.
330
+ if (this.inputStream.LA(at) <= 0 || this.offsetAfterEol(at) !== null)
331
+ return false;
332
+ // The next opener on the line: {§inline-chain} owns it.
333
+ return !this.openerFollowsAt(at);
334
+ }
335
+ // Does an opener (backticks, optional digits, a known name) begin at this offset?
336
+ openerFollowsAt(at) {
337
+ let ticks = 0;
338
+ while (this.inputStream.LA(at + ticks) === 0x60)
339
+ ticks++;
340
+ if (ticks < 3)
341
+ return false;
342
+ let cursor = at + ticks;
343
+ while (this.inputStream.LA(cursor) >= 0x30 && this.inputStream.LA(cursor) <= 0x39)
344
+ cursor++;
345
+ let name = "";
346
+ for (;;) {
347
+ const c = this.inputStream.LA(cursor);
348
+ if (c <= 0 || c === 0x20 || c === 0x09 || c === 0x0a || c === 0x0d || c === 0x28 || c === 0x3c || c === 0x5b || c === 0x60)
349
+ break;
350
+ name += String.fromCharCode(c);
351
+ cursor++;
352
+ }
353
+ return Object.hasOwn(plurnkLexer.OPERATIONS, name) || this.knownExecutor(name);
354
+ }
355
+ targetScopeEnd() {
356
+ let offset = 1;
357
+ while (this.inputStream.LA(offset) === 0x20 || this.inputStream.LA(offset) === 0x09)
358
+ offset++;
359
+ return this.targetDepth === 0 && this.inputStream.LA(offset) === 0x29;
360
+ }
361
+ inlineBodyAhead() {
362
+ const previous = this.inputStream.LA(-1);
363
+ return previous === 0x20 || previous === 0x09;
364
+ }
365
+ noteInlineBody() {
366
+ this.inlineBody = true;
367
+ // {§naked-pattern} - a sigil is a matcher on any heading, and every heading-line word on FIND,
368
+ // READ or KILL is one, so only a bodied operation's stray heading text is worth an advisory.
369
+ const first = this.text.charCodeAt(0);
370
+ if (first === 0x2F || first === 0x24 || first === 0x7E || first === 0x26 || first === 0x5E)
371
+ return;
372
+ if (this.openOp === "FIND" || this.openOp === "READ" || this.openOp === "KILL")
373
+ return;
374
+ this.inlineBodies.push({ line: this.getOpenTagLine(), column: this.getOpenTagColumn(), heading: this.getOpenHeading() });
375
+ }
376
+ takeInlineBodies() {
377
+ const taken = this.inlineBodies;
378
+ this.inlineBodies = [];
379
+ return taken;
380
+ }
381
+ getOpenTag() { return this.openOp; }
382
+ getOpenOp() { return this.openOp; }
383
+ isExecFence() { return this.execFence; }
384
+ getOpenTagLine() { return this.openHeadingLine; }
385
+ getOpenTagColumn() { return this.openHeadingColumn; }
386
+ getOpenHeading() { return this.openHeading; }
387
+ getFenceLength() { return this.fenceLength; }
388
+ isTextCoordinateOp() {
389
+ return this.openOp === "READ" || this.openOp === "EDIT" || this.openOp === "COPY" || this.openOp === "MOVE"
390
+ || this.openOp === "KILL" || this.openOp === "LOOK";
391
+ }
392
+ constructor(input) {
393
+ super(input);
394
+ this.interpreter = new antlr.LexerATNSimulator(this, plurnkLexer._ATN, plurnkLexer.decisionsToDFA, new antlr.PredictionContextCache());
395
+ }
396
+ get grammarFileName() { return "plurnkLexer.g4"; }
397
+ get literalNames() { return plurnkLexer.literalNames; }
398
+ get symbolicNames() { return plurnkLexer.symbolicNames; }
399
+ get ruleNames() { return plurnkLexer.ruleNames; }
400
+ get serializedATN() { return plurnkLexer._serializedATN; }
401
+ get channelNames() { return plurnkLexer.channelNames; }
402
+ get modeNames() { return plurnkLexer.modeNames; }
403
+ action(localContext, ruleIndex, actionIndex) {
404
+ switch (ruleIndex) {
405
+ case 12:
406
+ this.OPEN_action(localContext, actionIndex);
407
+ break;
408
+ case 13:
409
+ this.UNKNOWN_TAG_action(localContext, actionIndex);
410
+ break;
411
+ case 17:
412
+ this.TEXT_RUN_action(localContext, actionIndex);
413
+ break;
414
+ case 18:
415
+ this.TEXT_TICK_action(localContext, actionIndex);
416
+ break;
417
+ case 19:
418
+ this.SLOTS_NEXT_OPENER_action(localContext, actionIndex);
419
+ break;
420
+ case 20:
421
+ this.SLOTS_WS_action(localContext, actionIndex);
422
+ break;
423
+ case 21:
424
+ this.SLOTS_LPAREN_action(localContext, actionIndex);
425
+ break;
426
+ case 22:
427
+ this.SLOTS_LBRACKET_action(localContext, actionIndex);
428
+ break;
429
+ case 27:
430
+ this.SLOTS_ASIDE_OPEN_action(localContext, actionIndex);
431
+ break;
432
+ case 28:
433
+ this.SLOTS_INLINE_CLOSER_action(localContext, actionIndex);
434
+ break;
435
+ case 29:
436
+ this.SLOTS_END_action(localContext, actionIndex);
437
+ break;
438
+ case 30:
439
+ this.SLOTS_INLINE_BODY_action(localContext, actionIndex);
440
+ break;
441
+ case 34:
442
+ this.TARGET_FENCE_action(localContext, actionIndex);
443
+ break;
444
+ case 39:
445
+ this.TARGET_NEST_OPEN_action(localContext, actionIndex);
446
+ break;
447
+ case 40:
448
+ this.TARGET_NEST_END_action(localContext, actionIndex);
449
+ break;
450
+ case 44:
451
+ this.TARGET_END_action(localContext, actionIndex);
452
+ break;
453
+ case 45:
454
+ this.METADATA_FENCE_action(localContext, actionIndex);
455
+ break;
456
+ case 51:
457
+ this.METADATA_NEST_OPEN_action(localContext, actionIndex);
458
+ break;
459
+ case 52:
460
+ this.METADATA_NEST_END_action(localContext, actionIndex);
461
+ break;
462
+ case 53:
463
+ this.METADATA_END_action(localContext, actionIndex);
464
+ break;
465
+ case 54:
466
+ this.B_END_action(localContext, actionIndex);
467
+ break;
468
+ case 55:
469
+ this.B_EMPTY_END_action(localContext, actionIndex);
470
+ break;
471
+ case 60:
472
+ this.B_CRLF_action(localContext, actionIndex);
473
+ break;
474
+ case 61:
475
+ this.B_LF_action(localContext, actionIndex);
476
+ break;
477
+ }
478
+ }
479
+ OPEN_action(localContext, actionIndex) {
480
+ switch (actionIndex) {
481
+ case 0:
482
+ this.open();
483
+ break;
484
+ }
485
+ }
486
+ UNKNOWN_TAG_action(localContext, actionIndex) {
487
+ switch (actionIndex) {
488
+ case 1:
489
+ this.noteUnknownTag();
490
+ break;
491
+ }
492
+ }
493
+ TEXT_RUN_action(localContext, actionIndex) {
494
+ switch (actionIndex) {
495
+ case 2:
496
+ this.inlineChain = false;
497
+ break;
498
+ }
499
+ }
500
+ TEXT_TICK_action(localContext, actionIndex) {
501
+ switch (actionIndex) {
502
+ case 3:
503
+ this.inlineChain = false;
504
+ break;
505
+ }
506
+ }
507
+ SLOTS_NEXT_OPENER_action(localContext, actionIndex) {
508
+ switch (actionIndex) {
509
+ case 4:
510
+ this.inlineChain = true;
511
+ break;
512
+ }
513
+ }
514
+ SLOTS_WS_action(localContext, actionIndex) {
515
+ switch (actionIndex) {
516
+ case 5:
517
+ this.slotReady = true;
518
+ break;
519
+ }
520
+ }
521
+ SLOTS_LPAREN_action(localContext, actionIndex) {
522
+ switch (actionIndex) {
523
+ case 6:
524
+ this.targetDepth = 0;
525
+ this.metadataReady = false;
526
+ break;
527
+ }
528
+ }
529
+ SLOTS_LBRACKET_action(localContext, actionIndex) {
530
+ switch (actionIndex) {
531
+ case 7:
532
+ this.metadataDepth = 0;
533
+ break;
534
+ }
535
+ }
536
+ SLOTS_ASIDE_OPEN_action(localContext, actionIndex) {
537
+ switch (actionIndex) {
538
+ case 8:
539
+ this.noteUnclosedAside();
540
+ break;
541
+ }
542
+ }
543
+ SLOTS_INLINE_CLOSER_action(localContext, actionIndex) {
544
+ switch (actionIndex) {
545
+ case 9:
546
+ this.inlineCloserSeen = true;
547
+ break;
548
+ }
549
+ }
550
+ SLOTS_END_action(localContext, actionIndex) {
551
+ switch (actionIndex) {
552
+ case 10:
553
+ this.inlineChain = this.openerFollows();
554
+ break;
555
+ }
556
+ }
557
+ SLOTS_INLINE_BODY_action(localContext, actionIndex) {
558
+ switch (actionIndex) {
559
+ case 11:
560
+ this.noteInlineBody();
561
+ break;
562
+ }
563
+ }
564
+ TARGET_FENCE_action(localContext, actionIndex) {
565
+ switch (actionIndex) {
566
+ case 12:
567
+ this.inlineChain = this.openerFollows();
568
+ break;
569
+ }
570
+ }
571
+ TARGET_NEST_OPEN_action(localContext, actionIndex) {
572
+ switch (actionIndex) {
573
+ case 13:
574
+ this.targetDepth++;
575
+ break;
576
+ }
577
+ }
578
+ TARGET_NEST_END_action(localContext, actionIndex) {
579
+ switch (actionIndex) {
580
+ case 14:
581
+ this.targetDepth--;
582
+ break;
583
+ }
584
+ }
585
+ TARGET_END_action(localContext, actionIndex) {
586
+ switch (actionIndex) {
587
+ case 15:
588
+ this.slotReady = true;
589
+ this.metadataReady = true;
590
+ break;
591
+ }
592
+ }
593
+ METADATA_FENCE_action(localContext, actionIndex) {
594
+ switch (actionIndex) {
595
+ case 16:
596
+ this.inlineChain = this.openerFollows();
597
+ break;
598
+ }
599
+ }
600
+ METADATA_NEST_OPEN_action(localContext, actionIndex) {
601
+ switch (actionIndex) {
602
+ case 17:
603
+ this.metadataDepth++;
604
+ break;
605
+ }
606
+ }
607
+ METADATA_NEST_END_action(localContext, actionIndex) {
608
+ switch (actionIndex) {
609
+ case 18:
610
+ this.metadataDepth--;
611
+ break;
612
+ }
613
+ }
614
+ METADATA_END_action(localContext, actionIndex) {
615
+ switch (actionIndex) {
616
+ case 19:
617
+ this.slotReady = true;
618
+ this.metadataReady = true;
619
+ break;
620
+ }
621
+ }
622
+ B_END_action(localContext, actionIndex) {
623
+ switch (actionIndex) {
624
+ case 20:
625
+ this.inlineChain = this.openerFollows();
626
+ break;
627
+ }
628
+ }
629
+ B_EMPTY_END_action(localContext, actionIndex) {
630
+ switch (actionIndex) {
631
+ case 21:
632
+ this.inlineChain = this.openerFollows();
633
+ break;
634
+ }
635
+ }
636
+ B_CRLF_action(localContext, actionIndex) {
637
+ switch (actionIndex) {
638
+ case 22:
639
+ this.inlineBody = false;
640
+ break;
641
+ }
642
+ }
643
+ B_LF_action(localContext, actionIndex) {
644
+ switch (actionIndex) {
645
+ case 23:
646
+ this.inlineBody = false;
647
+ break;
648
+ }
649
+ }
650
+ sempred(localContext, ruleIndex, predIndex) {
651
+ switch (ruleIndex) {
652
+ case 12:
653
+ return this.OPEN_sempred(localContext, predIndex);
654
+ case 13:
655
+ return this.UNKNOWN_TAG_sempred(localContext, predIndex);
656
+ case 19:
657
+ return this.SLOTS_NEXT_OPENER_sempred(localContext, predIndex);
658
+ case 21:
659
+ return this.SLOTS_LPAREN_sempred(localContext, predIndex);
660
+ case 22:
661
+ return this.SLOTS_LBRACKET_sempred(localContext, predIndex);
662
+ case 23:
663
+ return this.SLOTS_TEXT_L_sempred(localContext, predIndex);
664
+ case 24:
665
+ return this.SLOTS_L_sempred(localContext, predIndex);
666
+ case 25:
667
+ return this.SLOTS_COMBINED_TEXT_L_sempred(localContext, predIndex);
668
+ case 26:
669
+ return this.SLOTS_ASIDE_sempred(localContext, predIndex);
670
+ case 27:
671
+ return this.SLOTS_ASIDE_OPEN_sempred(localContext, predIndex);
672
+ case 28:
673
+ return this.SLOTS_INLINE_CLOSER_sempred(localContext, predIndex);
674
+ case 29:
675
+ return this.SLOTS_END_sempred(localContext, predIndex);
676
+ case 30:
677
+ return this.SLOTS_INLINE_BODY_sempred(localContext, predIndex);
678
+ case 31:
679
+ return this.SLOTS_CLOSED_EOL_sempred(localContext, predIndex);
680
+ case 32:
681
+ return this.SLOTS_NEXT_HEADING_sempred(localContext, predIndex);
682
+ case 34:
683
+ return this.TARGET_FENCE_sempred(localContext, predIndex);
684
+ case 40:
685
+ return this.TARGET_NEST_END_sempred(localContext, predIndex);
686
+ case 41:
687
+ return this.TARGET_TEXT_SCOPE_sempred(localContext, predIndex);
688
+ case 42:
689
+ return this.TARGET_SCOPE_sempred(localContext, predIndex);
690
+ case 45:
691
+ return this.METADATA_FENCE_sempred(localContext, predIndex);
692
+ case 52:
693
+ return this.METADATA_NEST_END_sempred(localContext, predIndex);
694
+ case 54:
695
+ return this.B_END_sempred(localContext, predIndex);
696
+ case 55:
697
+ return this.B_EMPTY_END_sempred(localContext, predIndex);
698
+ case 56:
699
+ return this.B_CLOSED_EOL_sempred(localContext, predIndex);
700
+ case 57:
701
+ return this.B_NEXT_HEADING_sempred(localContext, predIndex);
702
+ }
703
+ return true;
704
+ }
705
+ OPEN_sempred(localContext, predIndex) {
706
+ switch (predIndex) {
707
+ case 0:
708
+ return this.atLineStart() || !this.started || this.inlineChain;
709
+ case 1:
710
+ return this.knownHeading();
711
+ }
712
+ return true;
713
+ }
714
+ UNKNOWN_TAG_sempred(localContext, predIndex) {
715
+ switch (predIndex) {
716
+ case 2:
717
+ return this.atLineStart() || !this.started;
718
+ }
719
+ return true;
720
+ }
721
+ SLOTS_NEXT_OPENER_sempred(localContext, predIndex) {
722
+ switch (predIndex) {
723
+ case 3:
724
+ return this.slotReady && this.openerFollows();
725
+ }
726
+ return true;
727
+ }
728
+ SLOTS_LPAREN_sempred(localContext, predIndex) {
729
+ switch (predIndex) {
730
+ case 4:
731
+ return this.slotReady;
732
+ }
733
+ return true;
734
+ }
735
+ SLOTS_LBRACKET_sempred(localContext, predIndex) {
736
+ switch (predIndex) {
737
+ case 5:
738
+ return this.slotReady && this.metadataReady;
739
+ }
740
+ return true;
741
+ }
742
+ SLOTS_TEXT_L_sempred(localContext, predIndex) {
743
+ switch (predIndex) {
744
+ case 6:
745
+ return this.slotReady && this.isTextCoordinateOp();
746
+ }
747
+ return true;
748
+ }
749
+ SLOTS_L_sempred(localContext, predIndex) {
750
+ switch (predIndex) {
751
+ case 7:
752
+ return this.slotReady;
753
+ }
754
+ return true;
755
+ }
756
+ SLOTS_COMBINED_TEXT_L_sempred(localContext, predIndex) {
757
+ switch (predIndex) {
758
+ case 8:
759
+ return this.slotReady && this.isTextCoordinateOp();
760
+ }
761
+ return true;
762
+ }
763
+ SLOTS_ASIDE_sempred(localContext, predIndex) {
764
+ switch (predIndex) {
765
+ case 9:
766
+ return this.slotReady;
767
+ }
768
+ return true;
769
+ }
770
+ SLOTS_ASIDE_OPEN_sempred(localContext, predIndex) {
771
+ switch (predIndex) {
772
+ case 10:
773
+ return this.slotReady && !this.asideClosesOnLine();
774
+ }
775
+ return true;
776
+ }
777
+ SLOTS_INLINE_CLOSER_sempred(localContext, predIndex) {
778
+ switch (predIndex) {
779
+ case 11:
780
+ return this.slotReady && this.closerWithHeadingAhead();
781
+ }
782
+ return true;
783
+ }
784
+ SLOTS_END_sempred(localContext, predIndex) {
785
+ switch (predIndex) {
786
+ case 12:
787
+ return this.closingAt(1);
788
+ }
789
+ return true;
790
+ }
791
+ SLOTS_INLINE_BODY_sempred(localContext, predIndex) {
792
+ switch (predIndex) {
793
+ case 13:
794
+ return this.slotReady && this.inlineBodyAhead();
795
+ }
796
+ return true;
797
+ }
798
+ SLOTS_CLOSED_EOL_sempred(localContext, predIndex) {
799
+ switch (predIndex) {
800
+ case 14:
801
+ return this.inlineCloserSeen;
802
+ }
803
+ return true;
804
+ }
805
+ SLOTS_NEXT_HEADING_sempred(localContext, predIndex) {
806
+ switch (predIndex) {
807
+ case 15:
808
+ return this.fenceDelimiter === "" && this.headingAfterEol();
809
+ }
810
+ return true;
811
+ }
812
+ TARGET_FENCE_sempred(localContext, predIndex) {
813
+ switch (predIndex) {
814
+ case 16:
815
+ return this.closingAt(1);
816
+ }
817
+ return true;
818
+ }
819
+ TARGET_NEST_END_sempred(localContext, predIndex) {
820
+ switch (predIndex) {
821
+ case 17:
822
+ return this.targetDepth > 0;
823
+ }
824
+ return true;
825
+ }
826
+ TARGET_TEXT_SCOPE_sempred(localContext, predIndex) {
827
+ switch (predIndex) {
828
+ case 18:
829
+ return this.isTextCoordinateOp();
830
+ case 19:
831
+ return this.targetScopeEnd();
832
+ }
833
+ return true;
834
+ }
835
+ TARGET_SCOPE_sempred(localContext, predIndex) {
836
+ switch (predIndex) {
837
+ case 20:
838
+ return this.openOp === "FIND" || this.execFence || this.openOp === "SEND";
839
+ case 21:
840
+ return this.targetScopeEnd();
841
+ }
842
+ return true;
843
+ }
844
+ METADATA_FENCE_sempred(localContext, predIndex) {
845
+ switch (predIndex) {
846
+ case 22:
847
+ return this.closingAt(1);
848
+ }
849
+ return true;
850
+ }
851
+ METADATA_NEST_END_sempred(localContext, predIndex) {
852
+ switch (predIndex) {
853
+ case 23:
854
+ return this.metadataDepth > 0;
855
+ }
856
+ return true;
857
+ }
858
+ B_END_sempred(localContext, predIndex) {
859
+ switch (predIndex) {
860
+ case 24:
861
+ return this.closingAfterEol();
862
+ }
863
+ return true;
864
+ }
865
+ B_EMPTY_END_sempred(localContext, predIndex) {
866
+ switch (predIndex) {
867
+ case 25:
868
+ return (this.atLineStart() || this.inlineBody) && this.closingAt(1);
869
+ }
870
+ return true;
871
+ }
872
+ B_CLOSED_EOL_sempred(localContext, predIndex) {
873
+ switch (predIndex) {
874
+ case 26:
875
+ return this.inlineCloserSeen;
876
+ }
877
+ return true;
878
+ }
879
+ B_NEXT_HEADING_sempred(localContext, predIndex) {
880
+ switch (predIndex) {
881
+ case 27:
882
+ return this.fenceDelimiter === "" && this.headingAfterEol();
883
+ }
884
+ return true;
885
+ }
886
+ static _serializedATN = [
887
+ 4, 0, 33, 720, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3,
888
+ 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2,
889
+ 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7,
890
+ 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2,
891
+ 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7,
892
+ 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2,
893
+ 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7,
894
+ 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2,
895
+ 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7,
896
+ 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 1,
897
+ 0, 1, 0, 1, 0, 1, 0, 1, 0, 5, 0, 137, 8, 0, 10, 0, 12, 0, 140, 9, 0, 1, 1, 4, 1, 143, 8, 1,
898
+ 11, 1, 12, 1, 144, 1, 2, 3, 2, 148, 8, 2, 1, 2, 4, 2, 151, 8, 2, 11, 2, 12, 2, 152, 1, 2,
899
+ 1, 2, 4, 2, 157, 8, 2, 11, 2, 12, 2, 158, 3, 2, 161, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3,
900
+ 3, 168, 8, 3, 3, 3, 170, 8, 3, 1, 3, 5, 3, 173, 8, 3, 10, 3, 12, 3, 176, 9, 3, 1, 3, 1, 3,
901
+ 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 3, 5, 190, 8, 5, 1, 5, 3, 5, 193,
902
+ 8, 5, 1, 5, 3, 5, 196, 8, 5, 1, 6, 1, 6, 1, 6, 3, 6, 201, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7,
903
+ 207, 8, 7, 1, 7, 5, 7, 210, 8, 7, 10, 7, 12, 7, 213, 9, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1,
904
+ 8, 5, 8, 221, 8, 8, 10, 8, 12, 8, 224, 9, 8, 1, 9, 1, 9, 3, 9, 228, 8, 9, 1, 10, 1, 10, 1,
905
+ 10, 1, 10, 3, 10, 234, 8, 10, 1, 10, 5, 10, 237, 8, 10, 10, 10, 12, 10, 240, 9, 10, 1,
906
+ 10, 1, 10, 1, 11, 3, 11, 245, 8, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 5, 12, 252, 8, 12,
907
+ 10, 12, 12, 12, 255, 9, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13,
908
+ 5, 13, 266, 8, 13, 10, 13, 12, 13, 269, 9, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13,
909
+ 1, 14, 4, 14, 278, 8, 14, 11, 14, 12, 14, 279, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15,
910
+ 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 5, 15, 293, 8, 15, 10, 15, 12, 15, 296, 9, 15, 1, 15,
911
+ 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16,
912
+ 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 322, 8, 16,
913
+ 10, 16, 12, 16, 325, 9, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16,
914
+ 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17, 4, 17, 342, 8, 17, 11, 17, 12, 17, 343, 1, 17,
915
+ 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 4, 19,
916
+ 359, 8, 19, 11, 19, 12, 19, 360, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 4, 20, 369,
917
+ 8, 20, 11, 20, 12, 20, 370, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21,
918
+ 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23,
919
+ 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26,
920
+ 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 5, 26, 413, 8, 26, 10, 26, 12, 26, 416, 9, 26, 1, 26,
921
+ 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 5, 27,
922
+ 431, 8, 27, 10, 27, 12, 27, 434, 9, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28,
923
+ 5, 28, 443, 8, 28, 10, 28, 12, 28, 446, 9, 28, 1, 28, 5, 28, 449, 8, 28, 10, 28, 12, 28,
924
+ 452, 9, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 5, 29, 461, 8, 29, 10, 29,
925
+ 12, 29, 464, 9, 29, 1, 29, 5, 29, 467, 8, 29, 10, 29, 12, 29, 470, 9, 29, 1, 29, 1, 29,
926
+ 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31,
927
+ 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33,
928
+ 1, 33, 1, 34, 1, 34, 1, 34, 5, 34, 504, 8, 34, 10, 34, 12, 34, 507, 9, 34, 1, 34, 1, 34,
929
+ 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36,
930
+ 1, 37, 4, 37, 525, 8, 37, 11, 37, 12, 37, 526, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38,
931
+ 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41,
932
+ 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43,
933
+ 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 5, 45, 571, 8, 45,
934
+ 10, 45, 12, 45, 574, 9, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46,
935
+ 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 5, 47, 590, 8, 47, 10, 47, 12, 47, 593, 9, 47, 1, 47,
936
+ 1, 47, 1, 47, 1, 47, 1, 48, 4, 48, 600, 8, 48, 11, 48, 12, 48, 601, 1, 48, 1, 48, 1, 49,
937
+ 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52,
938
+ 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54,
939
+ 1, 54, 5, 54, 634, 8, 54, 10, 54, 12, 54, 637, 9, 54, 1, 54, 1, 54, 5, 54, 641, 8, 54,
940
+ 10, 54, 12, 54, 644, 9, 54, 1, 54, 5, 54, 647, 8, 54, 10, 54, 12, 54, 650, 9, 54, 1, 54,
941
+ 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 5, 55, 659, 8, 55, 10, 55, 12, 55, 662, 9, 55,
942
+ 1, 55, 1, 55, 5, 55, 666, 8, 55, 10, 55, 12, 55, 669, 9, 55, 1, 55, 5, 55, 672, 8, 55,
943
+ 10, 55, 12, 55, 675, 9, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56,
944
+ 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 58, 4, 58, 695, 8, 58, 11, 58,
945
+ 12, 58, 696, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60,
946
+ 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 3, 294, 323,
947
+ 414, 0, 63, 5, 0, 7, 0, 9, 0, 11, 0, 13, 0, 15, 0, 17, 0, 19, 0, 21, 0, 23, 0, 25, 0, 27,
948
+ 0, 29, 26, 31, 0, 33, 27, 35, 0, 37, 0, 39, 0, 41, 0, 43, 0, 45, 28, 47, 0, 49, 0, 51, 0,
949
+ 53, 0, 55, 0, 57, 0, 59, 0, 61, 29, 63, 0, 65, 0, 67, 0, 69, 0, 71, 0, 73, 0, 75, 0, 77,
950
+ 0, 79, 0, 81, 30, 83, 0, 85, 0, 87, 0, 89, 0, 91, 31, 93, 0, 95, 0, 97, 0, 99, 0, 101, 0,
951
+ 103, 0, 105, 32, 107, 0, 109, 0, 111, 0, 113, 0, 115, 0, 117, 0, 119, 0, 121, 0, 123,
952
+ 0, 125, 0, 127, 0, 129, 33, 5, 0, 1, 2, 3, 4, 15, 6, 0, 43, 43, 45, 46, 48, 57, 65, 90,
953
+ 95, 95, 97, 122, 1, 0, 48, 57, 3, 0, 48, 57, 65, 90, 97, 122, 2, 0, 32, 32, 58, 58, 1,
954
+ 0, 49, 57, 3, 0, 9, 10, 13, 13, 32, 32, 4, 0, 9, 10, 13, 13, 32, 32, 96, 96, 2, 0, 9, 9,
955
+ 32, 32, 2, 0, 10, 10, 13, 13, 7, 0, 9, 10, 13, 13, 32, 32, 40, 40, 60, 60, 91, 91, 96,
956
+ 96, 2, 0, 40, 41, 92, 92, 6, 0, 10, 10, 13, 13, 40, 41, 60, 60, 92, 92, 96, 96, 4, 0, 10,
957
+ 10, 13, 13, 34, 34, 92, 92, 6, 0, 10, 10, 13, 13, 34, 34, 91, 91, 93, 93, 96, 96, 3, 0,
958
+ 10, 10, 13, 13, 96, 96, 751, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35,
959
+ 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 1, 43, 1, 0, 0, 0, 1, 45,
960
+ 1, 0, 0, 0, 1, 47, 1, 0, 0, 0, 1, 49, 1, 0, 0, 0, 1, 51, 1, 0, 0, 0, 1, 53, 1, 0, 0, 0, 1, 55,
961
+ 1, 0, 0, 0, 1, 57, 1, 0, 0, 0, 1, 59, 1, 0, 0, 0, 1, 61, 1, 0, 0, 0, 1, 63, 1, 0, 0, 0, 1, 65,
962
+ 1, 0, 0, 0, 1, 67, 1, 0, 0, 0, 1, 69, 1, 0, 0, 0, 1, 71, 1, 0, 0, 0, 2, 73, 1, 0, 0, 0, 2, 75,
963
+ 1, 0, 0, 0, 2, 77, 1, 0, 0, 0, 2, 79, 1, 0, 0, 0, 2, 81, 1, 0, 0, 0, 2, 83, 1, 0, 0, 0, 2, 85,
964
+ 1, 0, 0, 0, 2, 87, 1, 0, 0, 0, 2, 89, 1, 0, 0, 0, 2, 91, 1, 0, 0, 0, 2, 93, 1, 0, 0, 0, 3, 95,
965
+ 1, 0, 0, 0, 3, 97, 1, 0, 0, 0, 3, 99, 1, 0, 0, 0, 3, 101, 1, 0, 0, 0, 3, 103, 1, 0, 0, 0, 3,
966
+ 105, 1, 0, 0, 0, 3, 107, 1, 0, 0, 0, 3, 109, 1, 0, 0, 0, 3, 111, 1, 0, 0, 0, 4, 113, 1, 0,
967
+ 0, 0, 4, 115, 1, 0, 0, 0, 4, 117, 1, 0, 0, 0, 4, 119, 1, 0, 0, 0, 4, 121, 1, 0, 0, 0, 4, 123,
968
+ 1, 0, 0, 0, 4, 125, 1, 0, 0, 0, 4, 127, 1, 0, 0, 0, 4, 129, 1, 0, 0, 0, 5, 131, 1, 0, 0, 0,
969
+ 7, 142, 1, 0, 0, 0, 9, 147, 1, 0, 0, 0, 11, 162, 1, 0, 0, 0, 13, 179, 1, 0, 0, 0, 15, 186,
970
+ 1, 0, 0, 0, 17, 200, 1, 0, 0, 0, 19, 202, 1, 0, 0, 0, 21, 216, 1, 0, 0, 0, 23, 227, 1, 0,
971
+ 0, 0, 25, 229, 1, 0, 0, 0, 27, 244, 1, 0, 0, 0, 29, 248, 1, 0, 0, 0, 31, 262, 1, 0, 0, 0,
972
+ 33, 277, 1, 0, 0, 0, 35, 283, 1, 0, 0, 0, 37, 309, 1, 0, 0, 0, 39, 341, 1, 0, 0, 0, 41, 350,
973
+ 1, 0, 0, 0, 43, 356, 1, 0, 0, 0, 45, 368, 1, 0, 0, 0, 47, 376, 1, 0, 0, 0, 49, 383, 1, 0,
974
+ 0, 0, 51, 390, 1, 0, 0, 0, 53, 395, 1, 0, 0, 0, 55, 400, 1, 0, 0, 0, 57, 405, 1, 0, 0, 0,
975
+ 59, 423, 1, 0, 0, 0, 61, 439, 1, 0, 0, 0, 63, 457, 1, 0, 0, 0, 65, 476, 1, 0, 0, 0, 67, 483,
976
+ 1, 0, 0, 0, 69, 489, 1, 0, 0, 0, 71, 495, 1, 0, 0, 0, 73, 500, 1, 0, 0, 0, 75, 513, 1, 0,
977
+ 0, 0, 77, 518, 1, 0, 0, 0, 79, 524, 1, 0, 0, 0, 81, 530, 1, 0, 0, 0, 83, 534, 1, 0, 0, 0,
978
+ 85, 539, 1, 0, 0, 0, 87, 545, 1, 0, 0, 0, 89, 551, 1, 0, 0, 0, 91, 557, 1, 0, 0, 0, 93, 561,
979
+ 1, 0, 0, 0, 95, 567, 1, 0, 0, 0, 97, 580, 1, 0, 0, 0, 99, 585, 1, 0, 0, 0, 101, 599, 1, 0,
980
+ 0, 0, 103, 605, 1, 0, 0, 0, 105, 609, 1, 0, 0, 0, 107, 613, 1, 0, 0, 0, 109, 618, 1, 0,
981
+ 0, 0, 111, 624, 1, 0, 0, 0, 113, 630, 1, 0, 0, 0, 115, 656, 1, 0, 0, 0, 117, 681, 1, 0,
982
+ 0, 0, 119, 687, 1, 0, 0, 0, 121, 694, 1, 0, 0, 0, 123, 700, 1, 0, 0, 0, 125, 704, 1, 0,
983
+ 0, 0, 127, 711, 1, 0, 0, 0, 129, 716, 1, 0, 0, 0, 131, 132, 5, 96, 0, 0, 132, 133, 5, 96,
984
+ 0, 0, 133, 134, 5, 96, 0, 0, 134, 138, 1, 0, 0, 0, 135, 137, 5, 96, 0, 0, 136, 135, 1,
985
+ 0, 0, 0, 137, 140, 1, 0, 0, 0, 138, 136, 1, 0, 0, 0, 138, 139, 1, 0, 0, 0, 139, 6, 1, 0,
986
+ 0, 0, 140, 138, 1, 0, 0, 0, 141, 143, 7, 0, 0, 0, 142, 141, 1, 0, 0, 0, 143, 144, 1, 0,
987
+ 0, 0, 144, 142, 1, 0, 0, 0, 144, 145, 1, 0, 0, 0, 145, 8, 1, 0, 0, 0, 146, 148, 5, 45, 0,
988
+ 0, 147, 146, 1, 0, 0, 0, 147, 148, 1, 0, 0, 0, 148, 150, 1, 0, 0, 0, 149, 151, 7, 1, 0,
989
+ 0, 150, 149, 1, 0, 0, 0, 151, 152, 1, 0, 0, 0, 152, 150, 1, 0, 0, 0, 152, 153, 1, 0, 0,
990
+ 0, 153, 160, 1, 0, 0, 0, 154, 156, 5, 46, 0, 0, 155, 157, 7, 1, 0, 0, 156, 155, 1, 0, 0,
991
+ 0, 157, 158, 1, 0, 0, 0, 158, 156, 1, 0, 0, 0, 158, 159, 1, 0, 0, 0, 159, 161, 1, 0, 0,
992
+ 0, 160, 154, 1, 0, 0, 0, 160, 161, 1, 0, 0, 0, 161, 10, 1, 0, 0, 0, 162, 163, 5, 60, 0,
993
+ 0, 163, 174, 3, 9, 2, 0, 164, 170, 5, 45, 0, 0, 165, 167, 5, 44, 0, 0, 166, 168, 5, 32,
994
+ 0, 0, 167, 166, 1, 0, 0, 0, 167, 168, 1, 0, 0, 0, 168, 170, 1, 0, 0, 0, 169, 164, 1, 0,
995
+ 0, 0, 169, 165, 1, 0, 0, 0, 170, 171, 1, 0, 0, 0, 171, 173, 3, 9, 2, 0, 172, 169, 1, 0,
996
+ 0, 0, 173, 176, 1, 0, 0, 0, 174, 172, 1, 0, 0, 0, 174, 175, 1, 0, 0, 0, 175, 177, 1, 0,
997
+ 0, 0, 176, 174, 1, 0, 0, 0, 177, 178, 5, 62, 0, 0, 178, 12, 1, 0, 0, 0, 179, 180, 5, 64,
998
+ 0, 0, 180, 181, 7, 2, 0, 0, 181, 182, 7, 2, 0, 0, 182, 183, 7, 2, 0, 0, 183, 184, 7, 2,
999
+ 0, 0, 184, 185, 7, 2, 0, 0, 185, 14, 1, 0, 0, 0, 186, 187, 5, 64, 0, 0, 187, 189, 7, 1,
1000
+ 0, 0, 188, 190, 7, 1, 0, 0, 189, 188, 1, 0, 0, 0, 189, 190, 1, 0, 0, 0, 190, 192, 1, 0,
1001
+ 0, 0, 191, 193, 7, 1, 0, 0, 192, 191, 1, 0, 0, 0, 192, 193, 1, 0, 0, 0, 193, 195, 1, 0,
1002
+ 0, 0, 194, 196, 7, 1, 0, 0, 195, 194, 1, 0, 0, 0, 195, 196, 1, 0, 0, 0, 196, 16, 1, 0, 0,
1003
+ 0, 197, 201, 3, 9, 2, 0, 198, 201, 3, 13, 4, 0, 199, 201, 3, 15, 5, 0, 200, 197, 1, 0,
1004
+ 0, 0, 200, 198, 1, 0, 0, 0, 200, 199, 1, 0, 0, 0, 201, 18, 1, 0, 0, 0, 202, 203, 5, 60,
1005
+ 0, 0, 203, 211, 3, 17, 6, 0, 204, 206, 5, 44, 0, 0, 205, 207, 5, 32, 0, 0, 206, 205, 1,
1006
+ 0, 0, 0, 206, 207, 1, 0, 0, 0, 207, 208, 1, 0, 0, 0, 208, 210, 3, 17, 6, 0, 209, 204, 1,
1007
+ 0, 0, 0, 210, 213, 1, 0, 0, 0, 211, 209, 1, 0, 0, 0, 211, 212, 1, 0, 0, 0, 212, 214, 1,
1008
+ 0, 0, 0, 213, 211, 1, 0, 0, 0, 214, 215, 5, 62, 0, 0, 215, 20, 1, 0, 0, 0, 216, 217, 3,
1009
+ 13, 4, 0, 217, 218, 7, 3, 0, 0, 218, 222, 7, 4, 0, 0, 219, 221, 7, 1, 0, 0, 220, 219, 1,
1010
+ 0, 0, 0, 221, 224, 1, 0, 0, 0, 222, 220, 1, 0, 0, 0, 222, 223, 1, 0, 0, 0, 223, 22, 1, 0,
1011
+ 0, 0, 224, 222, 1, 0, 0, 0, 225, 228, 3, 17, 6, 0, 226, 228, 3, 21, 8, 0, 227, 225, 1,
1012
+ 0, 0, 0, 227, 226, 1, 0, 0, 0, 228, 24, 1, 0, 0, 0, 229, 230, 5, 60, 0, 0, 230, 238, 3,
1013
+ 23, 9, 0, 231, 233, 5, 44, 0, 0, 232, 234, 5, 32, 0, 0, 233, 232, 1, 0, 0, 0, 233, 234,
1014
+ 1, 0, 0, 0, 234, 235, 1, 0, 0, 0, 235, 237, 3, 23, 9, 0, 236, 231, 1, 0, 0, 0, 237, 240,
1015
+ 1, 0, 0, 0, 238, 236, 1, 0, 0, 0, 238, 239, 1, 0, 0, 0, 239, 241, 1, 0, 0, 0, 240, 238,
1016
+ 1, 0, 0, 0, 241, 242, 5, 62, 0, 0, 242, 26, 1, 0, 0, 0, 243, 245, 5, 13, 0, 0, 244, 243,
1017
+ 1, 0, 0, 0, 244, 245, 1, 0, 0, 0, 245, 246, 1, 0, 0, 0, 246, 247, 5, 10, 0, 0, 247, 28,
1018
+ 1, 0, 0, 0, 248, 249, 4, 12, 0, 0, 249, 253, 3, 5, 0, 0, 250, 252, 7, 1, 0, 0, 251, 250,
1019
+ 1, 0, 0, 0, 252, 255, 1, 0, 0, 0, 253, 251, 1, 0, 0, 0, 253, 254, 1, 0, 0, 0, 254, 256,
1020
+ 1, 0, 0, 0, 255, 253, 1, 0, 0, 0, 256, 257, 3, 7, 1, 0, 257, 258, 4, 12, 1, 0, 258, 259,
1021
+ 6, 12, 0, 0, 259, 260, 1, 0, 0, 0, 260, 261, 6, 12, 1, 0, 261, 30, 1, 0, 0, 0, 262, 263,
1022
+ 4, 13, 2, 0, 263, 267, 3, 5, 0, 0, 264, 266, 7, 1, 0, 0, 265, 264, 1, 0, 0, 0, 266, 269,
1023
+ 1, 0, 0, 0, 267, 265, 1, 0, 0, 0, 267, 268, 1, 0, 0, 0, 268, 270, 1, 0, 0, 0, 269, 267,
1024
+ 1, 0, 0, 0, 270, 271, 3, 7, 1, 0, 271, 272, 6, 13, 2, 0, 272, 273, 1, 0, 0, 0, 273, 274,
1025
+ 6, 13, 3, 0, 274, 275, 6, 13, 4, 0, 275, 32, 1, 0, 0, 0, 276, 278, 7, 5, 0, 0, 277, 276,
1026
+ 1, 0, 0, 0, 278, 279, 1, 0, 0, 0, 279, 277, 1, 0, 0, 0, 279, 280, 1, 0, 0, 0, 280, 281,
1027
+ 1, 0, 0, 0, 281, 282, 6, 14, 4, 0, 282, 34, 1, 0, 0, 0, 283, 284, 5, 60, 0, 0, 284, 285,
1028
+ 5, 116, 0, 0, 285, 286, 5, 104, 0, 0, 286, 287, 5, 105, 0, 0, 287, 288, 5, 110, 0, 0,
1029
+ 288, 289, 5, 107, 0, 0, 289, 290, 5, 62, 0, 0, 290, 294, 1, 0, 0, 0, 291, 293, 9, 0, 0,
1030
+ 0, 292, 291, 1, 0, 0, 0, 293, 296, 1, 0, 0, 0, 294, 295, 1, 0, 0, 0, 294, 292, 1, 0, 0,
1031
+ 0, 295, 297, 1, 0, 0, 0, 296, 294, 1, 0, 0, 0, 297, 298, 5, 60, 0, 0, 298, 299, 5, 47,
1032
+ 0, 0, 299, 300, 5, 116, 0, 0, 300, 301, 5, 104, 0, 0, 301, 302, 5, 105, 0, 0, 302, 303,
1033
+ 5, 110, 0, 0, 303, 304, 5, 107, 0, 0, 304, 305, 5, 62, 0, 0, 305, 306, 1, 0, 0, 0, 306,
1034
+ 307, 6, 15, 3, 0, 307, 308, 6, 15, 4, 0, 308, 36, 1, 0, 0, 0, 309, 310, 5, 60, 0, 0, 310,
1035
+ 311, 5, 124, 0, 0, 311, 312, 5, 99, 0, 0, 312, 313, 5, 104, 0, 0, 313, 314, 5, 97, 0,
1036
+ 0, 314, 315, 5, 110, 0, 0, 315, 316, 5, 110, 0, 0, 316, 317, 5, 101, 0, 0, 317, 318,
1037
+ 5, 108, 0, 0, 318, 319, 5, 62, 0, 0, 319, 323, 1, 0, 0, 0, 320, 322, 9, 0, 0, 0, 321, 320,
1038
+ 1, 0, 0, 0, 322, 325, 1, 0, 0, 0, 323, 324, 1, 0, 0, 0, 323, 321, 1, 0, 0, 0, 324, 326,
1039
+ 1, 0, 0, 0, 325, 323, 1, 0, 0, 0, 326, 327, 5, 60, 0, 0, 327, 328, 5, 99, 0, 0, 328, 329,
1040
+ 5, 104, 0, 0, 329, 330, 5, 97, 0, 0, 330, 331, 5, 110, 0, 0, 331, 332, 5, 110, 0, 0, 332,
1041
+ 333, 5, 101, 0, 0, 333, 334, 5, 108, 0, 0, 334, 335, 5, 124, 0, 0, 335, 336, 5, 62, 0,
1042
+ 0, 336, 337, 1, 0, 0, 0, 337, 338, 6, 16, 3, 0, 338, 339, 6, 16, 4, 0, 339, 38, 1, 0, 0,
1043
+ 0, 340, 342, 8, 6, 0, 0, 341, 340, 1, 0, 0, 0, 342, 343, 1, 0, 0, 0, 343, 341, 1, 0, 0,
1044
+ 0, 343, 344, 1, 0, 0, 0, 344, 345, 1, 0, 0, 0, 345, 346, 6, 17, 5, 0, 346, 347, 1, 0, 0,
1045
+ 0, 347, 348, 6, 17, 3, 0, 348, 349, 6, 17, 4, 0, 349, 40, 1, 0, 0, 0, 350, 351, 5, 96,
1046
+ 0, 0, 351, 352, 6, 18, 6, 0, 352, 353, 1, 0, 0, 0, 353, 354, 6, 18, 3, 0, 354, 355, 6,
1047
+ 18, 4, 0, 355, 42, 1, 0, 0, 0, 356, 358, 4, 19, 3, 0, 357, 359, 7, 7, 0, 0, 358, 357, 1,
1048
+ 0, 0, 0, 359, 360, 1, 0, 0, 0, 360, 358, 1, 0, 0, 0, 360, 361, 1, 0, 0, 0, 361, 362, 1,
1049
+ 0, 0, 0, 362, 363, 6, 19, 7, 0, 363, 364, 1, 0, 0, 0, 364, 365, 6, 19, 8, 0, 365, 366,
1050
+ 6, 19, 9, 0, 366, 44, 1, 0, 0, 0, 367, 369, 7, 7, 0, 0, 368, 367, 1, 0, 0, 0, 369, 370,
1051
+ 1, 0, 0, 0, 370, 368, 1, 0, 0, 0, 370, 371, 1, 0, 0, 0, 371, 372, 1, 0, 0, 0, 372, 373,
1052
+ 6, 20, 10, 0, 373, 374, 1, 0, 0, 0, 374, 375, 6, 20, 11, 0, 375, 46, 1, 0, 0, 0, 376, 377,
1053
+ 4, 21, 4, 0, 377, 378, 5, 40, 0, 0, 378, 379, 6, 21, 12, 0, 379, 380, 1, 0, 0, 0, 380,
1054
+ 381, 6, 21, 13, 0, 381, 382, 6, 21, 14, 0, 382, 48, 1, 0, 0, 0, 383, 384, 4, 22, 5, 0,
1055
+ 384, 385, 5, 91, 0, 0, 385, 386, 6, 22, 15, 0, 386, 387, 1, 0, 0, 0, 387, 388, 6, 22,
1056
+ 16, 0, 388, 389, 6, 22, 17, 0, 389, 50, 1, 0, 0, 0, 390, 391, 4, 23, 6, 0, 391, 392, 3,
1057
+ 19, 7, 0, 392, 393, 1, 0, 0, 0, 393, 394, 6, 23, 18, 0, 394, 52, 1, 0, 0, 0, 395, 396,
1058
+ 4, 24, 7, 0, 396, 397, 3, 11, 3, 0, 397, 398, 1, 0, 0, 0, 398, 399, 6, 24, 18, 0, 399,
1059
+ 54, 1, 0, 0, 0, 400, 401, 4, 25, 8, 0, 401, 402, 3, 25, 10, 0, 402, 403, 1, 0, 0, 0, 403,
1060
+ 404, 6, 25, 18, 0, 404, 56, 1, 0, 0, 0, 405, 406, 4, 26, 9, 0, 406, 407, 5, 60, 0, 0, 407,
1061
+ 408, 5, 33, 0, 0, 408, 409, 5, 45, 0, 0, 409, 410, 5, 45, 0, 0, 410, 414, 1, 0, 0, 0, 411,
1062
+ 413, 8, 8, 0, 0, 412, 411, 1, 0, 0, 0, 413, 416, 1, 0, 0, 0, 414, 415, 1, 0, 0, 0, 414,
1063
+ 412, 1, 0, 0, 0, 415, 417, 1, 0, 0, 0, 416, 414, 1, 0, 0, 0, 417, 418, 5, 45, 0, 0, 418,
1064
+ 419, 5, 45, 0, 0, 419, 420, 5, 62, 0, 0, 420, 421, 1, 0, 0, 0, 421, 422, 6, 26, 19, 0,
1065
+ 422, 58, 1, 0, 0, 0, 423, 424, 4, 27, 10, 0, 424, 425, 5, 60, 0, 0, 425, 426, 5, 33, 0,
1066
+ 0, 426, 427, 5, 45, 0, 0, 427, 428, 5, 45, 0, 0, 428, 432, 1, 0, 0, 0, 429, 431, 8, 8,
1067
+ 0, 0, 430, 429, 1, 0, 0, 0, 431, 434, 1, 0, 0, 0, 432, 430, 1, 0, 0, 0, 432, 433, 1, 0,
1068
+ 0, 0, 433, 435, 1, 0, 0, 0, 434, 432, 1, 0, 0, 0, 435, 436, 6, 27, 20, 0, 436, 437, 1,
1069
+ 0, 0, 0, 437, 438, 6, 27, 19, 0, 438, 60, 1, 0, 0, 0, 439, 440, 4, 28, 11, 0, 440, 444,
1070
+ 3, 5, 0, 0, 441, 443, 7, 1, 0, 0, 442, 441, 1, 0, 0, 0, 443, 446, 1, 0, 0, 0, 444, 442,
1071
+ 1, 0, 0, 0, 444, 445, 1, 0, 0, 0, 445, 450, 1, 0, 0, 0, 446, 444, 1, 0, 0, 0, 447, 449,
1072
+ 7, 7, 0, 0, 448, 447, 1, 0, 0, 0, 449, 452, 1, 0, 0, 0, 450, 448, 1, 0, 0, 0, 450, 451,
1073
+ 1, 0, 0, 0, 451, 453, 1, 0, 0, 0, 452, 450, 1, 0, 0, 0, 453, 454, 6, 28, 21, 0, 454, 455,
1074
+ 1, 0, 0, 0, 455, 456, 6, 28, 11, 0, 456, 62, 1, 0, 0, 0, 457, 458, 4, 29, 12, 0, 458, 462,
1075
+ 3, 5, 0, 0, 459, 461, 7, 1, 0, 0, 460, 459, 1, 0, 0, 0, 461, 464, 1, 0, 0, 0, 462, 460,
1076
+ 1, 0, 0, 0, 462, 463, 1, 0, 0, 0, 463, 468, 1, 0, 0, 0, 464, 462, 1, 0, 0, 0, 465, 467,
1077
+ 7, 7, 0, 0, 466, 465, 1, 0, 0, 0, 467, 470, 1, 0, 0, 0, 468, 466, 1, 0, 0, 0, 468, 469,
1078
+ 1, 0, 0, 0, 469, 471, 1, 0, 0, 0, 470, 468, 1, 0, 0, 0, 471, 472, 6, 29, 22, 0, 472, 473,
1079
+ 1, 0, 0, 0, 473, 474, 6, 29, 8, 0, 474, 475, 6, 29, 9, 0, 475, 64, 1, 0, 0, 0, 476, 477,
1080
+ 4, 30, 13, 0, 477, 478, 8, 9, 0, 0, 478, 479, 6, 30, 23, 0, 479, 480, 1, 0, 0, 0, 480,
1081
+ 481, 6, 30, 24, 0, 481, 482, 6, 30, 25, 0, 482, 66, 1, 0, 0, 0, 483, 484, 4, 31, 14, 0,
1082
+ 484, 485, 3, 27, 11, 0, 485, 486, 1, 0, 0, 0, 486, 487, 6, 31, 8, 0, 487, 488, 6, 31,
1083
+ 9, 0, 488, 68, 1, 0, 0, 0, 489, 490, 4, 32, 15, 0, 490, 491, 3, 27, 11, 0, 491, 492, 1,
1084
+ 0, 0, 0, 492, 493, 6, 32, 8, 0, 493, 494, 6, 32, 9, 0, 494, 70, 1, 0, 0, 0, 495, 496, 3,
1085
+ 27, 11, 0, 496, 497, 1, 0, 0, 0, 497, 498, 6, 33, 26, 0, 498, 499, 6, 33, 25, 0, 499,
1086
+ 72, 1, 0, 0, 0, 500, 501, 4, 34, 16, 0, 501, 505, 3, 5, 0, 0, 502, 504, 7, 7, 0, 0, 503,
1087
+ 502, 1, 0, 0, 0, 504, 507, 1, 0, 0, 0, 505, 503, 1, 0, 0, 0, 505, 506, 1, 0, 0, 0, 506,
1088
+ 508, 1, 0, 0, 0, 507, 505, 1, 0, 0, 0, 508, 509, 6, 34, 27, 0, 509, 510, 1, 0, 0, 0, 510,
1089
+ 511, 6, 34, 8, 0, 511, 512, 6, 34, 9, 0, 512, 74, 1, 0, 0, 0, 513, 514, 3, 27, 11, 0, 514,
1090
+ 515, 1, 0, 0, 0, 515, 516, 6, 35, 8, 0, 516, 517, 6, 35, 9, 0, 517, 76, 1, 0, 0, 0, 518,
1091
+ 519, 5, 92, 0, 0, 519, 520, 7, 10, 0, 0, 520, 521, 1, 0, 0, 0, 521, 522, 6, 36, 28, 0,
1092
+ 522, 78, 1, 0, 0, 0, 523, 525, 8, 11, 0, 0, 524, 523, 1, 0, 0, 0, 525, 526, 1, 0, 0, 0,
1093
+ 526, 524, 1, 0, 0, 0, 526, 527, 1, 0, 0, 0, 527, 528, 1, 0, 0, 0, 528, 529, 6, 37, 28,
1094
+ 0, 529, 80, 1, 0, 0, 0, 530, 531, 5, 92, 0, 0, 531, 532, 1, 0, 0, 0, 532, 533, 6, 38, 28,
1095
+ 0, 533, 82, 1, 0, 0, 0, 534, 535, 5, 40, 0, 0, 535, 536, 6, 39, 29, 0, 536, 537, 1, 0,
1096
+ 0, 0, 537, 538, 6, 39, 28, 0, 538, 84, 1, 0, 0, 0, 539, 540, 4, 40, 17, 0, 540, 541, 5,
1097
+ 41, 0, 0, 541, 542, 6, 40, 30, 0, 542, 543, 1, 0, 0, 0, 543, 544, 6, 40, 28, 0, 544, 86,
1098
+ 1, 0, 0, 0, 545, 546, 4, 41, 18, 0, 546, 547, 3, 19, 7, 0, 547, 548, 4, 41, 19, 0, 548,
1099
+ 549, 1, 0, 0, 0, 549, 550, 6, 41, 18, 0, 550, 88, 1, 0, 0, 0, 551, 552, 4, 42, 20, 0, 552,
1100
+ 553, 3, 11, 3, 0, 553, 554, 4, 42, 21, 0, 554, 555, 1, 0, 0, 0, 555, 556, 6, 42, 18, 0,
1101
+ 556, 90, 1, 0, 0, 0, 557, 558, 5, 96, 0, 0, 558, 559, 1, 0, 0, 0, 559, 560, 6, 43, 28,
1102
+ 0, 560, 92, 1, 0, 0, 0, 561, 562, 5, 41, 0, 0, 562, 563, 6, 44, 31, 0, 563, 564, 1, 0,
1103
+ 0, 0, 564, 565, 6, 44, 32, 0, 565, 566, 6, 44, 1, 0, 566, 94, 1, 0, 0, 0, 567, 568, 4,
1104
+ 45, 22, 0, 568, 572, 3, 5, 0, 0, 569, 571, 7, 7, 0, 0, 570, 569, 1, 0, 0, 0, 571, 574,
1105
+ 1, 0, 0, 0, 572, 570, 1, 0, 0, 0, 572, 573, 1, 0, 0, 0, 573, 575, 1, 0, 0, 0, 574, 572,
1106
+ 1, 0, 0, 0, 575, 576, 6, 45, 33, 0, 576, 577, 1, 0, 0, 0, 577, 578, 6, 45, 8, 0, 578, 579,
1107
+ 6, 45, 9, 0, 579, 96, 1, 0, 0, 0, 580, 581, 3, 27, 11, 0, 581, 582, 1, 0, 0, 0, 582, 583,
1108
+ 6, 46, 8, 0, 583, 584, 6, 46, 9, 0, 584, 98, 1, 0, 0, 0, 585, 591, 5, 34, 0, 0, 586, 587,
1109
+ 5, 92, 0, 0, 587, 590, 8, 8, 0, 0, 588, 590, 8, 12, 0, 0, 589, 586, 1, 0, 0, 0, 589, 588,
1110
+ 1, 0, 0, 0, 590, 593, 1, 0, 0, 0, 591, 589, 1, 0, 0, 0, 591, 592, 1, 0, 0, 0, 592, 594,
1111
+ 1, 0, 0, 0, 593, 591, 1, 0, 0, 0, 594, 595, 5, 34, 0, 0, 595, 596, 1, 0, 0, 0, 596, 597,
1112
+ 6, 47, 34, 0, 597, 100, 1, 0, 0, 0, 598, 600, 8, 13, 0, 0, 599, 598, 1, 0, 0, 0, 600, 601,
1113
+ 1, 0, 0, 0, 601, 599, 1, 0, 0, 0, 601, 602, 1, 0, 0, 0, 602, 603, 1, 0, 0, 0, 603, 604,
1114
+ 6, 48, 34, 0, 604, 102, 1, 0, 0, 0, 605, 606, 5, 96, 0, 0, 606, 607, 1, 0, 0, 0, 607, 608,
1115
+ 6, 49, 34, 0, 608, 104, 1, 0, 0, 0, 609, 610, 5, 34, 0, 0, 610, 611, 1, 0, 0, 0, 611, 612,
1116
+ 6, 50, 34, 0, 612, 106, 1, 0, 0, 0, 613, 614, 5, 91, 0, 0, 614, 615, 6, 51, 35, 0, 615,
1117
+ 616, 1, 0, 0, 0, 616, 617, 6, 51, 34, 0, 617, 108, 1, 0, 0, 0, 618, 619, 4, 52, 23, 0,
1118
+ 619, 620, 5, 93, 0, 0, 620, 621, 6, 52, 36, 0, 621, 622, 1, 0, 0, 0, 622, 623, 6, 52,
1119
+ 34, 0, 623, 110, 1, 0, 0, 0, 624, 625, 5, 93, 0, 0, 625, 626, 6, 53, 37, 0, 626, 627,
1120
+ 1, 0, 0, 0, 627, 628, 6, 53, 38, 0, 628, 629, 6, 53, 1, 0, 629, 112, 1, 0, 0, 0, 630, 631,
1121
+ 4, 54, 24, 0, 631, 635, 3, 27, 11, 0, 632, 634, 7, 7, 0, 0, 633, 632, 1, 0, 0, 0, 634,
1122
+ 637, 1, 0, 0, 0, 635, 633, 1, 0, 0, 0, 635, 636, 1, 0, 0, 0, 636, 638, 1, 0, 0, 0, 637,
1123
+ 635, 1, 0, 0, 0, 638, 642, 3, 5, 0, 0, 639, 641, 7, 1, 0, 0, 640, 639, 1, 0, 0, 0, 641,
1124
+ 644, 1, 0, 0, 0, 642, 640, 1, 0, 0, 0, 642, 643, 1, 0, 0, 0, 643, 648, 1, 0, 0, 0, 644,
1125
+ 642, 1, 0, 0, 0, 645, 647, 7, 7, 0, 0, 646, 645, 1, 0, 0, 0, 647, 650, 1, 0, 0, 0, 648,
1126
+ 646, 1, 0, 0, 0, 648, 649, 1, 0, 0, 0, 649, 651, 1, 0, 0, 0, 650, 648, 1, 0, 0, 0, 651,
1127
+ 652, 6, 54, 39, 0, 652, 653, 1, 0, 0, 0, 653, 654, 6, 54, 8, 0, 654, 655, 6, 54, 9, 0,
1128
+ 655, 114, 1, 0, 0, 0, 656, 660, 4, 55, 25, 0, 657, 659, 7, 7, 0, 0, 658, 657, 1, 0, 0,
1129
+ 0, 659, 662, 1, 0, 0, 0, 660, 658, 1, 0, 0, 0, 660, 661, 1, 0, 0, 0, 661, 663, 1, 0, 0,
1130
+ 0, 662, 660, 1, 0, 0, 0, 663, 667, 3, 5, 0, 0, 664, 666, 7, 1, 0, 0, 665, 664, 1, 0, 0,
1131
+ 0, 666, 669, 1, 0, 0, 0, 667, 665, 1, 0, 0, 0, 667, 668, 1, 0, 0, 0, 668, 673, 1, 0, 0,
1132
+ 0, 669, 667, 1, 0, 0, 0, 670, 672, 7, 7, 0, 0, 671, 670, 1, 0, 0, 0, 672, 675, 1, 0, 0,
1133
+ 0, 673, 671, 1, 0, 0, 0, 673, 674, 1, 0, 0, 0, 674, 676, 1, 0, 0, 0, 675, 673, 1, 0, 0,
1134
+ 0, 676, 677, 6, 55, 40, 0, 677, 678, 1, 0, 0, 0, 678, 679, 6, 55, 8, 0, 679, 680, 6, 55,
1135
+ 9, 0, 680, 116, 1, 0, 0, 0, 681, 682, 4, 56, 26, 0, 682, 683, 3, 27, 11, 0, 683, 684,
1136
+ 1, 0, 0, 0, 684, 685, 6, 56, 8, 0, 685, 686, 6, 56, 9, 0, 686, 118, 1, 0, 0, 0, 687, 688,
1137
+ 4, 57, 27, 0, 688, 689, 3, 27, 11, 0, 689, 690, 1, 0, 0, 0, 690, 691, 6, 57, 8, 0, 691,
1138
+ 692, 6, 57, 9, 0, 692, 120, 1, 0, 0, 0, 693, 695, 8, 14, 0, 0, 694, 693, 1, 0, 0, 0, 695,
1139
+ 696, 1, 0, 0, 0, 696, 694, 1, 0, 0, 0, 696, 697, 1, 0, 0, 0, 697, 698, 1, 0, 0, 0, 698,
1140
+ 699, 6, 58, 24, 0, 699, 122, 1, 0, 0, 0, 700, 701, 5, 96, 0, 0, 701, 702, 1, 0, 0, 0, 702,
1141
+ 703, 6, 59, 24, 0, 703, 124, 1, 0, 0, 0, 704, 705, 5, 13, 0, 0, 705, 706, 5, 10, 0, 0,
1142
+ 706, 707, 1, 0, 0, 0, 707, 708, 6, 60, 41, 0, 708, 709, 1, 0, 0, 0, 709, 710, 6, 60, 24,
1143
+ 0, 710, 126, 1, 0, 0, 0, 711, 712, 5, 10, 0, 0, 712, 713, 6, 61, 42, 0, 713, 714, 1, 0,
1144
+ 0, 0, 714, 715, 6, 61, 24, 0, 715, 128, 1, 0, 0, 0, 716, 717, 5, 13, 0, 0, 717, 718, 1,
1145
+ 0, 0, 0, 718, 719, 6, 62, 24, 0, 719, 130, 1, 0, 0, 0, 52, 0, 1, 2, 3, 4, 138, 144, 147,
1146
+ 152, 158, 160, 167, 169, 174, 189, 192, 195, 200, 206, 211, 222, 227, 233, 238,
1147
+ 244, 253, 267, 279, 294, 323, 343, 360, 370, 414, 432, 444, 450, 462, 468, 505,
1148
+ 526, 572, 589, 591, 601, 635, 642, 648, 660, 667, 673, 696, 43, 1, 12, 0, 2, 1, 0,
1149
+ 1, 13, 1, 7, 24, 0, 0, 1, 0, 1, 17, 2, 1, 18, 3, 1, 19, 4, 7, 20, 0, 2, 0, 0, 1, 20, 5, 6, 0,
1150
+ 0, 1, 21, 6, 7, 14, 0, 2, 2, 0, 1, 22, 7, 7, 16, 0, 2, 3, 0, 7, 18, 0, 7, 25, 0, 1, 27, 8, 1,
1151
+ 28, 9, 1, 29, 10, 1, 30, 11, 7, 23, 0, 2, 4, 0, 7, 19, 0, 1, 34, 12, 7, 21, 0, 1, 39, 13,
1152
+ 1, 40, 14, 1, 44, 15, 7, 15, 0, 1, 45, 16, 7, 22, 0, 1, 51, 17, 1, 52, 18, 1, 53, 19, 7,
1153
+ 17, 0, 1, 54, 20, 1, 55, 21, 1, 60, 22, 1, 61, 23
1154
+ ];
1155
+ static __ATN;
1156
+ static get _ATN() {
1157
+ if (!plurnkLexer.__ATN) {
1158
+ plurnkLexer.__ATN = new antlr.ATNDeserializer().deserialize(plurnkLexer._serializedATN);
1159
+ }
1160
+ return plurnkLexer.__ATN;
1161
+ }
1162
+ static vocabulary = new antlr.Vocabulary(plurnkLexer.literalNames, plurnkLexer.symbolicNames, []);
1163
+ get vocabulary() {
1164
+ return plurnkLexer.vocabulary;
1165
+ }
1166
+ static decisionsToDFA = plurnkLexer._ATN.decisionToState.map((ds, index) => new antlr.DFA(ds, index));
1167
+ }
1168
+ //# sourceMappingURL=plurnkLexer.js.map