@plurnk/plurnk-contracts 1.10.0 → 1.11.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 (66) hide show
  1. package/README.md +2 -3
  2. package/SPEC.md +149 -75
  3. package/dist/plurnk.gemma.gbnf +4 -3
  4. package/dist/plurnk.qwen.gbnf +4 -3
  5. package/dist/schema/CapabilityDescriptor.json +23 -0
  6. package/dist/schema/CapabilityPolicy.json +18 -0
  7. package/dist/schema/CapabilityProjection.json +16 -0
  8. package/dist/schema/CapabilitySelector.json +24 -0
  9. package/dist/schema/ClientStatement.json +10 -2
  10. package/dist/schema/LoopPolicy.json +13 -0
  11. package/dist/schema/MatcherBody.json +8 -8
  12. package/dist/schema/ParsedPath.json +1 -11
  13. package/dist/schema/PlurnkStatement.json +76 -34
  14. package/dist/schema/ProblemProjection.json +38 -0
  15. package/dist/schema/ProposalProjection.json +2 -2
  16. package/dist/schema/ResourceSelection.json +12 -2
  17. package/dist/src/ApplicationPort.d.ts +9 -40
  18. package/dist/src/ApplicationPort.d.ts.map +1 -1
  19. package/dist/src/AstBuilder.d.ts +1 -7
  20. package/dist/src/AstBuilder.d.ts.map +1 -1
  21. package/dist/src/AstBuilder.js +127 -102
  22. package/dist/src/AstBuilder.js.map +1 -1
  23. package/dist/src/CapabilityAdmission.d.ts +9 -0
  24. package/dist/src/CapabilityAdmission.d.ts.map +1 -0
  25. package/dist/src/CapabilityAdmission.js +96 -0
  26. package/dist/src/CapabilityAdmission.js.map +1 -0
  27. package/dist/src/PlurnkErrorStrategy.d.ts.map +1 -1
  28. package/dist/src/PlurnkErrorStrategy.js +51 -1
  29. package/dist/src/PlurnkErrorStrategy.js.map +1 -1
  30. package/dist/src/PlurnkParser.d.ts +4 -1
  31. package/dist/src/PlurnkParser.d.ts.map +1 -1
  32. package/dist/src/PlurnkParser.js +86 -21
  33. package/dist/src/PlurnkParser.js.map +1 -1
  34. package/dist/src/Problems.d.ts +6 -1
  35. package/dist/src/Problems.d.ts.map +1 -1
  36. package/dist/src/Problems.js +34 -0
  37. package/dist/src/Problems.js.map +1 -1
  38. package/dist/src/Validator.d.ts +17 -4
  39. package/dist/src/Validator.d.ts.map +1 -1
  40. package/dist/src/Validator.js +65 -10
  41. package/dist/src/Validator.js.map +1 -1
  42. package/dist/src/generated/plurnkLexer.d.ts +52 -40
  43. package/dist/src/generated/plurnkLexer.d.ts.map +1 -1
  44. package/dist/src/generated/plurnkLexer.js +519 -431
  45. package/dist/src/generated/plurnkLexer.js.map +1 -1
  46. package/dist/src/generated/plurnkParser.d.ts +166 -92
  47. package/dist/src/generated/plurnkParser.d.ts.map +1 -1
  48. package/dist/src/generated/plurnkParser.js +1318 -705
  49. package/dist/src/generated/plurnkParser.js.map +1 -1
  50. package/dist/src/generated/plurnkParserVisitor.d.ts +49 -0
  51. package/dist/src/generated/plurnkParserVisitor.d.ts.map +1 -1
  52. package/dist/src/generated/plurnkParserVisitor.js +42 -0
  53. package/dist/src/generated/plurnkParserVisitor.js.map +1 -1
  54. package/dist/src/index.d.ts +4 -4
  55. package/dist/src/index.d.ts.map +1 -1
  56. package/dist/src/index.js +3 -3
  57. package/dist/src/index.js.map +1 -1
  58. package/dist/src/types.d.ts +3 -2
  59. package/dist/src/types.d.ts.map +1 -1
  60. package/dist/src/types.generated.d.ts +140 -34
  61. package/dist/src/types.generated.d.ts.map +1 -1
  62. package/dist/src/types.js +4 -6
  63. package/dist/src/types.js.map +1 -1
  64. package/package.json +2 -2
  65. package/plurnk.md +58 -44
  66. package/dist/schema/LoopFlags.json +0 -16
@@ -4,116 +4,130 @@ export class plurnkParser extends antlr.Parser {
4
4
  static RBRACKET = 2;
5
5
  static LPAREN = 3;
6
6
  static RPAREN = 4;
7
- static L_MARKER = 5;
8
- static COMBINED_L_MARKER = 6;
9
- static BODY_OPEN = 7;
10
- static SECTION_END = 8;
11
- static COMMA = 9;
12
- static INT = 10;
13
- static DISPOSITION = 11;
14
- static IDENT = 12;
15
- static TAG = 13;
16
- static TARGET_TEXT = 14;
17
- static BODY_TEXT = 15;
18
- static TEXT = 16;
19
- static ANNOTATION = 17;
20
- static OPEN_PLAN = 18;
21
- static OPEN_FIND = 19;
22
- static OPEN_READ = 20;
23
- static OPEN_EDIT = 21;
24
- static OPEN_COPY = 22;
25
- static OPEN_MOVE = 23;
26
- static OPEN_OPEN = 24;
27
- static OPEN_FOLD = 25;
28
- static OPEN_SEND = 26;
29
- static OPEN_EXEC = 27;
30
- static OPEN_BARE = 28;
31
- static OPEN_WORK = 29;
32
- static OPEN_FORK = 30;
33
- static OPEN_KILL = 31;
34
- static OPEN_LOOK = 32;
35
- static OPEN_BUFF = 33;
36
- static FENCE_OPEN = 34;
37
- static FENCE_CLOSE = 35;
38
- static WS = 36;
39
- static SLOTS_WS = 37;
40
- static ST_WS = 38;
41
- static SI_WS = 39;
42
- static SD_WS = 40;
43
- static TEXT_HASH = 41;
44
- static ST_COMMA = 42;
45
- static TARGET_BACKSLASH = 43;
7
+ static LBRACE = 5;
8
+ static RBRACE = 6;
9
+ static L_MARKER = 7;
10
+ static COMBINED_L_MARKER = 8;
11
+ static BODY_OPEN = 9;
12
+ static SECTION_END = 10;
13
+ static COMMA = 11;
14
+ static INT = 12;
15
+ static DISPOSITION = 13;
16
+ static IDENT = 14;
17
+ static TAG = 15;
18
+ static TARGET_TEXT = 16;
19
+ static METADATA_TEXT = 17;
20
+ static BODY_TEXT = 18;
21
+ static TEXT = 19;
22
+ static ANNOTATION = 20;
23
+ static OPEN_PLAN = 21;
24
+ static OPEN_FIND = 22;
25
+ static OPEN_READ = 23;
26
+ static OPEN_EDIT = 24;
27
+ static OPEN_COPY = 25;
28
+ static OPEN_MOVE = 26;
29
+ static OPEN_OPEN = 27;
30
+ static OPEN_FOLD = 28;
31
+ static OPEN_SEND = 29;
32
+ static OPEN_EXEC = 30;
33
+ static OPEN_BARE = 31;
34
+ static OPEN_WORK = 32;
35
+ static OPEN_FORK = 33;
36
+ static OPEN_KILL = 34;
37
+ static OPEN_LOOK = 35;
38
+ static OPEN_BUFF = 36;
39
+ static FENCE_OPEN = 37;
40
+ static FENCE_CLOSE = 38;
41
+ static WS = 39;
42
+ static SLOTS_WS = 40;
43
+ static ST_WS = 41;
44
+ static SI_WS = 42;
45
+ static SD_WS = 43;
46
+ static TEXT_HASH = 44;
47
+ static ST_COMMA = 45;
48
+ static TARGET_BACKSLASH = 46;
46
49
  static RULE_document = 0;
47
50
  static RULE_log = 1;
48
51
  static RULE_turnContent = 2;
49
- static RULE_turn = 3;
50
- static RULE_statementSeq = 4;
51
- static RULE_clientStatementSeq = 5;
52
- static RULE_clientStatement = 6;
53
- static RULE_statement = 7;
54
- static RULE_midStatement = 8;
55
- static RULE_findStatement = 9;
56
- static RULE_readStatement = 10;
57
- static RULE_editStatement = 11;
58
- static RULE_copyStatement = 12;
59
- static RULE_moveStatement = 13;
60
- static RULE_openStatement = 14;
61
- static RULE_foldStatement = 15;
62
- static RULE_sendStatement = 16;
63
- static RULE_midSend = 17;
64
- static RULE_execStatement = 18;
65
- static RULE_bareStatement = 19;
66
- static RULE_workStatement = 20;
67
- static RULE_forkStatement = 21;
68
- static RULE_killStatement = 22;
69
- static RULE_planStatement = 23;
70
- static RULE_lookStatement = 24;
71
- static RULE_buffStatement = 25;
72
- static RULE_opAnnotation = 26;
73
- static RULE_statementEnd = 27;
74
- static RULE_tagOpModifiers = 28;
75
- static RULE_intOpModifiers = 29;
76
- static RULE_branchModifiers = 30;
77
- static RULE_termModifiers = 31;
78
- static RULE_midModifiers = 32;
79
- static RULE_execModifiers = 33;
80
- static RULE_execSlot = 34;
81
- static RULE_tagSignal = 35;
82
- static RULE_branchSignal = 36;
83
- static RULE_intSignal = 37;
84
- static RULE_midSignal = 38;
85
- static RULE_dispSignal = 39;
86
- static RULE_identSignal = 40;
87
- static RULE_target = 41;
88
- static RULE_lineMarker = 42;
89
- static RULE_body = 43;
52
+ static RULE_modelTurnContent = 3;
53
+ static RULE_turn = 4;
54
+ static RULE_modelTurn = 5;
55
+ static RULE_statementSeq = 6;
56
+ static RULE_clientStatementSeq = 7;
57
+ static RULE_clientStatement = 8;
58
+ static RULE_statement = 9;
59
+ static RULE_midStatement = 10;
60
+ static RULE_findStatement = 11;
61
+ static RULE_readStatement = 12;
62
+ static RULE_editStatement = 13;
63
+ static RULE_copyStatement = 14;
64
+ static RULE_moveStatement = 15;
65
+ static RULE_openStatement = 16;
66
+ static RULE_foldStatement = 17;
67
+ static RULE_sendStatement = 18;
68
+ static RULE_midSend = 19;
69
+ static RULE_execStatement = 20;
70
+ static RULE_bareStatement = 21;
71
+ static RULE_workStatement = 22;
72
+ static RULE_forkStatement = 23;
73
+ static RULE_killStatement = 24;
74
+ static RULE_planStatement = 25;
75
+ static RULE_lookStatement = 26;
76
+ static RULE_buffStatement = 27;
77
+ static RULE_opAnnotation = 28;
78
+ static RULE_statementEnd = 29;
79
+ static RULE_transferModifiers = 30;
80
+ static RULE_resourceSelection = 31;
81
+ static RULE_emptyStatementEnd = 32;
82
+ static RULE_tagOpModifiers = 33;
83
+ static RULE_intOpModifiers = 34;
84
+ static RULE_branchModifiers = 35;
85
+ static RULE_termModifiers = 36;
86
+ static RULE_midModifiers = 37;
87
+ static RULE_execModifiers = 38;
88
+ static RULE_execSlot = 39;
89
+ static RULE_tagSignal = 40;
90
+ static RULE_branchSignal = 41;
91
+ static RULE_intSignal = 42;
92
+ static RULE_midSignal = 43;
93
+ static RULE_dispSignal = 44;
94
+ static RULE_identSignal = 45;
95
+ static RULE_target = 46;
96
+ static RULE_targetWithMetadata = 47;
97
+ static RULE_metadata = 48;
98
+ static RULE_lineMarker = 49;
99
+ static RULE_body = 50;
90
100
  static literalNames = [
91
101
  null, null, null, null, null, null, null, null, null, null, null,
92
102
  null, null, null, null, null, null, null, null, null, null, null,
93
103
  null, null, null, null, null, null, null, null, null, null, null,
94
- null, null, null, null, null, null, null, null, "'#'", "','", "'\\'"
104
+ null, null, null, null, null, null, null, null, null, null, null,
105
+ "'#'", "','", "'\\'"
95
106
  ];
96
107
  static symbolicNames = [
97
- null, "LBRACKET", "RBRACKET", "LPAREN", "RPAREN", "L_MARKER", "COMBINED_L_MARKER",
98
- "BODY_OPEN", "SECTION_END", "COMMA", "INT", "DISPOSITION", "IDENT",
99
- "TAG", "TARGET_TEXT", "BODY_TEXT", "TEXT", "ANNOTATION", "OPEN_PLAN",
100
- "OPEN_FIND", "OPEN_READ", "OPEN_EDIT", "OPEN_COPY", "OPEN_MOVE",
101
- "OPEN_OPEN", "OPEN_FOLD", "OPEN_SEND", "OPEN_EXEC", "OPEN_BARE",
102
- "OPEN_WORK", "OPEN_FORK", "OPEN_KILL", "OPEN_LOOK", "OPEN_BUFF",
103
- "FENCE_OPEN", "FENCE_CLOSE", "WS", "SLOTS_WS", "ST_WS", "SI_WS",
104
- "SD_WS", "TEXT_HASH", "ST_COMMA", "TARGET_BACKSLASH"
108
+ null, "LBRACKET", "RBRACKET", "LPAREN", "RPAREN", "LBRACE", "RBRACE",
109
+ "L_MARKER", "COMBINED_L_MARKER", "BODY_OPEN", "SECTION_END", "COMMA",
110
+ "INT", "DISPOSITION", "IDENT", "TAG", "TARGET_TEXT", "METADATA_TEXT",
111
+ "BODY_TEXT", "TEXT", "ANNOTATION", "OPEN_PLAN", "OPEN_FIND", "OPEN_READ",
112
+ "OPEN_EDIT", "OPEN_COPY", "OPEN_MOVE", "OPEN_OPEN", "OPEN_FOLD",
113
+ "OPEN_SEND", "OPEN_EXEC", "OPEN_BARE", "OPEN_WORK", "OPEN_FORK",
114
+ "OPEN_KILL", "OPEN_LOOK", "OPEN_BUFF", "FENCE_OPEN", "FENCE_CLOSE",
115
+ "WS", "SLOTS_WS", "ST_WS", "SI_WS", "SD_WS", "TEXT_HASH", "ST_COMMA",
116
+ "TARGET_BACKSLASH"
105
117
  ];
106
118
  static ruleNames = [
107
- "document", "log", "turnContent", "turn", "statementSeq", "clientStatementSeq",
108
- "clientStatement", "statement", "midStatement", "findStatement",
109
- "readStatement", "editStatement", "copyStatement", "moveStatement",
110
- "openStatement", "foldStatement", "sendStatement", "midSend", "execStatement",
111
- "bareStatement", "workStatement", "forkStatement", "killStatement",
112
- "planStatement", "lookStatement", "buffStatement", "opAnnotation",
113
- "statementEnd", "tagOpModifiers", "intOpModifiers", "branchModifiers",
114
- "termModifiers", "midModifiers", "execModifiers", "execSlot", "tagSignal",
115
- "branchSignal", "intSignal", "midSignal", "dispSignal", "identSignal",
116
- "target", "lineMarker", "body",
119
+ "document", "log", "turnContent", "modelTurnContent", "turn", "modelTurn",
120
+ "statementSeq", "clientStatementSeq", "clientStatement", "statement",
121
+ "midStatement", "findStatement", "readStatement", "editStatement",
122
+ "copyStatement", "moveStatement", "openStatement", "foldStatement",
123
+ "sendStatement", "midSend", "execStatement", "bareStatement", "workStatement",
124
+ "forkStatement", "killStatement", "planStatement", "lookStatement",
125
+ "buffStatement", "opAnnotation", "statementEnd", "transferModifiers",
126
+ "resourceSelection", "emptyStatementEnd", "tagOpModifiers", "intOpModifiers",
127
+ "branchModifiers", "termModifiers", "midModifiers", "execModifiers",
128
+ "execSlot", "tagSignal", "branchSignal", "intSignal", "midSignal",
129
+ "dispSignal", "identSignal", "target", "targetWithMetadata", "metadata",
130
+ "lineMarker", "body",
117
131
  ];
118
132
  get grammarFileName() { return "plurnkParser.g4"; }
119
133
  get literalNames() { return plurnkParser.literalNames; }
@@ -132,36 +146,49 @@ export class plurnkParser extends antlr.Parser {
132
146
  this.enterRule(localContext, 0, plurnkParser.RULE_document);
133
147
  let _la;
134
148
  try {
135
- this.state = 98;
149
+ this.state = 112;
136
150
  this.errorHandler.sync(this);
137
151
  switch (this.tokenStream.LA(1)) {
138
152
  case plurnkParser.TEXT:
139
153
  case plurnkParser.OPEN_PLAN:
154
+ case plurnkParser.OPEN_FIND:
155
+ case plurnkParser.OPEN_READ:
156
+ case plurnkParser.OPEN_EDIT:
157
+ case plurnkParser.OPEN_COPY:
158
+ case plurnkParser.OPEN_MOVE:
159
+ case plurnkParser.OPEN_OPEN:
160
+ case plurnkParser.OPEN_FOLD:
161
+ case plurnkParser.OPEN_SEND:
162
+ case plurnkParser.OPEN_EXEC:
163
+ case plurnkParser.OPEN_BARE:
164
+ case plurnkParser.OPEN_WORK:
165
+ case plurnkParser.OPEN_FORK:
166
+ case plurnkParser.OPEN_KILL:
140
167
  this.enterOuterAlt(localContext, 1);
141
168
  {
142
- this.state = 88;
143
- this.turnContent();
144
- this.state = 89;
169
+ this.state = 102;
170
+ this.modelTurnContent();
171
+ this.state = 103;
145
172
  this.match(plurnkParser.EOF);
146
173
  }
147
174
  break;
148
175
  case plurnkParser.FENCE_OPEN:
149
176
  this.enterOuterAlt(localContext, 2);
150
177
  {
151
- this.state = 91;
178
+ this.state = 105;
152
179
  this.match(plurnkParser.FENCE_OPEN);
153
- this.state = 92;
154
- this.turn();
155
- this.state = 94;
180
+ this.state = 106;
181
+ this.modelTurn();
182
+ this.state = 108;
156
183
  this.errorHandler.sync(this);
157
184
  _la = this.tokenStream.LA(1);
158
- if (_la === 35) {
185
+ if (_la === 38) {
159
186
  {
160
- this.state = 93;
187
+ this.state = 107;
161
188
  this.match(plurnkParser.FENCE_CLOSE);
162
189
  }
163
190
  }
164
- this.state = 96;
191
+ this.state = 110;
165
192
  this.match(plurnkParser.EOF);
166
193
  }
167
194
  break;
@@ -190,21 +217,21 @@ export class plurnkParser extends antlr.Parser {
190
217
  try {
191
218
  this.enterOuterAlt(localContext, 1);
192
219
  {
193
- this.state = 101;
220
+ this.state = 115;
194
221
  this.errorHandler.sync(this);
195
222
  _la = this.tokenStream.LA(1);
196
223
  do {
197
224
  {
198
225
  {
199
- this.state = 100;
226
+ this.state = 114;
200
227
  this.turnContent();
201
228
  }
202
229
  }
203
- this.state = 103;
230
+ this.state = 117;
204
231
  this.errorHandler.sync(this);
205
232
  _la = this.tokenStream.LA(1);
206
- } while (_la === 16 || _la === 18);
207
- this.state = 105;
233
+ } while (_la === 19 || _la === 21);
234
+ this.state = 119;
208
235
  this.match(plurnkParser.EOF);
209
236
  }
210
237
  }
@@ -229,21 +256,21 @@ export class plurnkParser extends antlr.Parser {
229
256
  try {
230
257
  this.enterOuterAlt(localContext, 1);
231
258
  {
232
- this.state = 110;
259
+ this.state = 124;
233
260
  this.errorHandler.sync(this);
234
261
  _la = this.tokenStream.LA(1);
235
- while (_la === 16) {
262
+ while (_la === 19) {
236
263
  {
237
264
  {
238
- this.state = 107;
265
+ this.state = 121;
239
266
  this.match(plurnkParser.TEXT);
240
267
  }
241
268
  }
242
- this.state = 112;
269
+ this.state = 126;
243
270
  this.errorHandler.sync(this);
244
271
  _la = this.tokenStream.LA(1);
245
272
  }
246
- this.state = 113;
273
+ this.state = 127;
247
274
  this.turn();
248
275
  }
249
276
  }
@@ -261,32 +288,71 @@ export class plurnkParser extends antlr.Parser {
261
288
  }
262
289
  return localContext;
263
290
  }
291
+ modelTurnContent() {
292
+ let localContext = new ModelTurnContentContext(this.context, this.state);
293
+ this.enterRule(localContext, 6, plurnkParser.RULE_modelTurnContent);
294
+ let _la;
295
+ try {
296
+ this.enterOuterAlt(localContext, 1);
297
+ {
298
+ this.state = 132;
299
+ this.errorHandler.sync(this);
300
+ _la = this.tokenStream.LA(1);
301
+ while (_la === 19) {
302
+ {
303
+ {
304
+ this.state = 129;
305
+ this.match(plurnkParser.TEXT);
306
+ }
307
+ }
308
+ this.state = 134;
309
+ this.errorHandler.sync(this);
310
+ _la = this.tokenStream.LA(1);
311
+ }
312
+ this.state = 135;
313
+ this.modelTurn();
314
+ }
315
+ }
316
+ catch (re) {
317
+ if (re instanceof antlr.RecognitionException) {
318
+ this.errorHandler.reportError(this, re);
319
+ this.errorHandler.recover(this, re);
320
+ }
321
+ else {
322
+ throw re;
323
+ }
324
+ }
325
+ finally {
326
+ this.exitRule();
327
+ }
328
+ return localContext;
329
+ }
264
330
  turn() {
265
331
  let localContext = new TurnContext(this.context, this.state);
266
- this.enterRule(localContext, 6, plurnkParser.RULE_turn);
332
+ this.enterRule(localContext, 8, plurnkParser.RULE_turn);
267
333
  try {
268
334
  let alternative;
269
335
  this.enterOuterAlt(localContext, 1);
270
336
  {
271
- this.state = 115;
337
+ this.state = 137;
272
338
  this.planStatement();
273
- this.state = 119;
339
+ this.state = 141;
274
340
  this.errorHandler.sync(this);
275
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 4, this.context);
341
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 5, this.context);
276
342
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
277
343
  if (alternative === 1) {
278
344
  {
279
345
  {
280
- this.state = 116;
346
+ this.state = 138;
281
347
  this.midStatement();
282
348
  }
283
349
  }
284
350
  }
285
- this.state = 121;
351
+ this.state = 143;
286
352
  this.errorHandler.sync(this);
287
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 4, this.context);
353
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 5, this.context);
288
354
  }
289
- this.state = 122;
355
+ this.state = 144;
290
356
  this.sendStatement();
291
357
  }
292
358
  }
@@ -304,28 +370,122 @@ export class plurnkParser extends antlr.Parser {
304
370
  }
305
371
  return localContext;
306
372
  }
373
+ modelTurn() {
374
+ let localContext = new ModelTurnContext(this.context, this.state);
375
+ this.enterRule(localContext, 10, plurnkParser.RULE_modelTurn);
376
+ let _la;
377
+ try {
378
+ let alternative;
379
+ this.state = 163;
380
+ this.errorHandler.sync(this);
381
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 9, this.context)) {
382
+ case 1:
383
+ this.enterOuterAlt(localContext, 1);
384
+ {
385
+ this.state = 146;
386
+ this.turn();
387
+ }
388
+ break;
389
+ case 2:
390
+ this.enterOuterAlt(localContext, 2);
391
+ {
392
+ this.state = 147;
393
+ this.planStatement();
394
+ this.state = 151;
395
+ this.errorHandler.sync(this);
396
+ _la = this.tokenStream.LA(1);
397
+ while (((((_la - 22)) & ~0x1F) === 0 && ((1 << (_la - 22)) & 8191) !== 0)) {
398
+ {
399
+ {
400
+ this.state = 148;
401
+ this.midStatement();
402
+ }
403
+ }
404
+ this.state = 153;
405
+ this.errorHandler.sync(this);
406
+ _la = this.tokenStream.LA(1);
407
+ }
408
+ }
409
+ break;
410
+ case 3:
411
+ this.enterOuterAlt(localContext, 3);
412
+ {
413
+ this.state = 155;
414
+ this.errorHandler.sync(this);
415
+ alternative = 1;
416
+ do {
417
+ switch (alternative) {
418
+ case 1:
419
+ {
420
+ {
421
+ this.state = 154;
422
+ this.midStatement();
423
+ }
424
+ }
425
+ break;
426
+ default:
427
+ throw new antlr.NoViableAltException(this);
428
+ }
429
+ this.state = 157;
430
+ this.errorHandler.sync(this);
431
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 7, this.context);
432
+ } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
433
+ this.state = 160;
434
+ this.errorHandler.sync(this);
435
+ _la = this.tokenStream.LA(1);
436
+ if (_la === 29) {
437
+ {
438
+ this.state = 159;
439
+ this.sendStatement();
440
+ }
441
+ }
442
+ }
443
+ break;
444
+ case 4:
445
+ this.enterOuterAlt(localContext, 4);
446
+ {
447
+ this.state = 162;
448
+ this.sendStatement();
449
+ }
450
+ break;
451
+ }
452
+ }
453
+ catch (re) {
454
+ if (re instanceof antlr.RecognitionException) {
455
+ this.errorHandler.reportError(this, re);
456
+ this.errorHandler.recover(this, re);
457
+ }
458
+ else {
459
+ throw re;
460
+ }
461
+ }
462
+ finally {
463
+ this.exitRule();
464
+ }
465
+ return localContext;
466
+ }
307
467
  statementSeq() {
308
468
  let localContext = new StatementSeqContext(this.context, this.state);
309
- this.enterRule(localContext, 8, plurnkParser.RULE_statementSeq);
469
+ this.enterRule(localContext, 12, plurnkParser.RULE_statementSeq);
310
470
  let _la;
311
471
  try {
312
472
  this.enterOuterAlt(localContext, 1);
313
473
  {
314
- this.state = 127;
474
+ this.state = 168;
315
475
  this.errorHandler.sync(this);
316
476
  _la = this.tokenStream.LA(1);
317
- while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294705152) !== 0)) {
477
+ while (((((_la - 21)) & ~0x1F) === 0 && ((1 << (_la - 21)) & 16383) !== 0)) {
318
478
  {
319
479
  {
320
- this.state = 124;
480
+ this.state = 165;
321
481
  this.statement();
322
482
  }
323
483
  }
324
- this.state = 129;
484
+ this.state = 170;
325
485
  this.errorHandler.sync(this);
326
486
  _la = this.tokenStream.LA(1);
327
487
  }
328
- this.state = 130;
488
+ this.state = 171;
329
489
  this.match(plurnkParser.EOF);
330
490
  }
331
491
  }
@@ -345,26 +505,26 @@ export class plurnkParser extends antlr.Parser {
345
505
  }
346
506
  clientStatementSeq() {
347
507
  let localContext = new ClientStatementSeqContext(this.context, this.state);
348
- this.enterRule(localContext, 10, plurnkParser.RULE_clientStatementSeq);
508
+ this.enterRule(localContext, 14, plurnkParser.RULE_clientStatementSeq);
349
509
  let _la;
350
510
  try {
351
511
  this.enterOuterAlt(localContext, 1);
352
512
  {
353
- this.state = 135;
513
+ this.state = 176;
354
514
  this.errorHandler.sync(this);
355
515
  _la = this.tokenStream.LA(1);
356
- while (((((_la - 18)) & ~0x1F) === 0 && ((1 << (_la - 18)) & 65535) !== 0)) {
516
+ while (((((_la - 21)) & ~0x1F) === 0 && ((1 << (_la - 21)) & 65535) !== 0)) {
357
517
  {
358
518
  {
359
- this.state = 132;
519
+ this.state = 173;
360
520
  this.clientStatement();
361
521
  }
362
522
  }
363
- this.state = 137;
523
+ this.state = 178;
364
524
  this.errorHandler.sync(this);
365
525
  _la = this.tokenStream.LA(1);
366
526
  }
367
- this.state = 138;
527
+ this.state = 179;
368
528
  this.match(plurnkParser.EOF);
369
529
  }
370
530
  }
@@ -384,9 +544,9 @@ export class plurnkParser extends antlr.Parser {
384
544
  }
385
545
  clientStatement() {
386
546
  let localContext = new ClientStatementContext(this.context, this.state);
387
- this.enterRule(localContext, 12, plurnkParser.RULE_clientStatement);
547
+ this.enterRule(localContext, 16, plurnkParser.RULE_clientStatement);
388
548
  try {
389
- this.state = 143;
549
+ this.state = 184;
390
550
  this.errorHandler.sync(this);
391
551
  switch (this.tokenStream.LA(1)) {
392
552
  case plurnkParser.OPEN_PLAN:
@@ -405,21 +565,21 @@ export class plurnkParser extends antlr.Parser {
405
565
  case plurnkParser.OPEN_KILL:
406
566
  this.enterOuterAlt(localContext, 1);
407
567
  {
408
- this.state = 140;
568
+ this.state = 181;
409
569
  this.statement();
410
570
  }
411
571
  break;
412
572
  case plurnkParser.OPEN_LOOK:
413
573
  this.enterOuterAlt(localContext, 2);
414
574
  {
415
- this.state = 141;
575
+ this.state = 182;
416
576
  this.lookStatement();
417
577
  }
418
578
  break;
419
579
  case plurnkParser.OPEN_BUFF:
420
580
  this.enterOuterAlt(localContext, 3);
421
581
  {
422
- this.state = 142;
582
+ this.state = 183;
423
583
  this.buffStatement();
424
584
  }
425
585
  break;
@@ -443,113 +603,113 @@ export class plurnkParser extends antlr.Parser {
443
603
  }
444
604
  statement() {
445
605
  let localContext = new StatementContext(this.context, this.state);
446
- this.enterRule(localContext, 14, plurnkParser.RULE_statement);
606
+ this.enterRule(localContext, 18, plurnkParser.RULE_statement);
447
607
  try {
448
- this.state = 160;
608
+ this.state = 201;
449
609
  this.errorHandler.sync(this);
450
- switch (this.interpreter.adaptivePredict(this.tokenStream, 8, this.context)) {
610
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 13, this.context)) {
451
611
  case 1:
452
612
  this.enterOuterAlt(localContext, 1);
453
613
  {
454
- this.state = 145;
614
+ this.state = 186;
455
615
  this.findStatement();
456
616
  }
457
617
  break;
458
618
  case 2:
459
619
  this.enterOuterAlt(localContext, 2);
460
620
  {
461
- this.state = 146;
621
+ this.state = 187;
462
622
  this.readStatement();
463
623
  }
464
624
  break;
465
625
  case 3:
466
626
  this.enterOuterAlt(localContext, 3);
467
627
  {
468
- this.state = 147;
628
+ this.state = 188;
469
629
  this.editStatement();
470
630
  }
471
631
  break;
472
632
  case 4:
473
633
  this.enterOuterAlt(localContext, 4);
474
634
  {
475
- this.state = 148;
635
+ this.state = 189;
476
636
  this.copyStatement();
477
637
  }
478
638
  break;
479
639
  case 5:
480
640
  this.enterOuterAlt(localContext, 5);
481
641
  {
482
- this.state = 149;
642
+ this.state = 190;
483
643
  this.moveStatement();
484
644
  }
485
645
  break;
486
646
  case 6:
487
647
  this.enterOuterAlt(localContext, 6);
488
648
  {
489
- this.state = 150;
649
+ this.state = 191;
490
650
  this.openStatement();
491
651
  }
492
652
  break;
493
653
  case 7:
494
654
  this.enterOuterAlt(localContext, 7);
495
655
  {
496
- this.state = 151;
656
+ this.state = 192;
497
657
  this.foldStatement();
498
658
  }
499
659
  break;
500
660
  case 8:
501
661
  this.enterOuterAlt(localContext, 8);
502
662
  {
503
- this.state = 152;
663
+ this.state = 193;
504
664
  this.sendStatement();
505
665
  }
506
666
  break;
507
667
  case 9:
508
668
  this.enterOuterAlt(localContext, 9);
509
669
  {
510
- this.state = 153;
670
+ this.state = 194;
511
671
  this.midSend();
512
672
  }
513
673
  break;
514
674
  case 10:
515
675
  this.enterOuterAlt(localContext, 10);
516
676
  {
517
- this.state = 154;
677
+ this.state = 195;
518
678
  this.execStatement();
519
679
  }
520
680
  break;
521
681
  case 11:
522
682
  this.enterOuterAlt(localContext, 11);
523
683
  {
524
- this.state = 155;
684
+ this.state = 196;
525
685
  this.bareStatement();
526
686
  }
527
687
  break;
528
688
  case 12:
529
689
  this.enterOuterAlt(localContext, 12);
530
690
  {
531
- this.state = 156;
691
+ this.state = 197;
532
692
  this.workStatement();
533
693
  }
534
694
  break;
535
695
  case 13:
536
696
  this.enterOuterAlt(localContext, 13);
537
697
  {
538
- this.state = 157;
698
+ this.state = 198;
539
699
  this.forkStatement();
540
700
  }
541
701
  break;
542
702
  case 14:
543
703
  this.enterOuterAlt(localContext, 14);
544
704
  {
545
- this.state = 158;
705
+ this.state = 199;
546
706
  this.killStatement();
547
707
  }
548
708
  break;
549
709
  case 15:
550
710
  this.enterOuterAlt(localContext, 15);
551
711
  {
552
- this.state = 159;
712
+ this.state = 200;
553
713
  this.planStatement();
554
714
  }
555
715
  break;
@@ -571,99 +731,99 @@ export class plurnkParser extends antlr.Parser {
571
731
  }
572
732
  midStatement() {
573
733
  let localContext = new MidStatementContext(this.context, this.state);
574
- this.enterRule(localContext, 16, plurnkParser.RULE_midStatement);
734
+ this.enterRule(localContext, 20, plurnkParser.RULE_midStatement);
575
735
  try {
576
- this.state = 175;
736
+ this.state = 216;
577
737
  this.errorHandler.sync(this);
578
738
  switch (this.tokenStream.LA(1)) {
579
739
  case plurnkParser.OPEN_FIND:
580
740
  this.enterOuterAlt(localContext, 1);
581
741
  {
582
- this.state = 162;
742
+ this.state = 203;
583
743
  this.findStatement();
584
744
  }
585
745
  break;
586
746
  case plurnkParser.OPEN_READ:
587
747
  this.enterOuterAlt(localContext, 2);
588
748
  {
589
- this.state = 163;
749
+ this.state = 204;
590
750
  this.readStatement();
591
751
  }
592
752
  break;
593
753
  case plurnkParser.OPEN_EDIT:
594
754
  this.enterOuterAlt(localContext, 3);
595
755
  {
596
- this.state = 164;
756
+ this.state = 205;
597
757
  this.editStatement();
598
758
  }
599
759
  break;
600
760
  case plurnkParser.OPEN_COPY:
601
761
  this.enterOuterAlt(localContext, 4);
602
762
  {
603
- this.state = 165;
763
+ this.state = 206;
604
764
  this.copyStatement();
605
765
  }
606
766
  break;
607
767
  case plurnkParser.OPEN_MOVE:
608
768
  this.enterOuterAlt(localContext, 5);
609
769
  {
610
- this.state = 166;
770
+ this.state = 207;
611
771
  this.moveStatement();
612
772
  }
613
773
  break;
614
774
  case plurnkParser.OPEN_OPEN:
615
775
  this.enterOuterAlt(localContext, 6);
616
776
  {
617
- this.state = 167;
777
+ this.state = 208;
618
778
  this.openStatement();
619
779
  }
620
780
  break;
621
781
  case plurnkParser.OPEN_FOLD:
622
782
  this.enterOuterAlt(localContext, 7);
623
783
  {
624
- this.state = 168;
784
+ this.state = 209;
625
785
  this.foldStatement();
626
786
  }
627
787
  break;
628
788
  case plurnkParser.OPEN_SEND:
629
789
  this.enterOuterAlt(localContext, 8);
630
790
  {
631
- this.state = 169;
791
+ this.state = 210;
632
792
  this.midSend();
633
793
  }
634
794
  break;
635
795
  case plurnkParser.OPEN_EXEC:
636
796
  this.enterOuterAlt(localContext, 9);
637
797
  {
638
- this.state = 170;
798
+ this.state = 211;
639
799
  this.execStatement();
640
800
  }
641
801
  break;
642
802
  case plurnkParser.OPEN_BARE:
643
803
  this.enterOuterAlt(localContext, 10);
644
804
  {
645
- this.state = 171;
805
+ this.state = 212;
646
806
  this.bareStatement();
647
807
  }
648
808
  break;
649
809
  case plurnkParser.OPEN_WORK:
650
810
  this.enterOuterAlt(localContext, 11);
651
811
  {
652
- this.state = 172;
812
+ this.state = 213;
653
813
  this.workStatement();
654
814
  }
655
815
  break;
656
816
  case plurnkParser.OPEN_FORK:
657
817
  this.enterOuterAlt(localContext, 12);
658
818
  {
659
- this.state = 173;
819
+ this.state = 214;
660
820
  this.forkStatement();
661
821
  }
662
822
  break;
663
823
  case plurnkParser.OPEN_KILL:
664
824
  this.enterOuterAlt(localContext, 13);
665
825
  {
666
- this.state = 174;
826
+ this.state = 215;
667
827
  this.killStatement();
668
828
  }
669
829
  break;
@@ -687,32 +847,32 @@ export class plurnkParser extends antlr.Parser {
687
847
  }
688
848
  findStatement() {
689
849
  let localContext = new FindStatementContext(this.context, this.state);
690
- this.enterRule(localContext, 18, plurnkParser.RULE_findStatement);
850
+ this.enterRule(localContext, 22, plurnkParser.RULE_findStatement);
691
851
  let _la;
692
852
  try {
693
853
  this.enterOuterAlt(localContext, 1);
694
854
  {
695
- this.state = 177;
855
+ this.state = 218;
696
856
  this.match(plurnkParser.OPEN_FIND);
697
- this.state = 179;
857
+ this.state = 220;
698
858
  this.errorHandler.sync(this);
699
859
  _la = this.tokenStream.LA(1);
700
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 42) !== 0)) {
860
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 138) !== 0)) {
701
861
  {
702
- this.state = 178;
862
+ this.state = 219;
703
863
  this.tagOpModifiers();
704
864
  }
705
865
  }
706
- this.state = 182;
866
+ this.state = 223;
707
867
  this.errorHandler.sync(this);
708
868
  _la = this.tokenStream.LA(1);
709
- if (_la === 17) {
869
+ if (_la === 20) {
710
870
  {
711
- this.state = 181;
871
+ this.state = 222;
712
872
  this.opAnnotation();
713
873
  }
714
874
  }
715
- this.state = 184;
875
+ this.state = 225;
716
876
  this.statementEnd();
717
877
  }
718
878
  }
@@ -732,32 +892,32 @@ export class plurnkParser extends antlr.Parser {
732
892
  }
733
893
  readStatement() {
734
894
  let localContext = new ReadStatementContext(this.context, this.state);
735
- this.enterRule(localContext, 20, plurnkParser.RULE_readStatement);
895
+ this.enterRule(localContext, 24, plurnkParser.RULE_readStatement);
736
896
  let _la;
737
897
  try {
738
898
  this.enterOuterAlt(localContext, 1);
739
899
  {
740
- this.state = 186;
900
+ this.state = 227;
741
901
  this.match(plurnkParser.OPEN_READ);
742
- this.state = 188;
902
+ this.state = 229;
743
903
  this.errorHandler.sync(this);
744
904
  _la = this.tokenStream.LA(1);
745
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 42) !== 0)) {
905
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 138) !== 0)) {
746
906
  {
747
- this.state = 187;
907
+ this.state = 228;
748
908
  this.tagOpModifiers();
749
909
  }
750
910
  }
751
- this.state = 191;
911
+ this.state = 232;
752
912
  this.errorHandler.sync(this);
753
913
  _la = this.tokenStream.LA(1);
754
- if (_la === 17) {
914
+ if (_la === 20) {
755
915
  {
756
- this.state = 190;
916
+ this.state = 231;
757
917
  this.opAnnotation();
758
918
  }
759
919
  }
760
- this.state = 193;
920
+ this.state = 234;
761
921
  this.statementEnd();
762
922
  }
763
923
  }
@@ -777,32 +937,32 @@ export class plurnkParser extends antlr.Parser {
777
937
  }
778
938
  editStatement() {
779
939
  let localContext = new EditStatementContext(this.context, this.state);
780
- this.enterRule(localContext, 22, plurnkParser.RULE_editStatement);
940
+ this.enterRule(localContext, 26, plurnkParser.RULE_editStatement);
781
941
  let _la;
782
942
  try {
783
943
  this.enterOuterAlt(localContext, 1);
784
944
  {
785
- this.state = 195;
945
+ this.state = 236;
786
946
  this.match(plurnkParser.OPEN_EDIT);
787
- this.state = 197;
947
+ this.state = 238;
788
948
  this.errorHandler.sync(this);
789
949
  _la = this.tokenStream.LA(1);
790
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 42) !== 0)) {
950
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 138) !== 0)) {
791
951
  {
792
- this.state = 196;
952
+ this.state = 237;
793
953
  this.tagOpModifiers();
794
954
  }
795
955
  }
796
- this.state = 200;
956
+ this.state = 241;
797
957
  this.errorHandler.sync(this);
798
958
  _la = this.tokenStream.LA(1);
799
- if (_la === 17) {
959
+ if (_la === 20) {
800
960
  {
801
- this.state = 199;
961
+ this.state = 240;
802
962
  this.opAnnotation();
803
963
  }
804
964
  }
805
- this.state = 202;
965
+ this.state = 243;
806
966
  this.statementEnd();
807
967
  }
808
968
  }
@@ -822,33 +982,26 @@ export class plurnkParser extends antlr.Parser {
822
982
  }
823
983
  copyStatement() {
824
984
  let localContext = new CopyStatementContext(this.context, this.state);
825
- this.enterRule(localContext, 24, plurnkParser.RULE_copyStatement);
985
+ this.enterRule(localContext, 28, plurnkParser.RULE_copyStatement);
826
986
  let _la;
827
987
  try {
828
988
  this.enterOuterAlt(localContext, 1);
829
989
  {
830
- this.state = 204;
990
+ this.state = 245;
831
991
  this.match(plurnkParser.OPEN_COPY);
832
- this.state = 206;
992
+ this.state = 246;
993
+ this.transferModifiers();
994
+ this.state = 248;
833
995
  this.errorHandler.sync(this);
834
996
  _la = this.tokenStream.LA(1);
835
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 42) !== 0)) {
997
+ if (_la === 20) {
836
998
  {
837
- this.state = 205;
838
- this.tagOpModifiers();
839
- }
840
- }
841
- this.state = 209;
842
- this.errorHandler.sync(this);
843
- _la = this.tokenStream.LA(1);
844
- if (_la === 17) {
845
- {
846
- this.state = 208;
999
+ this.state = 247;
847
1000
  this.opAnnotation();
848
1001
  }
849
1002
  }
850
- this.state = 211;
851
- this.statementEnd();
1003
+ this.state = 250;
1004
+ this.emptyStatementEnd();
852
1005
  }
853
1006
  }
854
1007
  catch (re) {
@@ -867,33 +1020,26 @@ export class plurnkParser extends antlr.Parser {
867
1020
  }
868
1021
  moveStatement() {
869
1022
  let localContext = new MoveStatementContext(this.context, this.state);
870
- this.enterRule(localContext, 26, plurnkParser.RULE_moveStatement);
1023
+ this.enterRule(localContext, 30, plurnkParser.RULE_moveStatement);
871
1024
  let _la;
872
1025
  try {
873
1026
  this.enterOuterAlt(localContext, 1);
874
1027
  {
875
- this.state = 213;
1028
+ this.state = 252;
876
1029
  this.match(plurnkParser.OPEN_MOVE);
877
- this.state = 215;
878
- this.errorHandler.sync(this);
879
- _la = this.tokenStream.LA(1);
880
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 42) !== 0)) {
881
- {
882
- this.state = 214;
883
- this.tagOpModifiers();
884
- }
885
- }
886
- this.state = 218;
1030
+ this.state = 253;
1031
+ this.transferModifiers();
1032
+ this.state = 255;
887
1033
  this.errorHandler.sync(this);
888
1034
  _la = this.tokenStream.LA(1);
889
- if (_la === 17) {
1035
+ if (_la === 20) {
890
1036
  {
891
- this.state = 217;
1037
+ this.state = 254;
892
1038
  this.opAnnotation();
893
1039
  }
894
1040
  }
895
- this.state = 220;
896
- this.statementEnd();
1041
+ this.state = 257;
1042
+ this.emptyStatementEnd();
897
1043
  }
898
1044
  }
899
1045
  catch (re) {
@@ -912,32 +1058,32 @@ export class plurnkParser extends antlr.Parser {
912
1058
  }
913
1059
  openStatement() {
914
1060
  let localContext = new OpenStatementContext(this.context, this.state);
915
- this.enterRule(localContext, 28, plurnkParser.RULE_openStatement);
1061
+ this.enterRule(localContext, 32, plurnkParser.RULE_openStatement);
916
1062
  let _la;
917
1063
  try {
918
1064
  this.enterOuterAlt(localContext, 1);
919
1065
  {
920
- this.state = 222;
1066
+ this.state = 259;
921
1067
  this.match(plurnkParser.OPEN_OPEN);
922
- this.state = 224;
1068
+ this.state = 261;
923
1069
  this.errorHandler.sync(this);
924
1070
  _la = this.tokenStream.LA(1);
925
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 42) !== 0)) {
1071
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 138) !== 0)) {
926
1072
  {
927
- this.state = 223;
1073
+ this.state = 260;
928
1074
  this.tagOpModifiers();
929
1075
  }
930
1076
  }
931
- this.state = 227;
1077
+ this.state = 264;
932
1078
  this.errorHandler.sync(this);
933
1079
  _la = this.tokenStream.LA(1);
934
- if (_la === 17) {
1080
+ if (_la === 20) {
935
1081
  {
936
- this.state = 226;
1082
+ this.state = 263;
937
1083
  this.opAnnotation();
938
1084
  }
939
1085
  }
940
- this.state = 229;
1086
+ this.state = 266;
941
1087
  this.statementEnd();
942
1088
  }
943
1089
  }
@@ -957,32 +1103,32 @@ export class plurnkParser extends antlr.Parser {
957
1103
  }
958
1104
  foldStatement() {
959
1105
  let localContext = new FoldStatementContext(this.context, this.state);
960
- this.enterRule(localContext, 30, plurnkParser.RULE_foldStatement);
1106
+ this.enterRule(localContext, 34, plurnkParser.RULE_foldStatement);
961
1107
  let _la;
962
1108
  try {
963
1109
  this.enterOuterAlt(localContext, 1);
964
1110
  {
965
- this.state = 231;
1111
+ this.state = 268;
966
1112
  this.match(plurnkParser.OPEN_FOLD);
967
- this.state = 233;
1113
+ this.state = 270;
968
1114
  this.errorHandler.sync(this);
969
1115
  _la = this.tokenStream.LA(1);
970
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 42) !== 0)) {
1116
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 138) !== 0)) {
971
1117
  {
972
- this.state = 232;
1118
+ this.state = 269;
973
1119
  this.tagOpModifiers();
974
1120
  }
975
1121
  }
976
- this.state = 236;
1122
+ this.state = 273;
977
1123
  this.errorHandler.sync(this);
978
1124
  _la = this.tokenStream.LA(1);
979
- if (_la === 17) {
1125
+ if (_la === 20) {
980
1126
  {
981
- this.state = 235;
1127
+ this.state = 272;
982
1128
  this.opAnnotation();
983
1129
  }
984
1130
  }
985
- this.state = 238;
1131
+ this.state = 275;
986
1132
  this.statementEnd();
987
1133
  }
988
1134
  }
@@ -1002,25 +1148,25 @@ export class plurnkParser extends antlr.Parser {
1002
1148
  }
1003
1149
  sendStatement() {
1004
1150
  let localContext = new SendStatementContext(this.context, this.state);
1005
- this.enterRule(localContext, 32, plurnkParser.RULE_sendStatement);
1151
+ this.enterRule(localContext, 36, plurnkParser.RULE_sendStatement);
1006
1152
  let _la;
1007
1153
  try {
1008
1154
  this.enterOuterAlt(localContext, 1);
1009
1155
  {
1010
- this.state = 240;
1156
+ this.state = 277;
1011
1157
  this.match(plurnkParser.OPEN_SEND);
1012
- this.state = 241;
1158
+ this.state = 278;
1013
1159
  this.termModifiers();
1014
- this.state = 243;
1160
+ this.state = 280;
1015
1161
  this.errorHandler.sync(this);
1016
1162
  _la = this.tokenStream.LA(1);
1017
- if (_la === 17) {
1163
+ if (_la === 20) {
1018
1164
  {
1019
- this.state = 242;
1165
+ this.state = 279;
1020
1166
  this.opAnnotation();
1021
1167
  }
1022
1168
  }
1023
- this.state = 245;
1169
+ this.state = 282;
1024
1170
  this.statementEnd();
1025
1171
  }
1026
1172
  }
@@ -1040,32 +1186,32 @@ export class plurnkParser extends antlr.Parser {
1040
1186
  }
1041
1187
  midSend() {
1042
1188
  let localContext = new MidSendContext(this.context, this.state);
1043
- this.enterRule(localContext, 34, plurnkParser.RULE_midSend);
1189
+ this.enterRule(localContext, 38, plurnkParser.RULE_midSend);
1044
1190
  let _la;
1045
1191
  try {
1046
1192
  this.enterOuterAlt(localContext, 1);
1047
1193
  {
1048
- this.state = 247;
1194
+ this.state = 284;
1049
1195
  this.match(plurnkParser.OPEN_SEND);
1050
- this.state = 249;
1196
+ this.state = 286;
1051
1197
  this.errorHandler.sync(this);
1052
1198
  _la = this.tokenStream.LA(1);
1053
1199
  if (_la === 1 || _la === 3) {
1054
1200
  {
1055
- this.state = 248;
1201
+ this.state = 285;
1056
1202
  this.midModifiers();
1057
1203
  }
1058
1204
  }
1059
- this.state = 252;
1205
+ this.state = 289;
1060
1206
  this.errorHandler.sync(this);
1061
1207
  _la = this.tokenStream.LA(1);
1062
- if (_la === 17) {
1208
+ if (_la === 20) {
1063
1209
  {
1064
- this.state = 251;
1210
+ this.state = 288;
1065
1211
  this.opAnnotation();
1066
1212
  }
1067
1213
  }
1068
- this.state = 254;
1214
+ this.state = 291;
1069
1215
  this.statementEnd();
1070
1216
  }
1071
1217
  }
@@ -1085,32 +1231,32 @@ export class plurnkParser extends antlr.Parser {
1085
1231
  }
1086
1232
  execStatement() {
1087
1233
  let localContext = new ExecStatementContext(this.context, this.state);
1088
- this.enterRule(localContext, 36, plurnkParser.RULE_execStatement);
1234
+ this.enterRule(localContext, 40, plurnkParser.RULE_execStatement);
1089
1235
  let _la;
1090
1236
  try {
1091
1237
  this.enterOuterAlt(localContext, 1);
1092
1238
  {
1093
- this.state = 256;
1239
+ this.state = 293;
1094
1240
  this.match(plurnkParser.OPEN_EXEC);
1095
- this.state = 258;
1241
+ this.state = 295;
1096
1242
  this.errorHandler.sync(this);
1097
1243
  _la = this.tokenStream.LA(1);
1098
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 42) !== 0)) {
1244
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 138) !== 0)) {
1099
1245
  {
1100
- this.state = 257;
1246
+ this.state = 294;
1101
1247
  this.execModifiers();
1102
1248
  }
1103
1249
  }
1104
- this.state = 261;
1250
+ this.state = 298;
1105
1251
  this.errorHandler.sync(this);
1106
1252
  _la = this.tokenStream.LA(1);
1107
- if (_la === 17) {
1253
+ if (_la === 20) {
1108
1254
  {
1109
- this.state = 260;
1255
+ this.state = 297;
1110
1256
  this.opAnnotation();
1111
1257
  }
1112
1258
  }
1113
- this.state = 263;
1259
+ this.state = 300;
1114
1260
  this.statementEnd();
1115
1261
  }
1116
1262
  }
@@ -1130,32 +1276,32 @@ export class plurnkParser extends antlr.Parser {
1130
1276
  }
1131
1277
  bareStatement() {
1132
1278
  let localContext = new BareStatementContext(this.context, this.state);
1133
- this.enterRule(localContext, 38, plurnkParser.RULE_bareStatement);
1279
+ this.enterRule(localContext, 42, plurnkParser.RULE_bareStatement);
1134
1280
  let _la;
1135
1281
  try {
1136
1282
  this.enterOuterAlt(localContext, 1);
1137
1283
  {
1138
- this.state = 265;
1284
+ this.state = 302;
1139
1285
  this.match(plurnkParser.OPEN_BARE);
1140
- this.state = 267;
1286
+ this.state = 304;
1141
1287
  this.errorHandler.sync(this);
1142
1288
  _la = this.tokenStream.LA(1);
1143
1289
  if (_la === 1) {
1144
1290
  {
1145
- this.state = 266;
1291
+ this.state = 303;
1146
1292
  this.tagSignal();
1147
1293
  }
1148
1294
  }
1149
- this.state = 270;
1295
+ this.state = 307;
1150
1296
  this.errorHandler.sync(this);
1151
1297
  _la = this.tokenStream.LA(1);
1152
- if (_la === 17) {
1298
+ if (_la === 20) {
1153
1299
  {
1154
- this.state = 269;
1300
+ this.state = 306;
1155
1301
  this.opAnnotation();
1156
1302
  }
1157
1303
  }
1158
- this.state = 272;
1304
+ this.state = 309;
1159
1305
  this.statementEnd();
1160
1306
  }
1161
1307
  }
@@ -1175,32 +1321,32 @@ export class plurnkParser extends antlr.Parser {
1175
1321
  }
1176
1322
  workStatement() {
1177
1323
  let localContext = new WorkStatementContext(this.context, this.state);
1178
- this.enterRule(localContext, 40, plurnkParser.RULE_workStatement);
1324
+ this.enterRule(localContext, 44, plurnkParser.RULE_workStatement);
1179
1325
  let _la;
1180
1326
  try {
1181
1327
  this.enterOuterAlt(localContext, 1);
1182
1328
  {
1183
- this.state = 274;
1329
+ this.state = 311;
1184
1330
  this.match(plurnkParser.OPEN_WORK);
1185
- this.state = 276;
1331
+ this.state = 313;
1186
1332
  this.errorHandler.sync(this);
1187
1333
  _la = this.tokenStream.LA(1);
1188
1334
  if (_la === 1 || _la === 3) {
1189
1335
  {
1190
- this.state = 275;
1336
+ this.state = 312;
1191
1337
  this.branchModifiers();
1192
1338
  }
1193
1339
  }
1194
- this.state = 279;
1340
+ this.state = 316;
1195
1341
  this.errorHandler.sync(this);
1196
1342
  _la = this.tokenStream.LA(1);
1197
- if (_la === 17) {
1343
+ if (_la === 20) {
1198
1344
  {
1199
- this.state = 278;
1345
+ this.state = 315;
1200
1346
  this.opAnnotation();
1201
1347
  }
1202
1348
  }
1203
- this.state = 281;
1349
+ this.state = 318;
1204
1350
  this.statementEnd();
1205
1351
  }
1206
1352
  }
@@ -1220,32 +1366,32 @@ export class plurnkParser extends antlr.Parser {
1220
1366
  }
1221
1367
  forkStatement() {
1222
1368
  let localContext = new ForkStatementContext(this.context, this.state);
1223
- this.enterRule(localContext, 42, plurnkParser.RULE_forkStatement);
1369
+ this.enterRule(localContext, 46, plurnkParser.RULE_forkStatement);
1224
1370
  let _la;
1225
1371
  try {
1226
1372
  this.enterOuterAlt(localContext, 1);
1227
1373
  {
1228
- this.state = 283;
1374
+ this.state = 320;
1229
1375
  this.match(plurnkParser.OPEN_FORK);
1230
- this.state = 285;
1376
+ this.state = 322;
1231
1377
  this.errorHandler.sync(this);
1232
1378
  _la = this.tokenStream.LA(1);
1233
1379
  if (_la === 1 || _la === 3) {
1234
1380
  {
1235
- this.state = 284;
1381
+ this.state = 321;
1236
1382
  this.branchModifiers();
1237
1383
  }
1238
1384
  }
1239
- this.state = 288;
1385
+ this.state = 325;
1240
1386
  this.errorHandler.sync(this);
1241
1387
  _la = this.tokenStream.LA(1);
1242
- if (_la === 17) {
1388
+ if (_la === 20) {
1243
1389
  {
1244
- this.state = 287;
1390
+ this.state = 324;
1245
1391
  this.opAnnotation();
1246
1392
  }
1247
1393
  }
1248
- this.state = 290;
1394
+ this.state = 327;
1249
1395
  this.statementEnd();
1250
1396
  }
1251
1397
  }
@@ -1265,32 +1411,32 @@ export class plurnkParser extends antlr.Parser {
1265
1411
  }
1266
1412
  killStatement() {
1267
1413
  let localContext = new KillStatementContext(this.context, this.state);
1268
- this.enterRule(localContext, 44, plurnkParser.RULE_killStatement);
1414
+ this.enterRule(localContext, 48, plurnkParser.RULE_killStatement);
1269
1415
  let _la;
1270
1416
  try {
1271
1417
  this.enterOuterAlt(localContext, 1);
1272
1418
  {
1273
- this.state = 292;
1419
+ this.state = 329;
1274
1420
  this.match(plurnkParser.OPEN_KILL);
1275
- this.state = 294;
1421
+ this.state = 331;
1276
1422
  this.errorHandler.sync(this);
1277
1423
  _la = this.tokenStream.LA(1);
1278
1424
  if (_la === 1 || _la === 3) {
1279
1425
  {
1280
- this.state = 293;
1426
+ this.state = 330;
1281
1427
  this.intOpModifiers();
1282
1428
  }
1283
1429
  }
1284
- this.state = 297;
1430
+ this.state = 334;
1285
1431
  this.errorHandler.sync(this);
1286
1432
  _la = this.tokenStream.LA(1);
1287
- if (_la === 17) {
1433
+ if (_la === 20) {
1288
1434
  {
1289
- this.state = 296;
1435
+ this.state = 333;
1290
1436
  this.opAnnotation();
1291
1437
  }
1292
1438
  }
1293
- this.state = 299;
1439
+ this.state = 336;
1294
1440
  this.statementEnd();
1295
1441
  }
1296
1442
  }
@@ -1310,32 +1456,32 @@ export class plurnkParser extends antlr.Parser {
1310
1456
  }
1311
1457
  planStatement() {
1312
1458
  let localContext = new PlanStatementContext(this.context, this.state);
1313
- this.enterRule(localContext, 46, plurnkParser.RULE_planStatement);
1459
+ this.enterRule(localContext, 50, plurnkParser.RULE_planStatement);
1314
1460
  let _la;
1315
1461
  try {
1316
1462
  this.enterOuterAlt(localContext, 1);
1317
1463
  {
1318
- this.state = 301;
1464
+ this.state = 338;
1319
1465
  this.match(plurnkParser.OPEN_PLAN);
1320
- this.state = 303;
1466
+ this.state = 340;
1321
1467
  this.errorHandler.sync(this);
1322
1468
  _la = this.tokenStream.LA(1);
1323
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 42) !== 0)) {
1469
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 138) !== 0)) {
1324
1470
  {
1325
- this.state = 302;
1471
+ this.state = 339;
1326
1472
  this.tagOpModifiers();
1327
1473
  }
1328
1474
  }
1329
- this.state = 306;
1475
+ this.state = 343;
1330
1476
  this.errorHandler.sync(this);
1331
1477
  _la = this.tokenStream.LA(1);
1332
- if (_la === 17) {
1478
+ if (_la === 20) {
1333
1479
  {
1334
- this.state = 305;
1480
+ this.state = 342;
1335
1481
  this.opAnnotation();
1336
1482
  }
1337
1483
  }
1338
- this.state = 308;
1484
+ this.state = 345;
1339
1485
  this.statementEnd();
1340
1486
  }
1341
1487
  }
@@ -1355,32 +1501,32 @@ export class plurnkParser extends antlr.Parser {
1355
1501
  }
1356
1502
  lookStatement() {
1357
1503
  let localContext = new LookStatementContext(this.context, this.state);
1358
- this.enterRule(localContext, 48, plurnkParser.RULE_lookStatement);
1504
+ this.enterRule(localContext, 52, plurnkParser.RULE_lookStatement);
1359
1505
  let _la;
1360
1506
  try {
1361
1507
  this.enterOuterAlt(localContext, 1);
1362
1508
  {
1363
- this.state = 310;
1509
+ this.state = 347;
1364
1510
  this.match(plurnkParser.OPEN_LOOK);
1365
- this.state = 312;
1511
+ this.state = 349;
1366
1512
  this.errorHandler.sync(this);
1367
1513
  _la = this.tokenStream.LA(1);
1368
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 42) !== 0)) {
1514
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 138) !== 0)) {
1369
1515
  {
1370
- this.state = 311;
1516
+ this.state = 348;
1371
1517
  this.tagOpModifiers();
1372
1518
  }
1373
1519
  }
1374
- this.state = 315;
1520
+ this.state = 352;
1375
1521
  this.errorHandler.sync(this);
1376
1522
  _la = this.tokenStream.LA(1);
1377
- if (_la === 17) {
1523
+ if (_la === 20) {
1378
1524
  {
1379
- this.state = 314;
1525
+ this.state = 351;
1380
1526
  this.opAnnotation();
1381
1527
  }
1382
1528
  }
1383
- this.state = 317;
1529
+ this.state = 354;
1384
1530
  this.statementEnd();
1385
1531
  }
1386
1532
  }
@@ -1400,32 +1546,32 @@ export class plurnkParser extends antlr.Parser {
1400
1546
  }
1401
1547
  buffStatement() {
1402
1548
  let localContext = new BuffStatementContext(this.context, this.state);
1403
- this.enterRule(localContext, 50, plurnkParser.RULE_buffStatement);
1549
+ this.enterRule(localContext, 54, plurnkParser.RULE_buffStatement);
1404
1550
  let _la;
1405
1551
  try {
1406
1552
  this.enterOuterAlt(localContext, 1);
1407
1553
  {
1408
- this.state = 319;
1554
+ this.state = 356;
1409
1555
  this.match(plurnkParser.OPEN_BUFF);
1410
- this.state = 321;
1556
+ this.state = 358;
1411
1557
  this.errorHandler.sync(this);
1412
1558
  _la = this.tokenStream.LA(1);
1413
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 42) !== 0)) {
1559
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 138) !== 0)) {
1414
1560
  {
1415
- this.state = 320;
1561
+ this.state = 357;
1416
1562
  this.tagOpModifiers();
1417
1563
  }
1418
1564
  }
1419
- this.state = 324;
1565
+ this.state = 361;
1420
1566
  this.errorHandler.sync(this);
1421
1567
  _la = this.tokenStream.LA(1);
1422
- if (_la === 17) {
1568
+ if (_la === 20) {
1423
1569
  {
1424
- this.state = 323;
1570
+ this.state = 360;
1425
1571
  this.opAnnotation();
1426
1572
  }
1427
1573
  }
1428
- this.state = 326;
1574
+ this.state = 363;
1429
1575
  this.statementEnd();
1430
1576
  }
1431
1577
  }
@@ -1445,11 +1591,11 @@ export class plurnkParser extends antlr.Parser {
1445
1591
  }
1446
1592
  opAnnotation() {
1447
1593
  let localContext = new OpAnnotationContext(this.context, this.state);
1448
- this.enterRule(localContext, 52, plurnkParser.RULE_opAnnotation);
1594
+ this.enterRule(localContext, 56, plurnkParser.RULE_opAnnotation);
1449
1595
  try {
1450
1596
  this.enterOuterAlt(localContext, 1);
1451
1597
  {
1452
- this.state = 328;
1598
+ this.state = 365;
1453
1599
  this.match(plurnkParser.ANNOTATION);
1454
1600
  }
1455
1601
  }
@@ -1469,62 +1615,232 @@ export class plurnkParser extends antlr.Parser {
1469
1615
  }
1470
1616
  statementEnd() {
1471
1617
  let localContext = new StatementEndContext(this.context, this.state);
1472
- this.enterRule(localContext, 54, plurnkParser.RULE_statementEnd);
1618
+ this.enterRule(localContext, 58, plurnkParser.RULE_statementEnd);
1473
1619
  let _la;
1474
1620
  try {
1475
- this.state = 343;
1621
+ this.state = 380;
1476
1622
  this.errorHandler.sync(this);
1477
1623
  switch (this.tokenStream.LA(1)) {
1478
1624
  case plurnkParser.SECTION_END:
1479
1625
  this.enterOuterAlt(localContext, 1);
1480
1626
  {
1481
- this.state = 330;
1627
+ this.state = 367;
1482
1628
  this.match(plurnkParser.SECTION_END);
1483
1629
  }
1484
1630
  break;
1485
1631
  case plurnkParser.BODY_OPEN:
1486
1632
  this.enterOuterAlt(localContext, 2);
1487
1633
  {
1488
- this.state = 331;
1634
+ this.state = 368;
1489
1635
  this.match(plurnkParser.BODY_OPEN);
1490
- this.state = 333;
1636
+ this.state = 370;
1491
1637
  this.errorHandler.sync(this);
1492
1638
  _la = this.tokenStream.LA(1);
1493
- if (_la === 15) {
1639
+ if (_la === 18) {
1494
1640
  {
1495
- this.state = 332;
1641
+ this.state = 369;
1496
1642
  this.body();
1497
1643
  }
1498
1644
  }
1499
- this.state = 336;
1645
+ this.state = 373;
1500
1646
  this.errorHandler.sync(this);
1501
1647
  _la = this.tokenStream.LA(1);
1502
- if (_la === 8) {
1648
+ if (_la === 10) {
1503
1649
  {
1504
- this.state = 335;
1650
+ this.state = 372;
1505
1651
  this.match(plurnkParser.SECTION_END);
1506
1652
  }
1507
1653
  }
1508
1654
  }
1509
1655
  break;
1510
- case plurnkParser.BODY_TEXT:
1511
- this.enterOuterAlt(localContext, 3);
1656
+ case plurnkParser.BODY_TEXT:
1657
+ this.enterOuterAlt(localContext, 3);
1658
+ {
1659
+ this.state = 375;
1660
+ this.body();
1661
+ this.state = 377;
1662
+ this.errorHandler.sync(this);
1663
+ _la = this.tokenStream.LA(1);
1664
+ if (_la === 10) {
1665
+ {
1666
+ this.state = 376;
1667
+ this.match(plurnkParser.SECTION_END);
1668
+ }
1669
+ }
1670
+ }
1671
+ break;
1672
+ case plurnkParser.EOF:
1673
+ case plurnkParser.TEXT:
1674
+ case plurnkParser.OPEN_PLAN:
1675
+ case plurnkParser.OPEN_FIND:
1676
+ case plurnkParser.OPEN_READ:
1677
+ case plurnkParser.OPEN_EDIT:
1678
+ case plurnkParser.OPEN_COPY:
1679
+ case plurnkParser.OPEN_MOVE:
1680
+ case plurnkParser.OPEN_OPEN:
1681
+ case plurnkParser.OPEN_FOLD:
1682
+ case plurnkParser.OPEN_SEND:
1683
+ case plurnkParser.OPEN_EXEC:
1684
+ case plurnkParser.OPEN_BARE:
1685
+ case plurnkParser.OPEN_WORK:
1686
+ case plurnkParser.OPEN_FORK:
1687
+ case plurnkParser.OPEN_KILL:
1688
+ case plurnkParser.OPEN_LOOK:
1689
+ case plurnkParser.OPEN_BUFF:
1690
+ case plurnkParser.FENCE_CLOSE:
1691
+ this.enterOuterAlt(localContext, 4);
1692
+ // tslint:disable-next-line:no-empty
1693
+ {
1694
+ }
1695
+ break;
1696
+ default:
1697
+ throw new antlr.NoViableAltException(this);
1698
+ }
1699
+ }
1700
+ catch (re) {
1701
+ if (re instanceof antlr.RecognitionException) {
1702
+ this.errorHandler.reportError(this, re);
1703
+ this.errorHandler.recover(this, re);
1704
+ }
1705
+ else {
1706
+ throw re;
1707
+ }
1708
+ }
1709
+ finally {
1710
+ this.exitRule();
1711
+ }
1712
+ return localContext;
1713
+ }
1714
+ transferModifiers() {
1715
+ let localContext = new TransferModifiersContext(this.context, this.state);
1716
+ this.enterRule(localContext, 60, plurnkParser.RULE_transferModifiers);
1717
+ let _la;
1718
+ try {
1719
+ this.state = 395;
1720
+ this.errorHandler.sync(this);
1721
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 51, this.context)) {
1722
+ case 1:
1723
+ this.enterOuterAlt(localContext, 1);
1724
+ {
1725
+ this.state = 382;
1726
+ this.tagSignal();
1727
+ this.state = 383;
1728
+ this.resourceSelection();
1729
+ this.state = 384;
1730
+ this.resourceSelection();
1731
+ }
1732
+ break;
1733
+ case 2:
1734
+ this.enterOuterAlt(localContext, 2);
1735
+ {
1736
+ this.state = 386;
1737
+ this.resourceSelection();
1738
+ this.state = 387;
1739
+ this.tagSignal();
1740
+ this.state = 388;
1741
+ this.resourceSelection();
1742
+ }
1743
+ break;
1744
+ case 3:
1745
+ this.enterOuterAlt(localContext, 3);
1746
+ {
1747
+ this.state = 390;
1748
+ this.resourceSelection();
1749
+ this.state = 391;
1750
+ this.resourceSelection();
1751
+ this.state = 393;
1752
+ this.errorHandler.sync(this);
1753
+ _la = this.tokenStream.LA(1);
1754
+ if (_la === 1) {
1755
+ {
1756
+ this.state = 392;
1757
+ this.tagSignal();
1758
+ }
1759
+ }
1760
+ }
1761
+ break;
1762
+ }
1763
+ }
1764
+ catch (re) {
1765
+ if (re instanceof antlr.RecognitionException) {
1766
+ this.errorHandler.reportError(this, re);
1767
+ this.errorHandler.recover(this, re);
1768
+ }
1769
+ else {
1770
+ throw re;
1771
+ }
1772
+ }
1773
+ finally {
1774
+ this.exitRule();
1775
+ }
1776
+ return localContext;
1777
+ }
1778
+ resourceSelection() {
1779
+ let localContext = new ResourceSelectionContext(this.context, this.state);
1780
+ this.enterRule(localContext, 62, plurnkParser.RULE_resourceSelection);
1781
+ let _la;
1782
+ try {
1783
+ this.enterOuterAlt(localContext, 1);
1784
+ {
1785
+ this.state = 397;
1786
+ this.targetWithMetadata();
1787
+ this.state = 399;
1788
+ this.errorHandler.sync(this);
1789
+ _la = this.tokenStream.LA(1);
1790
+ if (_la === 7) {
1791
+ {
1792
+ this.state = 398;
1793
+ this.lineMarker();
1794
+ }
1795
+ }
1796
+ }
1797
+ }
1798
+ catch (re) {
1799
+ if (re instanceof antlr.RecognitionException) {
1800
+ this.errorHandler.reportError(this, re);
1801
+ this.errorHandler.recover(this, re);
1802
+ }
1803
+ else {
1804
+ throw re;
1805
+ }
1806
+ }
1807
+ finally {
1808
+ this.exitRule();
1809
+ }
1810
+ return localContext;
1811
+ }
1812
+ emptyStatementEnd() {
1813
+ let localContext = new EmptyStatementEndContext(this.context, this.state);
1814
+ this.enterRule(localContext, 64, plurnkParser.RULE_emptyStatementEnd);
1815
+ let _la;
1816
+ try {
1817
+ this.state = 407;
1818
+ this.errorHandler.sync(this);
1819
+ switch (this.tokenStream.LA(1)) {
1820
+ case plurnkParser.SECTION_END:
1821
+ this.enterOuterAlt(localContext, 1);
1822
+ {
1823
+ this.state = 401;
1824
+ this.match(plurnkParser.SECTION_END);
1825
+ }
1826
+ break;
1827
+ case plurnkParser.BODY_OPEN:
1828
+ this.enterOuterAlt(localContext, 2);
1512
1829
  {
1513
- this.state = 338;
1514
- this.body();
1515
- this.state = 340;
1830
+ this.state = 402;
1831
+ this.match(plurnkParser.BODY_OPEN);
1832
+ this.state = 404;
1516
1833
  this.errorHandler.sync(this);
1517
1834
  _la = this.tokenStream.LA(1);
1518
- if (_la === 8) {
1835
+ if (_la === 10) {
1519
1836
  {
1520
- this.state = 339;
1837
+ this.state = 403;
1521
1838
  this.match(plurnkParser.SECTION_END);
1522
1839
  }
1523
1840
  }
1524
1841
  }
1525
1842
  break;
1526
1843
  case plurnkParser.EOF:
1527
- case plurnkParser.TEXT:
1528
1844
  case plurnkParser.OPEN_PLAN:
1529
1845
  case plurnkParser.OPEN_FIND:
1530
1846
  case plurnkParser.OPEN_READ:
@@ -1542,7 +1858,7 @@ export class plurnkParser extends antlr.Parser {
1542
1858
  case plurnkParser.OPEN_LOOK:
1543
1859
  case plurnkParser.OPEN_BUFF:
1544
1860
  case plurnkParser.FENCE_CLOSE:
1545
- this.enterOuterAlt(localContext, 4);
1861
+ this.enterOuterAlt(localContext, 3);
1546
1862
  // tslint:disable-next-line:no-empty
1547
1863
  {
1548
1864
  }
@@ -1567,30 +1883,30 @@ export class plurnkParser extends antlr.Parser {
1567
1883
  }
1568
1884
  tagOpModifiers() {
1569
1885
  let localContext = new TagOpModifiersContext(this.context, this.state);
1570
- this.enterRule(localContext, 56, plurnkParser.RULE_tagOpModifiers);
1886
+ this.enterRule(localContext, 66, plurnkParser.RULE_tagOpModifiers);
1571
1887
  let _la;
1572
1888
  try {
1573
- this.state = 378;
1889
+ this.state = 442;
1574
1890
  this.errorHandler.sync(this);
1575
1891
  switch (this.tokenStream.LA(1)) {
1576
1892
  case plurnkParser.LBRACKET:
1577
1893
  this.enterOuterAlt(localContext, 1);
1578
1894
  {
1579
- this.state = 345;
1895
+ this.state = 409;
1580
1896
  this.tagSignal();
1581
- this.state = 354;
1897
+ this.state = 418;
1582
1898
  this.errorHandler.sync(this);
1583
1899
  switch (this.tokenStream.LA(1)) {
1584
1900
  case plurnkParser.LPAREN:
1585
1901
  {
1586
- this.state = 346;
1587
- this.target();
1588
- this.state = 348;
1902
+ this.state = 410;
1903
+ this.targetWithMetadata();
1904
+ this.state = 412;
1589
1905
  this.errorHandler.sync(this);
1590
1906
  _la = this.tokenStream.LA(1);
1591
- if (_la === 5) {
1907
+ if (_la === 7) {
1592
1908
  {
1593
- this.state = 347;
1909
+ this.state = 411;
1594
1910
  this.lineMarker();
1595
1911
  }
1596
1912
  }
@@ -1598,15 +1914,15 @@ export class plurnkParser extends antlr.Parser {
1598
1914
  break;
1599
1915
  case plurnkParser.L_MARKER:
1600
1916
  {
1601
- this.state = 350;
1917
+ this.state = 414;
1602
1918
  this.lineMarker();
1603
- this.state = 352;
1919
+ this.state = 416;
1604
1920
  this.errorHandler.sync(this);
1605
1921
  _la = this.tokenStream.LA(1);
1606
1922
  if (_la === 3) {
1607
1923
  {
1608
- this.state = 351;
1609
- this.target();
1924
+ this.state = 415;
1925
+ this.targetWithMetadata();
1610
1926
  }
1611
1927
  }
1612
1928
  }
@@ -1632,6 +1948,7 @@ export class plurnkParser extends antlr.Parser {
1632
1948
  case plurnkParser.OPEN_KILL:
1633
1949
  case plurnkParser.OPEN_LOOK:
1634
1950
  case plurnkParser.OPEN_BUFF:
1951
+ case plurnkParser.FENCE_CLOSE:
1635
1952
  break;
1636
1953
  default:
1637
1954
  break;
@@ -1641,21 +1958,21 @@ export class plurnkParser extends antlr.Parser {
1641
1958
  case plurnkParser.LPAREN:
1642
1959
  this.enterOuterAlt(localContext, 2);
1643
1960
  {
1644
- this.state = 356;
1645
- this.target();
1646
- this.state = 365;
1961
+ this.state = 420;
1962
+ this.targetWithMetadata();
1963
+ this.state = 429;
1647
1964
  this.errorHandler.sync(this);
1648
1965
  switch (this.tokenStream.LA(1)) {
1649
1966
  case plurnkParser.LBRACKET:
1650
1967
  {
1651
- this.state = 357;
1968
+ this.state = 421;
1652
1969
  this.tagSignal();
1653
- this.state = 359;
1970
+ this.state = 423;
1654
1971
  this.errorHandler.sync(this);
1655
1972
  _la = this.tokenStream.LA(1);
1656
- if (_la === 5) {
1973
+ if (_la === 7) {
1657
1974
  {
1658
- this.state = 358;
1975
+ this.state = 422;
1659
1976
  this.lineMarker();
1660
1977
  }
1661
1978
  }
@@ -1663,14 +1980,14 @@ export class plurnkParser extends antlr.Parser {
1663
1980
  break;
1664
1981
  case plurnkParser.L_MARKER:
1665
1982
  {
1666
- this.state = 361;
1983
+ this.state = 425;
1667
1984
  this.lineMarker();
1668
- this.state = 363;
1985
+ this.state = 427;
1669
1986
  this.errorHandler.sync(this);
1670
1987
  _la = this.tokenStream.LA(1);
1671
1988
  if (_la === 1) {
1672
1989
  {
1673
- this.state = 362;
1990
+ this.state = 426;
1674
1991
  this.tagSignal();
1675
1992
  }
1676
1993
  }
@@ -1697,6 +2014,7 @@ export class plurnkParser extends antlr.Parser {
1697
2014
  case plurnkParser.OPEN_KILL:
1698
2015
  case plurnkParser.OPEN_LOOK:
1699
2016
  case plurnkParser.OPEN_BUFF:
2017
+ case plurnkParser.FENCE_CLOSE:
1700
2018
  break;
1701
2019
  default:
1702
2020
  break;
@@ -1706,36 +2024,36 @@ export class plurnkParser extends antlr.Parser {
1706
2024
  case plurnkParser.L_MARKER:
1707
2025
  this.enterOuterAlt(localContext, 3);
1708
2026
  {
1709
- this.state = 367;
2027
+ this.state = 431;
1710
2028
  this.lineMarker();
1711
- this.state = 376;
2029
+ this.state = 440;
1712
2030
  this.errorHandler.sync(this);
1713
2031
  switch (this.tokenStream.LA(1)) {
1714
2032
  case plurnkParser.LBRACKET:
1715
2033
  {
1716
- this.state = 368;
2034
+ this.state = 432;
1717
2035
  this.tagSignal();
1718
- this.state = 370;
2036
+ this.state = 434;
1719
2037
  this.errorHandler.sync(this);
1720
2038
  _la = this.tokenStream.LA(1);
1721
2039
  if (_la === 3) {
1722
2040
  {
1723
- this.state = 369;
1724
- this.target();
2041
+ this.state = 433;
2042
+ this.targetWithMetadata();
1725
2043
  }
1726
2044
  }
1727
2045
  }
1728
2046
  break;
1729
2047
  case plurnkParser.LPAREN:
1730
2048
  {
1731
- this.state = 372;
1732
- this.target();
1733
- this.state = 374;
2049
+ this.state = 436;
2050
+ this.targetWithMetadata();
2051
+ this.state = 438;
1734
2052
  this.errorHandler.sync(this);
1735
2053
  _la = this.tokenStream.LA(1);
1736
2054
  if (_la === 1) {
1737
2055
  {
1738
- this.state = 373;
2056
+ this.state = 437;
1739
2057
  this.tagSignal();
1740
2058
  }
1741
2059
  }
@@ -1762,6 +2080,7 @@ export class plurnkParser extends antlr.Parser {
1762
2080
  case plurnkParser.OPEN_KILL:
1763
2081
  case plurnkParser.OPEN_LOOK:
1764
2082
  case plurnkParser.OPEN_BUFF:
2083
+ case plurnkParser.FENCE_CLOSE:
1765
2084
  break;
1766
2085
  default:
1767
2086
  break;
@@ -1788,24 +2107,24 @@ export class plurnkParser extends antlr.Parser {
1788
2107
  }
1789
2108
  intOpModifiers() {
1790
2109
  let localContext = new IntOpModifiersContext(this.context, this.state);
1791
- this.enterRule(localContext, 58, plurnkParser.RULE_intOpModifiers);
2110
+ this.enterRule(localContext, 68, plurnkParser.RULE_intOpModifiers);
1792
2111
  let _la;
1793
2112
  try {
1794
- this.state = 388;
2113
+ this.state = 452;
1795
2114
  this.errorHandler.sync(this);
1796
2115
  switch (this.tokenStream.LA(1)) {
1797
2116
  case plurnkParser.LBRACKET:
1798
2117
  this.enterOuterAlt(localContext, 1);
1799
2118
  {
1800
- this.state = 380;
2119
+ this.state = 444;
1801
2120
  this.intSignal();
1802
- this.state = 382;
2121
+ this.state = 446;
1803
2122
  this.errorHandler.sync(this);
1804
2123
  _la = this.tokenStream.LA(1);
1805
2124
  if (_la === 3) {
1806
2125
  {
1807
- this.state = 381;
1808
- this.target();
2126
+ this.state = 445;
2127
+ this.targetWithMetadata();
1809
2128
  }
1810
2129
  }
1811
2130
  }
@@ -1813,14 +2132,14 @@ export class plurnkParser extends antlr.Parser {
1813
2132
  case plurnkParser.LPAREN:
1814
2133
  this.enterOuterAlt(localContext, 2);
1815
2134
  {
1816
- this.state = 384;
1817
- this.target();
1818
- this.state = 386;
2135
+ this.state = 448;
2136
+ this.targetWithMetadata();
2137
+ this.state = 450;
1819
2138
  this.errorHandler.sync(this);
1820
2139
  _la = this.tokenStream.LA(1);
1821
2140
  if (_la === 1) {
1822
2141
  {
1823
- this.state = 385;
2142
+ this.state = 449;
1824
2143
  this.intSignal();
1825
2144
  }
1826
2145
  }
@@ -1846,24 +2165,24 @@ export class plurnkParser extends antlr.Parser {
1846
2165
  }
1847
2166
  branchModifiers() {
1848
2167
  let localContext = new BranchModifiersContext(this.context, this.state);
1849
- this.enterRule(localContext, 60, plurnkParser.RULE_branchModifiers);
2168
+ this.enterRule(localContext, 70, plurnkParser.RULE_branchModifiers);
1850
2169
  let _la;
1851
2170
  try {
1852
- this.state = 398;
2171
+ this.state = 462;
1853
2172
  this.errorHandler.sync(this);
1854
2173
  switch (this.tokenStream.LA(1)) {
1855
2174
  case plurnkParser.LBRACKET:
1856
2175
  this.enterOuterAlt(localContext, 1);
1857
2176
  {
1858
- this.state = 390;
2177
+ this.state = 454;
1859
2178
  this.branchSignal();
1860
- this.state = 392;
2179
+ this.state = 456;
1861
2180
  this.errorHandler.sync(this);
1862
2181
  _la = this.tokenStream.LA(1);
1863
2182
  if (_la === 3) {
1864
2183
  {
1865
- this.state = 391;
1866
- this.target();
2184
+ this.state = 455;
2185
+ this.targetWithMetadata();
1867
2186
  }
1868
2187
  }
1869
2188
  }
@@ -1871,14 +2190,14 @@ export class plurnkParser extends antlr.Parser {
1871
2190
  case plurnkParser.LPAREN:
1872
2191
  this.enterOuterAlt(localContext, 2);
1873
2192
  {
1874
- this.state = 394;
1875
- this.target();
1876
- this.state = 396;
2193
+ this.state = 458;
2194
+ this.targetWithMetadata();
2195
+ this.state = 460;
1877
2196
  this.errorHandler.sync(this);
1878
2197
  _la = this.tokenStream.LA(1);
1879
2198
  if (_la === 1) {
1880
2199
  {
1881
- this.state = 395;
2200
+ this.state = 459;
1882
2201
  this.branchSignal();
1883
2202
  }
1884
2203
  }
@@ -1904,32 +2223,32 @@ export class plurnkParser extends antlr.Parser {
1904
2223
  }
1905
2224
  termModifiers() {
1906
2225
  let localContext = new TermModifiersContext(this.context, this.state);
1907
- this.enterRule(localContext, 62, plurnkParser.RULE_termModifiers);
2226
+ this.enterRule(localContext, 72, plurnkParser.RULE_termModifiers);
1908
2227
  let _la;
1909
2228
  try {
1910
- this.state = 412;
2229
+ this.state = 476;
1911
2230
  this.errorHandler.sync(this);
1912
2231
  switch (this.tokenStream.LA(1)) {
1913
2232
  case plurnkParser.LBRACKET:
1914
2233
  this.enterOuterAlt(localContext, 1);
1915
2234
  {
1916
- this.state = 400;
2235
+ this.state = 464;
1917
2236
  this.dispSignal();
1918
- this.state = 402;
2237
+ this.state = 466;
1919
2238
  this.errorHandler.sync(this);
1920
2239
  _la = this.tokenStream.LA(1);
1921
2240
  if (_la === 3) {
1922
2241
  {
1923
- this.state = 401;
1924
- this.target();
2242
+ this.state = 465;
2243
+ this.targetWithMetadata();
1925
2244
  }
1926
2245
  }
1927
- this.state = 405;
2246
+ this.state = 469;
1928
2247
  this.errorHandler.sync(this);
1929
2248
  _la = this.tokenStream.LA(1);
1930
- if (_la === 5) {
2249
+ if (_la === 7) {
1931
2250
  {
1932
- this.state = 404;
2251
+ this.state = 468;
1933
2252
  this.lineMarker();
1934
2253
  }
1935
2254
  }
@@ -1938,16 +2257,16 @@ export class plurnkParser extends antlr.Parser {
1938
2257
  case plurnkParser.LPAREN:
1939
2258
  this.enterOuterAlt(localContext, 2);
1940
2259
  {
1941
- this.state = 407;
1942
- this.target();
1943
- this.state = 408;
2260
+ this.state = 471;
2261
+ this.targetWithMetadata();
2262
+ this.state = 472;
1944
2263
  this.dispSignal();
1945
- this.state = 410;
2264
+ this.state = 474;
1946
2265
  this.errorHandler.sync(this);
1947
2266
  _la = this.tokenStream.LA(1);
1948
- if (_la === 5) {
2267
+ if (_la === 7) {
1949
2268
  {
1950
- this.state = 409;
2269
+ this.state = 473;
1951
2270
  this.lineMarker();
1952
2271
  }
1953
2272
  }
@@ -1973,24 +2292,24 @@ export class plurnkParser extends antlr.Parser {
1973
2292
  }
1974
2293
  midModifiers() {
1975
2294
  let localContext = new MidModifiersContext(this.context, this.state);
1976
- this.enterRule(localContext, 64, plurnkParser.RULE_midModifiers);
2295
+ this.enterRule(localContext, 74, plurnkParser.RULE_midModifiers);
1977
2296
  let _la;
1978
2297
  try {
1979
- this.state = 422;
2298
+ this.state = 486;
1980
2299
  this.errorHandler.sync(this);
1981
2300
  switch (this.tokenStream.LA(1)) {
1982
2301
  case plurnkParser.LBRACKET:
1983
2302
  this.enterOuterAlt(localContext, 1);
1984
2303
  {
1985
- this.state = 414;
2304
+ this.state = 478;
1986
2305
  this.midSignal();
1987
- this.state = 416;
2306
+ this.state = 480;
1988
2307
  this.errorHandler.sync(this);
1989
2308
  _la = this.tokenStream.LA(1);
1990
2309
  if (_la === 3) {
1991
2310
  {
1992
- this.state = 415;
1993
- this.target();
2311
+ this.state = 479;
2312
+ this.targetWithMetadata();
1994
2313
  }
1995
2314
  }
1996
2315
  }
@@ -1998,14 +2317,14 @@ export class plurnkParser extends antlr.Parser {
1998
2317
  case plurnkParser.LPAREN:
1999
2318
  this.enterOuterAlt(localContext, 2);
2000
2319
  {
2001
- this.state = 418;
2002
- this.target();
2003
- this.state = 420;
2320
+ this.state = 482;
2321
+ this.targetWithMetadata();
2322
+ this.state = 484;
2004
2323
  this.errorHandler.sync(this);
2005
2324
  _la = this.tokenStream.LA(1);
2006
2325
  if (_la === 1) {
2007
2326
  {
2008
- this.state = 419;
2327
+ this.state = 483;
2009
2328
  this.midSignal();
2010
2329
  }
2011
2330
  }
@@ -2031,25 +2350,25 @@ export class plurnkParser extends antlr.Parser {
2031
2350
  }
2032
2351
  execModifiers() {
2033
2352
  let localContext = new ExecModifiersContext(this.context, this.state);
2034
- this.enterRule(localContext, 66, plurnkParser.RULE_execModifiers);
2353
+ this.enterRule(localContext, 76, plurnkParser.RULE_execModifiers);
2035
2354
  let _la;
2036
2355
  try {
2037
2356
  this.enterOuterAlt(localContext, 1);
2038
2357
  {
2039
- this.state = 425;
2358
+ this.state = 489;
2040
2359
  this.errorHandler.sync(this);
2041
2360
  _la = this.tokenStream.LA(1);
2042
2361
  do {
2043
2362
  {
2044
2363
  {
2045
- this.state = 424;
2364
+ this.state = 488;
2046
2365
  this.execSlot();
2047
2366
  }
2048
2367
  }
2049
- this.state = 427;
2368
+ this.state = 491;
2050
2369
  this.errorHandler.sync(this);
2051
2370
  _la = this.tokenStream.LA(1);
2052
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 42) !== 0));
2371
+ } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 138) !== 0));
2053
2372
  }
2054
2373
  }
2055
2374
  catch (re) {
@@ -2068,36 +2387,36 @@ export class plurnkParser extends antlr.Parser {
2068
2387
  }
2069
2388
  execSlot() {
2070
2389
  let localContext = new ExecSlotContext(this.context, this.state);
2071
- this.enterRule(localContext, 68, plurnkParser.RULE_execSlot);
2390
+ this.enterRule(localContext, 78, plurnkParser.RULE_execSlot);
2072
2391
  try {
2073
- this.state = 433;
2392
+ this.state = 497;
2074
2393
  this.errorHandler.sync(this);
2075
- switch (this.interpreter.adaptivePredict(this.tokenStream, 71, this.context)) {
2394
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 79, this.context)) {
2076
2395
  case 1:
2077
2396
  this.enterOuterAlt(localContext, 1);
2078
2397
  {
2079
- this.state = 429;
2398
+ this.state = 493;
2080
2399
  this.identSignal();
2081
2400
  }
2082
2401
  break;
2083
2402
  case 2:
2084
2403
  this.enterOuterAlt(localContext, 2);
2085
2404
  {
2086
- this.state = 430;
2405
+ this.state = 494;
2087
2406
  this.tagSignal();
2088
2407
  }
2089
2408
  break;
2090
2409
  case 3:
2091
2410
  this.enterOuterAlt(localContext, 3);
2092
2411
  {
2093
- this.state = 431;
2094
- this.target();
2412
+ this.state = 495;
2413
+ this.targetWithMetadata();
2095
2414
  }
2096
2415
  break;
2097
2416
  case 4:
2098
2417
  this.enterOuterAlt(localContext, 4);
2099
2418
  {
2100
- this.state = 432;
2419
+ this.state = 496;
2101
2420
  this.lineMarker();
2102
2421
  }
2103
2422
  break;
@@ -2119,22 +2438,22 @@ export class plurnkParser extends antlr.Parser {
2119
2438
  }
2120
2439
  tagSignal() {
2121
2440
  let localContext = new TagSignalContext(this.context, this.state);
2122
- this.enterRule(localContext, 70, plurnkParser.RULE_tagSignal);
2441
+ this.enterRule(localContext, 80, plurnkParser.RULE_tagSignal);
2123
2442
  let _la;
2124
2443
  try {
2125
2444
  this.enterOuterAlt(localContext, 1);
2126
2445
  {
2127
- this.state = 435;
2446
+ this.state = 499;
2128
2447
  this.match(plurnkParser.LBRACKET);
2129
- this.state = 439;
2448
+ this.state = 503;
2130
2449
  this.errorHandler.sync(this);
2131
2450
  _la = this.tokenStream.LA(1);
2132
- while (_la === 9 || _la === 13) {
2451
+ while (_la === 11 || _la === 15) {
2133
2452
  {
2134
2453
  {
2135
- this.state = 436;
2454
+ this.state = 500;
2136
2455
  _la = this.tokenStream.LA(1);
2137
- if (!(_la === 9 || _la === 13)) {
2456
+ if (!(_la === 11 || _la === 15)) {
2138
2457
  this.errorHandler.recoverInline(this);
2139
2458
  }
2140
2459
  else {
@@ -2143,11 +2462,11 @@ export class plurnkParser extends antlr.Parser {
2143
2462
  }
2144
2463
  }
2145
2464
  }
2146
- this.state = 441;
2465
+ this.state = 505;
2147
2466
  this.errorHandler.sync(this);
2148
2467
  _la = this.tokenStream.LA(1);
2149
2468
  }
2150
- this.state = 442;
2469
+ this.state = 506;
2151
2470
  this.match(plurnkParser.RBRACKET);
2152
2471
  }
2153
2472
  }
@@ -2167,15 +2486,15 @@ export class plurnkParser extends antlr.Parser {
2167
2486
  }
2168
2487
  branchSignal() {
2169
2488
  let localContext = new BranchSignalContext(this.context, this.state);
2170
- this.enterRule(localContext, 72, plurnkParser.RULE_branchSignal);
2489
+ this.enterRule(localContext, 82, plurnkParser.RULE_branchSignal);
2171
2490
  try {
2172
2491
  this.enterOuterAlt(localContext, 1);
2173
2492
  {
2174
- this.state = 444;
2493
+ this.state = 508;
2175
2494
  this.match(plurnkParser.LBRACKET);
2176
- this.state = 445;
2495
+ this.state = 509;
2177
2496
  this.match(plurnkParser.TAG);
2178
- this.state = 446;
2497
+ this.state = 510;
2179
2498
  this.match(plurnkParser.RBRACKET);
2180
2499
  }
2181
2500
  }
@@ -2195,21 +2514,21 @@ export class plurnkParser extends antlr.Parser {
2195
2514
  }
2196
2515
  intSignal() {
2197
2516
  let localContext = new IntSignalContext(this.context, this.state);
2198
- this.enterRule(localContext, 74, plurnkParser.RULE_intSignal);
2517
+ this.enterRule(localContext, 84, plurnkParser.RULE_intSignal);
2199
2518
  let _la;
2200
2519
  try {
2201
2520
  this.enterOuterAlt(localContext, 1);
2202
2521
  {
2203
- this.state = 448;
2522
+ this.state = 512;
2204
2523
  this.match(plurnkParser.LBRACKET);
2205
- this.state = 450;
2524
+ this.state = 514;
2206
2525
  this.errorHandler.sync(this);
2207
2526
  _la = this.tokenStream.LA(1);
2208
- if (_la === 10 || _la === 11) {
2527
+ if (_la === 12 || _la === 13) {
2209
2528
  {
2210
- this.state = 449;
2529
+ this.state = 513;
2211
2530
  _la = this.tokenStream.LA(1);
2212
- if (!(_la === 10 || _la === 11)) {
2531
+ if (!(_la === 12 || _la === 13)) {
2213
2532
  this.errorHandler.recoverInline(this);
2214
2533
  }
2215
2534
  else {
@@ -2218,7 +2537,7 @@ export class plurnkParser extends antlr.Parser {
2218
2537
  }
2219
2538
  }
2220
2539
  }
2221
- this.state = 452;
2540
+ this.state = 516;
2222
2541
  this.match(plurnkParser.RBRACKET);
2223
2542
  }
2224
2543
  }
@@ -2238,23 +2557,23 @@ export class plurnkParser extends antlr.Parser {
2238
2557
  }
2239
2558
  midSignal() {
2240
2559
  let localContext = new MidSignalContext(this.context, this.state);
2241
- this.enterRule(localContext, 76, plurnkParser.RULE_midSignal);
2560
+ this.enterRule(localContext, 86, plurnkParser.RULE_midSignal);
2242
2561
  let _la;
2243
2562
  try {
2244
2563
  this.enterOuterAlt(localContext, 1);
2245
2564
  {
2246
- this.state = 454;
2565
+ this.state = 518;
2247
2566
  this.match(plurnkParser.LBRACKET);
2248
- this.state = 456;
2567
+ this.state = 520;
2249
2568
  this.errorHandler.sync(this);
2250
2569
  _la = this.tokenStream.LA(1);
2251
- if (_la === 10) {
2570
+ if (_la === 12) {
2252
2571
  {
2253
- this.state = 455;
2572
+ this.state = 519;
2254
2573
  this.match(plurnkParser.INT);
2255
2574
  }
2256
2575
  }
2257
- this.state = 458;
2576
+ this.state = 522;
2258
2577
  this.match(plurnkParser.RBRACKET);
2259
2578
  }
2260
2579
  }
@@ -2274,15 +2593,15 @@ export class plurnkParser extends antlr.Parser {
2274
2593
  }
2275
2594
  dispSignal() {
2276
2595
  let localContext = new DispSignalContext(this.context, this.state);
2277
- this.enterRule(localContext, 78, plurnkParser.RULE_dispSignal);
2596
+ this.enterRule(localContext, 88, plurnkParser.RULE_dispSignal);
2278
2597
  try {
2279
2598
  this.enterOuterAlt(localContext, 1);
2280
2599
  {
2281
- this.state = 460;
2600
+ this.state = 524;
2282
2601
  this.match(plurnkParser.LBRACKET);
2283
- this.state = 461;
2602
+ this.state = 525;
2284
2603
  this.match(plurnkParser.DISPOSITION);
2285
- this.state = 462;
2604
+ this.state = 526;
2286
2605
  this.match(plurnkParser.RBRACKET);
2287
2606
  }
2288
2607
  }
@@ -2302,23 +2621,23 @@ export class plurnkParser extends antlr.Parser {
2302
2621
  }
2303
2622
  identSignal() {
2304
2623
  let localContext = new IdentSignalContext(this.context, this.state);
2305
- this.enterRule(localContext, 80, plurnkParser.RULE_identSignal);
2624
+ this.enterRule(localContext, 90, plurnkParser.RULE_identSignal);
2306
2625
  let _la;
2307
2626
  try {
2308
2627
  this.enterOuterAlt(localContext, 1);
2309
2628
  {
2310
- this.state = 464;
2629
+ this.state = 528;
2311
2630
  this.match(plurnkParser.LBRACKET);
2312
- this.state = 466;
2631
+ this.state = 530;
2313
2632
  this.errorHandler.sync(this);
2314
2633
  _la = this.tokenStream.LA(1);
2315
- if (_la === 12) {
2634
+ if (_la === 14) {
2316
2635
  {
2317
- this.state = 465;
2636
+ this.state = 529;
2318
2637
  this.match(plurnkParser.IDENT);
2319
2638
  }
2320
2639
  }
2321
- this.state = 468;
2640
+ this.state = 532;
2322
2641
  this.match(plurnkParser.RBRACKET);
2323
2642
  }
2324
2643
  }
@@ -2338,28 +2657,28 @@ export class plurnkParser extends antlr.Parser {
2338
2657
  }
2339
2658
  target() {
2340
2659
  let localContext = new TargetContext(this.context, this.state);
2341
- this.enterRule(localContext, 82, plurnkParser.RULE_target);
2660
+ this.enterRule(localContext, 92, plurnkParser.RULE_target);
2342
2661
  let _la;
2343
2662
  try {
2344
2663
  this.enterOuterAlt(localContext, 1);
2345
2664
  {
2346
- this.state = 470;
2665
+ this.state = 534;
2347
2666
  this.match(plurnkParser.LPAREN);
2348
- this.state = 474;
2667
+ this.state = 538;
2349
2668
  this.errorHandler.sync(this);
2350
2669
  _la = this.tokenStream.LA(1);
2351
- while (_la === 14) {
2670
+ while (_la === 16) {
2352
2671
  {
2353
2672
  {
2354
- this.state = 471;
2673
+ this.state = 535;
2355
2674
  this.match(plurnkParser.TARGET_TEXT);
2356
2675
  }
2357
2676
  }
2358
- this.state = 476;
2677
+ this.state = 540;
2359
2678
  this.errorHandler.sync(this);
2360
2679
  _la = this.tokenStream.LA(1);
2361
2680
  }
2362
- this.state = 477;
2681
+ this.state = 541;
2363
2682
  this.match(plurnkParser.RPAREN);
2364
2683
  }
2365
2684
  }
@@ -2377,13 +2696,93 @@ export class plurnkParser extends antlr.Parser {
2377
2696
  }
2378
2697
  return localContext;
2379
2698
  }
2699
+ targetWithMetadata() {
2700
+ let localContext = new TargetWithMetadataContext(this.context, this.state);
2701
+ this.enterRule(localContext, 94, plurnkParser.RULE_targetWithMetadata);
2702
+ let _la;
2703
+ try {
2704
+ this.enterOuterAlt(localContext, 1);
2705
+ {
2706
+ this.state = 543;
2707
+ this.target();
2708
+ this.state = 547;
2709
+ this.errorHandler.sync(this);
2710
+ _la = this.tokenStream.LA(1);
2711
+ while (_la === 5) {
2712
+ {
2713
+ {
2714
+ this.state = 544;
2715
+ this.metadata();
2716
+ }
2717
+ }
2718
+ this.state = 549;
2719
+ this.errorHandler.sync(this);
2720
+ _la = this.tokenStream.LA(1);
2721
+ }
2722
+ }
2723
+ }
2724
+ catch (re) {
2725
+ if (re instanceof antlr.RecognitionException) {
2726
+ this.errorHandler.reportError(this, re);
2727
+ this.errorHandler.recover(this, re);
2728
+ }
2729
+ else {
2730
+ throw re;
2731
+ }
2732
+ }
2733
+ finally {
2734
+ this.exitRule();
2735
+ }
2736
+ return localContext;
2737
+ }
2738
+ metadata() {
2739
+ let localContext = new MetadataContext(this.context, this.state);
2740
+ this.enterRule(localContext, 96, plurnkParser.RULE_metadata);
2741
+ let _la;
2742
+ try {
2743
+ this.enterOuterAlt(localContext, 1);
2744
+ {
2745
+ this.state = 550;
2746
+ this.match(plurnkParser.LBRACE);
2747
+ this.state = 554;
2748
+ this.errorHandler.sync(this);
2749
+ _la = this.tokenStream.LA(1);
2750
+ while (_la === 17) {
2751
+ {
2752
+ {
2753
+ this.state = 551;
2754
+ this.match(plurnkParser.METADATA_TEXT);
2755
+ }
2756
+ }
2757
+ this.state = 556;
2758
+ this.errorHandler.sync(this);
2759
+ _la = this.tokenStream.LA(1);
2760
+ }
2761
+ this.state = 557;
2762
+ this.match(plurnkParser.RBRACE);
2763
+ }
2764
+ }
2765
+ catch (re) {
2766
+ if (re instanceof antlr.RecognitionException) {
2767
+ this.errorHandler.reportError(this, re);
2768
+ this.errorHandler.recover(this, re);
2769
+ }
2770
+ else {
2771
+ throw re;
2772
+ }
2773
+ }
2774
+ finally {
2775
+ this.exitRule();
2776
+ }
2777
+ return localContext;
2778
+ }
2380
2779
  lineMarker() {
2381
2780
  let localContext = new LineMarkerContext(this.context, this.state);
2382
- this.enterRule(localContext, 84, plurnkParser.RULE_lineMarker);
2781
+ this.enterRule(localContext, 98, plurnkParser.RULE_lineMarker);
2383
2782
  try {
2384
2783
  this.enterOuterAlt(localContext, 1);
2385
2784
  {
2386
- this.state = 479;
2785
+ this.state = 559;
2387
2786
  this.match(plurnkParser.L_MARKER);
2388
2787
  }
2389
2788
  }
@@ -2403,25 +2802,25 @@ export class plurnkParser extends antlr.Parser {
2403
2802
  }
2404
2803
  body() {
2405
2804
  let localContext = new BodyContext(this.context, this.state);
2406
- this.enterRule(localContext, 86, plurnkParser.RULE_body);
2805
+ this.enterRule(localContext, 100, plurnkParser.RULE_body);
2407
2806
  let _la;
2408
2807
  try {
2409
2808
  this.enterOuterAlt(localContext, 1);
2410
2809
  {
2411
- this.state = 482;
2810
+ this.state = 562;
2412
2811
  this.errorHandler.sync(this);
2413
2812
  _la = this.tokenStream.LA(1);
2414
2813
  do {
2415
2814
  {
2416
2815
  {
2417
- this.state = 481;
2816
+ this.state = 561;
2418
2817
  this.match(plurnkParser.BODY_TEXT);
2419
2818
  }
2420
2819
  }
2421
- this.state = 484;
2820
+ this.state = 564;
2422
2821
  this.errorHandler.sync(this);
2423
2822
  _la = this.tokenStream.LA(1);
2424
- } while (_la === 15);
2823
+ } while (_la === 18);
2425
2824
  }
2426
2825
  }
2427
2826
  catch (re) {
@@ -2439,193 +2838,225 @@ export class plurnkParser extends antlr.Parser {
2439
2838
  return localContext;
2440
2839
  }
2441
2840
  static _serializedATN = [
2442
- 4, 1, 43, 487, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7,
2841
+ 4, 1, 46, 567, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7,
2443
2842
  6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13,
2444
2843
  2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20,
2445
2844
  7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26,
2446
2845
  2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33,
2447
2846
  7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39,
2448
- 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
2449
- 3, 0, 95, 8, 0, 1, 0, 1, 0, 3, 0, 99, 8, 0, 1, 1, 4, 1, 102, 8, 1, 11, 1, 12, 1, 103, 1, 1,
2450
- 1, 1, 1, 2, 5, 2, 109, 8, 2, 10, 2, 12, 2, 112, 9, 2, 1, 2, 1, 2, 1, 3, 1, 3, 5, 3, 118, 8,
2451
- 3, 10, 3, 12, 3, 121, 9, 3, 1, 3, 1, 3, 1, 4, 5, 4, 126, 8, 4, 10, 4, 12, 4, 129, 9, 4, 1,
2452
- 4, 1, 4, 1, 5, 5, 5, 134, 8, 5, 10, 5, 12, 5, 137, 9, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 3, 6,
2453
- 144, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7,
2454
- 1, 7, 3, 7, 161, 8, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8,
2455
- 1, 8, 3, 8, 176, 8, 8, 1, 9, 1, 9, 3, 9, 180, 8, 9, 1, 9, 3, 9, 183, 8, 9, 1, 9, 1, 9, 1, 10,
2456
- 1, 10, 3, 10, 189, 8, 10, 1, 10, 3, 10, 192, 8, 10, 1, 10, 1, 10, 1, 11, 1, 11, 3, 11, 198,
2457
- 8, 11, 1, 11, 3, 11, 201, 8, 11, 1, 11, 1, 11, 1, 12, 1, 12, 3, 12, 207, 8, 12, 1, 12, 3,
2458
- 12, 210, 8, 12, 1, 12, 1, 12, 1, 13, 1, 13, 3, 13, 216, 8, 13, 1, 13, 3, 13, 219, 8, 13,
2459
- 1, 13, 1, 13, 1, 14, 1, 14, 3, 14, 225, 8, 14, 1, 14, 3, 14, 228, 8, 14, 1, 14, 1, 14, 1,
2460
- 15, 1, 15, 3, 15, 234, 8, 15, 1, 15, 3, 15, 237, 8, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16,
2461
- 3, 16, 244, 8, 16, 1, 16, 1, 16, 1, 17, 1, 17, 3, 17, 250, 8, 17, 1, 17, 3, 17, 253, 8,
2462
- 17, 1, 17, 1, 17, 1, 18, 1, 18, 3, 18, 259, 8, 18, 1, 18, 3, 18, 262, 8, 18, 1, 18, 1, 18,
2463
- 1, 19, 1, 19, 3, 19, 268, 8, 19, 1, 19, 3, 19, 271, 8, 19, 1, 19, 1, 19, 1, 20, 1, 20, 3,
2464
- 20, 277, 8, 20, 1, 20, 3, 20, 280, 8, 20, 1, 20, 1, 20, 1, 21, 1, 21, 3, 21, 286, 8, 21,
2465
- 1, 21, 3, 21, 289, 8, 21, 1, 21, 1, 21, 1, 22, 1, 22, 3, 22, 295, 8, 22, 1, 22, 3, 22, 298,
2466
- 8, 22, 1, 22, 1, 22, 1, 23, 1, 23, 3, 23, 304, 8, 23, 1, 23, 3, 23, 307, 8, 23, 1, 23, 1,
2467
- 23, 1, 24, 1, 24, 3, 24, 313, 8, 24, 1, 24, 3, 24, 316, 8, 24, 1, 24, 1, 24, 1, 25, 1, 25,
2468
- 3, 25, 322, 8, 25, 1, 25, 3, 25, 325, 8, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 1, 27, 1,
2469
- 27, 3, 27, 334, 8, 27, 1, 27, 3, 27, 337, 8, 27, 1, 27, 1, 27, 3, 27, 341, 8, 27, 1, 27,
2470
- 3, 27, 344, 8, 27, 1, 28, 1, 28, 1, 28, 3, 28, 349, 8, 28, 1, 28, 1, 28, 3, 28, 353, 8,
2471
- 28, 3, 28, 355, 8, 28, 1, 28, 1, 28, 1, 28, 3, 28, 360, 8, 28, 1, 28, 1, 28, 3, 28, 364,
2472
- 8, 28, 3, 28, 366, 8, 28, 1, 28, 1, 28, 1, 28, 3, 28, 371, 8, 28, 1, 28, 1, 28, 3, 28, 375,
2473
- 8, 28, 3, 28, 377, 8, 28, 3, 28, 379, 8, 28, 1, 29, 1, 29, 3, 29, 383, 8, 29, 1, 29, 1,
2474
- 29, 3, 29, 387, 8, 29, 3, 29, 389, 8, 29, 1, 30, 1, 30, 3, 30, 393, 8, 30, 1, 30, 1, 30,
2475
- 3, 30, 397, 8, 30, 3, 30, 399, 8, 30, 1, 31, 1, 31, 3, 31, 403, 8, 31, 1, 31, 3, 31, 406,
2476
- 8, 31, 1, 31, 1, 31, 1, 31, 3, 31, 411, 8, 31, 3, 31, 413, 8, 31, 1, 32, 1, 32, 3, 32, 417,
2477
- 8, 32, 1, 32, 1, 32, 3, 32, 421, 8, 32, 3, 32, 423, 8, 32, 1, 33, 4, 33, 426, 8, 33, 11,
2478
- 33, 12, 33, 427, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 434, 8, 34, 1, 35, 1, 35, 5, 35, 438,
2479
- 8, 35, 10, 35, 12, 35, 441, 9, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37,
2480
- 3, 37, 451, 8, 37, 1, 37, 1, 37, 1, 38, 1, 38, 3, 38, 457, 8, 38, 1, 38, 1, 38, 1, 39, 1,
2481
- 39, 1, 39, 1, 39, 1, 40, 1, 40, 3, 40, 467, 8, 40, 1, 40, 1, 40, 1, 41, 1, 41, 5, 41, 473,
2482
- 8, 41, 10, 41, 12, 41, 476, 9, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 43, 4, 43, 483, 8, 43,
2483
- 11, 43, 12, 43, 484, 1, 43, 0, 0, 44, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26,
2484
- 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70,
2485
- 72, 74, 76, 78, 80, 82, 84, 86, 0, 2, 2, 0, 9, 9, 13, 13, 1, 0, 10, 11, 553, 0, 98, 1, 0,
2486
- 0, 0, 2, 101, 1, 0, 0, 0, 4, 110, 1, 0, 0, 0, 6, 115, 1, 0, 0, 0, 8, 127, 1, 0, 0, 0, 10, 135,
2487
- 1, 0, 0, 0, 12, 143, 1, 0, 0, 0, 14, 160, 1, 0, 0, 0, 16, 175, 1, 0, 0, 0, 18, 177, 1, 0,
2488
- 0, 0, 20, 186, 1, 0, 0, 0, 22, 195, 1, 0, 0, 0, 24, 204, 1, 0, 0, 0, 26, 213, 1, 0, 0, 0,
2489
- 28, 222, 1, 0, 0, 0, 30, 231, 1, 0, 0, 0, 32, 240, 1, 0, 0, 0, 34, 247, 1, 0, 0, 0, 36, 256,
2490
- 1, 0, 0, 0, 38, 265, 1, 0, 0, 0, 40, 274, 1, 0, 0, 0, 42, 283, 1, 0, 0, 0, 44, 292, 1, 0,
2491
- 0, 0, 46, 301, 1, 0, 0, 0, 48, 310, 1, 0, 0, 0, 50, 319, 1, 0, 0, 0, 52, 328, 1, 0, 0, 0,
2492
- 54, 343, 1, 0, 0, 0, 56, 378, 1, 0, 0, 0, 58, 388, 1, 0, 0, 0, 60, 398, 1, 0, 0, 0, 62, 412,
2493
- 1, 0, 0, 0, 64, 422, 1, 0, 0, 0, 66, 425, 1, 0, 0, 0, 68, 433, 1, 0, 0, 0, 70, 435, 1, 0,
2494
- 0, 0, 72, 444, 1, 0, 0, 0, 74, 448, 1, 0, 0, 0, 76, 454, 1, 0, 0, 0, 78, 460, 1, 0, 0, 0,
2495
- 80, 464, 1, 0, 0, 0, 82, 470, 1, 0, 0, 0, 84, 479, 1, 0, 0, 0, 86, 482, 1, 0, 0, 0, 88, 89,
2496
- 3, 4, 2, 0, 89, 90, 5, 0, 0, 1, 90, 99, 1, 0, 0, 0, 91, 92, 5, 34, 0, 0, 92, 94, 3, 6, 3, 0,
2497
- 93, 95, 5, 35, 0, 0, 94, 93, 1, 0, 0, 0, 94, 95, 1, 0, 0, 0, 95, 96, 1, 0, 0, 0, 96, 97, 5,
2498
- 0, 0, 1, 97, 99, 1, 0, 0, 0, 98, 88, 1, 0, 0, 0, 98, 91, 1, 0, 0, 0, 99, 1, 1, 0, 0, 0, 100,
2499
- 102, 3, 4, 2, 0, 101, 100, 1, 0, 0, 0, 102, 103, 1, 0, 0, 0, 103, 101, 1, 0, 0, 0, 103,
2500
- 104, 1, 0, 0, 0, 104, 105, 1, 0, 0, 0, 105, 106, 5, 0, 0, 1, 106, 3, 1, 0, 0, 0, 107, 109,
2501
- 5, 16, 0, 0, 108, 107, 1, 0, 0, 0, 109, 112, 1, 0, 0, 0, 110, 108, 1, 0, 0, 0, 110, 111,
2502
- 1, 0, 0, 0, 111, 113, 1, 0, 0, 0, 112, 110, 1, 0, 0, 0, 113, 114, 3, 6, 3, 0, 114, 5, 1,
2503
- 0, 0, 0, 115, 119, 3, 46, 23, 0, 116, 118, 3, 16, 8, 0, 117, 116, 1, 0, 0, 0, 118, 121,
2504
- 1, 0, 0, 0, 119, 117, 1, 0, 0, 0, 119, 120, 1, 0, 0, 0, 120, 122, 1, 0, 0, 0, 121, 119,
2505
- 1, 0, 0, 0, 122, 123, 3, 32, 16, 0, 123, 7, 1, 0, 0, 0, 124, 126, 3, 14, 7, 0, 125, 124,
2506
- 1, 0, 0, 0, 126, 129, 1, 0, 0, 0, 127, 125, 1, 0, 0, 0, 127, 128, 1, 0, 0, 0, 128, 130,
2507
- 1, 0, 0, 0, 129, 127, 1, 0, 0, 0, 130, 131, 5, 0, 0, 1, 131, 9, 1, 0, 0, 0, 132, 134, 3,
2508
- 12, 6, 0, 133, 132, 1, 0, 0, 0, 134, 137, 1, 0, 0, 0, 135, 133, 1, 0, 0, 0, 135, 136, 1,
2509
- 0, 0, 0, 136, 138, 1, 0, 0, 0, 137, 135, 1, 0, 0, 0, 138, 139, 5, 0, 0, 1, 139, 11, 1, 0,
2510
- 0, 0, 140, 144, 3, 14, 7, 0, 141, 144, 3, 48, 24, 0, 142, 144, 3, 50, 25, 0, 143, 140,
2511
- 1, 0, 0, 0, 143, 141, 1, 0, 0, 0, 143, 142, 1, 0, 0, 0, 144, 13, 1, 0, 0, 0, 145, 161, 3,
2512
- 18, 9, 0, 146, 161, 3, 20, 10, 0, 147, 161, 3, 22, 11, 0, 148, 161, 3, 24, 12, 0, 149,
2513
- 161, 3, 26, 13, 0, 150, 161, 3, 28, 14, 0, 151, 161, 3, 30, 15, 0, 152, 161, 3, 32, 16,
2514
- 0, 153, 161, 3, 34, 17, 0, 154, 161, 3, 36, 18, 0, 155, 161, 3, 38, 19, 0, 156, 161,
2515
- 3, 40, 20, 0, 157, 161, 3, 42, 21, 0, 158, 161, 3, 44, 22, 0, 159, 161, 3, 46, 23, 0,
2516
- 160, 145, 1, 0, 0, 0, 160, 146, 1, 0, 0, 0, 160, 147, 1, 0, 0, 0, 160, 148, 1, 0, 0, 0,
2517
- 160, 149, 1, 0, 0, 0, 160, 150, 1, 0, 0, 0, 160, 151, 1, 0, 0, 0, 160, 152, 1, 0, 0, 0,
2518
- 160, 153, 1, 0, 0, 0, 160, 154, 1, 0, 0, 0, 160, 155, 1, 0, 0, 0, 160, 156, 1, 0, 0, 0,
2519
- 160, 157, 1, 0, 0, 0, 160, 158, 1, 0, 0, 0, 160, 159, 1, 0, 0, 0, 161, 15, 1, 0, 0, 0, 162,
2520
- 176, 3, 18, 9, 0, 163, 176, 3, 20, 10, 0, 164, 176, 3, 22, 11, 0, 165, 176, 3, 24, 12,
2521
- 0, 166, 176, 3, 26, 13, 0, 167, 176, 3, 28, 14, 0, 168, 176, 3, 30, 15, 0, 169, 176,
2522
- 3, 34, 17, 0, 170, 176, 3, 36, 18, 0, 171, 176, 3, 38, 19, 0, 172, 176, 3, 40, 20, 0,
2523
- 173, 176, 3, 42, 21, 0, 174, 176, 3, 44, 22, 0, 175, 162, 1, 0, 0, 0, 175, 163, 1, 0,
2524
- 0, 0, 175, 164, 1, 0, 0, 0, 175, 165, 1, 0, 0, 0, 175, 166, 1, 0, 0, 0, 175, 167, 1, 0,
2525
- 0, 0, 175, 168, 1, 0, 0, 0, 175, 169, 1, 0, 0, 0, 175, 170, 1, 0, 0, 0, 175, 171, 1, 0,
2526
- 0, 0, 175, 172, 1, 0, 0, 0, 175, 173, 1, 0, 0, 0, 175, 174, 1, 0, 0, 0, 176, 17, 1, 0, 0,
2527
- 0, 177, 179, 5, 19, 0, 0, 178, 180, 3, 56, 28, 0, 179, 178, 1, 0, 0, 0, 179, 180, 1, 0,
2528
- 0, 0, 180, 182, 1, 0, 0, 0, 181, 183, 3, 52, 26, 0, 182, 181, 1, 0, 0, 0, 182, 183, 1,
2529
- 0, 0, 0, 183, 184, 1, 0, 0, 0, 184, 185, 3, 54, 27, 0, 185, 19, 1, 0, 0, 0, 186, 188, 5,
2530
- 20, 0, 0, 187, 189, 3, 56, 28, 0, 188, 187, 1, 0, 0, 0, 188, 189, 1, 0, 0, 0, 189, 191,
2531
- 1, 0, 0, 0, 190, 192, 3, 52, 26, 0, 191, 190, 1, 0, 0, 0, 191, 192, 1, 0, 0, 0, 192, 193,
2532
- 1, 0, 0, 0, 193, 194, 3, 54, 27, 0, 194, 21, 1, 0, 0, 0, 195, 197, 5, 21, 0, 0, 196, 198,
2533
- 3, 56, 28, 0, 197, 196, 1, 0, 0, 0, 197, 198, 1, 0, 0, 0, 198, 200, 1, 0, 0, 0, 199, 201,
2534
- 3, 52, 26, 0, 200, 199, 1, 0, 0, 0, 200, 201, 1, 0, 0, 0, 201, 202, 1, 0, 0, 0, 202, 203,
2535
- 3, 54, 27, 0, 203, 23, 1, 0, 0, 0, 204, 206, 5, 22, 0, 0, 205, 207, 3, 56, 28, 0, 206,
2536
- 205, 1, 0, 0, 0, 206, 207, 1, 0, 0, 0, 207, 209, 1, 0, 0, 0, 208, 210, 3, 52, 26, 0, 209,
2537
- 208, 1, 0, 0, 0, 209, 210, 1, 0, 0, 0, 210, 211, 1, 0, 0, 0, 211, 212, 3, 54, 27, 0, 212,
2538
- 25, 1, 0, 0, 0, 213, 215, 5, 23, 0, 0, 214, 216, 3, 56, 28, 0, 215, 214, 1, 0, 0, 0, 215,
2539
- 216, 1, 0, 0, 0, 216, 218, 1, 0, 0, 0, 217, 219, 3, 52, 26, 0, 218, 217, 1, 0, 0, 0, 218,
2540
- 219, 1, 0, 0, 0, 219, 220, 1, 0, 0, 0, 220, 221, 3, 54, 27, 0, 221, 27, 1, 0, 0, 0, 222,
2541
- 224, 5, 24, 0, 0, 223, 225, 3, 56, 28, 0, 224, 223, 1, 0, 0, 0, 224, 225, 1, 0, 0, 0, 225,
2542
- 227, 1, 0, 0, 0, 226, 228, 3, 52, 26, 0, 227, 226, 1, 0, 0, 0, 227, 228, 1, 0, 0, 0, 228,
2543
- 229, 1, 0, 0, 0, 229, 230, 3, 54, 27, 0, 230, 29, 1, 0, 0, 0, 231, 233, 5, 25, 0, 0, 232,
2544
- 234, 3, 56, 28, 0, 233, 232, 1, 0, 0, 0, 233, 234, 1, 0, 0, 0, 234, 236, 1, 0, 0, 0, 235,
2545
- 237, 3, 52, 26, 0, 236, 235, 1, 0, 0, 0, 236, 237, 1, 0, 0, 0, 237, 238, 1, 0, 0, 0, 238,
2546
- 239, 3, 54, 27, 0, 239, 31, 1, 0, 0, 0, 240, 241, 5, 26, 0, 0, 241, 243, 3, 62, 31, 0,
2547
- 242, 244, 3, 52, 26, 0, 243, 242, 1, 0, 0, 0, 243, 244, 1, 0, 0, 0, 244, 245, 1, 0, 0,
2548
- 0, 245, 246, 3, 54, 27, 0, 246, 33, 1, 0, 0, 0, 247, 249, 5, 26, 0, 0, 248, 250, 3, 64,
2549
- 32, 0, 249, 248, 1, 0, 0, 0, 249, 250, 1, 0, 0, 0, 250, 252, 1, 0, 0, 0, 251, 253, 3, 52,
2550
- 26, 0, 252, 251, 1, 0, 0, 0, 252, 253, 1, 0, 0, 0, 253, 254, 1, 0, 0, 0, 254, 255, 3, 54,
2551
- 27, 0, 255, 35, 1, 0, 0, 0, 256, 258, 5, 27, 0, 0, 257, 259, 3, 66, 33, 0, 258, 257, 1,
2552
- 0, 0, 0, 258, 259, 1, 0, 0, 0, 259, 261, 1, 0, 0, 0, 260, 262, 3, 52, 26, 0, 261, 260,
2553
- 1, 0, 0, 0, 261, 262, 1, 0, 0, 0, 262, 263, 1, 0, 0, 0, 263, 264, 3, 54, 27, 0, 264, 37,
2554
- 1, 0, 0, 0, 265, 267, 5, 28, 0, 0, 266, 268, 3, 70, 35, 0, 267, 266, 1, 0, 0, 0, 267, 268,
2555
- 1, 0, 0, 0, 268, 270, 1, 0, 0, 0, 269, 271, 3, 52, 26, 0, 270, 269, 1, 0, 0, 0, 270, 271,
2556
- 1, 0, 0, 0, 271, 272, 1, 0, 0, 0, 272, 273, 3, 54, 27, 0, 273, 39, 1, 0, 0, 0, 274, 276,
2557
- 5, 29, 0, 0, 275, 277, 3, 60, 30, 0, 276, 275, 1, 0, 0, 0, 276, 277, 1, 0, 0, 0, 277, 279,
2558
- 1, 0, 0, 0, 278, 280, 3, 52, 26, 0, 279, 278, 1, 0, 0, 0, 279, 280, 1, 0, 0, 0, 280, 281,
2559
- 1, 0, 0, 0, 281, 282, 3, 54, 27, 0, 282, 41, 1, 0, 0, 0, 283, 285, 5, 30, 0, 0, 284, 286,
2560
- 3, 60, 30, 0, 285, 284, 1, 0, 0, 0, 285, 286, 1, 0, 0, 0, 286, 288, 1, 0, 0, 0, 287, 289,
2561
- 3, 52, 26, 0, 288, 287, 1, 0, 0, 0, 288, 289, 1, 0, 0, 0, 289, 290, 1, 0, 0, 0, 290, 291,
2562
- 3, 54, 27, 0, 291, 43, 1, 0, 0, 0, 292, 294, 5, 31, 0, 0, 293, 295, 3, 58, 29, 0, 294,
2563
- 293, 1, 0, 0, 0, 294, 295, 1, 0, 0, 0, 295, 297, 1, 0, 0, 0, 296, 298, 3, 52, 26, 0, 297,
2564
- 296, 1, 0, 0, 0, 297, 298, 1, 0, 0, 0, 298, 299, 1, 0, 0, 0, 299, 300, 3, 54, 27, 0, 300,
2565
- 45, 1, 0, 0, 0, 301, 303, 5, 18, 0, 0, 302, 304, 3, 56, 28, 0, 303, 302, 1, 0, 0, 0, 303,
2566
- 304, 1, 0, 0, 0, 304, 306, 1, 0, 0, 0, 305, 307, 3, 52, 26, 0, 306, 305, 1, 0, 0, 0, 306,
2567
- 307, 1, 0, 0, 0, 307, 308, 1, 0, 0, 0, 308, 309, 3, 54, 27, 0, 309, 47, 1, 0, 0, 0, 310,
2568
- 312, 5, 32, 0, 0, 311, 313, 3, 56, 28, 0, 312, 311, 1, 0, 0, 0, 312, 313, 1, 0, 0, 0, 313,
2569
- 315, 1, 0, 0, 0, 314, 316, 3, 52, 26, 0, 315, 314, 1, 0, 0, 0, 315, 316, 1, 0, 0, 0, 316,
2570
- 317, 1, 0, 0, 0, 317, 318, 3, 54, 27, 0, 318, 49, 1, 0, 0, 0, 319, 321, 5, 33, 0, 0, 320,
2571
- 322, 3, 56, 28, 0, 321, 320, 1, 0, 0, 0, 321, 322, 1, 0, 0, 0, 322, 324, 1, 0, 0, 0, 323,
2572
- 325, 3, 52, 26, 0, 324, 323, 1, 0, 0, 0, 324, 325, 1, 0, 0, 0, 325, 326, 1, 0, 0, 0, 326,
2573
- 327, 3, 54, 27, 0, 327, 51, 1, 0, 0, 0, 328, 329, 5, 17, 0, 0, 329, 53, 1, 0, 0, 0, 330,
2574
- 344, 5, 8, 0, 0, 331, 333, 5, 7, 0, 0, 332, 334, 3, 86, 43, 0, 333, 332, 1, 0, 0, 0, 333,
2575
- 334, 1, 0, 0, 0, 334, 336, 1, 0, 0, 0, 335, 337, 5, 8, 0, 0, 336, 335, 1, 0, 0, 0, 336,
2576
- 337, 1, 0, 0, 0, 337, 344, 1, 0, 0, 0, 338, 340, 3, 86, 43, 0, 339, 341, 5, 8, 0, 0, 340,
2577
- 339, 1, 0, 0, 0, 340, 341, 1, 0, 0, 0, 341, 344, 1, 0, 0, 0, 342, 344, 1, 0, 0, 0, 343,
2578
- 330, 1, 0, 0, 0, 343, 331, 1, 0, 0, 0, 343, 338, 1, 0, 0, 0, 343, 342, 1, 0, 0, 0, 344,
2579
- 55, 1, 0, 0, 0, 345, 354, 3, 70, 35, 0, 346, 348, 3, 82, 41, 0, 347, 349, 3, 84, 42, 0,
2580
- 348, 347, 1, 0, 0, 0, 348, 349, 1, 0, 0, 0, 349, 355, 1, 0, 0, 0, 350, 352, 3, 84, 42,
2581
- 0, 351, 353, 3, 82, 41, 0, 352, 351, 1, 0, 0, 0, 352, 353, 1, 0, 0, 0, 353, 355, 1, 0,
2582
- 0, 0, 354, 346, 1, 0, 0, 0, 354, 350, 1, 0, 0, 0, 354, 355, 1, 0, 0, 0, 355, 379, 1, 0,
2583
- 0, 0, 356, 365, 3, 82, 41, 0, 357, 359, 3, 70, 35, 0, 358, 360, 3, 84, 42, 0, 359, 358,
2584
- 1, 0, 0, 0, 359, 360, 1, 0, 0, 0, 360, 366, 1, 0, 0, 0, 361, 363, 3, 84, 42, 0, 362, 364,
2585
- 3, 70, 35, 0, 363, 362, 1, 0, 0, 0, 363, 364, 1, 0, 0, 0, 364, 366, 1, 0, 0, 0, 365, 357,
2586
- 1, 0, 0, 0, 365, 361, 1, 0, 0, 0, 365, 366, 1, 0, 0, 0, 366, 379, 1, 0, 0, 0, 367, 376,
2587
- 3, 84, 42, 0, 368, 370, 3, 70, 35, 0, 369, 371, 3, 82, 41, 0, 370, 369, 1, 0, 0, 0, 370,
2588
- 371, 1, 0, 0, 0, 371, 377, 1, 0, 0, 0, 372, 374, 3, 82, 41, 0, 373, 375, 3, 70, 35, 0,
2589
- 374, 373, 1, 0, 0, 0, 374, 375, 1, 0, 0, 0, 375, 377, 1, 0, 0, 0, 376, 368, 1, 0, 0, 0,
2590
- 376, 372, 1, 0, 0, 0, 376, 377, 1, 0, 0, 0, 377, 379, 1, 0, 0, 0, 378, 345, 1, 0, 0, 0,
2591
- 378, 356, 1, 0, 0, 0, 378, 367, 1, 0, 0, 0, 379, 57, 1, 0, 0, 0, 380, 382, 3, 74, 37, 0,
2592
- 381, 383, 3, 82, 41, 0, 382, 381, 1, 0, 0, 0, 382, 383, 1, 0, 0, 0, 383, 389, 1, 0, 0,
2593
- 0, 384, 386, 3, 82, 41, 0, 385, 387, 3, 74, 37, 0, 386, 385, 1, 0, 0, 0, 386, 387, 1,
2594
- 0, 0, 0, 387, 389, 1, 0, 0, 0, 388, 380, 1, 0, 0, 0, 388, 384, 1, 0, 0, 0, 389, 59, 1, 0,
2595
- 0, 0, 390, 392, 3, 72, 36, 0, 391, 393, 3, 82, 41, 0, 392, 391, 1, 0, 0, 0, 392, 393,
2596
- 1, 0, 0, 0, 393, 399, 1, 0, 0, 0, 394, 396, 3, 82, 41, 0, 395, 397, 3, 72, 36, 0, 396,
2597
- 395, 1, 0, 0, 0, 396, 397, 1, 0, 0, 0, 397, 399, 1, 0, 0, 0, 398, 390, 1, 0, 0, 0, 398,
2598
- 394, 1, 0, 0, 0, 399, 61, 1, 0, 0, 0, 400, 402, 3, 78, 39, 0, 401, 403, 3, 82, 41, 0, 402,
2599
- 401, 1, 0, 0, 0, 402, 403, 1, 0, 0, 0, 403, 405, 1, 0, 0, 0, 404, 406, 3, 84, 42, 0, 405,
2600
- 404, 1, 0, 0, 0, 405, 406, 1, 0, 0, 0, 406, 413, 1, 0, 0, 0, 407, 408, 3, 82, 41, 0, 408,
2601
- 410, 3, 78, 39, 0, 409, 411, 3, 84, 42, 0, 410, 409, 1, 0, 0, 0, 410, 411, 1, 0, 0, 0,
2602
- 411, 413, 1, 0, 0, 0, 412, 400, 1, 0, 0, 0, 412, 407, 1, 0, 0, 0, 413, 63, 1, 0, 0, 0, 414,
2603
- 416, 3, 76, 38, 0, 415, 417, 3, 82, 41, 0, 416, 415, 1, 0, 0, 0, 416, 417, 1, 0, 0, 0,
2604
- 417, 423, 1, 0, 0, 0, 418, 420, 3, 82, 41, 0, 419, 421, 3, 76, 38, 0, 420, 419, 1, 0,
2605
- 0, 0, 420, 421, 1, 0, 0, 0, 421, 423, 1, 0, 0, 0, 422, 414, 1, 0, 0, 0, 422, 418, 1, 0,
2606
- 0, 0, 423, 65, 1, 0, 0, 0, 424, 426, 3, 68, 34, 0, 425, 424, 1, 0, 0, 0, 426, 427, 1, 0,
2607
- 0, 0, 427, 425, 1, 0, 0, 0, 427, 428, 1, 0, 0, 0, 428, 67, 1, 0, 0, 0, 429, 434, 3, 80,
2608
- 40, 0, 430, 434, 3, 70, 35, 0, 431, 434, 3, 82, 41, 0, 432, 434, 3, 84, 42, 0, 433, 429,
2609
- 1, 0, 0, 0, 433, 430, 1, 0, 0, 0, 433, 431, 1, 0, 0, 0, 433, 432, 1, 0, 0, 0, 434, 69, 1,
2610
- 0, 0, 0, 435, 439, 5, 1, 0, 0, 436, 438, 7, 0, 0, 0, 437, 436, 1, 0, 0, 0, 438, 441, 1,
2611
- 0, 0, 0, 439, 437, 1, 0, 0, 0, 439, 440, 1, 0, 0, 0, 440, 442, 1, 0, 0, 0, 441, 439, 1,
2612
- 0, 0, 0, 442, 443, 5, 2, 0, 0, 443, 71, 1, 0, 0, 0, 444, 445, 5, 1, 0, 0, 445, 446, 5, 13,
2613
- 0, 0, 446, 447, 5, 2, 0, 0, 447, 73, 1, 0, 0, 0, 448, 450, 5, 1, 0, 0, 449, 451, 7, 1, 0,
2614
- 0, 450, 449, 1, 0, 0, 0, 450, 451, 1, 0, 0, 0, 451, 452, 1, 0, 0, 0, 452, 453, 5, 2, 0,
2615
- 0, 453, 75, 1, 0, 0, 0, 454, 456, 5, 1, 0, 0, 455, 457, 5, 10, 0, 0, 456, 455, 1, 0, 0,
2616
- 0, 456, 457, 1, 0, 0, 0, 457, 458, 1, 0, 0, 0, 458, 459, 5, 2, 0, 0, 459, 77, 1, 0, 0, 0,
2617
- 460, 461, 5, 1, 0, 0, 461, 462, 5, 11, 0, 0, 462, 463, 5, 2, 0, 0, 463, 79, 1, 0, 0, 0,
2618
- 464, 466, 5, 1, 0, 0, 465, 467, 5, 12, 0, 0, 466, 465, 1, 0, 0, 0, 466, 467, 1, 0, 0, 0,
2619
- 467, 468, 1, 0, 0, 0, 468, 469, 5, 2, 0, 0, 469, 81, 1, 0, 0, 0, 470, 474, 5, 3, 0, 0, 471,
2620
- 473, 5, 14, 0, 0, 472, 471, 1, 0, 0, 0, 473, 476, 1, 0, 0, 0, 474, 472, 1, 0, 0, 0, 474,
2621
- 475, 1, 0, 0, 0, 475, 477, 1, 0, 0, 0, 476, 474, 1, 0, 0, 0, 477, 478, 5, 4, 0, 0, 478,
2622
- 83, 1, 0, 0, 0, 479, 480, 5, 5, 0, 0, 480, 85, 1, 0, 0, 0, 481, 483, 5, 15, 0, 0, 482, 481,
2623
- 1, 0, 0, 0, 483, 484, 1, 0, 0, 0, 484, 482, 1, 0, 0, 0, 484, 485, 1, 0, 0, 0, 485, 87, 1,
2624
- 0, 0, 0, 78, 94, 98, 103, 110, 119, 127, 135, 143, 160, 175, 179, 182, 188, 191, 197,
2625
- 200, 206, 209, 215, 218, 224, 227, 233, 236, 243, 249, 252, 258, 261, 267, 270,
2626
- 276, 279, 285, 288, 294, 297, 303, 306, 312, 315, 321, 324, 333, 336, 340, 343,
2627
- 348, 352, 354, 359, 363, 365, 370, 374, 376, 378, 382, 386, 388, 392, 396, 398,
2628
- 402, 405, 410, 412, 416, 420, 422, 427, 433, 439, 450, 456, 466, 474, 484
2847
+ 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46,
2848
+ 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
2849
+ 1, 0, 3, 0, 109, 8, 0, 1, 0, 1, 0, 3, 0, 113, 8, 0, 1, 1, 4, 1, 116, 8, 1, 11, 1, 12, 1, 117,
2850
+ 1, 1, 1, 1, 1, 2, 5, 2, 123, 8, 2, 10, 2, 12, 2, 126, 9, 2, 1, 2, 1, 2, 1, 3, 5, 3, 131, 8,
2851
+ 3, 10, 3, 12, 3, 134, 9, 3, 1, 3, 1, 3, 1, 4, 1, 4, 5, 4, 140, 8, 4, 10, 4, 12, 4, 143, 9,
2852
+ 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 5, 5, 150, 8, 5, 10, 5, 12, 5, 153, 9, 5, 1, 5, 4, 5, 156,
2853
+ 8, 5, 11, 5, 12, 5, 157, 1, 5, 3, 5, 161, 8, 5, 1, 5, 3, 5, 164, 8, 5, 1, 6, 5, 6, 167, 8,
2854
+ 6, 10, 6, 12, 6, 170, 9, 6, 1, 6, 1, 6, 1, 7, 5, 7, 175, 8, 7, 10, 7, 12, 7, 178, 9, 7, 1,
2855
+ 7, 1, 7, 1, 8, 1, 8, 1, 8, 3, 8, 185, 8, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1,
2856
+ 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 3, 9, 202, 8, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1,
2857
+ 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 217, 8, 10, 1, 11, 1, 11, 3,
2858
+ 11, 221, 8, 11, 1, 11, 3, 11, 224, 8, 11, 1, 11, 1, 11, 1, 12, 1, 12, 3, 12, 230, 8, 12,
2859
+ 1, 12, 3, 12, 233, 8, 12, 1, 12, 1, 12, 1, 13, 1, 13, 3, 13, 239, 8, 13, 1, 13, 3, 13, 242,
2860
+ 8, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 3, 14, 249, 8, 14, 1, 14, 1, 14, 1, 15, 1, 15,
2861
+ 1, 15, 3, 15, 256, 8, 15, 1, 15, 1, 15, 1, 16, 1, 16, 3, 16, 262, 8, 16, 1, 16, 3, 16, 265,
2862
+ 8, 16, 1, 16, 1, 16, 1, 17, 1, 17, 3, 17, 271, 8, 17, 1, 17, 3, 17, 274, 8, 17, 1, 17, 1,
2863
+ 17, 1, 18, 1, 18, 1, 18, 3, 18, 281, 8, 18, 1, 18, 1, 18, 1, 19, 1, 19, 3, 19, 287, 8, 19,
2864
+ 1, 19, 3, 19, 290, 8, 19, 1, 19, 1, 19, 1, 20, 1, 20, 3, 20, 296, 8, 20, 1, 20, 3, 20, 299,
2865
+ 8, 20, 1, 20, 1, 20, 1, 21, 1, 21, 3, 21, 305, 8, 21, 1, 21, 3, 21, 308, 8, 21, 1, 21, 1,
2866
+ 21, 1, 22, 1, 22, 3, 22, 314, 8, 22, 1, 22, 3, 22, 317, 8, 22, 1, 22, 1, 22, 1, 23, 1, 23,
2867
+ 3, 23, 323, 8, 23, 1, 23, 3, 23, 326, 8, 23, 1, 23, 1, 23, 1, 24, 1, 24, 3, 24, 332, 8,
2868
+ 24, 1, 24, 3, 24, 335, 8, 24, 1, 24, 1, 24, 1, 25, 1, 25, 3, 25, 341, 8, 25, 1, 25, 3, 25,
2869
+ 344, 8, 25, 1, 25, 1, 25, 1, 26, 1, 26, 3, 26, 350, 8, 26, 1, 26, 3, 26, 353, 8, 26, 1,
2870
+ 26, 1, 26, 1, 27, 1, 27, 3, 27, 359, 8, 27, 1, 27, 3, 27, 362, 8, 27, 1, 27, 1, 27, 1, 28,
2871
+ 1, 28, 1, 29, 1, 29, 1, 29, 3, 29, 371, 8, 29, 1, 29, 3, 29, 374, 8, 29, 1, 29, 1, 29, 3,
2872
+ 29, 378, 8, 29, 1, 29, 3, 29, 381, 8, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30,
2873
+ 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 394, 8, 30, 3, 30, 396, 8, 30, 1, 31, 1, 31, 3, 31, 400,
2874
+ 8, 31, 1, 32, 1, 32, 1, 32, 3, 32, 405, 8, 32, 1, 32, 3, 32, 408, 8, 32, 1, 33, 1, 33, 1,
2875
+ 33, 3, 33, 413, 8, 33, 1, 33, 1, 33, 3, 33, 417, 8, 33, 3, 33, 419, 8, 33, 1, 33, 1, 33,
2876
+ 1, 33, 3, 33, 424, 8, 33, 1, 33, 1, 33, 3, 33, 428, 8, 33, 3, 33, 430, 8, 33, 1, 33, 1,
2877
+ 33, 1, 33, 3, 33, 435, 8, 33, 1, 33, 1, 33, 3, 33, 439, 8, 33, 3, 33, 441, 8, 33, 3, 33,
2878
+ 443, 8, 33, 1, 34, 1, 34, 3, 34, 447, 8, 34, 1, 34, 1, 34, 3, 34, 451, 8, 34, 3, 34, 453,
2879
+ 8, 34, 1, 35, 1, 35, 3, 35, 457, 8, 35, 1, 35, 1, 35, 3, 35, 461, 8, 35, 3, 35, 463, 8,
2880
+ 35, 1, 36, 1, 36, 3, 36, 467, 8, 36, 1, 36, 3, 36, 470, 8, 36, 1, 36, 1, 36, 1, 36, 3, 36,
2881
+ 475, 8, 36, 3, 36, 477, 8, 36, 1, 37, 1, 37, 3, 37, 481, 8, 37, 1, 37, 1, 37, 3, 37, 485,
2882
+ 8, 37, 3, 37, 487, 8, 37, 1, 38, 4, 38, 490, 8, 38, 11, 38, 12, 38, 491, 1, 39, 1, 39,
2883
+ 1, 39, 1, 39, 3, 39, 498, 8, 39, 1, 40, 1, 40, 5, 40, 502, 8, 40, 10, 40, 12, 40, 505,
2884
+ 9, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 3, 42, 515, 8, 42, 1, 42,
2885
+ 1, 42, 1, 43, 1, 43, 3, 43, 521, 8, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45,
2886
+ 1, 45, 3, 45, 531, 8, 45, 1, 45, 1, 45, 1, 46, 1, 46, 5, 46, 537, 8, 46, 10, 46, 12, 46,
2887
+ 540, 9, 46, 1, 46, 1, 46, 1, 47, 1, 47, 5, 47, 546, 8, 47, 10, 47, 12, 47, 549, 9, 47,
2888
+ 1, 48, 1, 48, 5, 48, 553, 8, 48, 10, 48, 12, 48, 556, 9, 48, 1, 48, 1, 48, 1, 49, 1, 49,
2889
+ 1, 50, 4, 50, 563, 8, 50, 11, 50, 12, 50, 564, 1, 50, 0, 0, 51, 0, 2, 4, 6, 8, 10, 12, 14,
2890
+ 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58,
2891
+ 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100,
2892
+ 0, 2, 2, 0, 11, 11, 15, 15, 1, 0, 12, 13, 640, 0, 112, 1, 0, 0, 0, 2, 115, 1, 0, 0, 0, 4,
2893
+ 124, 1, 0, 0, 0, 6, 132, 1, 0, 0, 0, 8, 137, 1, 0, 0, 0, 10, 163, 1, 0, 0, 0, 12, 168, 1,
2894
+ 0, 0, 0, 14, 176, 1, 0, 0, 0, 16, 184, 1, 0, 0, 0, 18, 201, 1, 0, 0, 0, 20, 216, 1, 0, 0,
2895
+ 0, 22, 218, 1, 0, 0, 0, 24, 227, 1, 0, 0, 0, 26, 236, 1, 0, 0, 0, 28, 245, 1, 0, 0, 0, 30,
2896
+ 252, 1, 0, 0, 0, 32, 259, 1, 0, 0, 0, 34, 268, 1, 0, 0, 0, 36, 277, 1, 0, 0, 0, 38, 284,
2897
+ 1, 0, 0, 0, 40, 293, 1, 0, 0, 0, 42, 302, 1, 0, 0, 0, 44, 311, 1, 0, 0, 0, 46, 320, 1, 0,
2898
+ 0, 0, 48, 329, 1, 0, 0, 0, 50, 338, 1, 0, 0, 0, 52, 347, 1, 0, 0, 0, 54, 356, 1, 0, 0, 0,
2899
+ 56, 365, 1, 0, 0, 0, 58, 380, 1, 0, 0, 0, 60, 395, 1, 0, 0, 0, 62, 397, 1, 0, 0, 0, 64, 407,
2900
+ 1, 0, 0, 0, 66, 442, 1, 0, 0, 0, 68, 452, 1, 0, 0, 0, 70, 462, 1, 0, 0, 0, 72, 476, 1, 0,
2901
+ 0, 0, 74, 486, 1, 0, 0, 0, 76, 489, 1, 0, 0, 0, 78, 497, 1, 0, 0, 0, 80, 499, 1, 0, 0, 0,
2902
+ 82, 508, 1, 0, 0, 0, 84, 512, 1, 0, 0, 0, 86, 518, 1, 0, 0, 0, 88, 524, 1, 0, 0, 0, 90, 528,
2903
+ 1, 0, 0, 0, 92, 534, 1, 0, 0, 0, 94, 543, 1, 0, 0, 0, 96, 550, 1, 0, 0, 0, 98, 559, 1, 0,
2904
+ 0, 0, 100, 562, 1, 0, 0, 0, 102, 103, 3, 6, 3, 0, 103, 104, 5, 0, 0, 1, 104, 113, 1, 0,
2905
+ 0, 0, 105, 106, 5, 37, 0, 0, 106, 108, 3, 10, 5, 0, 107, 109, 5, 38, 0, 0, 108, 107, 1,
2906
+ 0, 0, 0, 108, 109, 1, 0, 0, 0, 109, 110, 1, 0, 0, 0, 110, 111, 5, 0, 0, 1, 111, 113, 1,
2907
+ 0, 0, 0, 112, 102, 1, 0, 0, 0, 112, 105, 1, 0, 0, 0, 113, 1, 1, 0, 0, 0, 114, 116, 3, 4,
2908
+ 2, 0, 115, 114, 1, 0, 0, 0, 116, 117, 1, 0, 0, 0, 117, 115, 1, 0, 0, 0, 117, 118, 1, 0,
2909
+ 0, 0, 118, 119, 1, 0, 0, 0, 119, 120, 5, 0, 0, 1, 120, 3, 1, 0, 0, 0, 121, 123, 5, 19, 0,
2910
+ 0, 122, 121, 1, 0, 0, 0, 123, 126, 1, 0, 0, 0, 124, 122, 1, 0, 0, 0, 124, 125, 1, 0, 0,
2911
+ 0, 125, 127, 1, 0, 0, 0, 126, 124, 1, 0, 0, 0, 127, 128, 3, 8, 4, 0, 128, 5, 1, 0, 0, 0,
2912
+ 129, 131, 5, 19, 0, 0, 130, 129, 1, 0, 0, 0, 131, 134, 1, 0, 0, 0, 132, 130, 1, 0, 0, 0,
2913
+ 132, 133, 1, 0, 0, 0, 133, 135, 1, 0, 0, 0, 134, 132, 1, 0, 0, 0, 135, 136, 3, 10, 5, 0,
2914
+ 136, 7, 1, 0, 0, 0, 137, 141, 3, 50, 25, 0, 138, 140, 3, 20, 10, 0, 139, 138, 1, 0, 0,
2915
+ 0, 140, 143, 1, 0, 0, 0, 141, 139, 1, 0, 0, 0, 141, 142, 1, 0, 0, 0, 142, 144, 1, 0, 0,
2916
+ 0, 143, 141, 1, 0, 0, 0, 144, 145, 3, 36, 18, 0, 145, 9, 1, 0, 0, 0, 146, 164, 3, 8, 4,
2917
+ 0, 147, 151, 3, 50, 25, 0, 148, 150, 3, 20, 10, 0, 149, 148, 1, 0, 0, 0, 150, 153, 1,
2918
+ 0, 0, 0, 151, 149, 1, 0, 0, 0, 151, 152, 1, 0, 0, 0, 152, 164, 1, 0, 0, 0, 153, 151, 1,
2919
+ 0, 0, 0, 154, 156, 3, 20, 10, 0, 155, 154, 1, 0, 0, 0, 156, 157, 1, 0, 0, 0, 157, 155,
2920
+ 1, 0, 0, 0, 157, 158, 1, 0, 0, 0, 158, 160, 1, 0, 0, 0, 159, 161, 3, 36, 18, 0, 160, 159,
2921
+ 1, 0, 0, 0, 160, 161, 1, 0, 0, 0, 161, 164, 1, 0, 0, 0, 162, 164, 3, 36, 18, 0, 163, 146,
2922
+ 1, 0, 0, 0, 163, 147, 1, 0, 0, 0, 163, 155, 1, 0, 0, 0, 163, 162, 1, 0, 0, 0, 164, 11, 1,
2923
+ 0, 0, 0, 165, 167, 3, 18, 9, 0, 166, 165, 1, 0, 0, 0, 167, 170, 1, 0, 0, 0, 168, 166, 1,
2924
+ 0, 0, 0, 168, 169, 1, 0, 0, 0, 169, 171, 1, 0, 0, 0, 170, 168, 1, 0, 0, 0, 171, 172, 5,
2925
+ 0, 0, 1, 172, 13, 1, 0, 0, 0, 173, 175, 3, 16, 8, 0, 174, 173, 1, 0, 0, 0, 175, 178, 1,
2926
+ 0, 0, 0, 176, 174, 1, 0, 0, 0, 176, 177, 1, 0, 0, 0, 177, 179, 1, 0, 0, 0, 178, 176, 1,
2927
+ 0, 0, 0, 179, 180, 5, 0, 0, 1, 180, 15, 1, 0, 0, 0, 181, 185, 3, 18, 9, 0, 182, 185, 3,
2928
+ 52, 26, 0, 183, 185, 3, 54, 27, 0, 184, 181, 1, 0, 0, 0, 184, 182, 1, 0, 0, 0, 184, 183,
2929
+ 1, 0, 0, 0, 185, 17, 1, 0, 0, 0, 186, 202, 3, 22, 11, 0, 187, 202, 3, 24, 12, 0, 188, 202,
2930
+ 3, 26, 13, 0, 189, 202, 3, 28, 14, 0, 190, 202, 3, 30, 15, 0, 191, 202, 3, 32, 16, 0,
2931
+ 192, 202, 3, 34, 17, 0, 193, 202, 3, 36, 18, 0, 194, 202, 3, 38, 19, 0, 195, 202, 3,
2932
+ 40, 20, 0, 196, 202, 3, 42, 21, 0, 197, 202, 3, 44, 22, 0, 198, 202, 3, 46, 23, 0, 199,
2933
+ 202, 3, 48, 24, 0, 200, 202, 3, 50, 25, 0, 201, 186, 1, 0, 0, 0, 201, 187, 1, 0, 0, 0,
2934
+ 201, 188, 1, 0, 0, 0, 201, 189, 1, 0, 0, 0, 201, 190, 1, 0, 0, 0, 201, 191, 1, 0, 0, 0,
2935
+ 201, 192, 1, 0, 0, 0, 201, 193, 1, 0, 0, 0, 201, 194, 1, 0, 0, 0, 201, 195, 1, 0, 0, 0,
2936
+ 201, 196, 1, 0, 0, 0, 201, 197, 1, 0, 0, 0, 201, 198, 1, 0, 0, 0, 201, 199, 1, 0, 0, 0,
2937
+ 201, 200, 1, 0, 0, 0, 202, 19, 1, 0, 0, 0, 203, 217, 3, 22, 11, 0, 204, 217, 3, 24, 12,
2938
+ 0, 205, 217, 3, 26, 13, 0, 206, 217, 3, 28, 14, 0, 207, 217, 3, 30, 15, 0, 208, 217,
2939
+ 3, 32, 16, 0, 209, 217, 3, 34, 17, 0, 210, 217, 3, 38, 19, 0, 211, 217, 3, 40, 20, 0,
2940
+ 212, 217, 3, 42, 21, 0, 213, 217, 3, 44, 22, 0, 214, 217, 3, 46, 23, 0, 215, 217, 3,
2941
+ 48, 24, 0, 216, 203, 1, 0, 0, 0, 216, 204, 1, 0, 0, 0, 216, 205, 1, 0, 0, 0, 216, 206,
2942
+ 1, 0, 0, 0, 216, 207, 1, 0, 0, 0, 216, 208, 1, 0, 0, 0, 216, 209, 1, 0, 0, 0, 216, 210,
2943
+ 1, 0, 0, 0, 216, 211, 1, 0, 0, 0, 216, 212, 1, 0, 0, 0, 216, 213, 1, 0, 0, 0, 216, 214,
2944
+ 1, 0, 0, 0, 216, 215, 1, 0, 0, 0, 217, 21, 1, 0, 0, 0, 218, 220, 5, 22, 0, 0, 219, 221,
2945
+ 3, 66, 33, 0, 220, 219, 1, 0, 0, 0, 220, 221, 1, 0, 0, 0, 221, 223, 1, 0, 0, 0, 222, 224,
2946
+ 3, 56, 28, 0, 223, 222, 1, 0, 0, 0, 223, 224, 1, 0, 0, 0, 224, 225, 1, 0, 0, 0, 225, 226,
2947
+ 3, 58, 29, 0, 226, 23, 1, 0, 0, 0, 227, 229, 5, 23, 0, 0, 228, 230, 3, 66, 33, 0, 229,
2948
+ 228, 1, 0, 0, 0, 229, 230, 1, 0, 0, 0, 230, 232, 1, 0, 0, 0, 231, 233, 3, 56, 28, 0, 232,
2949
+ 231, 1, 0, 0, 0, 232, 233, 1, 0, 0, 0, 233, 234, 1, 0, 0, 0, 234, 235, 3, 58, 29, 0, 235,
2950
+ 25, 1, 0, 0, 0, 236, 238, 5, 24, 0, 0, 237, 239, 3, 66, 33, 0, 238, 237, 1, 0, 0, 0, 238,
2951
+ 239, 1, 0, 0, 0, 239, 241, 1, 0, 0, 0, 240, 242, 3, 56, 28, 0, 241, 240, 1, 0, 0, 0, 241,
2952
+ 242, 1, 0, 0, 0, 242, 243, 1, 0, 0, 0, 243, 244, 3, 58, 29, 0, 244, 27, 1, 0, 0, 0, 245,
2953
+ 246, 5, 25, 0, 0, 246, 248, 3, 60, 30, 0, 247, 249, 3, 56, 28, 0, 248, 247, 1, 0, 0, 0,
2954
+ 248, 249, 1, 0, 0, 0, 249, 250, 1, 0, 0, 0, 250, 251, 3, 64, 32, 0, 251, 29, 1, 0, 0, 0,
2955
+ 252, 253, 5, 26, 0, 0, 253, 255, 3, 60, 30, 0, 254, 256, 3, 56, 28, 0, 255, 254, 1, 0,
2956
+ 0, 0, 255, 256, 1, 0, 0, 0, 256, 257, 1, 0, 0, 0, 257, 258, 3, 64, 32, 0, 258, 31, 1, 0,
2957
+ 0, 0, 259, 261, 5, 27, 0, 0, 260, 262, 3, 66, 33, 0, 261, 260, 1, 0, 0, 0, 261, 262, 1,
2958
+ 0, 0, 0, 262, 264, 1, 0, 0, 0, 263, 265, 3, 56, 28, 0, 264, 263, 1, 0, 0, 0, 264, 265,
2959
+ 1, 0, 0, 0, 265, 266, 1, 0, 0, 0, 266, 267, 3, 58, 29, 0, 267, 33, 1, 0, 0, 0, 268, 270,
2960
+ 5, 28, 0, 0, 269, 271, 3, 66, 33, 0, 270, 269, 1, 0, 0, 0, 270, 271, 1, 0, 0, 0, 271, 273,
2961
+ 1, 0, 0, 0, 272, 274, 3, 56, 28, 0, 273, 272, 1, 0, 0, 0, 273, 274, 1, 0, 0, 0, 274, 275,
2962
+ 1, 0, 0, 0, 275, 276, 3, 58, 29, 0, 276, 35, 1, 0, 0, 0, 277, 278, 5, 29, 0, 0, 278, 280,
2963
+ 3, 72, 36, 0, 279, 281, 3, 56, 28, 0, 280, 279, 1, 0, 0, 0, 280, 281, 1, 0, 0, 0, 281,
2964
+ 282, 1, 0, 0, 0, 282, 283, 3, 58, 29, 0, 283, 37, 1, 0, 0, 0, 284, 286, 5, 29, 0, 0, 285,
2965
+ 287, 3, 74, 37, 0, 286, 285, 1, 0, 0, 0, 286, 287, 1, 0, 0, 0, 287, 289, 1, 0, 0, 0, 288,
2966
+ 290, 3, 56, 28, 0, 289, 288, 1, 0, 0, 0, 289, 290, 1, 0, 0, 0, 290, 291, 1, 0, 0, 0, 291,
2967
+ 292, 3, 58, 29, 0, 292, 39, 1, 0, 0, 0, 293, 295, 5, 30, 0, 0, 294, 296, 3, 76, 38, 0,
2968
+ 295, 294, 1, 0, 0, 0, 295, 296, 1, 0, 0, 0, 296, 298, 1, 0, 0, 0, 297, 299, 3, 56, 28,
2969
+ 0, 298, 297, 1, 0, 0, 0, 298, 299, 1, 0, 0, 0, 299, 300, 1, 0, 0, 0, 300, 301, 3, 58, 29,
2970
+ 0, 301, 41, 1, 0, 0, 0, 302, 304, 5, 31, 0, 0, 303, 305, 3, 80, 40, 0, 304, 303, 1, 0,
2971
+ 0, 0, 304, 305, 1, 0, 0, 0, 305, 307, 1, 0, 0, 0, 306, 308, 3, 56, 28, 0, 307, 306, 1,
2972
+ 0, 0, 0, 307, 308, 1, 0, 0, 0, 308, 309, 1, 0, 0, 0, 309, 310, 3, 58, 29, 0, 310, 43, 1,
2973
+ 0, 0, 0, 311, 313, 5, 32, 0, 0, 312, 314, 3, 70, 35, 0, 313, 312, 1, 0, 0, 0, 313, 314,
2974
+ 1, 0, 0, 0, 314, 316, 1, 0, 0, 0, 315, 317, 3, 56, 28, 0, 316, 315, 1, 0, 0, 0, 316, 317,
2975
+ 1, 0, 0, 0, 317, 318, 1, 0, 0, 0, 318, 319, 3, 58, 29, 0, 319, 45, 1, 0, 0, 0, 320, 322,
2976
+ 5, 33, 0, 0, 321, 323, 3, 70, 35, 0, 322, 321, 1, 0, 0, 0, 322, 323, 1, 0, 0, 0, 323, 325,
2977
+ 1, 0, 0, 0, 324, 326, 3, 56, 28, 0, 325, 324, 1, 0, 0, 0, 325, 326, 1, 0, 0, 0, 326, 327,
2978
+ 1, 0, 0, 0, 327, 328, 3, 58, 29, 0, 328, 47, 1, 0, 0, 0, 329, 331, 5, 34, 0, 0, 330, 332,
2979
+ 3, 68, 34, 0, 331, 330, 1, 0, 0, 0, 331, 332, 1, 0, 0, 0, 332, 334, 1, 0, 0, 0, 333, 335,
2980
+ 3, 56, 28, 0, 334, 333, 1, 0, 0, 0, 334, 335, 1, 0, 0, 0, 335, 336, 1, 0, 0, 0, 336, 337,
2981
+ 3, 58, 29, 0, 337, 49, 1, 0, 0, 0, 338, 340, 5, 21, 0, 0, 339, 341, 3, 66, 33, 0, 340,
2982
+ 339, 1, 0, 0, 0, 340, 341, 1, 0, 0, 0, 341, 343, 1, 0, 0, 0, 342, 344, 3, 56, 28, 0, 343,
2983
+ 342, 1, 0, 0, 0, 343, 344, 1, 0, 0, 0, 344, 345, 1, 0, 0, 0, 345, 346, 3, 58, 29, 0, 346,
2984
+ 51, 1, 0, 0, 0, 347, 349, 5, 35, 0, 0, 348, 350, 3, 66, 33, 0, 349, 348, 1, 0, 0, 0, 349,
2985
+ 350, 1, 0, 0, 0, 350, 352, 1, 0, 0, 0, 351, 353, 3, 56, 28, 0, 352, 351, 1, 0, 0, 0, 352,
2986
+ 353, 1, 0, 0, 0, 353, 354, 1, 0, 0, 0, 354, 355, 3, 58, 29, 0, 355, 53, 1, 0, 0, 0, 356,
2987
+ 358, 5, 36, 0, 0, 357, 359, 3, 66, 33, 0, 358, 357, 1, 0, 0, 0, 358, 359, 1, 0, 0, 0, 359,
2988
+ 361, 1, 0, 0, 0, 360, 362, 3, 56, 28, 0, 361, 360, 1, 0, 0, 0, 361, 362, 1, 0, 0, 0, 362,
2989
+ 363, 1, 0, 0, 0, 363, 364, 3, 58, 29, 0, 364, 55, 1, 0, 0, 0, 365, 366, 5, 20, 0, 0, 366,
2990
+ 57, 1, 0, 0, 0, 367, 381, 5, 10, 0, 0, 368, 370, 5, 9, 0, 0, 369, 371, 3, 100, 50, 0, 370,
2991
+ 369, 1, 0, 0, 0, 370, 371, 1, 0, 0, 0, 371, 373, 1, 0, 0, 0, 372, 374, 5, 10, 0, 0, 373,
2992
+ 372, 1, 0, 0, 0, 373, 374, 1, 0, 0, 0, 374, 381, 1, 0, 0, 0, 375, 377, 3, 100, 50, 0, 376,
2993
+ 378, 5, 10, 0, 0, 377, 376, 1, 0, 0, 0, 377, 378, 1, 0, 0, 0, 378, 381, 1, 0, 0, 0, 379,
2994
+ 381, 1, 0, 0, 0, 380, 367, 1, 0, 0, 0, 380, 368, 1, 0, 0, 0, 380, 375, 1, 0, 0, 0, 380,
2995
+ 379, 1, 0, 0, 0, 381, 59, 1, 0, 0, 0, 382, 383, 3, 80, 40, 0, 383, 384, 3, 62, 31, 0, 384,
2996
+ 385, 3, 62, 31, 0, 385, 396, 1, 0, 0, 0, 386, 387, 3, 62, 31, 0, 387, 388, 3, 80, 40,
2997
+ 0, 388, 389, 3, 62, 31, 0, 389, 396, 1, 0, 0, 0, 390, 391, 3, 62, 31, 0, 391, 393, 3,
2998
+ 62, 31, 0, 392, 394, 3, 80, 40, 0, 393, 392, 1, 0, 0, 0, 393, 394, 1, 0, 0, 0, 394, 396,
2999
+ 1, 0, 0, 0, 395, 382, 1, 0, 0, 0, 395, 386, 1, 0, 0, 0, 395, 390, 1, 0, 0, 0, 396, 61, 1,
3000
+ 0, 0, 0, 397, 399, 3, 94, 47, 0, 398, 400, 3, 98, 49, 0, 399, 398, 1, 0, 0, 0, 399, 400,
3001
+ 1, 0, 0, 0, 400, 63, 1, 0, 0, 0, 401, 408, 5, 10, 0, 0, 402, 404, 5, 9, 0, 0, 403, 405,
3002
+ 5, 10, 0, 0, 404, 403, 1, 0, 0, 0, 404, 405, 1, 0, 0, 0, 405, 408, 1, 0, 0, 0, 406, 408,
3003
+ 1, 0, 0, 0, 407, 401, 1, 0, 0, 0, 407, 402, 1, 0, 0, 0, 407, 406, 1, 0, 0, 0, 408, 65, 1,
3004
+ 0, 0, 0, 409, 418, 3, 80, 40, 0, 410, 412, 3, 94, 47, 0, 411, 413, 3, 98, 49, 0, 412,
3005
+ 411, 1, 0, 0, 0, 412, 413, 1, 0, 0, 0, 413, 419, 1, 0, 0, 0, 414, 416, 3, 98, 49, 0, 415,
3006
+ 417, 3, 94, 47, 0, 416, 415, 1, 0, 0, 0, 416, 417, 1, 0, 0, 0, 417, 419, 1, 0, 0, 0, 418,
3007
+ 410, 1, 0, 0, 0, 418, 414, 1, 0, 0, 0, 418, 419, 1, 0, 0, 0, 419, 443, 1, 0, 0, 0, 420,
3008
+ 429, 3, 94, 47, 0, 421, 423, 3, 80, 40, 0, 422, 424, 3, 98, 49, 0, 423, 422, 1, 0, 0,
3009
+ 0, 423, 424, 1, 0, 0, 0, 424, 430, 1, 0, 0, 0, 425, 427, 3, 98, 49, 0, 426, 428, 3, 80,
3010
+ 40, 0, 427, 426, 1, 0, 0, 0, 427, 428, 1, 0, 0, 0, 428, 430, 1, 0, 0, 0, 429, 421, 1, 0,
3011
+ 0, 0, 429, 425, 1, 0, 0, 0, 429, 430, 1, 0, 0, 0, 430, 443, 1, 0, 0, 0, 431, 440, 3, 98,
3012
+ 49, 0, 432, 434, 3, 80, 40, 0, 433, 435, 3, 94, 47, 0, 434, 433, 1, 0, 0, 0, 434, 435,
3013
+ 1, 0, 0, 0, 435, 441, 1, 0, 0, 0, 436, 438, 3, 94, 47, 0, 437, 439, 3, 80, 40, 0, 438,
3014
+ 437, 1, 0, 0, 0, 438, 439, 1, 0, 0, 0, 439, 441, 1, 0, 0, 0, 440, 432, 1, 0, 0, 0, 440,
3015
+ 436, 1, 0, 0, 0, 440, 441, 1, 0, 0, 0, 441, 443, 1, 0, 0, 0, 442, 409, 1, 0, 0, 0, 442,
3016
+ 420, 1, 0, 0, 0, 442, 431, 1, 0, 0, 0, 443, 67, 1, 0, 0, 0, 444, 446, 3, 84, 42, 0, 445,
3017
+ 447, 3, 94, 47, 0, 446, 445, 1, 0, 0, 0, 446, 447, 1, 0, 0, 0, 447, 453, 1, 0, 0, 0, 448,
3018
+ 450, 3, 94, 47, 0, 449, 451, 3, 84, 42, 0, 450, 449, 1, 0, 0, 0, 450, 451, 1, 0, 0, 0,
3019
+ 451, 453, 1, 0, 0, 0, 452, 444, 1, 0, 0, 0, 452, 448, 1, 0, 0, 0, 453, 69, 1, 0, 0, 0, 454,
3020
+ 456, 3, 82, 41, 0, 455, 457, 3, 94, 47, 0, 456, 455, 1, 0, 0, 0, 456, 457, 1, 0, 0, 0,
3021
+ 457, 463, 1, 0, 0, 0, 458, 460, 3, 94, 47, 0, 459, 461, 3, 82, 41, 0, 460, 459, 1, 0,
3022
+ 0, 0, 460, 461, 1, 0, 0, 0, 461, 463, 1, 0, 0, 0, 462, 454, 1, 0, 0, 0, 462, 458, 1, 0,
3023
+ 0, 0, 463, 71, 1, 0, 0, 0, 464, 466, 3, 88, 44, 0, 465, 467, 3, 94, 47, 0, 466, 465, 1,
3024
+ 0, 0, 0, 466, 467, 1, 0, 0, 0, 467, 469, 1, 0, 0, 0, 468, 470, 3, 98, 49, 0, 469, 468,
3025
+ 1, 0, 0, 0, 469, 470, 1, 0, 0, 0, 470, 477, 1, 0, 0, 0, 471, 472, 3, 94, 47, 0, 472, 474,
3026
+ 3, 88, 44, 0, 473, 475, 3, 98, 49, 0, 474, 473, 1, 0, 0, 0, 474, 475, 1, 0, 0, 0, 475,
3027
+ 477, 1, 0, 0, 0, 476, 464, 1, 0, 0, 0, 476, 471, 1, 0, 0, 0, 477, 73, 1, 0, 0, 0, 478, 480,
3028
+ 3, 86, 43, 0, 479, 481, 3, 94, 47, 0, 480, 479, 1, 0, 0, 0, 480, 481, 1, 0, 0, 0, 481,
3029
+ 487, 1, 0, 0, 0, 482, 484, 3, 94, 47, 0, 483, 485, 3, 86, 43, 0, 484, 483, 1, 0, 0, 0,
3030
+ 484, 485, 1, 0, 0, 0, 485, 487, 1, 0, 0, 0, 486, 478, 1, 0, 0, 0, 486, 482, 1, 0, 0, 0,
3031
+ 487, 75, 1, 0, 0, 0, 488, 490, 3, 78, 39, 0, 489, 488, 1, 0, 0, 0, 490, 491, 1, 0, 0, 0,
3032
+ 491, 489, 1, 0, 0, 0, 491, 492, 1, 0, 0, 0, 492, 77, 1, 0, 0, 0, 493, 498, 3, 90, 45, 0,
3033
+ 494, 498, 3, 80, 40, 0, 495, 498, 3, 94, 47, 0, 496, 498, 3, 98, 49, 0, 497, 493, 1,
3034
+ 0, 0, 0, 497, 494, 1, 0, 0, 0, 497, 495, 1, 0, 0, 0, 497, 496, 1, 0, 0, 0, 498, 79, 1, 0,
3035
+ 0, 0, 499, 503, 5, 1, 0, 0, 500, 502, 7, 0, 0, 0, 501, 500, 1, 0, 0, 0, 502, 505, 1, 0,
3036
+ 0, 0, 503, 501, 1, 0, 0, 0, 503, 504, 1, 0, 0, 0, 504, 506, 1, 0, 0, 0, 505, 503, 1, 0,
3037
+ 0, 0, 506, 507, 5, 2, 0, 0, 507, 81, 1, 0, 0, 0, 508, 509, 5, 1, 0, 0, 509, 510, 5, 15,
3038
+ 0, 0, 510, 511, 5, 2, 0, 0, 511, 83, 1, 0, 0, 0, 512, 514, 5, 1, 0, 0, 513, 515, 7, 1, 0,
3039
+ 0, 514, 513, 1, 0, 0, 0, 514, 515, 1, 0, 0, 0, 515, 516, 1, 0, 0, 0, 516, 517, 5, 2, 0,
3040
+ 0, 517, 85, 1, 0, 0, 0, 518, 520, 5, 1, 0, 0, 519, 521, 5, 12, 0, 0, 520, 519, 1, 0, 0,
3041
+ 0, 520, 521, 1, 0, 0, 0, 521, 522, 1, 0, 0, 0, 522, 523, 5, 2, 0, 0, 523, 87, 1, 0, 0, 0,
3042
+ 524, 525, 5, 1, 0, 0, 525, 526, 5, 13, 0, 0, 526, 527, 5, 2, 0, 0, 527, 89, 1, 0, 0, 0,
3043
+ 528, 530, 5, 1, 0, 0, 529, 531, 5, 14, 0, 0, 530, 529, 1, 0, 0, 0, 530, 531, 1, 0, 0, 0,
3044
+ 531, 532, 1, 0, 0, 0, 532, 533, 5, 2, 0, 0, 533, 91, 1, 0, 0, 0, 534, 538, 5, 3, 0, 0, 535,
3045
+ 537, 5, 16, 0, 0, 536, 535, 1, 0, 0, 0, 537, 540, 1, 0, 0, 0, 538, 536, 1, 0, 0, 0, 538,
3046
+ 539, 1, 0, 0, 0, 539, 541, 1, 0, 0, 0, 540, 538, 1, 0, 0, 0, 541, 542, 5, 4, 0, 0, 542,
3047
+ 93, 1, 0, 0, 0, 543, 547, 3, 92, 46, 0, 544, 546, 3, 96, 48, 0, 545, 544, 1, 0, 0, 0, 546,
3048
+ 549, 1, 0, 0, 0, 547, 545, 1, 0, 0, 0, 547, 548, 1, 0, 0, 0, 548, 95, 1, 0, 0, 0, 549, 547,
3049
+ 1, 0, 0, 0, 550, 554, 5, 5, 0, 0, 551, 553, 5, 17, 0, 0, 552, 551, 1, 0, 0, 0, 553, 556,
3050
+ 1, 0, 0, 0, 554, 552, 1, 0, 0, 0, 554, 555, 1, 0, 0, 0, 555, 557, 1, 0, 0, 0, 556, 554,
3051
+ 1, 0, 0, 0, 557, 558, 5, 6, 0, 0, 558, 97, 1, 0, 0, 0, 559, 560, 5, 7, 0, 0, 560, 99, 1,
3052
+ 0, 0, 0, 561, 563, 5, 18, 0, 0, 562, 561, 1, 0, 0, 0, 563, 564, 1, 0, 0, 0, 564, 562, 1,
3053
+ 0, 0, 0, 564, 565, 1, 0, 0, 0, 565, 101, 1, 0, 0, 0, 88, 108, 112, 117, 124, 132, 141,
3054
+ 151, 157, 160, 163, 168, 176, 184, 201, 216, 220, 223, 229, 232, 238, 241, 248,
3055
+ 255, 261, 264, 270, 273, 280, 286, 289, 295, 298, 304, 307, 313, 316, 322, 325,
3056
+ 331, 334, 340, 343, 349, 352, 358, 361, 370, 373, 377, 380, 393, 395, 399, 404,
3057
+ 407, 412, 416, 418, 423, 427, 429, 434, 438, 440, 442, 446, 450, 452, 456, 460,
3058
+ 462, 466, 469, 474, 476, 480, 484, 486, 491, 497, 503, 514, 520, 530, 538, 547,
3059
+ 554, 564
2629
3060
  ];
2630
3061
  static __ATN;
2631
3062
  static get _ATN() {
@@ -2644,8 +3075,8 @@ export class DocumentContext extends antlr.ParserRuleContext {
2644
3075
  constructor(parent, invokingState) {
2645
3076
  super(parent, invokingState);
2646
3077
  }
2647
- turnContent() {
2648
- return this.getRuleContext(0, TurnContentContext);
3078
+ modelTurnContent() {
3079
+ return this.getRuleContext(0, ModelTurnContentContext);
2649
3080
  }
2650
3081
  EOF() {
2651
3082
  return this.getToken(plurnkParser.EOF, 0);
@@ -2653,8 +3084,8 @@ export class DocumentContext extends antlr.ParserRuleContext {
2653
3084
  FENCE_OPEN() {
2654
3085
  return this.getToken(plurnkParser.FENCE_OPEN, 0);
2655
3086
  }
2656
- turn() {
2657
- return this.getRuleContext(0, TurnContext);
3087
+ modelTurn() {
3088
+ return this.getRuleContext(0, ModelTurnContext);
2658
3089
  }
2659
3090
  FENCE_CLOSE() {
2660
3091
  return this.getToken(plurnkParser.FENCE_CLOSE, 0);
@@ -2723,6 +3154,33 @@ export class TurnContentContext extends antlr.ParserRuleContext {
2723
3154
  }
2724
3155
  }
2725
3156
  }
3157
+ export class ModelTurnContentContext extends antlr.ParserRuleContext {
3158
+ constructor(parent, invokingState) {
3159
+ super(parent, invokingState);
3160
+ }
3161
+ modelTurn() {
3162
+ return this.getRuleContext(0, ModelTurnContext);
3163
+ }
3164
+ TEXT(i) {
3165
+ if (i === undefined) {
3166
+ return this.getTokens(plurnkParser.TEXT);
3167
+ }
3168
+ else {
3169
+ return this.getToken(plurnkParser.TEXT, i);
3170
+ }
3171
+ }
3172
+ get ruleIndex() {
3173
+ return plurnkParser.RULE_modelTurnContent;
3174
+ }
3175
+ accept(visitor) {
3176
+ if (visitor.visitModelTurnContent) {
3177
+ return visitor.visitModelTurnContent(this);
3178
+ }
3179
+ else {
3180
+ return visitor.visitChildren(this);
3181
+ }
3182
+ }
3183
+ }
2726
3184
  export class TurnContext extends antlr.ParserRuleContext {
2727
3185
  constructor(parent, invokingState) {
2728
3186
  super(parent, invokingState);
@@ -2751,6 +3209,37 @@ export class TurnContext extends antlr.ParserRuleContext {
2751
3209
  }
2752
3210
  }
2753
3211
  }
3212
+ export class ModelTurnContext extends antlr.ParserRuleContext {
3213
+ constructor(parent, invokingState) {
3214
+ super(parent, invokingState);
3215
+ }
3216
+ turn() {
3217
+ return this.getRuleContext(0, TurnContext);
3218
+ }
3219
+ planStatement() {
3220
+ return this.getRuleContext(0, PlanStatementContext);
3221
+ }
3222
+ midStatement(i) {
3223
+ if (i === undefined) {
3224
+ return this.getRuleContexts(MidStatementContext);
3225
+ }
3226
+ return this.getRuleContext(i, MidStatementContext);
3227
+ }
3228
+ sendStatement() {
3229
+ return this.getRuleContext(0, SendStatementContext);
3230
+ }
3231
+ get ruleIndex() {
3232
+ return plurnkParser.RULE_modelTurn;
3233
+ }
3234
+ accept(visitor) {
3235
+ if (visitor.visitModelTurn) {
3236
+ return visitor.visitModelTurn(this);
3237
+ }
3238
+ else {
3239
+ return visitor.visitChildren(this);
3240
+ }
3241
+ }
3242
+ }
2754
3243
  export class StatementSeqContext extends antlr.ParserRuleContext {
2755
3244
  constructor(parent, invokingState) {
2756
3245
  super(parent, invokingState);
@@ -3033,11 +3522,11 @@ export class CopyStatementContext extends antlr.ParserRuleContext {
3033
3522
  OPEN_COPY() {
3034
3523
  return this.getToken(plurnkParser.OPEN_COPY, 0);
3035
3524
  }
3036
- statementEnd() {
3037
- return this.getRuleContext(0, StatementEndContext);
3525
+ transferModifiers() {
3526
+ return this.getRuleContext(0, TransferModifiersContext);
3038
3527
  }
3039
- tagOpModifiers() {
3040
- return this.getRuleContext(0, TagOpModifiersContext);
3528
+ emptyStatementEnd() {
3529
+ return this.getRuleContext(0, EmptyStatementEndContext);
3041
3530
  }
3042
3531
  opAnnotation() {
3043
3532
  return this.getRuleContext(0, OpAnnotationContext);
@@ -3061,11 +3550,11 @@ export class MoveStatementContext extends antlr.ParserRuleContext {
3061
3550
  OPEN_MOVE() {
3062
3551
  return this.getToken(plurnkParser.OPEN_MOVE, 0);
3063
3552
  }
3064
- statementEnd() {
3065
- return this.getRuleContext(0, StatementEndContext);
3553
+ transferModifiers() {
3554
+ return this.getRuleContext(0, TransferModifiersContext);
3066
3555
  }
3067
- tagOpModifiers() {
3068
- return this.getRuleContext(0, TagOpModifiersContext);
3556
+ emptyStatementEnd() {
3557
+ return this.getRuleContext(0, EmptyStatementEndContext);
3069
3558
  }
3070
3559
  opAnnotation() {
3071
3560
  return this.getRuleContext(0, OpAnnotationContext);
@@ -3462,6 +3951,75 @@ export class StatementEndContext extends antlr.ParserRuleContext {
3462
3951
  }
3463
3952
  }
3464
3953
  }
3954
+ export class TransferModifiersContext extends antlr.ParserRuleContext {
3955
+ constructor(parent, invokingState) {
3956
+ super(parent, invokingState);
3957
+ }
3958
+ tagSignal() {
3959
+ return this.getRuleContext(0, TagSignalContext);
3960
+ }
3961
+ resourceSelection(i) {
3962
+ if (i === undefined) {
3963
+ return this.getRuleContexts(ResourceSelectionContext);
3964
+ }
3965
+ return this.getRuleContext(i, ResourceSelectionContext);
3966
+ }
3967
+ get ruleIndex() {
3968
+ return plurnkParser.RULE_transferModifiers;
3969
+ }
3970
+ accept(visitor) {
3971
+ if (visitor.visitTransferModifiers) {
3972
+ return visitor.visitTransferModifiers(this);
3973
+ }
3974
+ else {
3975
+ return visitor.visitChildren(this);
3976
+ }
3977
+ }
3978
+ }
3979
+ export class ResourceSelectionContext extends antlr.ParserRuleContext {
3980
+ constructor(parent, invokingState) {
3981
+ super(parent, invokingState);
3982
+ }
3983
+ targetWithMetadata() {
3984
+ return this.getRuleContext(0, TargetWithMetadataContext);
3985
+ }
3986
+ lineMarker() {
3987
+ return this.getRuleContext(0, LineMarkerContext);
3988
+ }
3989
+ get ruleIndex() {
3990
+ return plurnkParser.RULE_resourceSelection;
3991
+ }
3992
+ accept(visitor) {
3993
+ if (visitor.visitResourceSelection) {
3994
+ return visitor.visitResourceSelection(this);
3995
+ }
3996
+ else {
3997
+ return visitor.visitChildren(this);
3998
+ }
3999
+ }
4000
+ }
4001
+ export class EmptyStatementEndContext extends antlr.ParserRuleContext {
4002
+ constructor(parent, invokingState) {
4003
+ super(parent, invokingState);
4004
+ }
4005
+ SECTION_END() {
4006
+ return this.getToken(plurnkParser.SECTION_END, 0);
4007
+ }
4008
+ BODY_OPEN() {
4009
+ return this.getToken(plurnkParser.BODY_OPEN, 0);
4010
+ }
4011
+ get ruleIndex() {
4012
+ return plurnkParser.RULE_emptyStatementEnd;
4013
+ }
4014
+ accept(visitor) {
4015
+ if (visitor.visitEmptyStatementEnd) {
4016
+ return visitor.visitEmptyStatementEnd(this);
4017
+ }
4018
+ else {
4019
+ return visitor.visitChildren(this);
4020
+ }
4021
+ }
4022
+ }
3465
4023
  export class TagOpModifiersContext extends antlr.ParserRuleContext {
3466
4024
  constructor(parent, invokingState) {
3467
4025
  super(parent, invokingState);
@@ -3469,8 +4027,8 @@ export class TagOpModifiersContext extends antlr.ParserRuleContext {
3469
4027
  tagSignal() {
3470
4028
  return this.getRuleContext(0, TagSignalContext);
3471
4029
  }
3472
- target() {
3473
- return this.getRuleContext(0, TargetContext);
4030
+ targetWithMetadata() {
4031
+ return this.getRuleContext(0, TargetWithMetadataContext);
3474
4032
  }
3475
4033
  lineMarker() {
3476
4034
  return this.getRuleContext(0, LineMarkerContext);
@@ -3494,8 +4052,8 @@ export class IntOpModifiersContext extends antlr.ParserRuleContext {
3494
4052
  intSignal() {
3495
4053
  return this.getRuleContext(0, IntSignalContext);
3496
4054
  }
3497
- target() {
3498
- return this.getRuleContext(0, TargetContext);
4055
+ targetWithMetadata() {
4056
+ return this.getRuleContext(0, TargetWithMetadataContext);
3499
4057
  }
3500
4058
  get ruleIndex() {
3501
4059
  return plurnkParser.RULE_intOpModifiers;
@@ -3516,8 +4074,8 @@ export class BranchModifiersContext extends antlr.ParserRuleContext {
3516
4074
  branchSignal() {
3517
4075
  return this.getRuleContext(0, BranchSignalContext);
3518
4076
  }
3519
- target() {
3520
- return this.getRuleContext(0, TargetContext);
4077
+ targetWithMetadata() {
4078
+ return this.getRuleContext(0, TargetWithMetadataContext);
3521
4079
  }
3522
4080
  get ruleIndex() {
3523
4081
  return plurnkParser.RULE_branchModifiers;
@@ -3538,8 +4096,8 @@ export class TermModifiersContext extends antlr.ParserRuleContext {
3538
4096
  dispSignal() {
3539
4097
  return this.getRuleContext(0, DispSignalContext);
3540
4098
  }
3541
- target() {
3542
- return this.getRuleContext(0, TargetContext);
4099
+ targetWithMetadata() {
4100
+ return this.getRuleContext(0, TargetWithMetadataContext);
3543
4101
  }
3544
4102
  lineMarker() {
3545
4103
  return this.getRuleContext(0, LineMarkerContext);
@@ -3563,8 +4121,8 @@ export class MidModifiersContext extends antlr.ParserRuleContext {
3563
4121
  midSignal() {
3564
4122
  return this.getRuleContext(0, MidSignalContext);
3565
4123
  }
3566
- target() {
3567
- return this.getRuleContext(0, TargetContext);
4124
+ targetWithMetadata() {
4125
+ return this.getRuleContext(0, TargetWithMetadataContext);
3568
4126
  }
3569
4127
  get ruleIndex() {
3570
4128
  return plurnkParser.RULE_midModifiers;
@@ -3610,8 +4168,8 @@ export class ExecSlotContext extends antlr.ParserRuleContext {
3610
4168
  tagSignal() {
3611
4169
  return this.getRuleContext(0, TagSignalContext);
3612
4170
  }
3613
- target() {
3614
- return this.getRuleContext(0, TargetContext);
4171
+ targetWithMetadata() {
4172
+ return this.getRuleContext(0, TargetWithMetadataContext);
3615
4173
  }
3616
4174
  lineMarker() {
3617
4175
  return this.getRuleContext(0, LineMarkerContext);
@@ -3824,6 +4382,61 @@ export class TargetContext extends antlr.ParserRuleContext {
3824
4382
  }
3825
4383
  }
3826
4384
  }
4385
+ export class TargetWithMetadataContext extends antlr.ParserRuleContext {
4386
+ constructor(parent, invokingState) {
4387
+ super(parent, invokingState);
4388
+ }
4389
+ target() {
4390
+ return this.getRuleContext(0, TargetContext);
4391
+ }
4392
+ metadata(i) {
4393
+ if (i === undefined) {
4394
+ return this.getRuleContexts(MetadataContext);
4395
+ }
4396
+ return this.getRuleContext(i, MetadataContext);
4397
+ }
4398
+ get ruleIndex() {
4399
+ return plurnkParser.RULE_targetWithMetadata;
4400
+ }
4401
+ accept(visitor) {
4402
+ if (visitor.visitTargetWithMetadata) {
4403
+ return visitor.visitTargetWithMetadata(this);
4404
+ }
4405
+ else {
4406
+ return visitor.visitChildren(this);
4407
+ }
4408
+ }
4409
+ }
4410
+ export class MetadataContext extends antlr.ParserRuleContext {
4411
+ constructor(parent, invokingState) {
4412
+ super(parent, invokingState);
4413
+ }
4414
+ LBRACE() {
4415
+ return this.getToken(plurnkParser.LBRACE, 0);
4416
+ }
4417
+ RBRACE() {
4418
+ return this.getToken(plurnkParser.RBRACE, 0);
4419
+ }
4420
+ METADATA_TEXT(i) {
4421
+ if (i === undefined) {
4422
+ return this.getTokens(plurnkParser.METADATA_TEXT);
4423
+ }
4424
+ else {
4425
+ return this.getToken(plurnkParser.METADATA_TEXT, i);
4426
+ }
4427
+ }
4428
+ get ruleIndex() {
4429
+ return plurnkParser.RULE_metadata;
4430
+ }
4431
+ accept(visitor) {
4432
+ if (visitor.visitMetadata) {
4433
+ return visitor.visitMetadata(this);
4434
+ }
4435
+ else {
4436
+ return visitor.visitChildren(this);
4437
+ }
4438
+ }
4439
+ }
3827
4440
  export class LineMarkerContext extends antlr.ParserRuleContext {
3828
4441
  constructor(parent, invokingState) {
3829
4442
  super(parent, invokingState);