circuitscript 0.1.11 → 0.1.12

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 (41) hide show
  1. package/dist/cjs/BaseVisitor.js +78 -51
  2. package/dist/cjs/antlr/CircuitScriptParser.js +1059 -949
  3. package/dist/cjs/builtinMethods.js +5 -1
  4. package/dist/cjs/execute.js +43 -22
  5. package/dist/cjs/globals.js +7 -1
  6. package/dist/cjs/layout.js +50 -16
  7. package/dist/cjs/objects/ExecutionScope.js +3 -0
  8. package/dist/cjs/objects/Net.js +1 -0
  9. package/dist/cjs/objects/ParamDefinition.js +3 -0
  10. package/dist/cjs/objects/types.js +19 -10
  11. package/dist/cjs/render.js +48 -6
  12. package/dist/cjs/utils.js +16 -1
  13. package/dist/cjs/visitor.js +69 -52
  14. package/dist/esm/BaseVisitor.js +72 -45
  15. package/dist/esm/antlr/CircuitScriptParser.js +1052 -944
  16. package/dist/esm/antlr/CircuitScriptVisitor.js +4 -2
  17. package/dist/esm/builtinMethods.js +6 -2
  18. package/dist/esm/execute.js +43 -22
  19. package/dist/esm/globals.js +6 -0
  20. package/dist/esm/layout.js +53 -17
  21. package/dist/esm/objects/ExecutionScope.js +3 -0
  22. package/dist/esm/objects/Net.js +1 -0
  23. package/dist/esm/objects/ParamDefinition.js +4 -1
  24. package/dist/esm/objects/types.js +21 -15
  25. package/dist/esm/render.js +49 -7
  26. package/dist/esm/utils.js +13 -0
  27. package/dist/esm/visitor.js +57 -40
  28. package/dist/types/BaseVisitor.d.ts +2 -2
  29. package/dist/types/antlr/CircuitScriptParser.d.ts +99 -83
  30. package/dist/types/antlr/CircuitScriptVisitor.d.ts +8 -4
  31. package/dist/types/execute.d.ts +1 -0
  32. package/dist/types/globals.d.ts +5 -0
  33. package/dist/types/layout.d.ts +16 -3
  34. package/dist/types/objects/ExecutionScope.d.ts +15 -3
  35. package/dist/types/objects/Net.d.ts +1 -0
  36. package/dist/types/objects/types.d.ts +25 -18
  37. package/dist/types/utils.d.ts +3 -1
  38. package/dist/types/visitor.d.ts +3 -2
  39. package/package.json +1 -1
  40. /package/dist/libs/{lib.cst → std.cst} +0 -0
  41. /package/libs/{lib.cst → std.cst} +0 -0
@@ -23,8 +23,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.Atom_exprContext = exports.Function_args_exprContext = exports.Function_exprContext = exports.Function_def_exprContext = exports.Value_exprContext = exports.Unary_operatorContext = exports.Binary_operatorContext = exports.RoundedBracketsExprContext = exports.BinaryOperatorExprContext = exports.ValueAtomExprContext = exports.UnaryOperatorExprContext = exports.DataExprContext = exports.LogicalOperatorExprContext = exports.MultiplyExprContext = exports.AdditionExprContext = exports.FunctionCallExprContext = exports.ArrayExprContext = exports.Data_exprContext = exports.Double_dot_property_set_exprContext = exports.Property_set_exprContext = exports.ParametersContext = exports.Keyword_assignment_exprContext = exports.Operator_assignment_exprContext = exports.Assignment_exprContext = exports.Continue_keywordContext = exports.Break_keywordContext = exports.At_block_pin_expression_complexContext = exports.At_block_pin_expression_simpleContext = exports.At_block_pin_exprContext = exports.At_block_expressionsContext = exports.At_blockContext = exports.At_to_multiple_line_expr_to_pinContext = exports.At_to_multiple_line_exprContext = exports.At_to_multiple_exprContext = exports.To_component_exprContext = exports.At_component_exprContext = exports.Pin_select_expr2Context = exports.Component_select_exprContext = exports.Add_component_exprContext = exports.Data_expr_with_assignmentContext = exports.Component_modifier_exprContext = exports.Pin_select_exprContext = exports.Assignment_expr2Context = exports.Property_set_expr2Context = exports.Path_block_innerContext = exports.Path_blocksContext = exports.Expressions_blockContext = exports.ExpressionContext = exports.ScriptContext = exports.CircuitScriptParser = void 0;
27
- exports.For_exprContext = exports.While_exprContext = exports.Else_exprContext = exports.If_inner_exprContext = exports.If_exprContext = exports.Frame_exprContext = exports.Import_exprContext = exports.Point_exprContext = exports.Array_exprContext = exports.Wire_exprContext = exports.Wire_expr_direction_onlyContext = exports.Wire_expr_direction_valueContext = exports.Wire_atom_exprContext = exports.Nested_propertiesContext = exports.Single_line_propertyContext = exports.Property_value_exprContext = exports.Property_key_exprContext = exports.Property_exprContext = exports.GraphicForExprContext = exports.GraphicCommandExprContext = exports.Graphic_exprContext = exports.Nested_properties_innerContext = exports.Create_module_exprContext = exports.Create_graphic_exprContext = exports.Graphic_expressions_blockContext = exports.Create_component_exprContext = exports.Property_block_exprContext = exports.Function_return_exprContext = exports.Net_namespace_exprContext = exports.Function_call_exprContext = exports.Trailer_exprContext = void 0;
26
+ exports.Function_exprContext = exports.Function_def_exprContext = exports.Value_exprContext = exports.Unary_operatorContext = exports.Binary_operatorContext = exports.RoundedBracketsExprContext = exports.BinaryOperatorExprContext = exports.ValueAtomExprContext = exports.UnaryOperatorExprContext = exports.DataExprContext = exports.LogicalOperatorExprContext = exports.MultiplyExprContext = exports.AdditionExprContext = exports.FunctionCallExprContext = exports.ArrayExprContext = exports.Data_exprContext = exports.Double_dot_property_set_exprContext = exports.Property_set_exprContext = exports.ParametersContext = exports.Keyword_assignment_exprContext = exports.Operator_assignment_exprContext = exports.Assignment_exprContext = exports.Continue_keywordContext = exports.Break_keywordContext = exports.At_block_pin_expression_complexContext = exports.At_block_pin_expression_simpleContext = exports.At_block_pin_exprContext = exports.At_block_expressionsContext = exports.At_blockContext = exports.At_to_multiple_line_expr_to_pinContext = exports.At_to_multiple_line_exprContext = exports.At_to_multiple_exprContext = exports.To_component_exprContext = exports.At_component_exprContext = exports.Pin_select_expr2Context = exports.Component_select_exprContext = exports.Add_component_exprContext = exports.Data_expr_with_assignmentContext = exports.Component_modifier_exprContext = exports.Pin_select_exprContext = exports.Assignment_expr2Context = exports.Property_set_expr2Context = exports.Path_blockContext = exports.Expressions_blockContext = exports.Graph_linear_expressionContext = exports.Graph_expressionsContext = exports.Flow_expressionsContext = exports.ExpressionContext = exports.ScriptContext = exports.CircuitScriptParser = void 0;
27
+ exports.For_exprContext = exports.While_exprContext = exports.Else_exprContext = exports.If_inner_exprContext = exports.If_exprContext = exports.Frame_exprContext = exports.Import_exprContext = exports.Point_exprContext = exports.Array_exprContext = exports.Wire_exprContext = exports.Wire_expr_direction_onlyContext = exports.Wire_expr_direction_valueContext = exports.Wire_atom_exprContext = exports.Nested_propertiesContext = exports.Single_line_propertyContext = exports.Property_value_exprContext = exports.Property_key_exprContext = exports.Property_exprContext = exports.GraphicForExprContext = exports.GraphicCommandExprContext = exports.Graphic_exprContext = exports.Nested_properties_innerContext = exports.Create_module_exprContext = exports.Create_graphic_exprContext = exports.Graphic_expressions_blockContext = exports.Create_component_exprContext = exports.Property_block_exprContext = exports.Function_return_exprContext = exports.Net_namespace_exprContext = exports.Function_call_exprContext = exports.Trailer_exprContext = exports.Atom_exprContext = exports.Function_args_exprContext = void 0;
28
28
  const antlr = __importStar(require("antlr4ng"));
29
29
  class CircuitScriptParser extends antlr.Parser {
30
30
  get grammarFileName() { return "CircuitScript.g4"; }
@@ -47,24 +47,24 @@ class CircuitScriptParser extends antlr.Parser {
47
47
  let alternative;
48
48
  this.enterOuterAlt(localContext, 1);
49
49
  {
50
- this.state = 132;
50
+ this.state = 136;
51
51
  this.errorHandler.sync(this);
52
52
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 1, this.context);
53
53
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
54
54
  if (alternative === 1) {
55
55
  {
56
- this.state = 130;
56
+ this.state = 134;
57
57
  this.errorHandler.sync(this);
58
58
  switch (this.tokenStream.LA(1)) {
59
59
  case CircuitScriptParser.Import:
60
60
  {
61
- this.state = 128;
61
+ this.state = 132;
62
62
  this.import_expr();
63
63
  }
64
64
  break;
65
65
  case CircuitScriptParser.NEWLINE:
66
66
  {
67
- this.state = 129;
67
+ this.state = 133;
68
68
  this.match(CircuitScriptParser.NEWLINE);
69
69
  }
70
70
  break;
@@ -73,16 +73,16 @@ class CircuitScriptParser extends antlr.Parser {
73
73
  }
74
74
  }
75
75
  }
76
- this.state = 134;
76
+ this.state = 138;
77
77
  this.errorHandler.sync(this);
78
78
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 1, this.context);
79
79
  }
80
- this.state = 137;
80
+ this.state = 141;
81
81
  this.errorHandler.sync(this);
82
82
  _la = this.tokenStream.LA(1);
83
83
  do {
84
84
  {
85
- this.state = 137;
85
+ this.state = 141;
86
86
  this.errorHandler.sync(this);
87
87
  switch (this.tokenStream.LA(1)) {
88
88
  case CircuitScriptParser.T__3:
@@ -107,13 +107,13 @@ class CircuitScriptParser extends antlr.Parser {
107
107
  case CircuitScriptParser.Divide:
108
108
  case CircuitScriptParser.ID:
109
109
  {
110
- this.state = 135;
110
+ this.state = 139;
111
111
  this.expression();
112
112
  }
113
113
  break;
114
114
  case CircuitScriptParser.NEWLINE:
115
115
  {
116
- this.state = 136;
116
+ this.state = 140;
117
117
  this.match(CircuitScriptParser.NEWLINE);
118
118
  }
119
119
  break;
@@ -121,11 +121,11 @@ class CircuitScriptParser extends antlr.Parser {
121
121
  throw new antlr.NoViableAltException(this);
122
122
  }
123
123
  }
124
- this.state = 139;
124
+ this.state = 143;
125
125
  this.errorHandler.sync(this);
126
126
  _la = this.tokenStream.LA(1);
127
127
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 867955761) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4210693) !== 0));
128
- this.state = 141;
128
+ this.state = 145;
129
129
  this.match(CircuitScriptParser.EOF);
130
130
  }
131
131
  }
@@ -147,161 +147,253 @@ class CircuitScriptParser extends antlr.Parser {
147
147
  let localContext = new ExpressionContext(this.context, this.state);
148
148
  this.enterRule(localContext, 2, CircuitScriptParser.RULE_expression);
149
149
  try {
150
- this.state = 165;
150
+ this.state = 159;
151
151
  this.errorHandler.sync(this);
152
152
  switch (this.interpreter.adaptivePredict(this.tokenStream, 4, this.context)) {
153
153
  case 1:
154
154
  this.enterOuterAlt(localContext, 1);
155
155
  {
156
- this.state = 143;
157
- this.add_component_expr();
156
+ this.state = 147;
157
+ this.graph_expressions();
158
158
  }
159
159
  break;
160
160
  case 2:
161
161
  this.enterOuterAlt(localContext, 2);
162
162
  {
163
- this.state = 144;
164
- this.to_component_expr();
163
+ this.state = 148;
164
+ this.flow_expressions();
165
165
  }
166
166
  break;
167
167
  case 3:
168
168
  this.enterOuterAlt(localContext, 3);
169
169
  {
170
- this.state = 145;
171
- this.at_component_expr();
170
+ this.state = 149;
171
+ this.assignment_expr();
172
172
  }
173
173
  break;
174
174
  case 4:
175
175
  this.enterOuterAlt(localContext, 4);
176
176
  {
177
- this.state = 146;
178
- this.assignment_expr();
177
+ this.state = 150;
178
+ this.operator_assignment_expr();
179
179
  }
180
180
  break;
181
181
  case 5:
182
182
  this.enterOuterAlt(localContext, 5);
183
183
  {
184
- this.state = 147;
185
- this.operator_assignment_expr();
184
+ this.state = 151;
185
+ this.property_set_expr();
186
186
  }
187
187
  break;
188
188
  case 6:
189
189
  this.enterOuterAlt(localContext, 6);
190
190
  {
191
- this.state = 148;
192
- this.property_set_expr();
191
+ this.state = 152;
192
+ this.property_set_expr2();
193
193
  }
194
194
  break;
195
195
  case 7:
196
196
  this.enterOuterAlt(localContext, 7);
197
197
  {
198
- this.state = 149;
199
- this.property_set_expr2();
198
+ this.state = 153;
199
+ this.double_dot_property_set_expr();
200
200
  }
201
201
  break;
202
202
  case 8:
203
203
  this.enterOuterAlt(localContext, 8);
204
204
  {
205
- this.state = 150;
206
- this.double_dot_property_set_expr();
205
+ this.state = 154;
206
+ this.function_def_expr();
207
207
  }
208
208
  break;
209
209
  case 9:
210
210
  this.enterOuterAlt(localContext, 9);
211
211
  {
212
- this.state = 151;
213
- this.break_keyword();
212
+ this.state = 155;
213
+ this.function_call_expr();
214
214
  }
215
215
  break;
216
216
  case 10:
217
217
  this.enterOuterAlt(localContext, 10);
218
218
  {
219
- this.state = 152;
220
- this.continue_keyword();
219
+ this.state = 156;
220
+ this.import_expr();
221
221
  }
222
222
  break;
223
223
  case 11:
224
224
  this.enterOuterAlt(localContext, 11);
225
225
  {
226
- this.state = 153;
227
- this.function_def_expr();
226
+ this.state = 157;
227
+ this.atom_expr();
228
228
  }
229
229
  break;
230
230
  case 12:
231
231
  this.enterOuterAlt(localContext, 12);
232
232
  {
233
- this.state = 154;
234
- this.function_call_expr();
233
+ this.state = 158;
234
+ this.frame_expr();
235
235
  }
236
236
  break;
237
- case 13:
238
- this.enterOuterAlt(localContext, 13);
237
+ }
238
+ }
239
+ catch (re) {
240
+ if (re instanceof antlr.RecognitionException) {
241
+ this.errorHandler.reportError(this, re);
242
+ this.errorHandler.recover(this, re);
243
+ }
244
+ else {
245
+ throw re;
246
+ }
247
+ }
248
+ finally {
249
+ this.exitRule();
250
+ }
251
+ return localContext;
252
+ }
253
+ flow_expressions() {
254
+ let localContext = new Flow_expressionsContext(this.context, this.state);
255
+ this.enterRule(localContext, 4, CircuitScriptParser.RULE_flow_expressions);
256
+ try {
257
+ this.state = 166;
258
+ this.errorHandler.sync(this);
259
+ switch (this.tokenStream.LA(1)) {
260
+ case CircuitScriptParser.If:
261
+ this.enterOuterAlt(localContext, 1);
239
262
  {
240
- this.state = 155;
241
- this.wire_expr();
263
+ this.state = 161;
264
+ this.if_expr();
242
265
  }
243
266
  break;
244
- case 14:
245
- this.enterOuterAlt(localContext, 14);
267
+ case CircuitScriptParser.While:
268
+ this.enterOuterAlt(localContext, 2);
246
269
  {
247
- this.state = 156;
248
- this.import_expr();
270
+ this.state = 162;
271
+ this.while_expr();
249
272
  }
250
273
  break;
251
- case 15:
252
- this.enterOuterAlt(localContext, 15);
274
+ case CircuitScriptParser.For:
275
+ this.enterOuterAlt(localContext, 3);
253
276
  {
254
- this.state = 157;
255
- this.frame_expr();
277
+ this.state = 163;
278
+ this.for_expr();
256
279
  }
257
280
  break;
258
- case 16:
259
- this.enterOuterAlt(localContext, 16);
281
+ case CircuitScriptParser.Break:
282
+ this.enterOuterAlt(localContext, 4);
260
283
  {
261
- this.state = 158;
262
- this.atom_expr();
284
+ this.state = 164;
285
+ this.break_keyword();
263
286
  }
264
287
  break;
265
- case 17:
266
- this.enterOuterAlt(localContext, 17);
288
+ case CircuitScriptParser.Continue:
289
+ this.enterOuterAlt(localContext, 5);
267
290
  {
268
- this.state = 159;
269
- this.at_block();
291
+ this.state = 165;
292
+ this.continue_keyword();
270
293
  }
271
294
  break;
272
- case 18:
273
- this.enterOuterAlt(localContext, 18);
295
+ default:
296
+ throw new antlr.NoViableAltException(this);
297
+ }
298
+ }
299
+ catch (re) {
300
+ if (re instanceof antlr.RecognitionException) {
301
+ this.errorHandler.reportError(this, re);
302
+ this.errorHandler.recover(this, re);
303
+ }
304
+ else {
305
+ throw re;
306
+ }
307
+ }
308
+ finally {
309
+ this.exitRule();
310
+ }
311
+ return localContext;
312
+ }
313
+ graph_expressions() {
314
+ let localContext = new Graph_expressionsContext(this.context, this.state);
315
+ this.enterRule(localContext, 6, CircuitScriptParser.RULE_graph_expressions);
316
+ try {
317
+ this.state = 170;
318
+ this.errorHandler.sync(this);
319
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 6, this.context)) {
320
+ case 1:
321
+ this.enterOuterAlt(localContext, 1);
274
322
  {
275
- this.state = 160;
276
- this.path_blocks();
323
+ this.state = 168;
324
+ this.graph_linear_expression();
277
325
  }
278
326
  break;
279
- case 19:
280
- this.enterOuterAlt(localContext, 19);
327
+ case 2:
328
+ this.enterOuterAlt(localContext, 2);
281
329
  {
282
- this.state = 161;
283
- this.point_expr();
330
+ this.state = 169;
331
+ this.path_block();
332
+ }
333
+ break;
334
+ }
335
+ }
336
+ catch (re) {
337
+ if (re instanceof antlr.RecognitionException) {
338
+ this.errorHandler.reportError(this, re);
339
+ this.errorHandler.recover(this, re);
340
+ }
341
+ else {
342
+ throw re;
343
+ }
344
+ }
345
+ finally {
346
+ this.exitRule();
347
+ }
348
+ return localContext;
349
+ }
350
+ graph_linear_expression() {
351
+ let localContext = new Graph_linear_expressionContext(this.context, this.state);
352
+ this.enterRule(localContext, 8, CircuitScriptParser.RULE_graph_linear_expression);
353
+ try {
354
+ this.state = 178;
355
+ this.errorHandler.sync(this);
356
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 7, this.context)) {
357
+ case 1:
358
+ this.enterOuterAlt(localContext, 1);
359
+ {
360
+ this.state = 172;
361
+ this.add_component_expr();
284
362
  }
285
363
  break;
286
- case 20:
287
- this.enterOuterAlt(localContext, 20);
364
+ case 2:
365
+ this.enterOuterAlt(localContext, 2);
288
366
  {
289
- this.state = 162;
290
- this.if_expr();
367
+ this.state = 173;
368
+ this.to_component_expr();
291
369
  }
292
370
  break;
293
- case 21:
294
- this.enterOuterAlt(localContext, 21);
371
+ case 3:
372
+ this.enterOuterAlt(localContext, 3);
295
373
  {
296
- this.state = 163;
297
- this.while_expr();
374
+ this.state = 174;
375
+ this.at_component_expr();
298
376
  }
299
377
  break;
300
- case 22:
301
- this.enterOuterAlt(localContext, 22);
378
+ case 4:
379
+ this.enterOuterAlt(localContext, 4);
302
380
  {
303
- this.state = 164;
304
- this.for_expr();
381
+ this.state = 175;
382
+ this.at_block();
383
+ }
384
+ break;
385
+ case 5:
386
+ this.enterOuterAlt(localContext, 5);
387
+ {
388
+ this.state = 176;
389
+ this.wire_expr();
390
+ }
391
+ break;
392
+ case 6:
393
+ this.enterOuterAlt(localContext, 6);
394
+ {
395
+ this.state = 177;
396
+ this.point_expr();
305
397
  }
306
398
  break;
307
399
  }
@@ -322,26 +414,26 @@ class CircuitScriptParser extends antlr.Parser {
322
414
  }
323
415
  expressions_block() {
324
416
  let localContext = new Expressions_blockContext(this.context, this.state);
325
- this.enterRule(localContext, 4, CircuitScriptParser.RULE_expressions_block);
417
+ this.enterRule(localContext, 10, CircuitScriptParser.RULE_expressions_block);
326
418
  let _la;
327
419
  try {
328
420
  this.enterOuterAlt(localContext, 1);
329
421
  {
330
- this.state = 167;
422
+ this.state = 180;
331
423
  this.match(CircuitScriptParser.NEWLINE);
332
- this.state = 168;
424
+ this.state = 181;
333
425
  this.match(CircuitScriptParser.INDENT);
334
- this.state = 171;
426
+ this.state = 184;
335
427
  this.errorHandler.sync(this);
336
428
  _la = this.tokenStream.LA(1);
337
429
  do {
338
430
  {
339
- this.state = 171;
431
+ this.state = 184;
340
432
  this.errorHandler.sync(this);
341
433
  switch (this.tokenStream.LA(1)) {
342
434
  case CircuitScriptParser.NEWLINE:
343
435
  {
344
- this.state = 169;
436
+ this.state = 182;
345
437
  this.match(CircuitScriptParser.NEWLINE);
346
438
  }
347
439
  break;
@@ -367,7 +459,7 @@ class CircuitScriptParser extends antlr.Parser {
367
459
  case CircuitScriptParser.Divide:
368
460
  case CircuitScriptParser.ID:
369
461
  {
370
- this.state = 170;
462
+ this.state = 183;
371
463
  this.expression();
372
464
  }
373
465
  break;
@@ -375,11 +467,11 @@ class CircuitScriptParser extends antlr.Parser {
375
467
  throw new antlr.NoViableAltException(this);
376
468
  }
377
469
  }
378
- this.state = 173;
470
+ this.state = 186;
379
471
  this.errorHandler.sync(this);
380
472
  _la = this.tokenStream.LA(1);
381
473
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 867955761) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4210693) !== 0));
382
- this.state = 175;
474
+ this.state = 188;
383
475
  this.match(CircuitScriptParser.DEDENT);
384
476
  }
385
477
  }
@@ -397,57 +489,14 @@ class CircuitScriptParser extends antlr.Parser {
397
489
  }
398
490
  return localContext;
399
491
  }
400
- path_blocks() {
401
- let localContext = new Path_blocksContext(this.context, this.state);
402
- this.enterRule(localContext, 6, CircuitScriptParser.RULE_path_blocks);
403
- try {
404
- let alternative;
405
- this.enterOuterAlt(localContext, 1);
406
- {
407
- this.state = 178;
408
- this.errorHandler.sync(this);
409
- alternative = 1;
410
- do {
411
- switch (alternative) {
412
- case 1:
413
- {
414
- {
415
- this.state = 177;
416
- this.path_block_inner();
417
- }
418
- }
419
- break;
420
- default:
421
- throw new antlr.NoViableAltException(this);
422
- }
423
- this.state = 180;
424
- this.errorHandler.sync(this);
425
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 7, this.context);
426
- } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
427
- }
428
- }
429
- catch (re) {
430
- if (re instanceof antlr.RecognitionException) {
431
- this.errorHandler.reportError(this, re);
432
- this.errorHandler.recover(this, re);
433
- }
434
- else {
435
- throw re;
436
- }
437
- }
438
- finally {
439
- this.exitRule();
440
- }
441
- return localContext;
442
- }
443
- path_block_inner() {
444
- let localContext = new Path_block_innerContext(this.context, this.state);
445
- this.enterRule(localContext, 8, CircuitScriptParser.RULE_path_block_inner);
492
+ path_block() {
493
+ let localContext = new Path_blockContext(this.context, this.state);
494
+ this.enterRule(localContext, 12, CircuitScriptParser.RULE_path_block);
446
495
  let _la;
447
496
  try {
448
497
  this.enterOuterAlt(localContext, 1);
449
498
  {
450
- this.state = 182;
499
+ this.state = 190;
451
500
  _la = this.tokenStream.LA(1);
452
501
  if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 3670528) !== 0))) {
453
502
  this.errorHandler.recoverInline(this);
@@ -456,9 +505,9 @@ class CircuitScriptParser extends antlr.Parser {
456
505
  this.errorHandler.reportMatch(this);
457
506
  this.consume();
458
507
  }
459
- this.state = 183;
508
+ this.state = 191;
460
509
  this.match(CircuitScriptParser.T__0);
461
- this.state = 184;
510
+ this.state = 192;
462
511
  this.expressions_block();
463
512
  }
464
513
  }
@@ -478,37 +527,37 @@ class CircuitScriptParser extends antlr.Parser {
478
527
  }
479
528
  property_set_expr2() {
480
529
  let localContext = new Property_set_expr2Context(this.context, this.state);
481
- this.enterRule(localContext, 10, CircuitScriptParser.RULE_property_set_expr2);
530
+ this.enterRule(localContext, 14, CircuitScriptParser.RULE_property_set_expr2);
482
531
  let _la;
483
532
  try {
484
533
  this.enterOuterAlt(localContext, 1);
485
534
  {
486
- this.state = 186;
535
+ this.state = 194;
487
536
  this.atom_expr();
488
- this.state = 187;
537
+ this.state = 195;
489
538
  this.match(CircuitScriptParser.T__0);
490
- this.state = 188;
539
+ this.state = 196;
491
540
  this.match(CircuitScriptParser.NEWLINE);
492
- this.state = 189;
541
+ this.state = 197;
493
542
  this.match(CircuitScriptParser.INDENT);
494
- this.state = 192;
543
+ this.state = 200;
495
544
  this.errorHandler.sync(this);
496
545
  _la = this.tokenStream.LA(1);
497
546
  do {
498
547
  {
499
- this.state = 192;
548
+ this.state = 200;
500
549
  this.errorHandler.sync(this);
501
550
  switch (this.tokenStream.LA(1)) {
502
551
  case CircuitScriptParser.NEWLINE:
503
552
  {
504
- this.state = 190;
553
+ this.state = 198;
505
554
  this.match(CircuitScriptParser.NEWLINE);
506
555
  }
507
556
  break;
508
557
  case CircuitScriptParser.ID:
509
558
  case CircuitScriptParser.INTEGER_VALUE:
510
559
  {
511
- this.state = 191;
560
+ this.state = 199;
512
561
  this.assignment_expr2();
513
562
  }
514
563
  break;
@@ -516,11 +565,11 @@ class CircuitScriptParser extends antlr.Parser {
516
565
  throw new antlr.NoViableAltException(this);
517
566
  }
518
567
  }
519
- this.state = 194;
568
+ this.state = 202;
520
569
  this.errorHandler.sync(this);
521
570
  _la = this.tokenStream.LA(1);
522
571
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 259) !== 0));
523
- this.state = 196;
572
+ this.state = 204;
524
573
  this.match(CircuitScriptParser.DEDENT);
525
574
  }
526
575
  }
@@ -540,12 +589,12 @@ class CircuitScriptParser extends antlr.Parser {
540
589
  }
541
590
  assignment_expr2() {
542
591
  let localContext = new Assignment_expr2Context(this.context, this.state);
543
- this.enterRule(localContext, 12, CircuitScriptParser.RULE_assignment_expr2);
592
+ this.enterRule(localContext, 16, CircuitScriptParser.RULE_assignment_expr2);
544
593
  let _la;
545
594
  try {
546
595
  this.enterOuterAlt(localContext, 1);
547
596
  {
548
- this.state = 198;
597
+ this.state = 206;
549
598
  _la = this.tokenStream.LA(1);
550
599
  if (!(_la === 56 || _la === 57)) {
551
600
  this.errorHandler.recoverInline(this);
@@ -554,9 +603,9 @@ class CircuitScriptParser extends antlr.Parser {
554
603
  this.errorHandler.reportMatch(this);
555
604
  this.consume();
556
605
  }
557
- this.state = 199;
606
+ this.state = 207;
558
607
  this.match(CircuitScriptParser.T__0);
559
- this.state = 200;
608
+ this.state = 208;
560
609
  this.value_expr();
561
610
  }
562
611
  }
@@ -576,13 +625,13 @@ class CircuitScriptParser extends antlr.Parser {
576
625
  }
577
626
  pin_select_expr() {
578
627
  let localContext = new Pin_select_exprContext(this.context, this.state);
579
- this.enterRule(localContext, 14, CircuitScriptParser.RULE_pin_select_expr);
628
+ this.enterRule(localContext, 18, CircuitScriptParser.RULE_pin_select_expr);
580
629
  try {
581
630
  this.enterOuterAlt(localContext, 1);
582
631
  {
583
- this.state = 202;
632
+ this.state = 210;
584
633
  this.match(CircuitScriptParser.Pin);
585
- this.state = 203;
634
+ this.state = 211;
586
635
  this.data_expr(0);
587
636
  }
588
637
  }
@@ -602,15 +651,15 @@ class CircuitScriptParser extends antlr.Parser {
602
651
  }
603
652
  component_modifier_expr() {
604
653
  let localContext = new Component_modifier_exprContext(this.context, this.state);
605
- this.enterRule(localContext, 16, CircuitScriptParser.RULE_component_modifier_expr);
654
+ this.enterRule(localContext, 20, CircuitScriptParser.RULE_component_modifier_expr);
606
655
  try {
607
656
  this.enterOuterAlt(localContext, 1);
608
657
  {
609
- this.state = 205;
658
+ this.state = 213;
610
659
  this.match(CircuitScriptParser.ID);
611
- this.state = 206;
660
+ this.state = 214;
612
661
  this.match(CircuitScriptParser.T__0);
613
- this.state = 209;
662
+ this.state = 217;
614
663
  this.errorHandler.sync(this);
615
664
  switch (this.tokenStream.LA(1)) {
616
665
  case CircuitScriptParser.Minus:
@@ -621,13 +670,13 @@ class CircuitScriptParser extends antlr.Parser {
621
670
  case CircuitScriptParser.STRING_VALUE:
622
671
  case CircuitScriptParser.PERCENTAGE_VALUE:
623
672
  {
624
- this.state = 207;
673
+ this.state = 215;
625
674
  this.value_expr();
626
675
  }
627
676
  break;
628
677
  case CircuitScriptParser.ID:
629
678
  {
630
- this.state = 208;
679
+ this.state = 216;
631
680
  this.match(CircuitScriptParser.ID);
632
681
  }
633
682
  break;
@@ -652,50 +701,50 @@ class CircuitScriptParser extends antlr.Parser {
652
701
  }
653
702
  data_expr_with_assignment() {
654
703
  let localContext = new Data_expr_with_assignmentContext(this.context, this.state);
655
- this.enterRule(localContext, 18, CircuitScriptParser.RULE_data_expr_with_assignment);
704
+ this.enterRule(localContext, 22, CircuitScriptParser.RULE_data_expr_with_assignment);
656
705
  let _la;
657
706
  try {
658
707
  let alternative;
659
708
  this.enterOuterAlt(localContext, 1);
660
709
  {
661
- this.state = 213;
710
+ this.state = 221;
662
711
  this.errorHandler.sync(this);
663
- switch (this.interpreter.adaptivePredict(this.tokenStream, 11, this.context)) {
712
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 13, this.context)) {
664
713
  case 1:
665
714
  {
666
- this.state = 211;
715
+ this.state = 219;
667
716
  this.data_expr(0);
668
717
  }
669
718
  break;
670
719
  case 2:
671
720
  {
672
- this.state = 212;
721
+ this.state = 220;
673
722
  this.assignment_expr();
674
723
  }
675
724
  break;
676
725
  }
677
- this.state = 218;
726
+ this.state = 226;
678
727
  this.errorHandler.sync(this);
679
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 12, this.context);
728
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 14, this.context);
680
729
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
681
730
  if (alternative === 1) {
682
731
  {
683
732
  {
684
- this.state = 215;
733
+ this.state = 223;
685
734
  this.component_modifier_expr();
686
735
  }
687
736
  }
688
737
  }
689
- this.state = 220;
738
+ this.state = 228;
690
739
  this.errorHandler.sync(this);
691
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 12, this.context);
740
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 14, this.context);
692
741
  }
693
- this.state = 222;
742
+ this.state = 230;
694
743
  this.errorHandler.sync(this);
695
744
  _la = this.tokenStream.LA(1);
696
745
  if (_la === 15) {
697
746
  {
698
- this.state = 221;
747
+ this.state = 229;
699
748
  this.pin_select_expr();
700
749
  }
701
750
  }
@@ -717,13 +766,13 @@ class CircuitScriptParser extends antlr.Parser {
717
766
  }
718
767
  add_component_expr() {
719
768
  let localContext = new Add_component_exprContext(this.context, this.state);
720
- this.enterRule(localContext, 20, CircuitScriptParser.RULE_add_component_expr);
769
+ this.enterRule(localContext, 24, CircuitScriptParser.RULE_add_component_expr);
721
770
  try {
722
771
  this.enterOuterAlt(localContext, 1);
723
772
  {
724
- this.state = 224;
773
+ this.state = 232;
725
774
  this.match(CircuitScriptParser.Add);
726
- this.state = 225;
775
+ this.state = 233;
727
776
  this.data_expr_with_assignment();
728
777
  }
729
778
  }
@@ -743,9 +792,9 @@ class CircuitScriptParser extends antlr.Parser {
743
792
  }
744
793
  component_select_expr() {
745
794
  let localContext = new Component_select_exprContext(this.context, this.state);
746
- this.enterRule(localContext, 22, CircuitScriptParser.RULE_component_select_expr);
795
+ this.enterRule(localContext, 26, CircuitScriptParser.RULE_component_select_expr);
747
796
  try {
748
- this.state = 230;
797
+ this.state = 238;
749
798
  this.errorHandler.sync(this);
750
799
  switch (this.tokenStream.LA(1)) {
751
800
  case CircuitScriptParser.T__5:
@@ -764,21 +813,21 @@ class CircuitScriptParser extends antlr.Parser {
764
813
  case CircuitScriptParser.PERCENTAGE_VALUE:
765
814
  this.enterOuterAlt(localContext, 1);
766
815
  {
767
- this.state = 227;
816
+ this.state = 235;
768
817
  this.data_expr_with_assignment();
769
818
  }
770
819
  break;
771
820
  case CircuitScriptParser.Pin:
772
821
  this.enterOuterAlt(localContext, 2);
773
822
  {
774
- this.state = 228;
823
+ this.state = 236;
775
824
  this.pin_select_expr();
776
825
  }
777
826
  break;
778
827
  case CircuitScriptParser.Point:
779
828
  this.enterOuterAlt(localContext, 3);
780
829
  {
781
- this.state = 229;
830
+ this.state = 237;
782
831
  this.match(CircuitScriptParser.Point);
783
832
  }
784
833
  break;
@@ -802,12 +851,12 @@ class CircuitScriptParser extends antlr.Parser {
802
851
  }
803
852
  pin_select_expr2() {
804
853
  let localContext = new Pin_select_expr2Context(this.context, this.state);
805
- this.enterRule(localContext, 24, CircuitScriptParser.RULE_pin_select_expr2);
854
+ this.enterRule(localContext, 28, CircuitScriptParser.RULE_pin_select_expr2);
806
855
  let _la;
807
856
  try {
808
857
  this.enterOuterAlt(localContext, 1);
809
858
  {
810
- this.state = 232;
859
+ this.state = 240;
811
860
  _la = this.tokenStream.LA(1);
812
861
  if (!(_la === 57 || _la === 60)) {
813
862
  this.errorHandler.recoverInline(this);
@@ -834,13 +883,13 @@ class CircuitScriptParser extends antlr.Parser {
834
883
  }
835
884
  at_component_expr() {
836
885
  let localContext = new At_component_exprContext(this.context, this.state);
837
- this.enterRule(localContext, 26, CircuitScriptParser.RULE_at_component_expr);
886
+ this.enterRule(localContext, 30, CircuitScriptParser.RULE_at_component_expr);
838
887
  try {
839
888
  this.enterOuterAlt(localContext, 1);
840
889
  {
841
- this.state = 234;
890
+ this.state = 242;
842
891
  this.match(CircuitScriptParser.At);
843
- this.state = 235;
892
+ this.state = 243;
844
893
  this.component_select_expr();
845
894
  }
846
895
  }
@@ -860,29 +909,29 @@ class CircuitScriptParser extends antlr.Parser {
860
909
  }
861
910
  to_component_expr() {
862
911
  let localContext = new To_component_exprContext(this.context, this.state);
863
- this.enterRule(localContext, 28, CircuitScriptParser.RULE_to_component_expr);
912
+ this.enterRule(localContext, 32, CircuitScriptParser.RULE_to_component_expr);
864
913
  let _la;
865
914
  try {
866
915
  this.enterOuterAlt(localContext, 1);
867
916
  {
868
- this.state = 237;
917
+ this.state = 245;
869
918
  this.match(CircuitScriptParser.To);
870
919
  {
871
- this.state = 238;
920
+ this.state = 246;
872
921
  this.component_select_expr();
873
- this.state = 243;
922
+ this.state = 251;
874
923
  this.errorHandler.sync(this);
875
924
  _la = this.tokenStream.LA(1);
876
925
  while (_la === 2) {
877
926
  {
878
927
  {
879
- this.state = 239;
928
+ this.state = 247;
880
929
  this.match(CircuitScriptParser.T__1);
881
- this.state = 240;
930
+ this.state = 248;
882
931
  this.component_select_expr();
883
932
  }
884
933
  }
885
- this.state = 245;
934
+ this.state = 253;
886
935
  this.errorHandler.sync(this);
887
936
  _la = this.tokenStream.LA(1);
888
937
  }
@@ -905,59 +954,59 @@ class CircuitScriptParser extends antlr.Parser {
905
954
  }
906
955
  at_to_multiple_expr() {
907
956
  let localContext = new At_to_multiple_exprContext(this.context, this.state);
908
- this.enterRule(localContext, 30, CircuitScriptParser.RULE_at_to_multiple_expr);
957
+ this.enterRule(localContext, 34, CircuitScriptParser.RULE_at_to_multiple_expr);
909
958
  let _la;
910
959
  try {
911
960
  this.enterOuterAlt(localContext, 1);
912
961
  {
913
- this.state = 246;
962
+ this.state = 254;
914
963
  this.match(CircuitScriptParser.At);
915
- this.state = 247;
964
+ this.state = 255;
916
965
  this.component_select_expr();
917
- this.state = 248;
966
+ this.state = 256;
918
967
  this.match(CircuitScriptParser.To);
919
- this.state = 249;
968
+ this.state = 257;
920
969
  this.component_select_expr();
921
- this.state = 254;
970
+ this.state = 262;
922
971
  this.errorHandler.sync(this);
923
972
  _la = this.tokenStream.LA(1);
924
973
  while (_la === 2) {
925
974
  {
926
975
  {
927
- this.state = 250;
976
+ this.state = 258;
928
977
  this.match(CircuitScriptParser.T__1);
929
- this.state = 251;
978
+ this.state = 259;
930
979
  this.component_select_expr();
931
980
  }
932
981
  }
933
- this.state = 256;
982
+ this.state = 264;
934
983
  this.errorHandler.sync(this);
935
984
  _la = this.tokenStream.LA(1);
936
985
  }
937
- this.state = 257;
986
+ this.state = 265;
938
987
  this.match(CircuitScriptParser.T__0);
939
- this.state = 258;
988
+ this.state = 266;
940
989
  this.match(CircuitScriptParser.NEWLINE);
941
- this.state = 259;
990
+ this.state = 267;
942
991
  this.match(CircuitScriptParser.INDENT);
943
- this.state = 262;
992
+ this.state = 270;
944
993
  this.errorHandler.sync(this);
945
994
  _la = this.tokenStream.LA(1);
946
995
  do {
947
996
  {
948
- this.state = 262;
997
+ this.state = 270;
949
998
  this.errorHandler.sync(this);
950
999
  switch (this.tokenStream.LA(1)) {
951
1000
  case CircuitScriptParser.NEWLINE:
952
1001
  {
953
- this.state = 260;
1002
+ this.state = 268;
954
1003
  this.match(CircuitScriptParser.NEWLINE);
955
1004
  }
956
1005
  break;
957
1006
  case CircuitScriptParser.INTEGER_VALUE:
958
1007
  case CircuitScriptParser.STRING_VALUE:
959
1008
  {
960
- this.state = 261;
1009
+ this.state = 269;
961
1010
  this.at_to_multiple_line_expr();
962
1011
  }
963
1012
  break;
@@ -965,11 +1014,11 @@ class CircuitScriptParser extends antlr.Parser {
965
1014
  throw new antlr.NoViableAltException(this);
966
1015
  }
967
1016
  }
968
- this.state = 264;
1017
+ this.state = 272;
969
1018
  this.errorHandler.sync(this);
970
1019
  _la = this.tokenStream.LA(1);
971
1020
  } while (((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 137) !== 0));
972
- this.state = 266;
1021
+ this.state = 274;
973
1022
  this.match(CircuitScriptParser.DEDENT);
974
1023
  }
975
1024
  }
@@ -989,30 +1038,30 @@ class CircuitScriptParser extends antlr.Parser {
989
1038
  }
990
1039
  at_to_multiple_line_expr() {
991
1040
  let localContext = new At_to_multiple_line_exprContext(this.context, this.state);
992
- this.enterRule(localContext, 32, CircuitScriptParser.RULE_at_to_multiple_line_expr);
1041
+ this.enterRule(localContext, 36, CircuitScriptParser.RULE_at_to_multiple_line_expr);
993
1042
  let _la;
994
1043
  try {
995
1044
  this.enterOuterAlt(localContext, 1);
996
1045
  {
997
- this.state = 268;
1046
+ this.state = 276;
998
1047
  this.pin_select_expr2();
999
- this.state = 269;
1048
+ this.state = 277;
1000
1049
  this.match(CircuitScriptParser.T__0);
1001
- this.state = 270;
1050
+ this.state = 278;
1002
1051
  this.at_to_multiple_line_expr_to_pin();
1003
- this.state = 275;
1052
+ this.state = 283;
1004
1053
  this.errorHandler.sync(this);
1005
1054
  _la = this.tokenStream.LA(1);
1006
1055
  while (_la === 2) {
1007
1056
  {
1008
1057
  {
1009
- this.state = 271;
1058
+ this.state = 279;
1010
1059
  this.match(CircuitScriptParser.T__1);
1011
- this.state = 272;
1060
+ this.state = 280;
1012
1061
  this.at_to_multiple_line_expr_to_pin();
1013
1062
  }
1014
1063
  }
1015
- this.state = 277;
1064
+ this.state = 285;
1016
1065
  this.errorHandler.sync(this);
1017
1066
  _la = this.tokenStream.LA(1);
1018
1067
  }
@@ -1034,12 +1083,12 @@ class CircuitScriptParser extends antlr.Parser {
1034
1083
  }
1035
1084
  at_to_multiple_line_expr_to_pin() {
1036
1085
  let localContext = new At_to_multiple_line_expr_to_pinContext(this.context, this.state);
1037
- this.enterRule(localContext, 34, CircuitScriptParser.RULE_at_to_multiple_line_expr_to_pin);
1086
+ this.enterRule(localContext, 38, CircuitScriptParser.RULE_at_to_multiple_line_expr_to_pin);
1038
1087
  let _la;
1039
1088
  try {
1040
1089
  this.enterOuterAlt(localContext, 1);
1041
1090
  {
1042
- this.state = 278;
1091
+ this.state = 286;
1043
1092
  _la = this.tokenStream.LA(1);
1044
1093
  if (!(_la === 54 || _la === 57)) {
1045
1094
  this.errorHandler.recoverInline(this);
@@ -1066,30 +1115,30 @@ class CircuitScriptParser extends antlr.Parser {
1066
1115
  }
1067
1116
  at_block() {
1068
1117
  let localContext = new At_blockContext(this.context, this.state);
1069
- this.enterRule(localContext, 36, CircuitScriptParser.RULE_at_block);
1118
+ this.enterRule(localContext, 40, CircuitScriptParser.RULE_at_block);
1070
1119
  let _la;
1071
1120
  try {
1072
1121
  this.enterOuterAlt(localContext, 1);
1073
1122
  {
1074
- this.state = 280;
1123
+ this.state = 288;
1075
1124
  this.at_component_expr();
1076
- this.state = 281;
1125
+ this.state = 289;
1077
1126
  this.match(CircuitScriptParser.T__0);
1078
- this.state = 282;
1127
+ this.state = 290;
1079
1128
  this.match(CircuitScriptParser.NEWLINE);
1080
- this.state = 283;
1129
+ this.state = 291;
1081
1130
  this.match(CircuitScriptParser.INDENT);
1082
- this.state = 286;
1131
+ this.state = 294;
1083
1132
  this.errorHandler.sync(this);
1084
1133
  _la = this.tokenStream.LA(1);
1085
1134
  do {
1086
1135
  {
1087
- this.state = 286;
1136
+ this.state = 294;
1088
1137
  this.errorHandler.sync(this);
1089
1138
  switch (this.tokenStream.LA(1)) {
1090
1139
  case CircuitScriptParser.NEWLINE:
1091
1140
  {
1092
- this.state = 284;
1141
+ this.state = 292;
1093
1142
  this.match(CircuitScriptParser.NEWLINE);
1094
1143
  }
1095
1144
  break;
@@ -1117,7 +1166,7 @@ class CircuitScriptParser extends antlr.Parser {
1117
1166
  case CircuitScriptParser.INTEGER_VALUE:
1118
1167
  case CircuitScriptParser.STRING_VALUE:
1119
1168
  {
1120
- this.state = 285;
1169
+ this.state = 293;
1121
1170
  this.at_block_expressions();
1122
1171
  }
1123
1172
  break;
@@ -1125,11 +1174,11 @@ class CircuitScriptParser extends antlr.Parser {
1125
1174
  throw new antlr.NoViableAltException(this);
1126
1175
  }
1127
1176
  }
1128
- this.state = 288;
1177
+ this.state = 296;
1129
1178
  this.errorHandler.sync(this);
1130
1179
  _la = this.tokenStream.LA(1);
1131
1180
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 867955761) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4505605) !== 0));
1132
- this.state = 290;
1181
+ this.state = 298;
1133
1182
  this.match(CircuitScriptParser.DEDENT);
1134
1183
  }
1135
1184
  }
@@ -1149,9 +1198,9 @@ class CircuitScriptParser extends antlr.Parser {
1149
1198
  }
1150
1199
  at_block_expressions() {
1151
1200
  let localContext = new At_block_expressionsContext(this.context, this.state);
1152
- this.enterRule(localContext, 38, CircuitScriptParser.RULE_at_block_expressions);
1201
+ this.enterRule(localContext, 42, CircuitScriptParser.RULE_at_block_expressions);
1153
1202
  try {
1154
- this.state = 294;
1203
+ this.state = 302;
1155
1204
  this.errorHandler.sync(this);
1156
1205
  switch (this.tokenStream.LA(1)) {
1157
1206
  case CircuitScriptParser.T__3:
@@ -1177,7 +1226,7 @@ class CircuitScriptParser extends antlr.Parser {
1177
1226
  case CircuitScriptParser.ID:
1178
1227
  this.enterOuterAlt(localContext, 1);
1179
1228
  {
1180
- this.state = 292;
1229
+ this.state = 300;
1181
1230
  this.expression();
1182
1231
  }
1183
1232
  break;
@@ -1185,7 +1234,7 @@ class CircuitScriptParser extends antlr.Parser {
1185
1234
  case CircuitScriptParser.STRING_VALUE:
1186
1235
  this.enterOuterAlt(localContext, 2);
1187
1236
  {
1188
- this.state = 293;
1237
+ this.state = 301;
1189
1238
  this.at_block_pin_expr();
1190
1239
  }
1191
1240
  break;
@@ -1209,15 +1258,15 @@ class CircuitScriptParser extends antlr.Parser {
1209
1258
  }
1210
1259
  at_block_pin_expr() {
1211
1260
  let localContext = new At_block_pin_exprContext(this.context, this.state);
1212
- this.enterRule(localContext, 40, CircuitScriptParser.RULE_at_block_pin_expr);
1261
+ this.enterRule(localContext, 44, CircuitScriptParser.RULE_at_block_pin_expr);
1213
1262
  try {
1214
1263
  this.enterOuterAlt(localContext, 1);
1215
1264
  {
1216
- this.state = 296;
1265
+ this.state = 304;
1217
1266
  this.pin_select_expr2();
1218
- this.state = 297;
1267
+ this.state = 305;
1219
1268
  this.match(CircuitScriptParser.T__0);
1220
- this.state = 300;
1269
+ this.state = 308;
1221
1270
  this.errorHandler.sync(this);
1222
1271
  switch (this.tokenStream.LA(1)) {
1223
1272
  case CircuitScriptParser.T__3:
@@ -1243,13 +1292,13 @@ class CircuitScriptParser extends antlr.Parser {
1243
1292
  case CircuitScriptParser.NOT_CONNECTED:
1244
1293
  case CircuitScriptParser.ID:
1245
1294
  {
1246
- this.state = 298;
1295
+ this.state = 306;
1247
1296
  this.at_block_pin_expression_simple();
1248
1297
  }
1249
1298
  break;
1250
1299
  case CircuitScriptParser.NEWLINE:
1251
1300
  {
1252
- this.state = 299;
1301
+ this.state = 307;
1253
1302
  this.at_block_pin_expression_complex();
1254
1303
  }
1255
1304
  break;
@@ -1274,11 +1323,11 @@ class CircuitScriptParser extends antlr.Parser {
1274
1323
  }
1275
1324
  at_block_pin_expression_simple() {
1276
1325
  let localContext = new At_block_pin_expression_simpleContext(this.context, this.state);
1277
- this.enterRule(localContext, 42, CircuitScriptParser.RULE_at_block_pin_expression_simple);
1326
+ this.enterRule(localContext, 46, CircuitScriptParser.RULE_at_block_pin_expression_simple);
1278
1327
  try {
1279
1328
  this.enterOuterAlt(localContext, 1);
1280
1329
  {
1281
- this.state = 304;
1330
+ this.state = 312;
1282
1331
  this.errorHandler.sync(this);
1283
1332
  switch (this.tokenStream.LA(1)) {
1284
1333
  case CircuitScriptParser.T__3:
@@ -1303,13 +1352,13 @@ class CircuitScriptParser extends antlr.Parser {
1303
1352
  case CircuitScriptParser.Divide:
1304
1353
  case CircuitScriptParser.ID:
1305
1354
  {
1306
- this.state = 302;
1355
+ this.state = 310;
1307
1356
  this.expression();
1308
1357
  }
1309
1358
  break;
1310
1359
  case CircuitScriptParser.NOT_CONNECTED:
1311
1360
  {
1312
- this.state = 303;
1361
+ this.state = 311;
1313
1362
  this.match(CircuitScriptParser.NOT_CONNECTED);
1314
1363
  }
1315
1364
  break;
@@ -1334,11 +1383,11 @@ class CircuitScriptParser extends antlr.Parser {
1334
1383
  }
1335
1384
  at_block_pin_expression_complex() {
1336
1385
  let localContext = new At_block_pin_expression_complexContext(this.context, this.state);
1337
- this.enterRule(localContext, 44, CircuitScriptParser.RULE_at_block_pin_expression_complex);
1386
+ this.enterRule(localContext, 48, CircuitScriptParser.RULE_at_block_pin_expression_complex);
1338
1387
  try {
1339
1388
  this.enterOuterAlt(localContext, 1);
1340
1389
  {
1341
- this.state = 306;
1390
+ this.state = 314;
1342
1391
  this.expressions_block();
1343
1392
  }
1344
1393
  }
@@ -1358,11 +1407,11 @@ class CircuitScriptParser extends antlr.Parser {
1358
1407
  }
1359
1408
  break_keyword() {
1360
1409
  let localContext = new Break_keywordContext(this.context, this.state);
1361
- this.enterRule(localContext, 46, CircuitScriptParser.RULE_break_keyword);
1410
+ this.enterRule(localContext, 50, CircuitScriptParser.RULE_break_keyword);
1362
1411
  try {
1363
1412
  this.enterOuterAlt(localContext, 1);
1364
1413
  {
1365
- this.state = 308;
1414
+ this.state = 316;
1366
1415
  this.match(CircuitScriptParser.Break);
1367
1416
  }
1368
1417
  }
@@ -1382,11 +1431,11 @@ class CircuitScriptParser extends antlr.Parser {
1382
1431
  }
1383
1432
  continue_keyword() {
1384
1433
  let localContext = new Continue_keywordContext(this.context, this.state);
1385
- this.enterRule(localContext, 48, CircuitScriptParser.RULE_continue_keyword);
1434
+ this.enterRule(localContext, 52, CircuitScriptParser.RULE_continue_keyword);
1386
1435
  try {
1387
1436
  this.enterOuterAlt(localContext, 1);
1388
1437
  {
1389
- this.state = 310;
1438
+ this.state = 318;
1390
1439
  this.match(CircuitScriptParser.Continue);
1391
1440
  }
1392
1441
  }
@@ -1406,15 +1455,29 @@ class CircuitScriptParser extends antlr.Parser {
1406
1455
  }
1407
1456
  assignment_expr() {
1408
1457
  let localContext = new Assignment_exprContext(this.context, this.state);
1409
- this.enterRule(localContext, 50, CircuitScriptParser.RULE_assignment_expr);
1458
+ this.enterRule(localContext, 54, CircuitScriptParser.RULE_assignment_expr);
1410
1459
  try {
1411
1460
  this.enterOuterAlt(localContext, 1);
1412
1461
  {
1413
- this.state = 312;
1414
- this.atom_expr();
1415
- this.state = 313;
1462
+ this.state = 322;
1463
+ this.errorHandler.sync(this);
1464
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 27, this.context)) {
1465
+ case 1:
1466
+ {
1467
+ this.state = 320;
1468
+ this.atom_expr();
1469
+ }
1470
+ break;
1471
+ case 2:
1472
+ {
1473
+ this.state = 321;
1474
+ this.function_call_expr();
1475
+ }
1476
+ break;
1477
+ }
1478
+ this.state = 324;
1416
1479
  this.match(CircuitScriptParser.T__2);
1417
- this.state = 314;
1480
+ this.state = 325;
1418
1481
  this.data_expr(0);
1419
1482
  }
1420
1483
  }
@@ -1434,14 +1497,14 @@ class CircuitScriptParser extends antlr.Parser {
1434
1497
  }
1435
1498
  operator_assignment_expr() {
1436
1499
  let localContext = new Operator_assignment_exprContext(this.context, this.state);
1437
- this.enterRule(localContext, 52, CircuitScriptParser.RULE_operator_assignment_expr);
1500
+ this.enterRule(localContext, 56, CircuitScriptParser.RULE_operator_assignment_expr);
1438
1501
  let _la;
1439
1502
  try {
1440
1503
  this.enterOuterAlt(localContext, 1);
1441
1504
  {
1442
- this.state = 316;
1505
+ this.state = 327;
1443
1506
  this.atom_expr();
1444
- this.state = 317;
1507
+ this.state = 328;
1445
1508
  _la = this.tokenStream.LA(1);
1446
1509
  if (!(((((_la - 47)) & ~0x1F) === 0 && ((1 << (_la - 47)) & 31) !== 0))) {
1447
1510
  this.errorHandler.recoverInline(this);
@@ -1450,7 +1513,7 @@ class CircuitScriptParser extends antlr.Parser {
1450
1513
  this.errorHandler.reportMatch(this);
1451
1514
  this.consume();
1452
1515
  }
1453
- this.state = 318;
1516
+ this.state = 329;
1454
1517
  this.data_expr(0);
1455
1518
  }
1456
1519
  }
@@ -1470,15 +1533,15 @@ class CircuitScriptParser extends antlr.Parser {
1470
1533
  }
1471
1534
  keyword_assignment_expr() {
1472
1535
  let localContext = new Keyword_assignment_exprContext(this.context, this.state);
1473
- this.enterRule(localContext, 54, CircuitScriptParser.RULE_keyword_assignment_expr);
1536
+ this.enterRule(localContext, 58, CircuitScriptParser.RULE_keyword_assignment_expr);
1474
1537
  try {
1475
1538
  this.enterOuterAlt(localContext, 1);
1476
1539
  {
1477
- this.state = 320;
1540
+ this.state = 331;
1478
1541
  this.match(CircuitScriptParser.ID);
1479
- this.state = 321;
1542
+ this.state = 332;
1480
1543
  this.match(CircuitScriptParser.T__2);
1481
- this.state = 322;
1544
+ this.state = 333;
1482
1545
  this.data_expr(0);
1483
1546
  }
1484
1547
  }
@@ -1498,50 +1561,50 @@ class CircuitScriptParser extends antlr.Parser {
1498
1561
  }
1499
1562
  parameters() {
1500
1563
  let localContext = new ParametersContext(this.context, this.state);
1501
- this.enterRule(localContext, 56, CircuitScriptParser.RULE_parameters);
1564
+ this.enterRule(localContext, 60, CircuitScriptParser.RULE_parameters);
1502
1565
  let _la;
1503
1566
  try {
1504
1567
  let alternative;
1505
- this.state = 347;
1568
+ this.state = 358;
1506
1569
  this.errorHandler.sync(this);
1507
- switch (this.interpreter.adaptivePredict(this.tokenStream, 28, this.context)) {
1570
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 31, this.context)) {
1508
1571
  case 1:
1509
1572
  this.enterOuterAlt(localContext, 1);
1510
1573
  {
1511
1574
  {
1512
- this.state = 324;
1575
+ this.state = 335;
1513
1576
  this.data_expr(0);
1514
- this.state = 329;
1577
+ this.state = 340;
1515
1578
  this.errorHandler.sync(this);
1516
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 25, this.context);
1579
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 28, this.context);
1517
1580
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1518
1581
  if (alternative === 1) {
1519
1582
  {
1520
1583
  {
1521
- this.state = 325;
1584
+ this.state = 336;
1522
1585
  this.match(CircuitScriptParser.T__1);
1523
- this.state = 326;
1586
+ this.state = 337;
1524
1587
  this.data_expr(0);
1525
1588
  }
1526
1589
  }
1527
1590
  }
1528
- this.state = 331;
1591
+ this.state = 342;
1529
1592
  this.errorHandler.sync(this);
1530
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 25, this.context);
1593
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 28, this.context);
1531
1594
  }
1532
- this.state = 336;
1595
+ this.state = 347;
1533
1596
  this.errorHandler.sync(this);
1534
1597
  _la = this.tokenStream.LA(1);
1535
1598
  while (_la === 2) {
1536
1599
  {
1537
1600
  {
1538
- this.state = 332;
1601
+ this.state = 343;
1539
1602
  this.match(CircuitScriptParser.T__1);
1540
- this.state = 333;
1603
+ this.state = 344;
1541
1604
  this.keyword_assignment_expr();
1542
1605
  }
1543
1606
  }
1544
- this.state = 338;
1607
+ this.state = 349;
1545
1608
  this.errorHandler.sync(this);
1546
1609
  _la = this.tokenStream.LA(1);
1547
1610
  }
@@ -1552,21 +1615,21 @@ class CircuitScriptParser extends antlr.Parser {
1552
1615
  this.enterOuterAlt(localContext, 2);
1553
1616
  {
1554
1617
  {
1555
- this.state = 339;
1618
+ this.state = 350;
1556
1619
  this.keyword_assignment_expr();
1557
- this.state = 344;
1620
+ this.state = 355;
1558
1621
  this.errorHandler.sync(this);
1559
1622
  _la = this.tokenStream.LA(1);
1560
1623
  while (_la === 2) {
1561
1624
  {
1562
1625
  {
1563
- this.state = 340;
1626
+ this.state = 351;
1564
1627
  this.match(CircuitScriptParser.T__1);
1565
- this.state = 341;
1628
+ this.state = 352;
1566
1629
  this.keyword_assignment_expr();
1567
1630
  }
1568
1631
  }
1569
- this.state = 346;
1632
+ this.state = 357;
1570
1633
  this.errorHandler.sync(this);
1571
1634
  _la = this.tokenStream.LA(1);
1572
1635
  }
@@ -1591,15 +1654,15 @@ class CircuitScriptParser extends antlr.Parser {
1591
1654
  }
1592
1655
  property_set_expr() {
1593
1656
  let localContext = new Property_set_exprContext(this.context, this.state);
1594
- this.enterRule(localContext, 58, CircuitScriptParser.RULE_property_set_expr);
1657
+ this.enterRule(localContext, 62, CircuitScriptParser.RULE_property_set_expr);
1595
1658
  try {
1596
1659
  this.enterOuterAlt(localContext, 1);
1597
1660
  {
1598
- this.state = 349;
1661
+ this.state = 360;
1599
1662
  this.atom_expr();
1600
- this.state = 350;
1663
+ this.state = 361;
1601
1664
  this.match(CircuitScriptParser.T__2);
1602
- this.state = 351;
1665
+ this.state = 362;
1603
1666
  this.data_expr(0);
1604
1667
  }
1605
1668
  }
@@ -1619,17 +1682,17 @@ class CircuitScriptParser extends antlr.Parser {
1619
1682
  }
1620
1683
  double_dot_property_set_expr() {
1621
1684
  let localContext = new Double_dot_property_set_exprContext(this.context, this.state);
1622
- this.enterRule(localContext, 60, CircuitScriptParser.RULE_double_dot_property_set_expr);
1685
+ this.enterRule(localContext, 64, CircuitScriptParser.RULE_double_dot_property_set_expr);
1623
1686
  try {
1624
1687
  this.enterOuterAlt(localContext, 1);
1625
1688
  {
1626
- this.state = 353;
1689
+ this.state = 364;
1627
1690
  this.match(CircuitScriptParser.T__3);
1628
- this.state = 354;
1691
+ this.state = 365;
1629
1692
  this.match(CircuitScriptParser.ID);
1630
- this.state = 355;
1693
+ this.state = 366;
1631
1694
  this.match(CircuitScriptParser.T__2);
1632
- this.state = 356;
1695
+ this.state = 367;
1633
1696
  this.data_expr(0);
1634
1697
  }
1635
1698
  }
@@ -1655,26 +1718,26 @@ class CircuitScriptParser extends antlr.Parser {
1655
1718
  let parentState = this.state;
1656
1719
  let localContext = new Data_exprContext(this.context, parentState);
1657
1720
  let previousContext = localContext;
1658
- let _startState = 62;
1659
- this.enterRecursionRule(localContext, 62, CircuitScriptParser.RULE_data_expr, _p);
1721
+ let _startState = 66;
1722
+ this.enterRecursionRule(localContext, 66, CircuitScriptParser.RULE_data_expr, _p);
1660
1723
  let _la;
1661
1724
  try {
1662
1725
  let alternative;
1663
1726
  this.enterOuterAlt(localContext, 1);
1664
1727
  {
1665
- this.state = 375;
1728
+ this.state = 386;
1666
1729
  this.errorHandler.sync(this);
1667
- switch (this.interpreter.adaptivePredict(this.tokenStream, 30, this.context)) {
1730
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 33, this.context)) {
1668
1731
  case 1:
1669
1732
  {
1670
1733
  localContext = new RoundedBracketsExprContext(localContext);
1671
1734
  this.context = localContext;
1672
1735
  previousContext = localContext;
1673
- this.state = 359;
1736
+ this.state = 370;
1674
1737
  this.match(CircuitScriptParser.OPEN_PAREN);
1675
- this.state = 360;
1738
+ this.state = 371;
1676
1739
  this.data_expr(0);
1677
- this.state = 361;
1740
+ this.state = 372;
1678
1741
  this.match(CircuitScriptParser.CLOSE_PAREN);
1679
1742
  }
1680
1743
  break;
@@ -1683,7 +1746,7 @@ class CircuitScriptParser extends antlr.Parser {
1683
1746
  localContext = new ValueAtomExprContext(localContext);
1684
1747
  this.context = localContext;
1685
1748
  previousContext = localContext;
1686
- this.state = 365;
1749
+ this.state = 376;
1687
1750
  this.errorHandler.sync(this);
1688
1751
  switch (this.tokenStream.LA(1)) {
1689
1752
  case CircuitScriptParser.Minus:
@@ -1694,13 +1757,13 @@ class CircuitScriptParser extends antlr.Parser {
1694
1757
  case CircuitScriptParser.STRING_VALUE:
1695
1758
  case CircuitScriptParser.PERCENTAGE_VALUE:
1696
1759
  {
1697
- this.state = 363;
1760
+ this.state = 374;
1698
1761
  this.value_expr();
1699
1762
  }
1700
1763
  break;
1701
1764
  case CircuitScriptParser.ID:
1702
1765
  {
1703
- this.state = 364;
1766
+ this.state = 375;
1704
1767
  this.atom_expr();
1705
1768
  }
1706
1769
  break;
@@ -1714,9 +1777,9 @@ class CircuitScriptParser extends antlr.Parser {
1714
1777
  localContext = new UnaryOperatorExprContext(localContext);
1715
1778
  this.context = localContext;
1716
1779
  previousContext = localContext;
1717
- this.state = 367;
1780
+ this.state = 378;
1718
1781
  this.unary_operator();
1719
- this.state = 368;
1782
+ this.state = 379;
1720
1783
  this.data_expr(10);
1721
1784
  }
1722
1785
  break;
@@ -1725,7 +1788,7 @@ class CircuitScriptParser extends antlr.Parser {
1725
1788
  localContext = new DataExprContext(localContext);
1726
1789
  this.context = localContext;
1727
1790
  previousContext = localContext;
1728
- this.state = 370;
1791
+ this.state = 381;
1729
1792
  this.create_component_expr();
1730
1793
  }
1731
1794
  break;
@@ -1734,7 +1797,7 @@ class CircuitScriptParser extends antlr.Parser {
1734
1797
  localContext = new DataExprContext(localContext);
1735
1798
  this.context = localContext;
1736
1799
  previousContext = localContext;
1737
- this.state = 371;
1800
+ this.state = 382;
1738
1801
  this.create_graphic_expr();
1739
1802
  }
1740
1803
  break;
@@ -1743,7 +1806,7 @@ class CircuitScriptParser extends antlr.Parser {
1743
1806
  localContext = new DataExprContext(localContext);
1744
1807
  this.context = localContext;
1745
1808
  previousContext = localContext;
1746
- this.state = 372;
1809
+ this.state = 383;
1747
1810
  this.create_module_expr();
1748
1811
  }
1749
1812
  break;
@@ -1752,7 +1815,7 @@ class CircuitScriptParser extends antlr.Parser {
1752
1815
  localContext = new FunctionCallExprContext(localContext);
1753
1816
  this.context = localContext;
1754
1817
  previousContext = localContext;
1755
- this.state = 373;
1818
+ this.state = 384;
1756
1819
  this.function_call_expr();
1757
1820
  }
1758
1821
  break;
@@ -1761,15 +1824,15 @@ class CircuitScriptParser extends antlr.Parser {
1761
1824
  localContext = new ArrayExprContext(localContext);
1762
1825
  this.context = localContext;
1763
1826
  previousContext = localContext;
1764
- this.state = 374;
1827
+ this.state = 385;
1765
1828
  this.array_expr();
1766
1829
  }
1767
1830
  break;
1768
1831
  }
1769
1832
  this.context.stop = this.tokenStream.LT(-1);
1770
- this.state = 392;
1833
+ this.state = 403;
1771
1834
  this.errorHandler.sync(this);
1772
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 32, this.context);
1835
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 35, this.context);
1773
1836
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1774
1837
  if (alternative === 1) {
1775
1838
  if (this.parseListeners != null) {
@@ -1777,18 +1840,18 @@ class CircuitScriptParser extends antlr.Parser {
1777
1840
  }
1778
1841
  previousContext = localContext;
1779
1842
  {
1780
- this.state = 390;
1843
+ this.state = 401;
1781
1844
  this.errorHandler.sync(this);
1782
- switch (this.interpreter.adaptivePredict(this.tokenStream, 31, this.context)) {
1845
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 34, this.context)) {
1783
1846
  case 1:
1784
1847
  {
1785
1848
  localContext = new MultiplyExprContext(new Data_exprContext(parentContext, parentState));
1786
1849
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1787
- this.state = 377;
1850
+ this.state = 388;
1788
1851
  if (!(this.precpred(this.context, 9))) {
1789
1852
  throw this.createFailedPredicateException("this.precpred(this.context, 9)");
1790
1853
  }
1791
- this.state = 378;
1854
+ this.state = 389;
1792
1855
  _la = this.tokenStream.LA(1);
1793
1856
  if (!(((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 7) !== 0))) {
1794
1857
  this.errorHandler.recoverInline(this);
@@ -1797,7 +1860,7 @@ class CircuitScriptParser extends antlr.Parser {
1797
1860
  this.errorHandler.reportMatch(this);
1798
1861
  this.consume();
1799
1862
  }
1800
- this.state = 379;
1863
+ this.state = 390;
1801
1864
  this.data_expr(10);
1802
1865
  }
1803
1866
  break;
@@ -1805,11 +1868,11 @@ class CircuitScriptParser extends antlr.Parser {
1805
1868
  {
1806
1869
  localContext = new AdditionExprContext(new Data_exprContext(parentContext, parentState));
1807
1870
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1808
- this.state = 380;
1871
+ this.state = 391;
1809
1872
  if (!(this.precpred(this.context, 8))) {
1810
1873
  throw this.createFailedPredicateException("this.precpred(this.context, 8)");
1811
1874
  }
1812
- this.state = 381;
1875
+ this.state = 392;
1813
1876
  _la = this.tokenStream.LA(1);
1814
1877
  if (!(_la === 42 || _la === 43)) {
1815
1878
  this.errorHandler.recoverInline(this);
@@ -1818,7 +1881,7 @@ class CircuitScriptParser extends antlr.Parser {
1818
1881
  this.errorHandler.reportMatch(this);
1819
1882
  this.consume();
1820
1883
  }
1821
- this.state = 382;
1884
+ this.state = 393;
1822
1885
  this.data_expr(9);
1823
1886
  }
1824
1887
  break;
@@ -1826,13 +1889,13 @@ class CircuitScriptParser extends antlr.Parser {
1826
1889
  {
1827
1890
  localContext = new BinaryOperatorExprContext(new Data_exprContext(parentContext, parentState));
1828
1891
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1829
- this.state = 383;
1892
+ this.state = 394;
1830
1893
  if (!(this.precpred(this.context, 7))) {
1831
1894
  throw this.createFailedPredicateException("this.precpred(this.context, 7)");
1832
1895
  }
1833
- this.state = 384;
1896
+ this.state = 395;
1834
1897
  this.binary_operator();
1835
- this.state = 385;
1898
+ this.state = 396;
1836
1899
  this.data_expr(8);
1837
1900
  }
1838
1901
  break;
@@ -1840,11 +1903,11 @@ class CircuitScriptParser extends antlr.Parser {
1840
1903
  {
1841
1904
  localContext = new LogicalOperatorExprContext(new Data_exprContext(parentContext, parentState));
1842
1905
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1843
- this.state = 387;
1906
+ this.state = 398;
1844
1907
  if (!(this.precpred(this.context, 6))) {
1845
1908
  throw this.createFailedPredicateException("this.precpred(this.context, 6)");
1846
1909
  }
1847
- this.state = 388;
1910
+ this.state = 399;
1848
1911
  _la = this.tokenStream.LA(1);
1849
1912
  if (!(_la === 40 || _la === 41)) {
1850
1913
  this.errorHandler.recoverInline(this);
@@ -1853,16 +1916,16 @@ class CircuitScriptParser extends antlr.Parser {
1853
1916
  this.errorHandler.reportMatch(this);
1854
1917
  this.consume();
1855
1918
  }
1856
- this.state = 389;
1919
+ this.state = 400;
1857
1920
  this.data_expr(7);
1858
1921
  }
1859
1922
  break;
1860
1923
  }
1861
1924
  }
1862
1925
  }
1863
- this.state = 394;
1926
+ this.state = 405;
1864
1927
  this.errorHandler.sync(this);
1865
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 32, this.context);
1928
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 35, this.context);
1866
1929
  }
1867
1930
  }
1868
1931
  }
@@ -1882,12 +1945,12 @@ class CircuitScriptParser extends antlr.Parser {
1882
1945
  }
1883
1946
  binary_operator() {
1884
1947
  let localContext = new Binary_operatorContext(this.context, this.state);
1885
- this.enterRule(localContext, 64, CircuitScriptParser.RULE_binary_operator);
1948
+ this.enterRule(localContext, 68, CircuitScriptParser.RULE_binary_operator);
1886
1949
  let _la;
1887
1950
  try {
1888
1951
  this.enterOuterAlt(localContext, 1);
1889
1952
  {
1890
- this.state = 395;
1953
+ this.state = 406;
1891
1954
  _la = this.tokenStream.LA(1);
1892
1955
  if (!(((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 63) !== 0))) {
1893
1956
  this.errorHandler.recoverInline(this);
@@ -1914,12 +1977,12 @@ class CircuitScriptParser extends antlr.Parser {
1914
1977
  }
1915
1978
  unary_operator() {
1916
1979
  let localContext = new Unary_operatorContext(this.context, this.state);
1917
- this.enterRule(localContext, 66, CircuitScriptParser.RULE_unary_operator);
1980
+ this.enterRule(localContext, 70, CircuitScriptParser.RULE_unary_operator);
1918
1981
  let _la;
1919
1982
  try {
1920
1983
  this.enterOuterAlt(localContext, 1);
1921
1984
  {
1922
- this.state = 397;
1985
+ this.state = 408;
1923
1986
  _la = this.tokenStream.LA(1);
1924
1987
  if (!(_la === 31 || _la === 43)) {
1925
1988
  this.errorHandler.recoverInline(this);
@@ -1946,22 +2009,22 @@ class CircuitScriptParser extends antlr.Parser {
1946
2009
  }
1947
2010
  value_expr() {
1948
2011
  let localContext = new Value_exprContext(this.context, this.state);
1949
- this.enterRule(localContext, 68, CircuitScriptParser.RULE_value_expr);
2012
+ this.enterRule(localContext, 72, CircuitScriptParser.RULE_value_expr);
1950
2013
  let _la;
1951
2014
  try {
1952
2015
  this.enterOuterAlt(localContext, 1);
1953
2016
  {
1954
2017
  {
1955
- this.state = 400;
2018
+ this.state = 411;
1956
2019
  this.errorHandler.sync(this);
1957
2020
  _la = this.tokenStream.LA(1);
1958
2021
  if (_la === 43) {
1959
2022
  {
1960
- this.state = 399;
2023
+ this.state = 410;
1961
2024
  this.match(CircuitScriptParser.Minus);
1962
2025
  }
1963
2026
  }
1964
- this.state = 402;
2027
+ this.state = 413;
1965
2028
  _la = this.tokenStream.LA(1);
1966
2029
  if (!(((((_la - 55)) & ~0x1F) === 0 && ((1 << (_la - 55)) & 125) !== 0))) {
1967
2030
  this.errorHandler.recoverInline(this);
@@ -1989,45 +2052,45 @@ class CircuitScriptParser extends antlr.Parser {
1989
2052
  }
1990
2053
  function_def_expr() {
1991
2054
  let localContext = new Function_def_exprContext(this.context, this.state);
1992
- this.enterRule(localContext, 70, CircuitScriptParser.RULE_function_def_expr);
2055
+ this.enterRule(localContext, 74, CircuitScriptParser.RULE_function_def_expr);
1993
2056
  let _la;
1994
2057
  try {
1995
2058
  this.enterOuterAlt(localContext, 1);
1996
2059
  {
1997
- this.state = 404;
2060
+ this.state = 415;
1998
2061
  this.match(CircuitScriptParser.Define);
1999
- this.state = 405;
2062
+ this.state = 416;
2000
2063
  this.match(CircuitScriptParser.ID);
2001
- this.state = 406;
2064
+ this.state = 417;
2002
2065
  this.match(CircuitScriptParser.OPEN_PAREN);
2003
- this.state = 408;
2066
+ this.state = 419;
2004
2067
  this.errorHandler.sync(this);
2005
2068
  _la = this.tokenStream.LA(1);
2006
2069
  if (_la === 56) {
2007
2070
  {
2008
- this.state = 407;
2071
+ this.state = 418;
2009
2072
  this.function_args_expr();
2010
2073
  }
2011
2074
  }
2012
- this.state = 410;
2075
+ this.state = 421;
2013
2076
  this.match(CircuitScriptParser.CLOSE_PAREN);
2014
- this.state = 411;
2077
+ this.state = 422;
2015
2078
  this.match(CircuitScriptParser.T__0);
2016
- this.state = 412;
2079
+ this.state = 423;
2017
2080
  this.match(CircuitScriptParser.NEWLINE);
2018
- this.state = 413;
2081
+ this.state = 424;
2019
2082
  this.match(CircuitScriptParser.INDENT);
2020
- this.state = 416;
2083
+ this.state = 427;
2021
2084
  this.errorHandler.sync(this);
2022
2085
  _la = this.tokenStream.LA(1);
2023
2086
  do {
2024
2087
  {
2025
- this.state = 416;
2088
+ this.state = 427;
2026
2089
  this.errorHandler.sync(this);
2027
2090
  switch (this.tokenStream.LA(1)) {
2028
2091
  case CircuitScriptParser.NEWLINE:
2029
2092
  {
2030
- this.state = 414;
2093
+ this.state = 425;
2031
2094
  this.match(CircuitScriptParser.NEWLINE);
2032
2095
  }
2033
2096
  break;
@@ -2054,7 +2117,7 @@ class CircuitScriptParser extends antlr.Parser {
2054
2117
  case CircuitScriptParser.Divide:
2055
2118
  case CircuitScriptParser.ID:
2056
2119
  {
2057
- this.state = 415;
2120
+ this.state = 426;
2058
2121
  this.function_expr();
2059
2122
  }
2060
2123
  break;
@@ -2062,11 +2125,11 @@ class CircuitScriptParser extends antlr.Parser {
2062
2125
  throw new antlr.NoViableAltException(this);
2063
2126
  }
2064
2127
  }
2065
- this.state = 418;
2128
+ this.state = 429;
2066
2129
  this.errorHandler.sync(this);
2067
2130
  _la = this.tokenStream.LA(1);
2068
2131
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 868217905) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4210693) !== 0));
2069
- this.state = 420;
2132
+ this.state = 431;
2070
2133
  this.match(CircuitScriptParser.DEDENT);
2071
2134
  }
2072
2135
  }
@@ -2086,9 +2149,9 @@ class CircuitScriptParser extends antlr.Parser {
2086
2149
  }
2087
2150
  function_expr() {
2088
2151
  let localContext = new Function_exprContext(this.context, this.state);
2089
- this.enterRule(localContext, 72, CircuitScriptParser.RULE_function_expr);
2152
+ this.enterRule(localContext, 76, CircuitScriptParser.RULE_function_expr);
2090
2153
  try {
2091
- this.state = 424;
2154
+ this.state = 435;
2092
2155
  this.errorHandler.sync(this);
2093
2156
  switch (this.tokenStream.LA(1)) {
2094
2157
  case CircuitScriptParser.T__3:
@@ -2114,14 +2177,14 @@ class CircuitScriptParser extends antlr.Parser {
2114
2177
  case CircuitScriptParser.ID:
2115
2178
  this.enterOuterAlt(localContext, 1);
2116
2179
  {
2117
- this.state = 422;
2180
+ this.state = 433;
2118
2181
  this.expression();
2119
2182
  }
2120
2183
  break;
2121
2184
  case CircuitScriptParser.Return:
2122
2185
  this.enterOuterAlt(localContext, 2);
2123
2186
  {
2124
- this.state = 423;
2187
+ this.state = 434;
2125
2188
  this.function_return_expr();
2126
2189
  }
2127
2190
  break;
@@ -2145,53 +2208,53 @@ class CircuitScriptParser extends antlr.Parser {
2145
2208
  }
2146
2209
  function_args_expr() {
2147
2210
  let localContext = new Function_args_exprContext(this.context, this.state);
2148
- this.enterRule(localContext, 74, CircuitScriptParser.RULE_function_args_expr);
2211
+ this.enterRule(localContext, 78, CircuitScriptParser.RULE_function_args_expr);
2149
2212
  let _la;
2150
2213
  try {
2151
2214
  let alternative;
2152
- this.state = 455;
2215
+ this.state = 466;
2153
2216
  this.errorHandler.sync(this);
2154
- switch (this.interpreter.adaptivePredict(this.tokenStream, 41, this.context)) {
2217
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 44, this.context)) {
2155
2218
  case 1:
2156
2219
  this.enterOuterAlt(localContext, 1);
2157
2220
  {
2158
- this.state = 426;
2221
+ this.state = 437;
2159
2222
  this.match(CircuitScriptParser.ID);
2160
- this.state = 431;
2223
+ this.state = 442;
2161
2224
  this.errorHandler.sync(this);
2162
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 38, this.context);
2225
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 41, this.context);
2163
2226
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2164
2227
  if (alternative === 1) {
2165
2228
  {
2166
2229
  {
2167
- this.state = 427;
2230
+ this.state = 438;
2168
2231
  this.match(CircuitScriptParser.T__1);
2169
- this.state = 428;
2232
+ this.state = 439;
2170
2233
  this.match(CircuitScriptParser.ID);
2171
2234
  }
2172
2235
  }
2173
2236
  }
2174
- this.state = 433;
2237
+ this.state = 444;
2175
2238
  this.errorHandler.sync(this);
2176
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 38, this.context);
2239
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 41, this.context);
2177
2240
  }
2178
- this.state = 440;
2241
+ this.state = 451;
2179
2242
  this.errorHandler.sync(this);
2180
2243
  _la = this.tokenStream.LA(1);
2181
2244
  while (_la === 2) {
2182
2245
  {
2183
2246
  {
2184
- this.state = 434;
2247
+ this.state = 445;
2185
2248
  this.match(CircuitScriptParser.T__1);
2186
- this.state = 435;
2249
+ this.state = 446;
2187
2250
  this.match(CircuitScriptParser.ID);
2188
- this.state = 436;
2251
+ this.state = 447;
2189
2252
  this.match(CircuitScriptParser.T__2);
2190
- this.state = 437;
2253
+ this.state = 448;
2191
2254
  this.value_expr();
2192
2255
  }
2193
2256
  }
2194
- this.state = 442;
2257
+ this.state = 453;
2195
2258
  this.errorHandler.sync(this);
2196
2259
  _la = this.tokenStream.LA(1);
2197
2260
  }
@@ -2200,29 +2263,29 @@ class CircuitScriptParser extends antlr.Parser {
2200
2263
  case 2:
2201
2264
  this.enterOuterAlt(localContext, 2);
2202
2265
  {
2203
- this.state = 443;
2266
+ this.state = 454;
2204
2267
  this.match(CircuitScriptParser.ID);
2205
- this.state = 444;
2268
+ this.state = 455;
2206
2269
  this.match(CircuitScriptParser.T__2);
2207
- this.state = 445;
2270
+ this.state = 456;
2208
2271
  this.value_expr();
2209
- this.state = 452;
2272
+ this.state = 463;
2210
2273
  this.errorHandler.sync(this);
2211
2274
  _la = this.tokenStream.LA(1);
2212
2275
  while (_la === 2) {
2213
2276
  {
2214
2277
  {
2215
- this.state = 446;
2278
+ this.state = 457;
2216
2279
  this.match(CircuitScriptParser.T__1);
2217
- this.state = 447;
2280
+ this.state = 458;
2218
2281
  this.match(CircuitScriptParser.ID);
2219
- this.state = 448;
2282
+ this.state = 459;
2220
2283
  this.match(CircuitScriptParser.T__2);
2221
- this.state = 449;
2284
+ this.state = 460;
2222
2285
  this.value_expr();
2223
2286
  }
2224
2287
  }
2225
- this.state = 454;
2288
+ this.state = 465;
2226
2289
  this.errorHandler.sync(this);
2227
2290
  _la = this.tokenStream.LA(1);
2228
2291
  }
@@ -2246,30 +2309,30 @@ class CircuitScriptParser extends antlr.Parser {
2246
2309
  }
2247
2310
  atom_expr() {
2248
2311
  let localContext = new Atom_exprContext(this.context, this.state);
2249
- this.enterRule(localContext, 76, CircuitScriptParser.RULE_atom_expr);
2312
+ this.enterRule(localContext, 80, CircuitScriptParser.RULE_atom_expr);
2250
2313
  try {
2251
2314
  let alternative;
2252
2315
  this.enterOuterAlt(localContext, 1);
2253
2316
  {
2254
- this.state = 457;
2317
+ this.state = 468;
2255
2318
  this.match(CircuitScriptParser.ID);
2256
- this.state = 462;
2319
+ this.state = 473;
2257
2320
  this.errorHandler.sync(this);
2258
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 42, this.context);
2321
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 45, this.context);
2259
2322
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2260
2323
  if (alternative === 1) {
2261
2324
  {
2262
2325
  {
2263
- this.state = 458;
2326
+ this.state = 469;
2264
2327
  this.match(CircuitScriptParser.T__4);
2265
- this.state = 459;
2328
+ this.state = 470;
2266
2329
  this.match(CircuitScriptParser.ID);
2267
2330
  }
2268
2331
  }
2269
2332
  }
2270
- this.state = 464;
2333
+ this.state = 475;
2271
2334
  this.errorHandler.sync(this);
2272
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 42, this.context);
2335
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 45, this.context);
2273
2336
  }
2274
2337
  }
2275
2338
  }
@@ -2289,36 +2352,36 @@ class CircuitScriptParser extends antlr.Parser {
2289
2352
  }
2290
2353
  trailer_expr() {
2291
2354
  let localContext = new Trailer_exprContext(this.context, this.state);
2292
- this.enterRule(localContext, 78, CircuitScriptParser.RULE_trailer_expr);
2355
+ this.enterRule(localContext, 82, CircuitScriptParser.RULE_trailer_expr);
2293
2356
  let _la;
2294
2357
  try {
2295
- this.state = 472;
2358
+ this.state = 483;
2296
2359
  this.errorHandler.sync(this);
2297
2360
  switch (this.tokenStream.LA(1)) {
2298
2361
  case CircuitScriptParser.OPEN_PAREN:
2299
2362
  this.enterOuterAlt(localContext, 1);
2300
2363
  {
2301
- this.state = 465;
2364
+ this.state = 476;
2302
2365
  this.match(CircuitScriptParser.OPEN_PAREN);
2303
- this.state = 467;
2366
+ this.state = 478;
2304
2367
  this.errorHandler.sync(this);
2305
2368
  _la = this.tokenStream.LA(1);
2306
2369
  if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484736) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 1041415) !== 0)) {
2307
2370
  {
2308
- this.state = 466;
2371
+ this.state = 477;
2309
2372
  this.parameters();
2310
2373
  }
2311
2374
  }
2312
- this.state = 469;
2375
+ this.state = 480;
2313
2376
  this.match(CircuitScriptParser.CLOSE_PAREN);
2314
2377
  }
2315
2378
  break;
2316
2379
  case CircuitScriptParser.T__4:
2317
2380
  this.enterOuterAlt(localContext, 2);
2318
2381
  {
2319
- this.state = 470;
2382
+ this.state = 481;
2320
2383
  this.match(CircuitScriptParser.T__4);
2321
- this.state = 471;
2384
+ this.state = 482;
2322
2385
  this.match(CircuitScriptParser.ID);
2323
2386
  }
2324
2387
  break;
@@ -2342,24 +2405,24 @@ class CircuitScriptParser extends antlr.Parser {
2342
2405
  }
2343
2406
  function_call_expr() {
2344
2407
  let localContext = new Function_call_exprContext(this.context, this.state);
2345
- this.enterRule(localContext, 80, CircuitScriptParser.RULE_function_call_expr);
2408
+ this.enterRule(localContext, 84, CircuitScriptParser.RULE_function_call_expr);
2346
2409
  let _la;
2347
2410
  try {
2348
2411
  let alternative;
2349
2412
  this.enterOuterAlt(localContext, 1);
2350
2413
  {
2351
- this.state = 475;
2414
+ this.state = 486;
2352
2415
  this.errorHandler.sync(this);
2353
2416
  _la = this.tokenStream.LA(1);
2354
2417
  if (_la === 42 || _la === 44) {
2355
2418
  {
2356
- this.state = 474;
2419
+ this.state = 485;
2357
2420
  this.net_namespace_expr();
2358
2421
  }
2359
2422
  }
2360
- this.state = 477;
2423
+ this.state = 488;
2361
2424
  this.match(CircuitScriptParser.ID);
2362
- this.state = 479;
2425
+ this.state = 490;
2363
2426
  this.errorHandler.sync(this);
2364
2427
  alternative = 1;
2365
2428
  do {
@@ -2367,7 +2430,7 @@ class CircuitScriptParser extends antlr.Parser {
2367
2430
  case 1:
2368
2431
  {
2369
2432
  {
2370
- this.state = 478;
2433
+ this.state = 489;
2371
2434
  this.trailer_expr();
2372
2435
  }
2373
2436
  }
@@ -2375,9 +2438,9 @@ class CircuitScriptParser extends antlr.Parser {
2375
2438
  default:
2376
2439
  throw new antlr.NoViableAltException(this);
2377
2440
  }
2378
- this.state = 481;
2441
+ this.state = 492;
2379
2442
  this.errorHandler.sync(this);
2380
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 46, this.context);
2443
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 49, this.context);
2381
2444
  } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
2382
2445
  }
2383
2446
  }
@@ -2397,28 +2460,28 @@ class CircuitScriptParser extends antlr.Parser {
2397
2460
  }
2398
2461
  net_namespace_expr() {
2399
2462
  let localContext = new Net_namespace_exprContext(this.context, this.state);
2400
- this.enterRule(localContext, 82, CircuitScriptParser.RULE_net_namespace_expr);
2463
+ this.enterRule(localContext, 86, CircuitScriptParser.RULE_net_namespace_expr);
2401
2464
  let _la;
2402
2465
  try {
2403
2466
  this.enterOuterAlt(localContext, 1);
2404
2467
  {
2405
- this.state = 484;
2468
+ this.state = 495;
2406
2469
  this.errorHandler.sync(this);
2407
2470
  _la = this.tokenStream.LA(1);
2408
2471
  if (_la === 42) {
2409
2472
  {
2410
- this.state = 483;
2473
+ this.state = 494;
2411
2474
  this.match(CircuitScriptParser.Addition);
2412
2475
  }
2413
2476
  }
2414
- this.state = 486;
2477
+ this.state = 497;
2415
2478
  this.match(CircuitScriptParser.Divide);
2416
- this.state = 488;
2479
+ this.state = 499;
2417
2480
  this.errorHandler.sync(this);
2418
- switch (this.interpreter.adaptivePredict(this.tokenStream, 48, this.context)) {
2481
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 51, this.context)) {
2419
2482
  case 1:
2420
2483
  {
2421
- this.state = 487;
2484
+ this.state = 498;
2422
2485
  this.data_expr(0);
2423
2486
  }
2424
2487
  break;
@@ -2441,13 +2504,13 @@ class CircuitScriptParser extends antlr.Parser {
2441
2504
  }
2442
2505
  function_return_expr() {
2443
2506
  let localContext = new Function_return_exprContext(this.context, this.state);
2444
- this.enterRule(localContext, 84, CircuitScriptParser.RULE_function_return_expr);
2507
+ this.enterRule(localContext, 88, CircuitScriptParser.RULE_function_return_expr);
2445
2508
  try {
2446
2509
  this.enterOuterAlt(localContext, 1);
2447
2510
  {
2448
- this.state = 490;
2511
+ this.state = 501;
2449
2512
  this.match(CircuitScriptParser.Return);
2450
- this.state = 491;
2513
+ this.state = 502;
2451
2514
  this.data_expr(0);
2452
2515
  }
2453
2516
  }
@@ -2467,15 +2530,15 @@ class CircuitScriptParser extends antlr.Parser {
2467
2530
  }
2468
2531
  property_block_expr() {
2469
2532
  let localContext = new Property_block_exprContext(this.context, this.state);
2470
- this.enterRule(localContext, 86, CircuitScriptParser.RULE_property_block_expr);
2533
+ this.enterRule(localContext, 90, CircuitScriptParser.RULE_property_block_expr);
2471
2534
  try {
2472
2535
  this.enterOuterAlt(localContext, 1);
2473
2536
  {
2474
- this.state = 493;
2537
+ this.state = 504;
2475
2538
  this.property_key_expr();
2476
- this.state = 494;
2539
+ this.state = 505;
2477
2540
  this.match(CircuitScriptParser.T__0);
2478
- this.state = 495;
2541
+ this.state = 506;
2479
2542
  this.expressions_block();
2480
2543
  }
2481
2544
  }
@@ -2495,32 +2558,32 @@ class CircuitScriptParser extends antlr.Parser {
2495
2558
  }
2496
2559
  create_component_expr() {
2497
2560
  let localContext = new Create_component_exprContext(this.context, this.state);
2498
- this.enterRule(localContext, 88, CircuitScriptParser.RULE_create_component_expr);
2561
+ this.enterRule(localContext, 92, CircuitScriptParser.RULE_create_component_expr);
2499
2562
  let _la;
2500
2563
  try {
2501
2564
  this.enterOuterAlt(localContext, 1);
2502
2565
  {
2503
- this.state = 497;
2566
+ this.state = 508;
2504
2567
  this.match(CircuitScriptParser.Create);
2505
- this.state = 498;
2568
+ this.state = 509;
2506
2569
  this.match(CircuitScriptParser.Component);
2507
- this.state = 499;
2570
+ this.state = 510;
2508
2571
  this.match(CircuitScriptParser.T__0);
2509
- this.state = 500;
2572
+ this.state = 511;
2510
2573
  this.match(CircuitScriptParser.NEWLINE);
2511
- this.state = 501;
2574
+ this.state = 512;
2512
2575
  this.match(CircuitScriptParser.INDENT);
2513
- this.state = 504;
2576
+ this.state = 515;
2514
2577
  this.errorHandler.sync(this);
2515
2578
  _la = this.tokenStream.LA(1);
2516
2579
  do {
2517
2580
  {
2518
- this.state = 504;
2581
+ this.state = 515;
2519
2582
  this.errorHandler.sync(this);
2520
2583
  switch (this.tokenStream.LA(1)) {
2521
2584
  case CircuitScriptParser.NEWLINE:
2522
2585
  {
2523
- this.state = 502;
2586
+ this.state = 513;
2524
2587
  this.match(CircuitScriptParser.NEWLINE);
2525
2588
  }
2526
2589
  break;
@@ -2528,7 +2591,7 @@ class CircuitScriptParser extends antlr.Parser {
2528
2591
  case CircuitScriptParser.INTEGER_VALUE:
2529
2592
  case CircuitScriptParser.STRING_VALUE:
2530
2593
  {
2531
- this.state = 503;
2594
+ this.state = 514;
2532
2595
  this.property_expr();
2533
2596
  }
2534
2597
  break;
@@ -2536,11 +2599,11 @@ class CircuitScriptParser extends antlr.Parser {
2536
2599
  throw new antlr.NoViableAltException(this);
2537
2600
  }
2538
2601
  }
2539
- this.state = 506;
2602
+ this.state = 517;
2540
2603
  this.errorHandler.sync(this);
2541
2604
  _la = this.tokenStream.LA(1);
2542
2605
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2543
- this.state = 508;
2606
+ this.state = 519;
2544
2607
  this.match(CircuitScriptParser.DEDENT);
2545
2608
  }
2546
2609
  }
@@ -2560,26 +2623,26 @@ class CircuitScriptParser extends antlr.Parser {
2560
2623
  }
2561
2624
  graphic_expressions_block() {
2562
2625
  let localContext = new Graphic_expressions_blockContext(this.context, this.state);
2563
- this.enterRule(localContext, 90, CircuitScriptParser.RULE_graphic_expressions_block);
2626
+ this.enterRule(localContext, 94, CircuitScriptParser.RULE_graphic_expressions_block);
2564
2627
  let _la;
2565
2628
  try {
2566
2629
  this.enterOuterAlt(localContext, 1);
2567
2630
  {
2568
- this.state = 510;
2631
+ this.state = 521;
2569
2632
  this.match(CircuitScriptParser.NEWLINE);
2570
- this.state = 511;
2633
+ this.state = 522;
2571
2634
  this.match(CircuitScriptParser.INDENT);
2572
- this.state = 514;
2635
+ this.state = 525;
2573
2636
  this.errorHandler.sync(this);
2574
2637
  _la = this.tokenStream.LA(1);
2575
2638
  do {
2576
2639
  {
2577
- this.state = 514;
2640
+ this.state = 525;
2578
2641
  this.errorHandler.sync(this);
2579
2642
  switch (this.tokenStream.LA(1)) {
2580
2643
  case CircuitScriptParser.NEWLINE:
2581
2644
  {
2582
- this.state = 512;
2645
+ this.state = 523;
2583
2646
  this.match(CircuitScriptParser.NEWLINE);
2584
2647
  }
2585
2648
  break;
@@ -2587,7 +2650,7 @@ class CircuitScriptParser extends antlr.Parser {
2587
2650
  case CircuitScriptParser.For:
2588
2651
  case CircuitScriptParser.ID:
2589
2652
  {
2590
- this.state = 513;
2653
+ this.state = 524;
2591
2654
  this.graphic_expr();
2592
2655
  }
2593
2656
  break;
@@ -2595,11 +2658,11 @@ class CircuitScriptParser extends antlr.Parser {
2595
2658
  throw new antlr.NoViableAltException(this);
2596
2659
  }
2597
2660
  }
2598
- this.state = 516;
2661
+ this.state = 527;
2599
2662
  this.errorHandler.sync(this);
2600
2663
  _la = this.tokenStream.LA(1);
2601
2664
  } while (_la === 15 || _la === 25 || _la === 56 || _la === 64);
2602
- this.state = 518;
2665
+ this.state = 529;
2603
2666
  this.match(CircuitScriptParser.DEDENT);
2604
2667
  }
2605
2668
  }
@@ -2619,31 +2682,31 @@ class CircuitScriptParser extends antlr.Parser {
2619
2682
  }
2620
2683
  create_graphic_expr() {
2621
2684
  let localContext = new Create_graphic_exprContext(this.context, this.state);
2622
- this.enterRule(localContext, 92, CircuitScriptParser.RULE_create_graphic_expr);
2685
+ this.enterRule(localContext, 96, CircuitScriptParser.RULE_create_graphic_expr);
2623
2686
  let _la;
2624
2687
  try {
2625
2688
  this.enterOuterAlt(localContext, 1);
2626
2689
  {
2627
- this.state = 520;
2690
+ this.state = 531;
2628
2691
  this.match(CircuitScriptParser.Create);
2629
- this.state = 521;
2692
+ this.state = 532;
2630
2693
  this.match(CircuitScriptParser.Graphic);
2631
- this.state = 525;
2694
+ this.state = 536;
2632
2695
  this.errorHandler.sync(this);
2633
2696
  _la = this.tokenStream.LA(1);
2634
2697
  if (_la === 52) {
2635
2698
  {
2636
- this.state = 522;
2699
+ this.state = 533;
2637
2700
  this.match(CircuitScriptParser.OPEN_PAREN);
2638
- this.state = 523;
2701
+ this.state = 534;
2639
2702
  this.match(CircuitScriptParser.ID);
2640
- this.state = 524;
2703
+ this.state = 535;
2641
2704
  this.match(CircuitScriptParser.CLOSE_PAREN);
2642
2705
  }
2643
2706
  }
2644
- this.state = 527;
2707
+ this.state = 538;
2645
2708
  this.match(CircuitScriptParser.T__0);
2646
- this.state = 528;
2709
+ this.state = 539;
2647
2710
  this.graphic_expressions_block();
2648
2711
  }
2649
2712
  }
@@ -2663,54 +2726,54 @@ class CircuitScriptParser extends antlr.Parser {
2663
2726
  }
2664
2727
  create_module_expr() {
2665
2728
  let localContext = new Create_module_exprContext(this.context, this.state);
2666
- this.enterRule(localContext, 94, CircuitScriptParser.RULE_create_module_expr);
2729
+ this.enterRule(localContext, 98, CircuitScriptParser.RULE_create_module_expr);
2667
2730
  let _la;
2668
2731
  try {
2669
2732
  this.enterOuterAlt(localContext, 1);
2670
2733
  {
2671
- this.state = 530;
2734
+ this.state = 541;
2672
2735
  this.match(CircuitScriptParser.Create);
2673
- this.state = 531;
2736
+ this.state = 542;
2674
2737
  this.match(CircuitScriptParser.Module);
2675
- this.state = 532;
2738
+ this.state = 543;
2676
2739
  this.match(CircuitScriptParser.T__0);
2677
- this.state = 533;
2740
+ this.state = 544;
2678
2741
  this.match(CircuitScriptParser.NEWLINE);
2679
- this.state = 534;
2742
+ this.state = 545;
2680
2743
  this.match(CircuitScriptParser.INDENT);
2681
- this.state = 538;
2744
+ this.state = 549;
2682
2745
  this.errorHandler.sync(this);
2683
2746
  _la = this.tokenStream.LA(1);
2684
2747
  do {
2685
2748
  {
2686
- this.state = 538;
2749
+ this.state = 549;
2687
2750
  this.errorHandler.sync(this);
2688
- switch (this.interpreter.adaptivePredict(this.tokenStream, 54, this.context)) {
2751
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 57, this.context)) {
2689
2752
  case 1:
2690
2753
  {
2691
- this.state = 535;
2754
+ this.state = 546;
2692
2755
  this.match(CircuitScriptParser.NEWLINE);
2693
2756
  }
2694
2757
  break;
2695
2758
  case 2:
2696
2759
  {
2697
- this.state = 536;
2760
+ this.state = 547;
2698
2761
  this.property_expr();
2699
2762
  }
2700
2763
  break;
2701
2764
  case 3:
2702
2765
  {
2703
- this.state = 537;
2766
+ this.state = 548;
2704
2767
  this.property_block_expr();
2705
2768
  }
2706
2769
  break;
2707
2770
  }
2708
2771
  }
2709
- this.state = 540;
2772
+ this.state = 551;
2710
2773
  this.errorHandler.sync(this);
2711
2774
  _la = this.tokenStream.LA(1);
2712
2775
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2713
- this.state = 542;
2776
+ this.state = 553;
2714
2777
  this.match(CircuitScriptParser.DEDENT);
2715
2778
  }
2716
2779
  }
@@ -2730,27 +2793,27 @@ class CircuitScriptParser extends antlr.Parser {
2730
2793
  }
2731
2794
  nested_properties_inner() {
2732
2795
  let localContext = new Nested_properties_innerContext(this.context, this.state);
2733
- this.enterRule(localContext, 96, CircuitScriptParser.RULE_nested_properties_inner);
2796
+ this.enterRule(localContext, 100, CircuitScriptParser.RULE_nested_properties_inner);
2734
2797
  let _la;
2735
2798
  try {
2736
2799
  this.enterOuterAlt(localContext, 1);
2737
2800
  {
2738
2801
  {
2739
- this.state = 544;
2802
+ this.state = 555;
2740
2803
  this.match(CircuitScriptParser.NEWLINE);
2741
- this.state = 545;
2804
+ this.state = 556;
2742
2805
  this.match(CircuitScriptParser.INDENT);
2743
- this.state = 548;
2806
+ this.state = 559;
2744
2807
  this.errorHandler.sync(this);
2745
2808
  _la = this.tokenStream.LA(1);
2746
2809
  do {
2747
2810
  {
2748
- this.state = 548;
2811
+ this.state = 559;
2749
2812
  this.errorHandler.sync(this);
2750
2813
  switch (this.tokenStream.LA(1)) {
2751
2814
  case CircuitScriptParser.NEWLINE:
2752
2815
  {
2753
- this.state = 546;
2816
+ this.state = 557;
2754
2817
  this.match(CircuitScriptParser.NEWLINE);
2755
2818
  }
2756
2819
  break;
@@ -2758,7 +2821,7 @@ class CircuitScriptParser extends antlr.Parser {
2758
2821
  case CircuitScriptParser.INTEGER_VALUE:
2759
2822
  case CircuitScriptParser.STRING_VALUE:
2760
2823
  {
2761
- this.state = 547;
2824
+ this.state = 558;
2762
2825
  this.property_expr();
2763
2826
  }
2764
2827
  break;
@@ -2766,11 +2829,11 @@ class CircuitScriptParser extends antlr.Parser {
2766
2829
  throw new antlr.NoViableAltException(this);
2767
2830
  }
2768
2831
  }
2769
- this.state = 550;
2832
+ this.state = 561;
2770
2833
  this.errorHandler.sync(this);
2771
2834
  _la = this.tokenStream.LA(1);
2772
2835
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2773
- this.state = 552;
2836
+ this.state = 563;
2774
2837
  this.match(CircuitScriptParser.DEDENT);
2775
2838
  }
2776
2839
  }
@@ -2791,10 +2854,10 @@ class CircuitScriptParser extends antlr.Parser {
2791
2854
  }
2792
2855
  graphic_expr() {
2793
2856
  let localContext = new Graphic_exprContext(this.context, this.state);
2794
- this.enterRule(localContext, 98, CircuitScriptParser.RULE_graphic_expr);
2857
+ this.enterRule(localContext, 102, CircuitScriptParser.RULE_graphic_expr);
2795
2858
  let _la;
2796
2859
  try {
2797
- this.state = 580;
2860
+ this.state = 591;
2798
2861
  this.errorHandler.sync(this);
2799
2862
  switch (this.tokenStream.LA(1)) {
2800
2863
  case CircuitScriptParser.Pin:
@@ -2802,7 +2865,7 @@ class CircuitScriptParser extends antlr.Parser {
2802
2865
  localContext = new GraphicCommandExprContext(localContext);
2803
2866
  this.enterOuterAlt(localContext, 1);
2804
2867
  {
2805
- this.state = 554;
2868
+ this.state = 565;
2806
2869
  localContext._command = this.tokenStream.LT(1);
2807
2870
  _la = this.tokenStream.LA(1);
2808
2871
  if (!(_la === 15 || _la === 56)) {
@@ -2812,37 +2875,37 @@ class CircuitScriptParser extends antlr.Parser {
2812
2875
  this.errorHandler.reportMatch(this);
2813
2876
  this.consume();
2814
2877
  }
2815
- this.state = 556;
2878
+ this.state = 567;
2816
2879
  this.errorHandler.sync(this);
2817
2880
  _la = this.tokenStream.LA(1);
2818
2881
  if (_la === 1) {
2819
2882
  {
2820
- this.state = 555;
2883
+ this.state = 566;
2821
2884
  this.match(CircuitScriptParser.T__0);
2822
2885
  }
2823
2886
  }
2824
- this.state = 564;
2887
+ this.state = 575;
2825
2888
  this.errorHandler.sync(this);
2826
- switch (this.interpreter.adaptivePredict(this.tokenStream, 59, this.context)) {
2889
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 62, this.context)) {
2827
2890
  case 1:
2828
2891
  {
2829
- this.state = 558;
2892
+ this.state = 569;
2830
2893
  this.parameters();
2831
2894
  }
2832
2895
  break;
2833
2896
  case 2:
2834
2897
  {
2835
- this.state = 559;
2898
+ this.state = 570;
2836
2899
  this.match(CircuitScriptParser.OPEN_PAREN);
2837
- this.state = 560;
2900
+ this.state = 571;
2838
2901
  this.parameters();
2839
- this.state = 561;
2902
+ this.state = 572;
2840
2903
  this.match(CircuitScriptParser.CLOSE_PAREN);
2841
2904
  }
2842
2905
  break;
2843
2906
  case 3:
2844
2907
  {
2845
- this.state = 563;
2908
+ this.state = 574;
2846
2909
  this.nested_properties_inner();
2847
2910
  }
2848
2911
  break;
@@ -2853,33 +2916,33 @@ class CircuitScriptParser extends antlr.Parser {
2853
2916
  localContext = new GraphicForExprContext(localContext);
2854
2917
  this.enterOuterAlt(localContext, 2);
2855
2918
  {
2856
- this.state = 566;
2919
+ this.state = 577;
2857
2920
  this.match(CircuitScriptParser.For);
2858
- this.state = 567;
2921
+ this.state = 578;
2859
2922
  this.match(CircuitScriptParser.ID);
2860
- this.state = 572;
2923
+ this.state = 583;
2861
2924
  this.errorHandler.sync(this);
2862
2925
  _la = this.tokenStream.LA(1);
2863
2926
  while (_la === 2) {
2864
2927
  {
2865
2928
  {
2866
- this.state = 568;
2929
+ this.state = 579;
2867
2930
  this.match(CircuitScriptParser.T__1);
2868
- this.state = 569;
2931
+ this.state = 580;
2869
2932
  this.match(CircuitScriptParser.ID);
2870
2933
  }
2871
2934
  }
2872
- this.state = 574;
2935
+ this.state = 585;
2873
2936
  this.errorHandler.sync(this);
2874
2937
  _la = this.tokenStream.LA(1);
2875
2938
  }
2876
- this.state = 575;
2939
+ this.state = 586;
2877
2940
  this.match(CircuitScriptParser.In);
2878
- this.state = 576;
2941
+ this.state = 587;
2879
2942
  this.data_expr(0);
2880
- this.state = 577;
2943
+ this.state = 588;
2881
2944
  this.match(CircuitScriptParser.T__0);
2882
- this.state = 578;
2945
+ this.state = 589;
2883
2946
  this.graphic_expressions_block();
2884
2947
  }
2885
2948
  break;
@@ -2903,15 +2966,15 @@ class CircuitScriptParser extends antlr.Parser {
2903
2966
  }
2904
2967
  property_expr() {
2905
2968
  let localContext = new Property_exprContext(this.context, this.state);
2906
- this.enterRule(localContext, 100, CircuitScriptParser.RULE_property_expr);
2969
+ this.enterRule(localContext, 104, CircuitScriptParser.RULE_property_expr);
2907
2970
  try {
2908
2971
  this.enterOuterAlt(localContext, 1);
2909
2972
  {
2910
- this.state = 582;
2973
+ this.state = 593;
2911
2974
  this.property_key_expr();
2912
- this.state = 583;
2975
+ this.state = 594;
2913
2976
  this.match(CircuitScriptParser.T__0);
2914
- this.state = 584;
2977
+ this.state = 595;
2915
2978
  this.property_value_expr();
2916
2979
  }
2917
2980
  }
@@ -2931,12 +2994,12 @@ class CircuitScriptParser extends antlr.Parser {
2931
2994
  }
2932
2995
  property_key_expr() {
2933
2996
  let localContext = new Property_key_exprContext(this.context, this.state);
2934
- this.enterRule(localContext, 102, CircuitScriptParser.RULE_property_key_expr);
2997
+ this.enterRule(localContext, 106, CircuitScriptParser.RULE_property_key_expr);
2935
2998
  let _la;
2936
2999
  try {
2937
3000
  this.enterOuterAlt(localContext, 1);
2938
3001
  {
2939
- this.state = 586;
3002
+ this.state = 597;
2940
3003
  _la = this.tokenStream.LA(1);
2941
3004
  if (!(((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 19) !== 0))) {
2942
3005
  this.errorHandler.recoverInline(this);
@@ -2963,17 +3026,17 @@ class CircuitScriptParser extends antlr.Parser {
2963
3026
  }
2964
3027
  property_value_expr() {
2965
3028
  let localContext = new Property_value_exprContext(this.context, this.state);
2966
- this.enterRule(localContext, 104, CircuitScriptParser.RULE_property_value_expr);
3029
+ this.enterRule(localContext, 108, CircuitScriptParser.RULE_property_value_expr);
2967
3030
  let _la;
2968
3031
  try {
2969
- this.state = 597;
3032
+ this.state = 608;
2970
3033
  this.errorHandler.sync(this);
2971
3034
  switch (this.tokenStream.LA(1)) {
2972
3035
  case CircuitScriptParser.NEWLINE:
2973
3036
  localContext = new Nested_propertiesContext(localContext);
2974
3037
  this.enterOuterAlt(localContext, 1);
2975
3038
  {
2976
- this.state = 588;
3039
+ this.state = 599;
2977
3040
  this.nested_properties_inner();
2978
3041
  }
2979
3042
  break;
@@ -2994,21 +3057,21 @@ class CircuitScriptParser extends antlr.Parser {
2994
3057
  localContext = new Single_line_propertyContext(localContext);
2995
3058
  this.enterOuterAlt(localContext, 2);
2996
3059
  {
2997
- this.state = 589;
3060
+ this.state = 600;
2998
3061
  this.data_expr(0);
2999
- this.state = 594;
3062
+ this.state = 605;
3000
3063
  this.errorHandler.sync(this);
3001
3064
  _la = this.tokenStream.LA(1);
3002
3065
  while (_la === 2) {
3003
3066
  {
3004
3067
  {
3005
- this.state = 590;
3068
+ this.state = 601;
3006
3069
  this.match(CircuitScriptParser.T__1);
3007
- this.state = 591;
3070
+ this.state = 602;
3008
3071
  this.data_expr(0);
3009
3072
  }
3010
3073
  }
3011
- this.state = 596;
3074
+ this.state = 607;
3012
3075
  this.errorHandler.sync(this);
3013
3076
  _la = this.tokenStream.LA(1);
3014
3077
  }
@@ -3034,29 +3097,29 @@ class CircuitScriptParser extends antlr.Parser {
3034
3097
  }
3035
3098
  wire_atom_expr() {
3036
3099
  let localContext = new Wire_atom_exprContext(this.context, this.state);
3037
- this.enterRule(localContext, 106, CircuitScriptParser.RULE_wire_atom_expr);
3100
+ this.enterRule(localContext, 110, CircuitScriptParser.RULE_wire_atom_expr);
3038
3101
  try {
3039
- this.state = 605;
3102
+ this.state = 616;
3040
3103
  this.errorHandler.sync(this);
3041
- switch (this.interpreter.adaptivePredict(this.tokenStream, 65, this.context)) {
3104
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 68, this.context)) {
3042
3105
  case 1:
3043
3106
  localContext = new Wire_expr_direction_valueContext(localContext);
3044
3107
  this.enterOuterAlt(localContext, 1);
3045
3108
  {
3046
- this.state = 599;
3109
+ this.state = 610;
3047
3110
  this.match(CircuitScriptParser.ID);
3048
- this.state = 602;
3111
+ this.state = 613;
3049
3112
  this.errorHandler.sync(this);
3050
- switch (this.interpreter.adaptivePredict(this.tokenStream, 64, this.context)) {
3113
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 67, this.context)) {
3051
3114
  case 1:
3052
3115
  {
3053
- this.state = 600;
3116
+ this.state = 611;
3054
3117
  this.match(CircuitScriptParser.INTEGER_VALUE);
3055
3118
  }
3056
3119
  break;
3057
3120
  case 2:
3058
3121
  {
3059
- this.state = 601;
3122
+ this.state = 612;
3060
3123
  this.data_expr(0);
3061
3124
  }
3062
3125
  break;
@@ -3067,7 +3130,7 @@ class CircuitScriptParser extends antlr.Parser {
3067
3130
  localContext = new Wire_expr_direction_onlyContext(localContext);
3068
3131
  this.enterOuterAlt(localContext, 2);
3069
3132
  {
3070
- this.state = 604;
3133
+ this.state = 615;
3071
3134
  this.match(CircuitScriptParser.ID);
3072
3135
  }
3073
3136
  break;
@@ -3089,28 +3152,28 @@ class CircuitScriptParser extends antlr.Parser {
3089
3152
  }
3090
3153
  wire_expr() {
3091
3154
  let localContext = new Wire_exprContext(this.context, this.state);
3092
- this.enterRule(localContext, 108, CircuitScriptParser.RULE_wire_expr);
3155
+ this.enterRule(localContext, 112, CircuitScriptParser.RULE_wire_expr);
3093
3156
  try {
3094
3157
  let alternative;
3095
3158
  this.enterOuterAlt(localContext, 1);
3096
3159
  {
3097
- this.state = 607;
3160
+ this.state = 618;
3098
3161
  this.match(CircuitScriptParser.Wire);
3099
- this.state = 611;
3162
+ this.state = 622;
3100
3163
  this.errorHandler.sync(this);
3101
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 66, this.context);
3164
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
3102
3165
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3103
3166
  if (alternative === 1) {
3104
3167
  {
3105
3168
  {
3106
- this.state = 608;
3169
+ this.state = 619;
3107
3170
  this.wire_atom_expr();
3108
3171
  }
3109
3172
  }
3110
3173
  }
3111
- this.state = 613;
3174
+ this.state = 624;
3112
3175
  this.errorHandler.sync(this);
3113
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 66, this.context);
3176
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
3114
3177
  }
3115
3178
  }
3116
3179
  }
@@ -3130,44 +3193,44 @@ class CircuitScriptParser extends antlr.Parser {
3130
3193
  }
3131
3194
  array_expr() {
3132
3195
  let localContext = new Array_exprContext(this.context, this.state);
3133
- this.enterRule(localContext, 110, CircuitScriptParser.RULE_array_expr);
3196
+ this.enterRule(localContext, 114, CircuitScriptParser.RULE_array_expr);
3134
3197
  let _la;
3135
3198
  try {
3136
3199
  this.enterOuterAlt(localContext, 1);
3137
3200
  {
3138
- this.state = 614;
3139
- this.match(CircuitScriptParser.T__5);
3140
3201
  this.state = 625;
3202
+ this.match(CircuitScriptParser.T__5);
3203
+ this.state = 636;
3141
3204
  this.errorHandler.sync(this);
3142
3205
  _la = this.tokenStream.LA(1);
3143
3206
  while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484736) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 1041415) !== 0)) {
3144
3207
  {
3145
3208
  {
3146
- this.state = 615;
3209
+ this.state = 626;
3147
3210
  this.data_expr(0);
3148
- this.state = 620;
3211
+ this.state = 631;
3149
3212
  this.errorHandler.sync(this);
3150
3213
  _la = this.tokenStream.LA(1);
3151
3214
  while (_la === 2) {
3152
3215
  {
3153
3216
  {
3154
- this.state = 616;
3217
+ this.state = 627;
3155
3218
  this.match(CircuitScriptParser.T__1);
3156
- this.state = 617;
3219
+ this.state = 628;
3157
3220
  this.data_expr(0);
3158
3221
  }
3159
3222
  }
3160
- this.state = 622;
3223
+ this.state = 633;
3161
3224
  this.errorHandler.sync(this);
3162
3225
  _la = this.tokenStream.LA(1);
3163
3226
  }
3164
3227
  }
3165
3228
  }
3166
- this.state = 627;
3229
+ this.state = 638;
3167
3230
  this.errorHandler.sync(this);
3168
3231
  _la = this.tokenStream.LA(1);
3169
3232
  }
3170
- this.state = 628;
3233
+ this.state = 639;
3171
3234
  this.match(CircuitScriptParser.T__6);
3172
3235
  }
3173
3236
  }
@@ -3187,24 +3250,24 @@ class CircuitScriptParser extends antlr.Parser {
3187
3250
  }
3188
3251
  point_expr() {
3189
3252
  let localContext = new Point_exprContext(this.context, this.state);
3190
- this.enterRule(localContext, 112, CircuitScriptParser.RULE_point_expr);
3253
+ this.enterRule(localContext, 116, CircuitScriptParser.RULE_point_expr);
3191
3254
  try {
3192
3255
  this.enterOuterAlt(localContext, 1);
3193
3256
  {
3194
- this.state = 630;
3257
+ this.state = 641;
3195
3258
  this.match(CircuitScriptParser.Point);
3196
- this.state = 633;
3259
+ this.state = 644;
3197
3260
  this.errorHandler.sync(this);
3198
- switch (this.interpreter.adaptivePredict(this.tokenStream, 69, this.context)) {
3261
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 72, this.context)) {
3199
3262
  case 1:
3200
3263
  {
3201
- this.state = 631;
3264
+ this.state = 642;
3202
3265
  this.match(CircuitScriptParser.ID);
3203
3266
  }
3204
3267
  break;
3205
3268
  case 2:
3206
3269
  {
3207
- this.state = 632;
3270
+ this.state = 643;
3208
3271
  this.data_expr(0);
3209
3272
  }
3210
3273
  break;
@@ -3227,13 +3290,13 @@ class CircuitScriptParser extends antlr.Parser {
3227
3290
  }
3228
3291
  import_expr() {
3229
3292
  let localContext = new Import_exprContext(this.context, this.state);
3230
- this.enterRule(localContext, 114, CircuitScriptParser.RULE_import_expr);
3293
+ this.enterRule(localContext, 118, CircuitScriptParser.RULE_import_expr);
3231
3294
  try {
3232
3295
  this.enterOuterAlt(localContext, 1);
3233
3296
  {
3234
- this.state = 635;
3297
+ this.state = 646;
3235
3298
  this.match(CircuitScriptParser.Import);
3236
- this.state = 636;
3299
+ this.state = 647;
3237
3300
  this.match(CircuitScriptParser.ID);
3238
3301
  }
3239
3302
  }
@@ -3253,12 +3316,12 @@ class CircuitScriptParser extends antlr.Parser {
3253
3316
  }
3254
3317
  frame_expr() {
3255
3318
  let localContext = new Frame_exprContext(this.context, this.state);
3256
- this.enterRule(localContext, 116, CircuitScriptParser.RULE_frame_expr);
3319
+ this.enterRule(localContext, 120, CircuitScriptParser.RULE_frame_expr);
3257
3320
  let _la;
3258
3321
  try {
3259
3322
  this.enterOuterAlt(localContext, 1);
3260
3323
  {
3261
- this.state = 638;
3324
+ this.state = 649;
3262
3325
  _la = this.tokenStream.LA(1);
3263
3326
  if (!(_la === 32 || _la === 33)) {
3264
3327
  this.errorHandler.recoverInline(this);
@@ -3267,9 +3330,9 @@ class CircuitScriptParser extends antlr.Parser {
3267
3330
  this.errorHandler.reportMatch(this);
3268
3331
  this.consume();
3269
3332
  }
3270
- this.state = 639;
3333
+ this.state = 650;
3271
3334
  this.match(CircuitScriptParser.T__0);
3272
- this.state = 640;
3335
+ this.state = 651;
3273
3336
  this.expressions_block();
3274
3337
  }
3275
3338
  }
@@ -3289,42 +3352,42 @@ class CircuitScriptParser extends antlr.Parser {
3289
3352
  }
3290
3353
  if_expr() {
3291
3354
  let localContext = new If_exprContext(this.context, this.state);
3292
- this.enterRule(localContext, 118, CircuitScriptParser.RULE_if_expr);
3355
+ this.enterRule(localContext, 122, CircuitScriptParser.RULE_if_expr);
3293
3356
  let _la;
3294
3357
  try {
3295
3358
  let alternative;
3296
3359
  this.enterOuterAlt(localContext, 1);
3297
3360
  {
3298
- this.state = 642;
3361
+ this.state = 653;
3299
3362
  this.match(CircuitScriptParser.If);
3300
- this.state = 643;
3363
+ this.state = 654;
3301
3364
  this.data_expr(0);
3302
- this.state = 644;
3365
+ this.state = 655;
3303
3366
  this.match(CircuitScriptParser.T__0);
3304
- this.state = 645;
3367
+ this.state = 656;
3305
3368
  this.expressions_block();
3306
- this.state = 649;
3369
+ this.state = 660;
3307
3370
  this.errorHandler.sync(this);
3308
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 70, this.context);
3371
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 73, this.context);
3309
3372
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3310
3373
  if (alternative === 1) {
3311
3374
  {
3312
3375
  {
3313
- this.state = 646;
3376
+ this.state = 657;
3314
3377
  this.if_inner_expr();
3315
3378
  }
3316
3379
  }
3317
3380
  }
3318
- this.state = 651;
3381
+ this.state = 662;
3319
3382
  this.errorHandler.sync(this);
3320
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 70, this.context);
3383
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 73, this.context);
3321
3384
  }
3322
- this.state = 653;
3385
+ this.state = 664;
3323
3386
  this.errorHandler.sync(this);
3324
3387
  _la = this.tokenStream.LA(1);
3325
3388
  if (_la === 30) {
3326
3389
  {
3327
- this.state = 652;
3390
+ this.state = 663;
3328
3391
  this.else_expr();
3329
3392
  }
3330
3393
  }
@@ -3346,19 +3409,19 @@ class CircuitScriptParser extends antlr.Parser {
3346
3409
  }
3347
3410
  if_inner_expr() {
3348
3411
  let localContext = new If_inner_exprContext(this.context, this.state);
3349
- this.enterRule(localContext, 120, CircuitScriptParser.RULE_if_inner_expr);
3412
+ this.enterRule(localContext, 124, CircuitScriptParser.RULE_if_inner_expr);
3350
3413
  try {
3351
3414
  this.enterOuterAlt(localContext, 1);
3352
3415
  {
3353
- this.state = 655;
3416
+ this.state = 666;
3354
3417
  this.match(CircuitScriptParser.Else);
3355
- this.state = 656;
3418
+ this.state = 667;
3356
3419
  this.match(CircuitScriptParser.If);
3357
- this.state = 657;
3420
+ this.state = 668;
3358
3421
  this.data_expr(0);
3359
- this.state = 658;
3422
+ this.state = 669;
3360
3423
  this.match(CircuitScriptParser.T__0);
3361
- this.state = 659;
3424
+ this.state = 670;
3362
3425
  this.expressions_block();
3363
3426
  }
3364
3427
  }
@@ -3378,15 +3441,15 @@ class CircuitScriptParser extends antlr.Parser {
3378
3441
  }
3379
3442
  else_expr() {
3380
3443
  let localContext = new Else_exprContext(this.context, this.state);
3381
- this.enterRule(localContext, 122, CircuitScriptParser.RULE_else_expr);
3444
+ this.enterRule(localContext, 126, CircuitScriptParser.RULE_else_expr);
3382
3445
  try {
3383
3446
  this.enterOuterAlt(localContext, 1);
3384
3447
  {
3385
- this.state = 661;
3448
+ this.state = 672;
3386
3449
  this.match(CircuitScriptParser.Else);
3387
- this.state = 662;
3450
+ this.state = 673;
3388
3451
  this.match(CircuitScriptParser.T__0);
3389
- this.state = 663;
3452
+ this.state = 674;
3390
3453
  this.expressions_block();
3391
3454
  }
3392
3455
  }
@@ -3406,17 +3469,17 @@ class CircuitScriptParser extends antlr.Parser {
3406
3469
  }
3407
3470
  while_expr() {
3408
3471
  let localContext = new While_exprContext(this.context, this.state);
3409
- this.enterRule(localContext, 124, CircuitScriptParser.RULE_while_expr);
3472
+ this.enterRule(localContext, 128, CircuitScriptParser.RULE_while_expr);
3410
3473
  try {
3411
3474
  this.enterOuterAlt(localContext, 1);
3412
3475
  {
3413
- this.state = 665;
3476
+ this.state = 676;
3414
3477
  this.match(CircuitScriptParser.While);
3415
- this.state = 666;
3478
+ this.state = 677;
3416
3479
  this.data_expr(0);
3417
- this.state = 667;
3480
+ this.state = 678;
3418
3481
  this.match(CircuitScriptParser.T__0);
3419
- this.state = 668;
3482
+ this.state = 679;
3420
3483
  this.expressions_block();
3421
3484
  }
3422
3485
  }
@@ -3436,38 +3499,38 @@ class CircuitScriptParser extends antlr.Parser {
3436
3499
  }
3437
3500
  for_expr() {
3438
3501
  let localContext = new For_exprContext(this.context, this.state);
3439
- this.enterRule(localContext, 126, CircuitScriptParser.RULE_for_expr);
3502
+ this.enterRule(localContext, 130, CircuitScriptParser.RULE_for_expr);
3440
3503
  let _la;
3441
3504
  try {
3442
3505
  this.enterOuterAlt(localContext, 1);
3443
3506
  {
3444
- this.state = 670;
3507
+ this.state = 681;
3445
3508
  this.match(CircuitScriptParser.For);
3446
- this.state = 671;
3509
+ this.state = 682;
3447
3510
  this.match(CircuitScriptParser.ID);
3448
- this.state = 676;
3511
+ this.state = 687;
3449
3512
  this.errorHandler.sync(this);
3450
3513
  _la = this.tokenStream.LA(1);
3451
3514
  while (_la === 2) {
3452
3515
  {
3453
3516
  {
3454
- this.state = 672;
3517
+ this.state = 683;
3455
3518
  this.match(CircuitScriptParser.T__1);
3456
- this.state = 673;
3519
+ this.state = 684;
3457
3520
  this.match(CircuitScriptParser.ID);
3458
3521
  }
3459
3522
  }
3460
- this.state = 678;
3523
+ this.state = 689;
3461
3524
  this.errorHandler.sync(this);
3462
3525
  _la = this.tokenStream.LA(1);
3463
3526
  }
3464
- this.state = 679;
3527
+ this.state = 690;
3465
3528
  this.match(CircuitScriptParser.In);
3466
- this.state = 680;
3529
+ this.state = 691;
3467
3530
  this.data_expr(0);
3468
- this.state = 681;
3531
+ this.state = 692;
3469
3532
  this.match(CircuitScriptParser.T__0);
3470
- this.state = 682;
3533
+ this.state = 693;
3471
3534
  this.expressions_block();
3472
3535
  }
3473
3536
  }
@@ -3487,7 +3550,7 @@ class CircuitScriptParser extends antlr.Parser {
3487
3550
  }
3488
3551
  sempred(localContext, ruleIndex, predIndex) {
3489
3552
  switch (ruleIndex) {
3490
- case 31:
3553
+ case 33:
3491
3554
  return this.data_expr_sempred(localContext, predIndex);
3492
3555
  }
3493
3556
  return true;
@@ -3585,68 +3648,70 @@ CircuitScriptParser.INDENT = 66;
3585
3648
  CircuitScriptParser.DEDENT = 67;
3586
3649
  CircuitScriptParser.RULE_script = 0;
3587
3650
  CircuitScriptParser.RULE_expression = 1;
3588
- CircuitScriptParser.RULE_expressions_block = 2;
3589
- CircuitScriptParser.RULE_path_blocks = 3;
3590
- CircuitScriptParser.RULE_path_block_inner = 4;
3591
- CircuitScriptParser.RULE_property_set_expr2 = 5;
3592
- CircuitScriptParser.RULE_assignment_expr2 = 6;
3593
- CircuitScriptParser.RULE_pin_select_expr = 7;
3594
- CircuitScriptParser.RULE_component_modifier_expr = 8;
3595
- CircuitScriptParser.RULE_data_expr_with_assignment = 9;
3596
- CircuitScriptParser.RULE_add_component_expr = 10;
3597
- CircuitScriptParser.RULE_component_select_expr = 11;
3598
- CircuitScriptParser.RULE_pin_select_expr2 = 12;
3599
- CircuitScriptParser.RULE_at_component_expr = 13;
3600
- CircuitScriptParser.RULE_to_component_expr = 14;
3601
- CircuitScriptParser.RULE_at_to_multiple_expr = 15;
3602
- CircuitScriptParser.RULE_at_to_multiple_line_expr = 16;
3603
- CircuitScriptParser.RULE_at_to_multiple_line_expr_to_pin = 17;
3604
- CircuitScriptParser.RULE_at_block = 18;
3605
- CircuitScriptParser.RULE_at_block_expressions = 19;
3606
- CircuitScriptParser.RULE_at_block_pin_expr = 20;
3607
- CircuitScriptParser.RULE_at_block_pin_expression_simple = 21;
3608
- CircuitScriptParser.RULE_at_block_pin_expression_complex = 22;
3609
- CircuitScriptParser.RULE_break_keyword = 23;
3610
- CircuitScriptParser.RULE_continue_keyword = 24;
3611
- CircuitScriptParser.RULE_assignment_expr = 25;
3612
- CircuitScriptParser.RULE_operator_assignment_expr = 26;
3613
- CircuitScriptParser.RULE_keyword_assignment_expr = 27;
3614
- CircuitScriptParser.RULE_parameters = 28;
3615
- CircuitScriptParser.RULE_property_set_expr = 29;
3616
- CircuitScriptParser.RULE_double_dot_property_set_expr = 30;
3617
- CircuitScriptParser.RULE_data_expr = 31;
3618
- CircuitScriptParser.RULE_binary_operator = 32;
3619
- CircuitScriptParser.RULE_unary_operator = 33;
3620
- CircuitScriptParser.RULE_value_expr = 34;
3621
- CircuitScriptParser.RULE_function_def_expr = 35;
3622
- CircuitScriptParser.RULE_function_expr = 36;
3623
- CircuitScriptParser.RULE_function_args_expr = 37;
3624
- CircuitScriptParser.RULE_atom_expr = 38;
3625
- CircuitScriptParser.RULE_trailer_expr = 39;
3626
- CircuitScriptParser.RULE_function_call_expr = 40;
3627
- CircuitScriptParser.RULE_net_namespace_expr = 41;
3628
- CircuitScriptParser.RULE_function_return_expr = 42;
3629
- CircuitScriptParser.RULE_property_block_expr = 43;
3630
- CircuitScriptParser.RULE_create_component_expr = 44;
3631
- CircuitScriptParser.RULE_graphic_expressions_block = 45;
3632
- CircuitScriptParser.RULE_create_graphic_expr = 46;
3633
- CircuitScriptParser.RULE_create_module_expr = 47;
3634
- CircuitScriptParser.RULE_nested_properties_inner = 48;
3635
- CircuitScriptParser.RULE_graphic_expr = 49;
3636
- CircuitScriptParser.RULE_property_expr = 50;
3637
- CircuitScriptParser.RULE_property_key_expr = 51;
3638
- CircuitScriptParser.RULE_property_value_expr = 52;
3639
- CircuitScriptParser.RULE_wire_atom_expr = 53;
3640
- CircuitScriptParser.RULE_wire_expr = 54;
3641
- CircuitScriptParser.RULE_array_expr = 55;
3642
- CircuitScriptParser.RULE_point_expr = 56;
3643
- CircuitScriptParser.RULE_import_expr = 57;
3644
- CircuitScriptParser.RULE_frame_expr = 58;
3645
- CircuitScriptParser.RULE_if_expr = 59;
3646
- CircuitScriptParser.RULE_if_inner_expr = 60;
3647
- CircuitScriptParser.RULE_else_expr = 61;
3648
- CircuitScriptParser.RULE_while_expr = 62;
3649
- CircuitScriptParser.RULE_for_expr = 63;
3651
+ CircuitScriptParser.RULE_flow_expressions = 2;
3652
+ CircuitScriptParser.RULE_graph_expressions = 3;
3653
+ CircuitScriptParser.RULE_graph_linear_expression = 4;
3654
+ CircuitScriptParser.RULE_expressions_block = 5;
3655
+ CircuitScriptParser.RULE_path_block = 6;
3656
+ CircuitScriptParser.RULE_property_set_expr2 = 7;
3657
+ CircuitScriptParser.RULE_assignment_expr2 = 8;
3658
+ CircuitScriptParser.RULE_pin_select_expr = 9;
3659
+ CircuitScriptParser.RULE_component_modifier_expr = 10;
3660
+ CircuitScriptParser.RULE_data_expr_with_assignment = 11;
3661
+ CircuitScriptParser.RULE_add_component_expr = 12;
3662
+ CircuitScriptParser.RULE_component_select_expr = 13;
3663
+ CircuitScriptParser.RULE_pin_select_expr2 = 14;
3664
+ CircuitScriptParser.RULE_at_component_expr = 15;
3665
+ CircuitScriptParser.RULE_to_component_expr = 16;
3666
+ CircuitScriptParser.RULE_at_to_multiple_expr = 17;
3667
+ CircuitScriptParser.RULE_at_to_multiple_line_expr = 18;
3668
+ CircuitScriptParser.RULE_at_to_multiple_line_expr_to_pin = 19;
3669
+ CircuitScriptParser.RULE_at_block = 20;
3670
+ CircuitScriptParser.RULE_at_block_expressions = 21;
3671
+ CircuitScriptParser.RULE_at_block_pin_expr = 22;
3672
+ CircuitScriptParser.RULE_at_block_pin_expression_simple = 23;
3673
+ CircuitScriptParser.RULE_at_block_pin_expression_complex = 24;
3674
+ CircuitScriptParser.RULE_break_keyword = 25;
3675
+ CircuitScriptParser.RULE_continue_keyword = 26;
3676
+ CircuitScriptParser.RULE_assignment_expr = 27;
3677
+ CircuitScriptParser.RULE_operator_assignment_expr = 28;
3678
+ CircuitScriptParser.RULE_keyword_assignment_expr = 29;
3679
+ CircuitScriptParser.RULE_parameters = 30;
3680
+ CircuitScriptParser.RULE_property_set_expr = 31;
3681
+ CircuitScriptParser.RULE_double_dot_property_set_expr = 32;
3682
+ CircuitScriptParser.RULE_data_expr = 33;
3683
+ CircuitScriptParser.RULE_binary_operator = 34;
3684
+ CircuitScriptParser.RULE_unary_operator = 35;
3685
+ CircuitScriptParser.RULE_value_expr = 36;
3686
+ CircuitScriptParser.RULE_function_def_expr = 37;
3687
+ CircuitScriptParser.RULE_function_expr = 38;
3688
+ CircuitScriptParser.RULE_function_args_expr = 39;
3689
+ CircuitScriptParser.RULE_atom_expr = 40;
3690
+ CircuitScriptParser.RULE_trailer_expr = 41;
3691
+ CircuitScriptParser.RULE_function_call_expr = 42;
3692
+ CircuitScriptParser.RULE_net_namespace_expr = 43;
3693
+ CircuitScriptParser.RULE_function_return_expr = 44;
3694
+ CircuitScriptParser.RULE_property_block_expr = 45;
3695
+ CircuitScriptParser.RULE_create_component_expr = 46;
3696
+ CircuitScriptParser.RULE_graphic_expressions_block = 47;
3697
+ CircuitScriptParser.RULE_create_graphic_expr = 48;
3698
+ CircuitScriptParser.RULE_create_module_expr = 49;
3699
+ CircuitScriptParser.RULE_nested_properties_inner = 50;
3700
+ CircuitScriptParser.RULE_graphic_expr = 51;
3701
+ CircuitScriptParser.RULE_property_expr = 52;
3702
+ CircuitScriptParser.RULE_property_key_expr = 53;
3703
+ CircuitScriptParser.RULE_property_value_expr = 54;
3704
+ CircuitScriptParser.RULE_wire_atom_expr = 55;
3705
+ CircuitScriptParser.RULE_wire_expr = 56;
3706
+ CircuitScriptParser.RULE_array_expr = 57;
3707
+ CircuitScriptParser.RULE_point_expr = 58;
3708
+ CircuitScriptParser.RULE_import_expr = 59;
3709
+ CircuitScriptParser.RULE_frame_expr = 60;
3710
+ CircuitScriptParser.RULE_if_expr = 61;
3711
+ CircuitScriptParser.RULE_if_inner_expr = 62;
3712
+ CircuitScriptParser.RULE_else_expr = 63;
3713
+ CircuitScriptParser.RULE_while_expr = 64;
3714
+ CircuitScriptParser.RULE_for_expr = 65;
3650
3715
  CircuitScriptParser.literalNames = [
3651
3716
  null, "':'", "','", "'='", "'..'", "'.'", "'['", "']'", "'break'",
3652
3717
  "'branch'", "'create'", "'component'", "'graphic'", "'module'",
@@ -3671,8 +3736,9 @@ CircuitScriptParser.symbolicNames = [
3671
3736
  "ALPHA_NUMERIC", "WS", "NEWLINE", "COMMENT", "INDENT", "DEDENT"
3672
3737
  ];
3673
3738
  CircuitScriptParser.ruleNames = [
3674
- "script", "expression", "expressions_block", "path_blocks", "path_block_inner",
3675
- "property_set_expr2", "assignment_expr2", "pin_select_expr", "component_modifier_expr",
3739
+ "script", "expression", "flow_expressions", "graph_expressions",
3740
+ "graph_linear_expression", "expressions_block", "path_block", "property_set_expr2",
3741
+ "assignment_expr2", "pin_select_expr", "component_modifier_expr",
3676
3742
  "data_expr_with_assignment", "add_component_expr", "component_select_expr",
3677
3743
  "pin_select_expr2", "at_component_expr", "to_component_expr", "at_to_multiple_expr",
3678
3744
  "at_to_multiple_line_expr", "at_to_multiple_line_expr_to_pin", "at_block",
@@ -3691,7 +3757,7 @@ CircuitScriptParser.ruleNames = [
3691
3757
  "for_expr",
3692
3758
  ];
3693
3759
  CircuitScriptParser._serializedATN = [
3694
- 4, 1, 67, 685, 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,
3760
+ 4, 1, 67, 696, 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,
3695
3761
  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,
3696
3762
  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,
3697
3763
  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,
@@ -3700,248 +3766,252 @@ CircuitScriptParser._serializedATN = [
3700
3766
  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,
3701
3767
  7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52,
3702
3768
  2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59,
3703
- 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 1, 0, 1, 0, 5, 0, 131, 8, 0,
3704
- 10, 0, 12, 0, 134, 9, 0, 1, 0, 1, 0, 4, 0, 138, 8, 0, 11, 0, 12, 0, 139, 1, 0, 1, 0, 1, 1,
3705
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3706
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 166, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 4, 2, 172, 8, 2, 11, 2,
3707
- 12, 2, 173, 1, 2, 1, 2, 1, 3, 4, 3, 179, 8, 3, 11, 3, 12, 3, 180, 1, 4, 1, 4, 1, 4, 1, 4, 1,
3708
- 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 4, 5, 193, 8, 5, 11, 5, 12, 5, 194, 1, 5, 1, 5, 1, 6, 1, 6,
3709
- 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 3, 8, 210, 8, 8, 1, 9, 1, 9, 3, 9, 214,
3710
- 8, 9, 1, 9, 5, 9, 217, 8, 9, 10, 9, 12, 9, 220, 9, 9, 1, 9, 3, 9, 223, 8, 9, 1, 10, 1, 10,
3711
- 1, 10, 1, 11, 1, 11, 1, 11, 3, 11, 231, 8, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 14,
3712
- 1, 14, 1, 14, 1, 14, 5, 14, 242, 8, 14, 10, 14, 12, 14, 245, 9, 14, 1, 15, 1, 15, 1, 15,
3713
- 1, 15, 1, 15, 1, 15, 5, 15, 253, 8, 15, 10, 15, 12, 15, 256, 9, 15, 1, 15, 1, 15, 1, 15,
3714
- 1, 15, 1, 15, 4, 15, 263, 8, 15, 11, 15, 12, 15, 264, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16,
3715
- 1, 16, 1, 16, 5, 16, 274, 8, 16, 10, 16, 12, 16, 277, 9, 16, 1, 17, 1, 17, 1, 18, 1, 18,
3716
- 1, 18, 1, 18, 1, 18, 1, 18, 4, 18, 287, 8, 18, 11, 18, 12, 18, 288, 1, 18, 1, 18, 1, 19,
3717
- 1, 19, 3, 19, 295, 8, 19, 1, 20, 1, 20, 1, 20, 1, 20, 3, 20, 301, 8, 20, 1, 21, 1, 21, 3,
3718
- 21, 305, 8, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1,
3719
- 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 5, 28, 328, 8,
3720
- 28, 10, 28, 12, 28, 331, 9, 28, 1, 28, 1, 28, 5, 28, 335, 8, 28, 10, 28, 12, 28, 338,
3721
- 9, 28, 1, 28, 1, 28, 1, 28, 5, 28, 343, 8, 28, 10, 28, 12, 28, 346, 9, 28, 3, 28, 348,
3722
- 8, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31,
3723
- 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 366, 8, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31,
3724
- 1, 31, 1, 31, 3, 31, 376, 8, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31,
3725
- 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 5, 31, 391, 8, 31, 10, 31, 12, 31, 394, 9, 31, 1, 32,
3726
- 1, 32, 1, 33, 1, 33, 1, 34, 3, 34, 401, 8, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35,
3727
- 3, 35, 409, 8, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 4, 35, 417, 8, 35, 11, 35,
3728
- 12, 35, 418, 1, 35, 1, 35, 1, 36, 1, 36, 3, 36, 425, 8, 36, 1, 37, 1, 37, 1, 37, 5, 37,
3729
- 430, 8, 37, 10, 37, 12, 37, 433, 9, 37, 1, 37, 1, 37, 1, 37, 1, 37, 5, 37, 439, 8, 37,
3730
- 10, 37, 12, 37, 442, 9, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 5, 37, 451,
3731
- 8, 37, 10, 37, 12, 37, 454, 9, 37, 3, 37, 456, 8, 37, 1, 38, 1, 38, 1, 38, 5, 38, 461,
3732
- 8, 38, 10, 38, 12, 38, 464, 9, 38, 1, 39, 1, 39, 3, 39, 468, 8, 39, 1, 39, 1, 39, 1, 39,
3733
- 3, 39, 473, 8, 39, 1, 40, 3, 40, 476, 8, 40, 1, 40, 1, 40, 4, 40, 480, 8, 40, 11, 40, 12,
3734
- 40, 481, 1, 41, 3, 41, 485, 8, 41, 1, 41, 1, 41, 3, 41, 489, 8, 41, 1, 42, 1, 42, 1, 42,
3735
- 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 4, 44, 505,
3736
- 8, 44, 11, 44, 12, 44, 506, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 4, 45, 515, 8, 45,
3737
- 11, 45, 12, 45, 516, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 526, 8, 46,
3738
- 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 4, 47, 539,
3739
- 8, 47, 11, 47, 12, 47, 540, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 4, 48, 549, 8, 48,
3740
- 11, 48, 12, 48, 550, 1, 48, 1, 48, 1, 49, 1, 49, 3, 49, 557, 8, 49, 1, 49, 1, 49, 1, 49,
3741
- 1, 49, 1, 49, 1, 49, 3, 49, 565, 8, 49, 1, 49, 1, 49, 1, 49, 1, 49, 5, 49, 571, 8, 49, 10,
3742
- 49, 12, 49, 574, 9, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 3, 49, 581, 8, 49, 1, 50, 1,
3743
- 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 5, 52, 593, 8, 52, 10, 52, 12,
3744
- 52, 596, 9, 52, 3, 52, 598, 8, 52, 1, 53, 1, 53, 1, 53, 3, 53, 603, 8, 53, 1, 53, 3, 53,
3745
- 606, 8, 53, 1, 54, 1, 54, 5, 54, 610, 8, 54, 10, 54, 12, 54, 613, 9, 54, 1, 55, 1, 55,
3746
- 1, 55, 1, 55, 5, 55, 619, 8, 55, 10, 55, 12, 55, 622, 9, 55, 5, 55, 624, 8, 55, 10, 55,
3747
- 12, 55, 627, 9, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 3, 56, 634, 8, 56, 1, 57, 1, 57,
3748
- 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 5, 59, 648, 8, 59,
3749
- 10, 59, 12, 59, 651, 9, 59, 1, 59, 3, 59, 654, 8, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60,
3750
- 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63,
3751
- 1, 63, 5, 63, 675, 8, 63, 10, 63, 12, 63, 678, 9, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63,
3752
- 1, 63, 0, 1, 62, 64, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34,
3769
+ 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65,
3770
+ 1, 0, 1, 0, 5, 0, 135, 8, 0, 10, 0, 12, 0, 138, 9, 0, 1, 0, 1, 0, 4, 0, 142, 8, 0, 11, 0, 12,
3771
+ 0, 143, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
3772
+ 1, 160, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 167, 8, 2, 1, 3, 1, 3, 3, 3, 171, 8, 3, 1,
3773
+ 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 179, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 4, 5, 185, 8, 5, 11,
3774
+ 5, 12, 5, 186, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 4, 7, 201,
3775
+ 8, 7, 11, 7, 12, 7, 202, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10,
3776
+ 1, 10, 1, 10, 3, 10, 218, 8, 10, 1, 11, 1, 11, 3, 11, 222, 8, 11, 1, 11, 5, 11, 225, 8,
3777
+ 11, 10, 11, 12, 11, 228, 9, 11, 1, 11, 3, 11, 231, 8, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1,
3778
+ 13, 1, 13, 3, 13, 239, 8, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1,
3779
+ 16, 5, 16, 250, 8, 16, 10, 16, 12, 16, 253, 9, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1,
3780
+ 17, 5, 17, 261, 8, 17, 10, 17, 12, 17, 264, 9, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 4,
3781
+ 17, 271, 8, 17, 11, 17, 12, 17, 272, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 5,
3782
+ 18, 282, 8, 18, 10, 18, 12, 18, 285, 9, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1,
3783
+ 20, 1, 20, 4, 20, 295, 8, 20, 11, 20, 12, 20, 296, 1, 20, 1, 20, 1, 21, 1, 21, 3, 21, 303,
3784
+ 8, 21, 1, 22, 1, 22, 1, 22, 1, 22, 3, 22, 309, 8, 22, 1, 23, 1, 23, 3, 23, 313, 8, 23, 1,
3785
+ 24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 1, 27, 3, 27, 323, 8, 27, 1, 27, 1, 27, 1,
3786
+ 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 5, 30, 339,
3787
+ 8, 30, 10, 30, 12, 30, 342, 9, 30, 1, 30, 1, 30, 5, 30, 346, 8, 30, 10, 30, 12, 30, 349,
3788
+ 9, 30, 1, 30, 1, 30, 1, 30, 5, 30, 354, 8, 30, 10, 30, 12, 30, 357, 9, 30, 3, 30, 359,
3789
+ 8, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33,
3790
+ 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 377, 8, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33,
3791
+ 1, 33, 1, 33, 3, 33, 387, 8, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33,
3792
+ 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 5, 33, 402, 8, 33, 10, 33, 12, 33, 405, 9, 33, 1, 34,
3793
+ 1, 34, 1, 35, 1, 35, 1, 36, 3, 36, 412, 8, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37,
3794
+ 3, 37, 420, 8, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 4, 37, 428, 8, 37, 11, 37,
3795
+ 12, 37, 429, 1, 37, 1, 37, 1, 38, 1, 38, 3, 38, 436, 8, 38, 1, 39, 1, 39, 1, 39, 5, 39,
3796
+ 441, 8, 39, 10, 39, 12, 39, 444, 9, 39, 1, 39, 1, 39, 1, 39, 1, 39, 5, 39, 450, 8, 39,
3797
+ 10, 39, 12, 39, 453, 9, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 5, 39, 462,
3798
+ 8, 39, 10, 39, 12, 39, 465, 9, 39, 3, 39, 467, 8, 39, 1, 40, 1, 40, 1, 40, 5, 40, 472,
3799
+ 8, 40, 10, 40, 12, 40, 475, 9, 40, 1, 41, 1, 41, 3, 41, 479, 8, 41, 1, 41, 1, 41, 1, 41,
3800
+ 3, 41, 484, 8, 41, 1, 42, 3, 42, 487, 8, 42, 1, 42, 1, 42, 4, 42, 491, 8, 42, 11, 42, 12,
3801
+ 42, 492, 1, 43, 3, 43, 496, 8, 43, 1, 43, 1, 43, 3, 43, 500, 8, 43, 1, 44, 1, 44, 1, 44,
3802
+ 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 4, 46, 516,
3803
+ 8, 46, 11, 46, 12, 46, 517, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 4, 47, 526, 8, 47,
3804
+ 11, 47, 12, 47, 527, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 537, 8, 48,
3805
+ 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 4, 49, 550,
3806
+ 8, 49, 11, 49, 12, 49, 551, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 4, 50, 560, 8, 50,
3807
+ 11, 50, 12, 50, 561, 1, 50, 1, 50, 1, 51, 1, 51, 3, 51, 568, 8, 51, 1, 51, 1, 51, 1, 51,
3808
+ 1, 51, 1, 51, 1, 51, 3, 51, 576, 8, 51, 1, 51, 1, 51, 1, 51, 1, 51, 5, 51, 582, 8, 51, 10,
3809
+ 51, 12, 51, 585, 9, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 592, 8, 51, 1, 52, 1,
3810
+ 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 5, 54, 604, 8, 54, 10, 54, 12,
3811
+ 54, 607, 9, 54, 3, 54, 609, 8, 54, 1, 55, 1, 55, 1, 55, 3, 55, 614, 8, 55, 1, 55, 3, 55,
3812
+ 617, 8, 55, 1, 56, 1, 56, 5, 56, 621, 8, 56, 10, 56, 12, 56, 624, 9, 56, 1, 57, 1, 57,
3813
+ 1, 57, 1, 57, 5, 57, 630, 8, 57, 10, 57, 12, 57, 633, 9, 57, 5, 57, 635, 8, 57, 10, 57,
3814
+ 12, 57, 638, 9, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 3, 58, 645, 8, 58, 1, 59, 1, 59,
3815
+ 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 5, 61, 659, 8, 61,
3816
+ 10, 61, 12, 61, 662, 9, 61, 1, 61, 3, 61, 665, 8, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62,
3817
+ 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65,
3818
+ 1, 65, 5, 65, 686, 8, 65, 10, 65, 12, 65, 689, 9, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65,
3819
+ 1, 65, 0, 1, 66, 66, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34,
3753
3820
  36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78,
3754
3821
  80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116,
3755
- 118, 120, 122, 124, 126, 0, 14, 2, 0, 9, 9, 19, 21, 1, 0, 56, 57, 2, 0, 57, 57, 60, 60,
3756
- 2, 0, 54, 54, 57, 57, 1, 0, 47, 51, 1, 0, 44, 46, 1, 0, 42, 43, 1, 0, 40, 41, 1, 0, 34, 39,
3757
- 2, 0, 31, 31, 43, 43, 2, 0, 55, 55, 57, 61, 2, 0, 15, 15, 56, 56, 2, 0, 56, 57, 60, 60,
3758
- 1, 0, 32, 33, 724, 0, 132, 1, 0, 0, 0, 2, 165, 1, 0, 0, 0, 4, 167, 1, 0, 0, 0, 6, 178, 1,
3759
- 0, 0, 0, 8, 182, 1, 0, 0, 0, 10, 186, 1, 0, 0, 0, 12, 198, 1, 0, 0, 0, 14, 202, 1, 0, 0, 0,
3760
- 16, 205, 1, 0, 0, 0, 18, 213, 1, 0, 0, 0, 20, 224, 1, 0, 0, 0, 22, 230, 1, 0, 0, 0, 24, 232,
3761
- 1, 0, 0, 0, 26, 234, 1, 0, 0, 0, 28, 237, 1, 0, 0, 0, 30, 246, 1, 0, 0, 0, 32, 268, 1, 0,
3762
- 0, 0, 34, 278, 1, 0, 0, 0, 36, 280, 1, 0, 0, 0, 38, 294, 1, 0, 0, 0, 40, 296, 1, 0, 0, 0,
3763
- 42, 304, 1, 0, 0, 0, 44, 306, 1, 0, 0, 0, 46, 308, 1, 0, 0, 0, 48, 310, 1, 0, 0, 0, 50, 312,
3764
- 1, 0, 0, 0, 52, 316, 1, 0, 0, 0, 54, 320, 1, 0, 0, 0, 56, 347, 1, 0, 0, 0, 58, 349, 1, 0,
3765
- 0, 0, 60, 353, 1, 0, 0, 0, 62, 375, 1, 0, 0, 0, 64, 395, 1, 0, 0, 0, 66, 397, 1, 0, 0, 0,
3766
- 68, 400, 1, 0, 0, 0, 70, 404, 1, 0, 0, 0, 72, 424, 1, 0, 0, 0, 74, 455, 1, 0, 0, 0, 76, 457,
3767
- 1, 0, 0, 0, 78, 472, 1, 0, 0, 0, 80, 475, 1, 0, 0, 0, 82, 484, 1, 0, 0, 0, 84, 490, 1, 0,
3768
- 0, 0, 86, 493, 1, 0, 0, 0, 88, 497, 1, 0, 0, 0, 90, 510, 1, 0, 0, 0, 92, 520, 1, 0, 0, 0,
3769
- 94, 530, 1, 0, 0, 0, 96, 544, 1, 0, 0, 0, 98, 580, 1, 0, 0, 0, 100, 582, 1, 0, 0, 0, 102,
3770
- 586, 1, 0, 0, 0, 104, 597, 1, 0, 0, 0, 106, 605, 1, 0, 0, 0, 108, 607, 1, 0, 0, 0, 110,
3771
- 614, 1, 0, 0, 0, 112, 630, 1, 0, 0, 0, 114, 635, 1, 0, 0, 0, 116, 638, 1, 0, 0, 0, 118,
3772
- 642, 1, 0, 0, 0, 120, 655, 1, 0, 0, 0, 122, 661, 1, 0, 0, 0, 124, 665, 1, 0, 0, 0, 126,
3773
- 670, 1, 0, 0, 0, 128, 131, 3, 114, 57, 0, 129, 131, 5, 64, 0, 0, 130, 128, 1, 0, 0, 0,
3774
- 130, 129, 1, 0, 0, 0, 131, 134, 1, 0, 0, 0, 132, 130, 1, 0, 0, 0, 132, 133, 1, 0, 0, 0,
3775
- 133, 137, 1, 0, 0, 0, 134, 132, 1, 0, 0, 0, 135, 138, 3, 2, 1, 0, 136, 138, 5, 64, 0, 0,
3776
- 137, 135, 1, 0, 0, 0, 137, 136, 1, 0, 0, 0, 138, 139, 1, 0, 0, 0, 139, 137, 1, 0, 0, 0,
3777
- 139, 140, 1, 0, 0, 0, 140, 141, 1, 0, 0, 0, 141, 142, 5, 0, 0, 1, 142, 1, 1, 0, 0, 0, 143,
3778
- 166, 3, 20, 10, 0, 144, 166, 3, 28, 14, 0, 145, 166, 3, 26, 13, 0, 146, 166, 3, 50, 25,
3779
- 0, 147, 166, 3, 52, 26, 0, 148, 166, 3, 58, 29, 0, 149, 166, 3, 10, 5, 0, 150, 166, 3,
3780
- 60, 30, 0, 151, 166, 3, 46, 23, 0, 152, 166, 3, 48, 24, 0, 153, 166, 3, 70, 35, 0, 154,
3781
- 166, 3, 80, 40, 0, 155, 166, 3, 108, 54, 0, 156, 166, 3, 114, 57, 0, 157, 166, 3, 116,
3782
- 58, 0, 158, 166, 3, 76, 38, 0, 159, 166, 3, 36, 18, 0, 160, 166, 3, 6, 3, 0, 161, 166,
3783
- 3, 112, 56, 0, 162, 166, 3, 118, 59, 0, 163, 166, 3, 124, 62, 0, 164, 166, 3, 126, 63,
3784
- 0, 165, 143, 1, 0, 0, 0, 165, 144, 1, 0, 0, 0, 165, 145, 1, 0, 0, 0, 165, 146, 1, 0, 0,
3785
- 0, 165, 147, 1, 0, 0, 0, 165, 148, 1, 0, 0, 0, 165, 149, 1, 0, 0, 0, 165, 150, 1, 0, 0,
3786
- 0, 165, 151, 1, 0, 0, 0, 165, 152, 1, 0, 0, 0, 165, 153, 1, 0, 0, 0, 165, 154, 1, 0, 0,
3787
- 0, 165, 155, 1, 0, 0, 0, 165, 156, 1, 0, 0, 0, 165, 157, 1, 0, 0, 0, 165, 158, 1, 0, 0,
3788
- 0, 165, 159, 1, 0, 0, 0, 165, 160, 1, 0, 0, 0, 165, 161, 1, 0, 0, 0, 165, 162, 1, 0, 0,
3789
- 0, 165, 163, 1, 0, 0, 0, 165, 164, 1, 0, 0, 0, 166, 3, 1, 0, 0, 0, 167, 168, 5, 64, 0, 0,
3790
- 168, 171, 5, 66, 0, 0, 169, 172, 5, 64, 0, 0, 170, 172, 3, 2, 1, 0, 171, 169, 1, 0, 0,
3791
- 0, 171, 170, 1, 0, 0, 0, 172, 173, 1, 0, 0, 0, 173, 171, 1, 0, 0, 0, 173, 174, 1, 0, 0,
3792
- 0, 174, 175, 1, 0, 0, 0, 175, 176, 5, 67, 0, 0, 176, 5, 1, 0, 0, 0, 177, 179, 3, 8, 4, 0,
3793
- 178, 177, 1, 0, 0, 0, 179, 180, 1, 0, 0, 0, 180, 178, 1, 0, 0, 0, 180, 181, 1, 0, 0, 0,
3794
- 181, 7, 1, 0, 0, 0, 182, 183, 7, 0, 0, 0, 183, 184, 5, 1, 0, 0, 184, 185, 3, 4, 2, 0, 185,
3795
- 9, 1, 0, 0, 0, 186, 187, 3, 76, 38, 0, 187, 188, 5, 1, 0, 0, 188, 189, 5, 64, 0, 0, 189,
3796
- 192, 5, 66, 0, 0, 190, 193, 5, 64, 0, 0, 191, 193, 3, 12, 6, 0, 192, 190, 1, 0, 0, 0, 192,
3797
- 191, 1, 0, 0, 0, 193, 194, 1, 0, 0, 0, 194, 192, 1, 0, 0, 0, 194, 195, 1, 0, 0, 0, 195,
3798
- 196, 1, 0, 0, 0, 196, 197, 5, 67, 0, 0, 197, 11, 1, 0, 0, 0, 198, 199, 7, 1, 0, 0, 199,
3799
- 200, 5, 1, 0, 0, 200, 201, 3, 68, 34, 0, 201, 13, 1, 0, 0, 0, 202, 203, 5, 15, 0, 0, 203,
3800
- 204, 3, 62, 31, 0, 204, 15, 1, 0, 0, 0, 205, 206, 5, 56, 0, 0, 206, 209, 5, 1, 0, 0, 207,
3801
- 210, 3, 68, 34, 0, 208, 210, 5, 56, 0, 0, 209, 207, 1, 0, 0, 0, 209, 208, 1, 0, 0, 0, 210,
3802
- 17, 1, 0, 0, 0, 211, 214, 3, 62, 31, 0, 212, 214, 3, 50, 25, 0, 213, 211, 1, 0, 0, 0, 213,
3803
- 212, 1, 0, 0, 0, 214, 218, 1, 0, 0, 0, 215, 217, 3, 16, 8, 0, 216, 215, 1, 0, 0, 0, 217,
3804
- 220, 1, 0, 0, 0, 218, 216, 1, 0, 0, 0, 218, 219, 1, 0, 0, 0, 219, 222, 1, 0, 0, 0, 220,
3805
- 218, 1, 0, 0, 0, 221, 223, 3, 14, 7, 0, 222, 221, 1, 0, 0, 0, 222, 223, 1, 0, 0, 0, 223,
3806
- 19, 1, 0, 0, 0, 224, 225, 5, 16, 0, 0, 225, 226, 3, 18, 9, 0, 226, 21, 1, 0, 0, 0, 227,
3807
- 231, 3, 18, 9, 0, 228, 231, 3, 14, 7, 0, 229, 231, 5, 19, 0, 0, 230, 227, 1, 0, 0, 0, 230,
3808
- 228, 1, 0, 0, 0, 230, 229, 1, 0, 0, 0, 231, 23, 1, 0, 0, 0, 232, 233, 7, 2, 0, 0, 233, 25,
3809
- 1, 0, 0, 0, 234, 235, 5, 17, 0, 0, 235, 236, 3, 22, 11, 0, 236, 27, 1, 0, 0, 0, 237, 238,
3810
- 5, 18, 0, 0, 238, 243, 3, 22, 11, 0, 239, 240, 5, 2, 0, 0, 240, 242, 3, 22, 11, 0, 241,
3811
- 239, 1, 0, 0, 0, 242, 245, 1, 0, 0, 0, 243, 241, 1, 0, 0, 0, 243, 244, 1, 0, 0, 0, 244,
3812
- 29, 1, 0, 0, 0, 245, 243, 1, 0, 0, 0, 246, 247, 5, 17, 0, 0, 247, 248, 3, 22, 11, 0, 248,
3813
- 249, 5, 18, 0, 0, 249, 254, 3, 22, 11, 0, 250, 251, 5, 2, 0, 0, 251, 253, 3, 22, 11, 0,
3814
- 252, 250, 1, 0, 0, 0, 253, 256, 1, 0, 0, 0, 254, 252, 1, 0, 0, 0, 254, 255, 1, 0, 0, 0,
3815
- 255, 257, 1, 0, 0, 0, 256, 254, 1, 0, 0, 0, 257, 258, 5, 1, 0, 0, 258, 259, 5, 64, 0, 0,
3816
- 259, 262, 5, 66, 0, 0, 260, 263, 5, 64, 0, 0, 261, 263, 3, 32, 16, 0, 262, 260, 1, 0,
3817
- 0, 0, 262, 261, 1, 0, 0, 0, 263, 264, 1, 0, 0, 0, 264, 262, 1, 0, 0, 0, 264, 265, 1, 0,
3818
- 0, 0, 265, 266, 1, 0, 0, 0, 266, 267, 5, 67, 0, 0, 267, 31, 1, 0, 0, 0, 268, 269, 3, 24,
3819
- 12, 0, 269, 270, 5, 1, 0, 0, 270, 275, 3, 34, 17, 0, 271, 272, 5, 2, 0, 0, 272, 274, 3,
3820
- 34, 17, 0, 273, 271, 1, 0, 0, 0, 274, 277, 1, 0, 0, 0, 275, 273, 1, 0, 0, 0, 275, 276,
3821
- 1, 0, 0, 0, 276, 33, 1, 0, 0, 0, 277, 275, 1, 0, 0, 0, 278, 279, 7, 3, 0, 0, 279, 35, 1,
3822
- 0, 0, 0, 280, 281, 3, 26, 13, 0, 281, 282, 5, 1, 0, 0, 282, 283, 5, 64, 0, 0, 283, 286,
3823
- 5, 66, 0, 0, 284, 287, 5, 64, 0, 0, 285, 287, 3, 38, 19, 0, 286, 284, 1, 0, 0, 0, 286,
3824
- 285, 1, 0, 0, 0, 287, 288, 1, 0, 0, 0, 288, 286, 1, 0, 0, 0, 288, 289, 1, 0, 0, 0, 289,
3825
- 290, 1, 0, 0, 0, 290, 291, 5, 67, 0, 0, 291, 37, 1, 0, 0, 0, 292, 295, 3, 2, 1, 0, 293,
3826
- 295, 3, 40, 20, 0, 294, 292, 1, 0, 0, 0, 294, 293, 1, 0, 0, 0, 295, 39, 1, 0, 0, 0, 296,
3827
- 297, 3, 24, 12, 0, 297, 300, 5, 1, 0, 0, 298, 301, 3, 42, 21, 0, 299, 301, 3, 44, 22,
3828
- 0, 300, 298, 1, 0, 0, 0, 300, 299, 1, 0, 0, 0, 301, 41, 1, 0, 0, 0, 302, 305, 3, 2, 1, 0,
3829
- 303, 305, 5, 54, 0, 0, 304, 302, 1, 0, 0, 0, 304, 303, 1, 0, 0, 0, 305, 43, 1, 0, 0, 0,
3830
- 306, 307, 3, 4, 2, 0, 307, 45, 1, 0, 0, 0, 308, 309, 5, 8, 0, 0, 309, 47, 1, 0, 0, 0, 310,
3831
- 311, 5, 28, 0, 0, 311, 49, 1, 0, 0, 0, 312, 313, 3, 76, 38, 0, 313, 314, 5, 3, 0, 0, 314,
3832
- 315, 3, 62, 31, 0, 315, 51, 1, 0, 0, 0, 316, 317, 3, 76, 38, 0, 317, 318, 7, 4, 0, 0, 318,
3833
- 319, 3, 62, 31, 0, 319, 53, 1, 0, 0, 0, 320, 321, 5, 56, 0, 0, 321, 322, 5, 3, 0, 0, 322,
3834
- 323, 3, 62, 31, 0, 323, 55, 1, 0, 0, 0, 324, 329, 3, 62, 31, 0, 325, 326, 5, 2, 0, 0, 326,
3835
- 328, 3, 62, 31, 0, 327, 325, 1, 0, 0, 0, 328, 331, 1, 0, 0, 0, 329, 327, 1, 0, 0, 0, 329,
3836
- 330, 1, 0, 0, 0, 330, 336, 1, 0, 0, 0, 331, 329, 1, 0, 0, 0, 332, 333, 5, 2, 0, 0, 333,
3837
- 335, 3, 54, 27, 0, 334, 332, 1, 0, 0, 0, 335, 338, 1, 0, 0, 0, 336, 334, 1, 0, 0, 0, 336,
3838
- 337, 1, 0, 0, 0, 337, 348, 1, 0, 0, 0, 338, 336, 1, 0, 0, 0, 339, 344, 3, 54, 27, 0, 340,
3839
- 341, 5, 2, 0, 0, 341, 343, 3, 54, 27, 0, 342, 340, 1, 0, 0, 0, 343, 346, 1, 0, 0, 0, 344,
3840
- 342, 1, 0, 0, 0, 344, 345, 1, 0, 0, 0, 345, 348, 1, 0, 0, 0, 346, 344, 1, 0, 0, 0, 347,
3841
- 324, 1, 0, 0, 0, 347, 339, 1, 0, 0, 0, 348, 57, 1, 0, 0, 0, 349, 350, 3, 76, 38, 0, 350,
3842
- 351, 5, 3, 0, 0, 351, 352, 3, 62, 31, 0, 352, 59, 1, 0, 0, 0, 353, 354, 5, 4, 0, 0, 354,
3843
- 355, 5, 56, 0, 0, 355, 356, 5, 3, 0, 0, 356, 357, 3, 62, 31, 0, 357, 61, 1, 0, 0, 0, 358,
3844
- 359, 6, 31, -1, 0, 359, 360, 5, 52, 0, 0, 360, 361, 3, 62, 31, 0, 361, 362, 5, 53, 0,
3845
- 0, 362, 376, 1, 0, 0, 0, 363, 366, 3, 68, 34, 0, 364, 366, 3, 76, 38, 0, 365, 363, 1,
3846
- 0, 0, 0, 365, 364, 1, 0, 0, 0, 366, 376, 1, 0, 0, 0, 367, 368, 3, 66, 33, 0, 368, 369,
3847
- 3, 62, 31, 10, 369, 376, 1, 0, 0, 0, 370, 376, 3, 88, 44, 0, 371, 376, 3, 92, 46, 0, 372,
3848
- 376, 3, 94, 47, 0, 373, 376, 3, 80, 40, 0, 374, 376, 3, 110, 55, 0, 375, 358, 1, 0, 0,
3849
- 0, 375, 365, 1, 0, 0, 0, 375, 367, 1, 0, 0, 0, 375, 370, 1, 0, 0, 0, 375, 371, 1, 0, 0,
3850
- 0, 375, 372, 1, 0, 0, 0, 375, 373, 1, 0, 0, 0, 375, 374, 1, 0, 0, 0, 376, 392, 1, 0, 0,
3851
- 0, 377, 378, 10, 9, 0, 0, 378, 379, 7, 5, 0, 0, 379, 391, 3, 62, 31, 10, 380, 381, 10,
3852
- 8, 0, 0, 381, 382, 7, 6, 0, 0, 382, 391, 3, 62, 31, 9, 383, 384, 10, 7, 0, 0, 384, 385,
3853
- 3, 64, 32, 0, 385, 386, 3, 62, 31, 8, 386, 391, 1, 0, 0, 0, 387, 388, 10, 6, 0, 0, 388,
3854
- 389, 7, 7, 0, 0, 389, 391, 3, 62, 31, 7, 390, 377, 1, 0, 0, 0, 390, 380, 1, 0, 0, 0, 390,
3855
- 383, 1, 0, 0, 0, 390, 387, 1, 0, 0, 0, 391, 394, 1, 0, 0, 0, 392, 390, 1, 0, 0, 0, 392,
3856
- 393, 1, 0, 0, 0, 393, 63, 1, 0, 0, 0, 394, 392, 1, 0, 0, 0, 395, 396, 7, 8, 0, 0, 396, 65,
3857
- 1, 0, 0, 0, 397, 398, 7, 9, 0, 0, 398, 67, 1, 0, 0, 0, 399, 401, 5, 43, 0, 0, 400, 399,
3858
- 1, 0, 0, 0, 400, 401, 1, 0, 0, 0, 401, 402, 1, 0, 0, 0, 402, 403, 7, 10, 0, 0, 403, 69,
3859
- 1, 0, 0, 0, 404, 405, 5, 23, 0, 0, 405, 406, 5, 56, 0, 0, 406, 408, 5, 52, 0, 0, 407, 409,
3860
- 3, 74, 37, 0, 408, 407, 1, 0, 0, 0, 408, 409, 1, 0, 0, 0, 409, 410, 1, 0, 0, 0, 410, 411,
3861
- 5, 53, 0, 0, 411, 412, 5, 1, 0, 0, 412, 413, 5, 64, 0, 0, 413, 416, 5, 66, 0, 0, 414, 417,
3862
- 5, 64, 0, 0, 415, 417, 3, 72, 36, 0, 416, 414, 1, 0, 0, 0, 416, 415, 1, 0, 0, 0, 417, 418,
3863
- 1, 0, 0, 0, 418, 416, 1, 0, 0, 0, 418, 419, 1, 0, 0, 0, 419, 420, 1, 0, 0, 0, 420, 421,
3864
- 5, 67, 0, 0, 421, 71, 1, 0, 0, 0, 422, 425, 3, 2, 1, 0, 423, 425, 3, 84, 42, 0, 424, 422,
3865
- 1, 0, 0, 0, 424, 423, 1, 0, 0, 0, 425, 73, 1, 0, 0, 0, 426, 431, 5, 56, 0, 0, 427, 428,
3866
- 5, 2, 0, 0, 428, 430, 5, 56, 0, 0, 429, 427, 1, 0, 0, 0, 430, 433, 1, 0, 0, 0, 431, 429,
3867
- 1, 0, 0, 0, 431, 432, 1, 0, 0, 0, 432, 440, 1, 0, 0, 0, 433, 431, 1, 0, 0, 0, 434, 435,
3868
- 5, 2, 0, 0, 435, 436, 5, 56, 0, 0, 436, 437, 5, 3, 0, 0, 437, 439, 3, 68, 34, 0, 438, 434,
3869
- 1, 0, 0, 0, 439, 442, 1, 0, 0, 0, 440, 438, 1, 0, 0, 0, 440, 441, 1, 0, 0, 0, 441, 456,
3870
- 1, 0, 0, 0, 442, 440, 1, 0, 0, 0, 443, 444, 5, 56, 0, 0, 444, 445, 5, 3, 0, 0, 445, 452,
3871
- 3, 68, 34, 0, 446, 447, 5, 2, 0, 0, 447, 448, 5, 56, 0, 0, 448, 449, 5, 3, 0, 0, 449, 451,
3872
- 3, 68, 34, 0, 450, 446, 1, 0, 0, 0, 451, 454, 1, 0, 0, 0, 452, 450, 1, 0, 0, 0, 452, 453,
3873
- 1, 0, 0, 0, 453, 456, 1, 0, 0, 0, 454, 452, 1, 0, 0, 0, 455, 426, 1, 0, 0, 0, 455, 443,
3874
- 1, 0, 0, 0, 456, 75, 1, 0, 0, 0, 457, 462, 5, 56, 0, 0, 458, 459, 5, 5, 0, 0, 459, 461,
3875
- 5, 56, 0, 0, 460, 458, 1, 0, 0, 0, 461, 464, 1, 0, 0, 0, 462, 460, 1, 0, 0, 0, 462, 463,
3876
- 1, 0, 0, 0, 463, 77, 1, 0, 0, 0, 464, 462, 1, 0, 0, 0, 465, 467, 5, 52, 0, 0, 466, 468,
3877
- 3, 56, 28, 0, 467, 466, 1, 0, 0, 0, 467, 468, 1, 0, 0, 0, 468, 469, 1, 0, 0, 0, 469, 473,
3878
- 5, 53, 0, 0, 470, 471, 5, 5, 0, 0, 471, 473, 5, 56, 0, 0, 472, 465, 1, 0, 0, 0, 472, 470,
3879
- 1, 0, 0, 0, 473, 79, 1, 0, 0, 0, 474, 476, 3, 82, 41, 0, 475, 474, 1, 0, 0, 0, 475, 476,
3880
- 1, 0, 0, 0, 476, 477, 1, 0, 0, 0, 477, 479, 5, 56, 0, 0, 478, 480, 3, 78, 39, 0, 479, 478,
3881
- 1, 0, 0, 0, 480, 481, 1, 0, 0, 0, 481, 479, 1, 0, 0, 0, 481, 482, 1, 0, 0, 0, 482, 81, 1,
3882
- 0, 0, 0, 483, 485, 5, 42, 0, 0, 484, 483, 1, 0, 0, 0, 484, 485, 1, 0, 0, 0, 485, 486, 1,
3883
- 0, 0, 0, 486, 488, 5, 44, 0, 0, 487, 489, 3, 62, 31, 0, 488, 487, 1, 0, 0, 0, 488, 489,
3884
- 1, 0, 0, 0, 489, 83, 1, 0, 0, 0, 490, 491, 5, 22, 0, 0, 491, 492, 3, 62, 31, 0, 492, 85,
3885
- 1, 0, 0, 0, 493, 494, 3, 102, 51, 0, 494, 495, 5, 1, 0, 0, 495, 496, 3, 4, 2, 0, 496, 87,
3886
- 1, 0, 0, 0, 497, 498, 5, 10, 0, 0, 498, 499, 5, 11, 0, 0, 499, 500, 5, 1, 0, 0, 500, 501,
3887
- 5, 64, 0, 0, 501, 504, 5, 66, 0, 0, 502, 505, 5, 64, 0, 0, 503, 505, 3, 100, 50, 0, 504,
3888
- 502, 1, 0, 0, 0, 504, 503, 1, 0, 0, 0, 505, 506, 1, 0, 0, 0, 506, 504, 1, 0, 0, 0, 506,
3889
- 507, 1, 0, 0, 0, 507, 508, 1, 0, 0, 0, 508, 509, 5, 67, 0, 0, 509, 89, 1, 0, 0, 0, 510,
3890
- 511, 5, 64, 0, 0, 511, 514, 5, 66, 0, 0, 512, 515, 5, 64, 0, 0, 513, 515, 3, 98, 49, 0,
3891
- 514, 512, 1, 0, 0, 0, 514, 513, 1, 0, 0, 0, 515, 516, 1, 0, 0, 0, 516, 514, 1, 0, 0, 0,
3892
- 516, 517, 1, 0, 0, 0, 517, 518, 1, 0, 0, 0, 518, 519, 5, 67, 0, 0, 519, 91, 1, 0, 0, 0,
3893
- 520, 521, 5, 10, 0, 0, 521, 525, 5, 12, 0, 0, 522, 523, 5, 52, 0, 0, 523, 524, 5, 56,
3894
- 0, 0, 524, 526, 5, 53, 0, 0, 525, 522, 1, 0, 0, 0, 525, 526, 1, 0, 0, 0, 526, 527, 1, 0,
3895
- 0, 0, 527, 528, 5, 1, 0, 0, 528, 529, 3, 90, 45, 0, 529, 93, 1, 0, 0, 0, 530, 531, 5, 10,
3896
- 0, 0, 531, 532, 5, 13, 0, 0, 532, 533, 5, 1, 0, 0, 533, 534, 5, 64, 0, 0, 534, 538, 5,
3897
- 66, 0, 0, 535, 539, 5, 64, 0, 0, 536, 539, 3, 100, 50, 0, 537, 539, 3, 86, 43, 0, 538,
3898
- 535, 1, 0, 0, 0, 538, 536, 1, 0, 0, 0, 538, 537, 1, 0, 0, 0, 539, 540, 1, 0, 0, 0, 540,
3899
- 538, 1, 0, 0, 0, 540, 541, 1, 0, 0, 0, 541, 542, 1, 0, 0, 0, 542, 543, 5, 67, 0, 0, 543,
3900
- 95, 1, 0, 0, 0, 544, 545, 5, 64, 0, 0, 545, 548, 5, 66, 0, 0, 546, 549, 5, 64, 0, 0, 547,
3901
- 549, 3, 100, 50, 0, 548, 546, 1, 0, 0, 0, 548, 547, 1, 0, 0, 0, 549, 550, 1, 0, 0, 0, 550,
3902
- 548, 1, 0, 0, 0, 550, 551, 1, 0, 0, 0, 551, 552, 1, 0, 0, 0, 552, 553, 5, 67, 0, 0, 553,
3903
- 97, 1, 0, 0, 0, 554, 556, 7, 11, 0, 0, 555, 557, 5, 1, 0, 0, 556, 555, 1, 0, 0, 0, 556,
3904
- 557, 1, 0, 0, 0, 557, 564, 1, 0, 0, 0, 558, 565, 3, 56, 28, 0, 559, 560, 5, 52, 0, 0, 560,
3905
- 561, 3, 56, 28, 0, 561, 562, 5, 53, 0, 0, 562, 565, 1, 0, 0, 0, 563, 565, 3, 96, 48, 0,
3906
- 564, 558, 1, 0, 0, 0, 564, 559, 1, 0, 0, 0, 564, 563, 1, 0, 0, 0, 565, 581, 1, 0, 0, 0,
3907
- 566, 567, 5, 25, 0, 0, 567, 572, 5, 56, 0, 0, 568, 569, 5, 2, 0, 0, 569, 571, 5, 56, 0,
3908
- 0, 570, 568, 1, 0, 0, 0, 571, 574, 1, 0, 0, 0, 572, 570, 1, 0, 0, 0, 572, 573, 1, 0, 0,
3909
- 0, 573, 575, 1, 0, 0, 0, 574, 572, 1, 0, 0, 0, 575, 576, 5, 26, 0, 0, 576, 577, 3, 62,
3910
- 31, 0, 577, 578, 5, 1, 0, 0, 578, 579, 3, 90, 45, 0, 579, 581, 1, 0, 0, 0, 580, 554, 1,
3911
- 0, 0, 0, 580, 566, 1, 0, 0, 0, 581, 99, 1, 0, 0, 0, 582, 583, 3, 102, 51, 0, 583, 584,
3912
- 5, 1, 0, 0, 584, 585, 3, 104, 52, 0, 585, 101, 1, 0, 0, 0, 586, 587, 7, 12, 0, 0, 587,
3913
- 103, 1, 0, 0, 0, 588, 598, 3, 96, 48, 0, 589, 594, 3, 62, 31, 0, 590, 591, 5, 2, 0, 0,
3914
- 591, 593, 3, 62, 31, 0, 592, 590, 1, 0, 0, 0, 593, 596, 1, 0, 0, 0, 594, 592, 1, 0, 0,
3915
- 0, 594, 595, 1, 0, 0, 0, 595, 598, 1, 0, 0, 0, 596, 594, 1, 0, 0, 0, 597, 588, 1, 0, 0,
3916
- 0, 597, 589, 1, 0, 0, 0, 598, 105, 1, 0, 0, 0, 599, 602, 5, 56, 0, 0, 600, 603, 5, 57,
3917
- 0, 0, 601, 603, 3, 62, 31, 0, 602, 600, 1, 0, 0, 0, 602, 601, 1, 0, 0, 0, 603, 606, 1,
3918
- 0, 0, 0, 604, 606, 5, 56, 0, 0, 605, 599, 1, 0, 0, 0, 605, 604, 1, 0, 0, 0, 606, 107, 1,
3919
- 0, 0, 0, 607, 611, 5, 14, 0, 0, 608, 610, 3, 106, 53, 0, 609, 608, 1, 0, 0, 0, 610, 613,
3920
- 1, 0, 0, 0, 611, 609, 1, 0, 0, 0, 611, 612, 1, 0, 0, 0, 612, 109, 1, 0, 0, 0, 613, 611,
3921
- 1, 0, 0, 0, 614, 625, 5, 6, 0, 0, 615, 620, 3, 62, 31, 0, 616, 617, 5, 2, 0, 0, 617, 619,
3922
- 3, 62, 31, 0, 618, 616, 1, 0, 0, 0, 619, 622, 1, 0, 0, 0, 620, 618, 1, 0, 0, 0, 620, 621,
3923
- 1, 0, 0, 0, 621, 624, 1, 0, 0, 0, 622, 620, 1, 0, 0, 0, 623, 615, 1, 0, 0, 0, 624, 627,
3924
- 1, 0, 0, 0, 625, 623, 1, 0, 0, 0, 625, 626, 1, 0, 0, 0, 626, 628, 1, 0, 0, 0, 627, 625,
3925
- 1, 0, 0, 0, 628, 629, 5, 7, 0, 0, 629, 111, 1, 0, 0, 0, 630, 633, 5, 19, 0, 0, 631, 634,
3926
- 5, 56, 0, 0, 632, 634, 3, 62, 31, 0, 633, 631, 1, 0, 0, 0, 633, 632, 1, 0, 0, 0, 634, 113,
3927
- 1, 0, 0, 0, 635, 636, 5, 24, 0, 0, 636, 637, 5, 56, 0, 0, 637, 115, 1, 0, 0, 0, 638, 639,
3928
- 7, 13, 0, 0, 639, 640, 5, 1, 0, 0, 640, 641, 3, 4, 2, 0, 641, 117, 1, 0, 0, 0, 642, 643,
3929
- 5, 29, 0, 0, 643, 644, 3, 62, 31, 0, 644, 645, 5, 1, 0, 0, 645, 649, 3, 4, 2, 0, 646, 648,
3930
- 3, 120, 60, 0, 647, 646, 1, 0, 0, 0, 648, 651, 1, 0, 0, 0, 649, 647, 1, 0, 0, 0, 649, 650,
3931
- 1, 0, 0, 0, 650, 653, 1, 0, 0, 0, 651, 649, 1, 0, 0, 0, 652, 654, 3, 122, 61, 0, 653, 652,
3932
- 1, 0, 0, 0, 653, 654, 1, 0, 0, 0, 654, 119, 1, 0, 0, 0, 655, 656, 5, 30, 0, 0, 656, 657,
3933
- 5, 29, 0, 0, 657, 658, 3, 62, 31, 0, 658, 659, 5, 1, 0, 0, 659, 660, 3, 4, 2, 0, 660, 121,
3934
- 1, 0, 0, 0, 661, 662, 5, 30, 0, 0, 662, 663, 5, 1, 0, 0, 663, 664, 3, 4, 2, 0, 664, 123,
3935
- 1, 0, 0, 0, 665, 666, 5, 27, 0, 0, 666, 667, 3, 62, 31, 0, 667, 668, 5, 1, 0, 0, 668, 669,
3936
- 3, 4, 2, 0, 669, 125, 1, 0, 0, 0, 670, 671, 5, 25, 0, 0, 671, 676, 5, 56, 0, 0, 672, 673,
3937
- 5, 2, 0, 0, 673, 675, 5, 56, 0, 0, 674, 672, 1, 0, 0, 0, 675, 678, 1, 0, 0, 0, 676, 674,
3938
- 1, 0, 0, 0, 676, 677, 1, 0, 0, 0, 677, 679, 1, 0, 0, 0, 678, 676, 1, 0, 0, 0, 679, 680,
3939
- 5, 26, 0, 0, 680, 681, 3, 62, 31, 0, 681, 682, 5, 1, 0, 0, 682, 683, 3, 4, 2, 0, 683, 127,
3940
- 1, 0, 0, 0, 73, 130, 132, 137, 139, 165, 171, 173, 180, 192, 194, 209, 213, 218, 222,
3941
- 230, 243, 254, 262, 264, 275, 286, 288, 294, 300, 304, 329, 336, 344, 347, 365,
3942
- 375, 390, 392, 400, 408, 416, 418, 424, 431, 440, 452, 455, 462, 467, 472, 475,
3943
- 481, 484, 488, 504, 506, 514, 516, 525, 538, 540, 548, 550, 556, 564, 572, 580,
3944
- 594, 597, 602, 605, 611, 620, 625, 633, 649, 653, 676
3822
+ 118, 120, 122, 124, 126, 128, 130, 0, 14, 2, 0, 9, 9, 19, 21, 1, 0, 56, 57, 2, 0, 57,
3823
+ 57, 60, 60, 2, 0, 54, 54, 57, 57, 1, 0, 47, 51, 1, 0, 44, 46, 1, 0, 42, 43, 1, 0, 40, 41,
3824
+ 1, 0, 34, 39, 2, 0, 31, 31, 43, 43, 2, 0, 55, 55, 57, 61, 2, 0, 15, 15, 56, 56, 2, 0, 56,
3825
+ 57, 60, 60, 1, 0, 32, 33, 733, 0, 136, 1, 0, 0, 0, 2, 159, 1, 0, 0, 0, 4, 166, 1, 0, 0, 0,
3826
+ 6, 170, 1, 0, 0, 0, 8, 178, 1, 0, 0, 0, 10, 180, 1, 0, 0, 0, 12, 190, 1, 0, 0, 0, 14, 194,
3827
+ 1, 0, 0, 0, 16, 206, 1, 0, 0, 0, 18, 210, 1, 0, 0, 0, 20, 213, 1, 0, 0, 0, 22, 221, 1, 0,
3828
+ 0, 0, 24, 232, 1, 0, 0, 0, 26, 238, 1, 0, 0, 0, 28, 240, 1, 0, 0, 0, 30, 242, 1, 0, 0, 0,
3829
+ 32, 245, 1, 0, 0, 0, 34, 254, 1, 0, 0, 0, 36, 276, 1, 0, 0, 0, 38, 286, 1, 0, 0, 0, 40, 288,
3830
+ 1, 0, 0, 0, 42, 302, 1, 0, 0, 0, 44, 304, 1, 0, 0, 0, 46, 312, 1, 0, 0, 0, 48, 314, 1, 0,
3831
+ 0, 0, 50, 316, 1, 0, 0, 0, 52, 318, 1, 0, 0, 0, 54, 322, 1, 0, 0, 0, 56, 327, 1, 0, 0, 0,
3832
+ 58, 331, 1, 0, 0, 0, 60, 358, 1, 0, 0, 0, 62, 360, 1, 0, 0, 0, 64, 364, 1, 0, 0, 0, 66, 386,
3833
+ 1, 0, 0, 0, 68, 406, 1, 0, 0, 0, 70, 408, 1, 0, 0, 0, 72, 411, 1, 0, 0, 0, 74, 415, 1, 0,
3834
+ 0, 0, 76, 435, 1, 0, 0, 0, 78, 466, 1, 0, 0, 0, 80, 468, 1, 0, 0, 0, 82, 483, 1, 0, 0, 0,
3835
+ 84, 486, 1, 0, 0, 0, 86, 495, 1, 0, 0, 0, 88, 501, 1, 0, 0, 0, 90, 504, 1, 0, 0, 0, 92, 508,
3836
+ 1, 0, 0, 0, 94, 521, 1, 0, 0, 0, 96, 531, 1, 0, 0, 0, 98, 541, 1, 0, 0, 0, 100, 555, 1, 0,
3837
+ 0, 0, 102, 591, 1, 0, 0, 0, 104, 593, 1, 0, 0, 0, 106, 597, 1, 0, 0, 0, 108, 608, 1, 0,
3838
+ 0, 0, 110, 616, 1, 0, 0, 0, 112, 618, 1, 0, 0, 0, 114, 625, 1, 0, 0, 0, 116, 641, 1, 0,
3839
+ 0, 0, 118, 646, 1, 0, 0, 0, 120, 649, 1, 0, 0, 0, 122, 653, 1, 0, 0, 0, 124, 666, 1, 0,
3840
+ 0, 0, 126, 672, 1, 0, 0, 0, 128, 676, 1, 0, 0, 0, 130, 681, 1, 0, 0, 0, 132, 135, 3, 118,
3841
+ 59, 0, 133, 135, 5, 64, 0, 0, 134, 132, 1, 0, 0, 0, 134, 133, 1, 0, 0, 0, 135, 138, 1,
3842
+ 0, 0, 0, 136, 134, 1, 0, 0, 0, 136, 137, 1, 0, 0, 0, 137, 141, 1, 0, 0, 0, 138, 136, 1,
3843
+ 0, 0, 0, 139, 142, 3, 2, 1, 0, 140, 142, 5, 64, 0, 0, 141, 139, 1, 0, 0, 0, 141, 140, 1,
3844
+ 0, 0, 0, 142, 143, 1, 0, 0, 0, 143, 141, 1, 0, 0, 0, 143, 144, 1, 0, 0, 0, 144, 145, 1,
3845
+ 0, 0, 0, 145, 146, 5, 0, 0, 1, 146, 1, 1, 0, 0, 0, 147, 160, 3, 6, 3, 0, 148, 160, 3, 4,
3846
+ 2, 0, 149, 160, 3, 54, 27, 0, 150, 160, 3, 56, 28, 0, 151, 160, 3, 62, 31, 0, 152, 160,
3847
+ 3, 14, 7, 0, 153, 160, 3, 64, 32, 0, 154, 160, 3, 74, 37, 0, 155, 160, 3, 84, 42, 0, 156,
3848
+ 160, 3, 118, 59, 0, 157, 160, 3, 80, 40, 0, 158, 160, 3, 120, 60, 0, 159, 147, 1, 0,
3849
+ 0, 0, 159, 148, 1, 0, 0, 0, 159, 149, 1, 0, 0, 0, 159, 150, 1, 0, 0, 0, 159, 151, 1, 0,
3850
+ 0, 0, 159, 152, 1, 0, 0, 0, 159, 153, 1, 0, 0, 0, 159, 154, 1, 0, 0, 0, 159, 155, 1, 0,
3851
+ 0, 0, 159, 156, 1, 0, 0, 0, 159, 157, 1, 0, 0, 0, 159, 158, 1, 0, 0, 0, 160, 3, 1, 0, 0,
3852
+ 0, 161, 167, 3, 122, 61, 0, 162, 167, 3, 128, 64, 0, 163, 167, 3, 130, 65, 0, 164, 167,
3853
+ 3, 50, 25, 0, 165, 167, 3, 52, 26, 0, 166, 161, 1, 0, 0, 0, 166, 162, 1, 0, 0, 0, 166,
3854
+ 163, 1, 0, 0, 0, 166, 164, 1, 0, 0, 0, 166, 165, 1, 0, 0, 0, 167, 5, 1, 0, 0, 0, 168, 171,
3855
+ 3, 8, 4, 0, 169, 171, 3, 12, 6, 0, 170, 168, 1, 0, 0, 0, 170, 169, 1, 0, 0, 0, 171, 7, 1,
3856
+ 0, 0, 0, 172, 179, 3, 24, 12, 0, 173, 179, 3, 32, 16, 0, 174, 179, 3, 30, 15, 0, 175,
3857
+ 179, 3, 40, 20, 0, 176, 179, 3, 112, 56, 0, 177, 179, 3, 116, 58, 0, 178, 172, 1, 0,
3858
+ 0, 0, 178, 173, 1, 0, 0, 0, 178, 174, 1, 0, 0, 0, 178, 175, 1, 0, 0, 0, 178, 176, 1, 0,
3859
+ 0, 0, 178, 177, 1, 0, 0, 0, 179, 9, 1, 0, 0, 0, 180, 181, 5, 64, 0, 0, 181, 184, 5, 66,
3860
+ 0, 0, 182, 185, 5, 64, 0, 0, 183, 185, 3, 2, 1, 0, 184, 182, 1, 0, 0, 0, 184, 183, 1, 0,
3861
+ 0, 0, 185, 186, 1, 0, 0, 0, 186, 184, 1, 0, 0, 0, 186, 187, 1, 0, 0, 0, 187, 188, 1, 0,
3862
+ 0, 0, 188, 189, 5, 67, 0, 0, 189, 11, 1, 0, 0, 0, 190, 191, 7, 0, 0, 0, 191, 192, 5, 1,
3863
+ 0, 0, 192, 193, 3, 10, 5, 0, 193, 13, 1, 0, 0, 0, 194, 195, 3, 80, 40, 0, 195, 196, 5,
3864
+ 1, 0, 0, 196, 197, 5, 64, 0, 0, 197, 200, 5, 66, 0, 0, 198, 201, 5, 64, 0, 0, 199, 201,
3865
+ 3, 16, 8, 0, 200, 198, 1, 0, 0, 0, 200, 199, 1, 0, 0, 0, 201, 202, 1, 0, 0, 0, 202, 200,
3866
+ 1, 0, 0, 0, 202, 203, 1, 0, 0, 0, 203, 204, 1, 0, 0, 0, 204, 205, 5, 67, 0, 0, 205, 15,
3867
+ 1, 0, 0, 0, 206, 207, 7, 1, 0, 0, 207, 208, 5, 1, 0, 0, 208, 209, 3, 72, 36, 0, 209, 17,
3868
+ 1, 0, 0, 0, 210, 211, 5, 15, 0, 0, 211, 212, 3, 66, 33, 0, 212, 19, 1, 0, 0, 0, 213, 214,
3869
+ 5, 56, 0, 0, 214, 217, 5, 1, 0, 0, 215, 218, 3, 72, 36, 0, 216, 218, 5, 56, 0, 0, 217,
3870
+ 215, 1, 0, 0, 0, 217, 216, 1, 0, 0, 0, 218, 21, 1, 0, 0, 0, 219, 222, 3, 66, 33, 0, 220,
3871
+ 222, 3, 54, 27, 0, 221, 219, 1, 0, 0, 0, 221, 220, 1, 0, 0, 0, 222, 226, 1, 0, 0, 0, 223,
3872
+ 225, 3, 20, 10, 0, 224, 223, 1, 0, 0, 0, 225, 228, 1, 0, 0, 0, 226, 224, 1, 0, 0, 0, 226,
3873
+ 227, 1, 0, 0, 0, 227, 230, 1, 0, 0, 0, 228, 226, 1, 0, 0, 0, 229, 231, 3, 18, 9, 0, 230,
3874
+ 229, 1, 0, 0, 0, 230, 231, 1, 0, 0, 0, 231, 23, 1, 0, 0, 0, 232, 233, 5, 16, 0, 0, 233,
3875
+ 234, 3, 22, 11, 0, 234, 25, 1, 0, 0, 0, 235, 239, 3, 22, 11, 0, 236, 239, 3, 18, 9, 0,
3876
+ 237, 239, 5, 19, 0, 0, 238, 235, 1, 0, 0, 0, 238, 236, 1, 0, 0, 0, 238, 237, 1, 0, 0, 0,
3877
+ 239, 27, 1, 0, 0, 0, 240, 241, 7, 2, 0, 0, 241, 29, 1, 0, 0, 0, 242, 243, 5, 17, 0, 0, 243,
3878
+ 244, 3, 26, 13, 0, 244, 31, 1, 0, 0, 0, 245, 246, 5, 18, 0, 0, 246, 251, 3, 26, 13, 0,
3879
+ 247, 248, 5, 2, 0, 0, 248, 250, 3, 26, 13, 0, 249, 247, 1, 0, 0, 0, 250, 253, 1, 0, 0,
3880
+ 0, 251, 249, 1, 0, 0, 0, 251, 252, 1, 0, 0, 0, 252, 33, 1, 0, 0, 0, 253, 251, 1, 0, 0, 0,
3881
+ 254, 255, 5, 17, 0, 0, 255, 256, 3, 26, 13, 0, 256, 257, 5, 18, 0, 0, 257, 262, 3, 26,
3882
+ 13, 0, 258, 259, 5, 2, 0, 0, 259, 261, 3, 26, 13, 0, 260, 258, 1, 0, 0, 0, 261, 264, 1,
3883
+ 0, 0, 0, 262, 260, 1, 0, 0, 0, 262, 263, 1, 0, 0, 0, 263, 265, 1, 0, 0, 0, 264, 262, 1,
3884
+ 0, 0, 0, 265, 266, 5, 1, 0, 0, 266, 267, 5, 64, 0, 0, 267, 270, 5, 66, 0, 0, 268, 271,
3885
+ 5, 64, 0, 0, 269, 271, 3, 36, 18, 0, 270, 268, 1, 0, 0, 0, 270, 269, 1, 0, 0, 0, 271, 272,
3886
+ 1, 0, 0, 0, 272, 270, 1, 0, 0, 0, 272, 273, 1, 0, 0, 0, 273, 274, 1, 0, 0, 0, 274, 275,
3887
+ 5, 67, 0, 0, 275, 35, 1, 0, 0, 0, 276, 277, 3, 28, 14, 0, 277, 278, 5, 1, 0, 0, 278, 283,
3888
+ 3, 38, 19, 0, 279, 280, 5, 2, 0, 0, 280, 282, 3, 38, 19, 0, 281, 279, 1, 0, 0, 0, 282,
3889
+ 285, 1, 0, 0, 0, 283, 281, 1, 0, 0, 0, 283, 284, 1, 0, 0, 0, 284, 37, 1, 0, 0, 0, 285, 283,
3890
+ 1, 0, 0, 0, 286, 287, 7, 3, 0, 0, 287, 39, 1, 0, 0, 0, 288, 289, 3, 30, 15, 0, 289, 290,
3891
+ 5, 1, 0, 0, 290, 291, 5, 64, 0, 0, 291, 294, 5, 66, 0, 0, 292, 295, 5, 64, 0, 0, 293, 295,
3892
+ 3, 42, 21, 0, 294, 292, 1, 0, 0, 0, 294, 293, 1, 0, 0, 0, 295, 296, 1, 0, 0, 0, 296, 294,
3893
+ 1, 0, 0, 0, 296, 297, 1, 0, 0, 0, 297, 298, 1, 0, 0, 0, 298, 299, 5, 67, 0, 0, 299, 41,
3894
+ 1, 0, 0, 0, 300, 303, 3, 2, 1, 0, 301, 303, 3, 44, 22, 0, 302, 300, 1, 0, 0, 0, 302, 301,
3895
+ 1, 0, 0, 0, 303, 43, 1, 0, 0, 0, 304, 305, 3, 28, 14, 0, 305, 308, 5, 1, 0, 0, 306, 309,
3896
+ 3, 46, 23, 0, 307, 309, 3, 48, 24, 0, 308, 306, 1, 0, 0, 0, 308, 307, 1, 0, 0, 0, 309,
3897
+ 45, 1, 0, 0, 0, 310, 313, 3, 2, 1, 0, 311, 313, 5, 54, 0, 0, 312, 310, 1, 0, 0, 0, 312,
3898
+ 311, 1, 0, 0, 0, 313, 47, 1, 0, 0, 0, 314, 315, 3, 10, 5, 0, 315, 49, 1, 0, 0, 0, 316, 317,
3899
+ 5, 8, 0, 0, 317, 51, 1, 0, 0, 0, 318, 319, 5, 28, 0, 0, 319, 53, 1, 0, 0, 0, 320, 323, 3,
3900
+ 80, 40, 0, 321, 323, 3, 84, 42, 0, 322, 320, 1, 0, 0, 0, 322, 321, 1, 0, 0, 0, 323, 324,
3901
+ 1, 0, 0, 0, 324, 325, 5, 3, 0, 0, 325, 326, 3, 66, 33, 0, 326, 55, 1, 0, 0, 0, 327, 328,
3902
+ 3, 80, 40, 0, 328, 329, 7, 4, 0, 0, 329, 330, 3, 66, 33, 0, 330, 57, 1, 0, 0, 0, 331, 332,
3903
+ 5, 56, 0, 0, 332, 333, 5, 3, 0, 0, 333, 334, 3, 66, 33, 0, 334, 59, 1, 0, 0, 0, 335, 340,
3904
+ 3, 66, 33, 0, 336, 337, 5, 2, 0, 0, 337, 339, 3, 66, 33, 0, 338, 336, 1, 0, 0, 0, 339,
3905
+ 342, 1, 0, 0, 0, 340, 338, 1, 0, 0, 0, 340, 341, 1, 0, 0, 0, 341, 347, 1, 0, 0, 0, 342,
3906
+ 340, 1, 0, 0, 0, 343, 344, 5, 2, 0, 0, 344, 346, 3, 58, 29, 0, 345, 343, 1, 0, 0, 0, 346,
3907
+ 349, 1, 0, 0, 0, 347, 345, 1, 0, 0, 0, 347, 348, 1, 0, 0, 0, 348, 359, 1, 0, 0, 0, 349,
3908
+ 347, 1, 0, 0, 0, 350, 355, 3, 58, 29, 0, 351, 352, 5, 2, 0, 0, 352, 354, 3, 58, 29, 0,
3909
+ 353, 351, 1, 0, 0, 0, 354, 357, 1, 0, 0, 0, 355, 353, 1, 0, 0, 0, 355, 356, 1, 0, 0, 0,
3910
+ 356, 359, 1, 0, 0, 0, 357, 355, 1, 0, 0, 0, 358, 335, 1, 0, 0, 0, 358, 350, 1, 0, 0, 0,
3911
+ 359, 61, 1, 0, 0, 0, 360, 361, 3, 80, 40, 0, 361, 362, 5, 3, 0, 0, 362, 363, 3, 66, 33,
3912
+ 0, 363, 63, 1, 0, 0, 0, 364, 365, 5, 4, 0, 0, 365, 366, 5, 56, 0, 0, 366, 367, 5, 3, 0,
3913
+ 0, 367, 368, 3, 66, 33, 0, 368, 65, 1, 0, 0, 0, 369, 370, 6, 33, -1, 0, 370, 371, 5, 52,
3914
+ 0, 0, 371, 372, 3, 66, 33, 0, 372, 373, 5, 53, 0, 0, 373, 387, 1, 0, 0, 0, 374, 377, 3,
3915
+ 72, 36, 0, 375, 377, 3, 80, 40, 0, 376, 374, 1, 0, 0, 0, 376, 375, 1, 0, 0, 0, 377, 387,
3916
+ 1, 0, 0, 0, 378, 379, 3, 70, 35, 0, 379, 380, 3, 66, 33, 10, 380, 387, 1, 0, 0, 0, 381,
3917
+ 387, 3, 92, 46, 0, 382, 387, 3, 96, 48, 0, 383, 387, 3, 98, 49, 0, 384, 387, 3, 84, 42,
3918
+ 0, 385, 387, 3, 114, 57, 0, 386, 369, 1, 0, 0, 0, 386, 376, 1, 0, 0, 0, 386, 378, 1, 0,
3919
+ 0, 0, 386, 381, 1, 0, 0, 0, 386, 382, 1, 0, 0, 0, 386, 383, 1, 0, 0, 0, 386, 384, 1, 0,
3920
+ 0, 0, 386, 385, 1, 0, 0, 0, 387, 403, 1, 0, 0, 0, 388, 389, 10, 9, 0, 0, 389, 390, 7, 5,
3921
+ 0, 0, 390, 402, 3, 66, 33, 10, 391, 392, 10, 8, 0, 0, 392, 393, 7, 6, 0, 0, 393, 402,
3922
+ 3, 66, 33, 9, 394, 395, 10, 7, 0, 0, 395, 396, 3, 68, 34, 0, 396, 397, 3, 66, 33, 8, 397,
3923
+ 402, 1, 0, 0, 0, 398, 399, 10, 6, 0, 0, 399, 400, 7, 7, 0, 0, 400, 402, 3, 66, 33, 7, 401,
3924
+ 388, 1, 0, 0, 0, 401, 391, 1, 0, 0, 0, 401, 394, 1, 0, 0, 0, 401, 398, 1, 0, 0, 0, 402,
3925
+ 405, 1, 0, 0, 0, 403, 401, 1, 0, 0, 0, 403, 404, 1, 0, 0, 0, 404, 67, 1, 0, 0, 0, 405, 403,
3926
+ 1, 0, 0, 0, 406, 407, 7, 8, 0, 0, 407, 69, 1, 0, 0, 0, 408, 409, 7, 9, 0, 0, 409, 71, 1,
3927
+ 0, 0, 0, 410, 412, 5, 43, 0, 0, 411, 410, 1, 0, 0, 0, 411, 412, 1, 0, 0, 0, 412, 413, 1,
3928
+ 0, 0, 0, 413, 414, 7, 10, 0, 0, 414, 73, 1, 0, 0, 0, 415, 416, 5, 23, 0, 0, 416, 417, 5,
3929
+ 56, 0, 0, 417, 419, 5, 52, 0, 0, 418, 420, 3, 78, 39, 0, 419, 418, 1, 0, 0, 0, 419, 420,
3930
+ 1, 0, 0, 0, 420, 421, 1, 0, 0, 0, 421, 422, 5, 53, 0, 0, 422, 423, 5, 1, 0, 0, 423, 424,
3931
+ 5, 64, 0, 0, 424, 427, 5, 66, 0, 0, 425, 428, 5, 64, 0, 0, 426, 428, 3, 76, 38, 0, 427,
3932
+ 425, 1, 0, 0, 0, 427, 426, 1, 0, 0, 0, 428, 429, 1, 0, 0, 0, 429, 427, 1, 0, 0, 0, 429,
3933
+ 430, 1, 0, 0, 0, 430, 431, 1, 0, 0, 0, 431, 432, 5, 67, 0, 0, 432, 75, 1, 0, 0, 0, 433,
3934
+ 436, 3, 2, 1, 0, 434, 436, 3, 88, 44, 0, 435, 433, 1, 0, 0, 0, 435, 434, 1, 0, 0, 0, 436,
3935
+ 77, 1, 0, 0, 0, 437, 442, 5, 56, 0, 0, 438, 439, 5, 2, 0, 0, 439, 441, 5, 56, 0, 0, 440,
3936
+ 438, 1, 0, 0, 0, 441, 444, 1, 0, 0, 0, 442, 440, 1, 0, 0, 0, 442, 443, 1, 0, 0, 0, 443,
3937
+ 451, 1, 0, 0, 0, 444, 442, 1, 0, 0, 0, 445, 446, 5, 2, 0, 0, 446, 447, 5, 56, 0, 0, 447,
3938
+ 448, 5, 3, 0, 0, 448, 450, 3, 72, 36, 0, 449, 445, 1, 0, 0, 0, 450, 453, 1, 0, 0, 0, 451,
3939
+ 449, 1, 0, 0, 0, 451, 452, 1, 0, 0, 0, 452, 467, 1, 0, 0, 0, 453, 451, 1, 0, 0, 0, 454,
3940
+ 455, 5, 56, 0, 0, 455, 456, 5, 3, 0, 0, 456, 463, 3, 72, 36, 0, 457, 458, 5, 2, 0, 0, 458,
3941
+ 459, 5, 56, 0, 0, 459, 460, 5, 3, 0, 0, 460, 462, 3, 72, 36, 0, 461, 457, 1, 0, 0, 0, 462,
3942
+ 465, 1, 0, 0, 0, 463, 461, 1, 0, 0, 0, 463, 464, 1, 0, 0, 0, 464, 467, 1, 0, 0, 0, 465,
3943
+ 463, 1, 0, 0, 0, 466, 437, 1, 0, 0, 0, 466, 454, 1, 0, 0, 0, 467, 79, 1, 0, 0, 0, 468, 473,
3944
+ 5, 56, 0, 0, 469, 470, 5, 5, 0, 0, 470, 472, 5, 56, 0, 0, 471, 469, 1, 0, 0, 0, 472, 475,
3945
+ 1, 0, 0, 0, 473, 471, 1, 0, 0, 0, 473, 474, 1, 0, 0, 0, 474, 81, 1, 0, 0, 0, 475, 473, 1,
3946
+ 0, 0, 0, 476, 478, 5, 52, 0, 0, 477, 479, 3, 60, 30, 0, 478, 477, 1, 0, 0, 0, 478, 479,
3947
+ 1, 0, 0, 0, 479, 480, 1, 0, 0, 0, 480, 484, 5, 53, 0, 0, 481, 482, 5, 5, 0, 0, 482, 484,
3948
+ 5, 56, 0, 0, 483, 476, 1, 0, 0, 0, 483, 481, 1, 0, 0, 0, 484, 83, 1, 0, 0, 0, 485, 487,
3949
+ 3, 86, 43, 0, 486, 485, 1, 0, 0, 0, 486, 487, 1, 0, 0, 0, 487, 488, 1, 0, 0, 0, 488, 490,
3950
+ 5, 56, 0, 0, 489, 491, 3, 82, 41, 0, 490, 489, 1, 0, 0, 0, 491, 492, 1, 0, 0, 0, 492, 490,
3951
+ 1, 0, 0, 0, 492, 493, 1, 0, 0, 0, 493, 85, 1, 0, 0, 0, 494, 496, 5, 42, 0, 0, 495, 494,
3952
+ 1, 0, 0, 0, 495, 496, 1, 0, 0, 0, 496, 497, 1, 0, 0, 0, 497, 499, 5, 44, 0, 0, 498, 500,
3953
+ 3, 66, 33, 0, 499, 498, 1, 0, 0, 0, 499, 500, 1, 0, 0, 0, 500, 87, 1, 0, 0, 0, 501, 502,
3954
+ 5, 22, 0, 0, 502, 503, 3, 66, 33, 0, 503, 89, 1, 0, 0, 0, 504, 505, 3, 106, 53, 0, 505,
3955
+ 506, 5, 1, 0, 0, 506, 507, 3, 10, 5, 0, 507, 91, 1, 0, 0, 0, 508, 509, 5, 10, 0, 0, 509,
3956
+ 510, 5, 11, 0, 0, 510, 511, 5, 1, 0, 0, 511, 512, 5, 64, 0, 0, 512, 515, 5, 66, 0, 0, 513,
3957
+ 516, 5, 64, 0, 0, 514, 516, 3, 104, 52, 0, 515, 513, 1, 0, 0, 0, 515, 514, 1, 0, 0, 0,
3958
+ 516, 517, 1, 0, 0, 0, 517, 515, 1, 0, 0, 0, 517, 518, 1, 0, 0, 0, 518, 519, 1, 0, 0, 0,
3959
+ 519, 520, 5, 67, 0, 0, 520, 93, 1, 0, 0, 0, 521, 522, 5, 64, 0, 0, 522, 525, 5, 66, 0,
3960
+ 0, 523, 526, 5, 64, 0, 0, 524, 526, 3, 102, 51, 0, 525, 523, 1, 0, 0, 0, 525, 524, 1,
3961
+ 0, 0, 0, 526, 527, 1, 0, 0, 0, 527, 525, 1, 0, 0, 0, 527, 528, 1, 0, 0, 0, 528, 529, 1,
3962
+ 0, 0, 0, 529, 530, 5, 67, 0, 0, 530, 95, 1, 0, 0, 0, 531, 532, 5, 10, 0, 0, 532, 536, 5,
3963
+ 12, 0, 0, 533, 534, 5, 52, 0, 0, 534, 535, 5, 56, 0, 0, 535, 537, 5, 53, 0, 0, 536, 533,
3964
+ 1, 0, 0, 0, 536, 537, 1, 0, 0, 0, 537, 538, 1, 0, 0, 0, 538, 539, 5, 1, 0, 0, 539, 540,
3965
+ 3, 94, 47, 0, 540, 97, 1, 0, 0, 0, 541, 542, 5, 10, 0, 0, 542, 543, 5, 13, 0, 0, 543, 544,
3966
+ 5, 1, 0, 0, 544, 545, 5, 64, 0, 0, 545, 549, 5, 66, 0, 0, 546, 550, 5, 64, 0, 0, 547, 550,
3967
+ 3, 104, 52, 0, 548, 550, 3, 90, 45, 0, 549, 546, 1, 0, 0, 0, 549, 547, 1, 0, 0, 0, 549,
3968
+ 548, 1, 0, 0, 0, 550, 551, 1, 0, 0, 0, 551, 549, 1, 0, 0, 0, 551, 552, 1, 0, 0, 0, 552,
3969
+ 553, 1, 0, 0, 0, 553, 554, 5, 67, 0, 0, 554, 99, 1, 0, 0, 0, 555, 556, 5, 64, 0, 0, 556,
3970
+ 559, 5, 66, 0, 0, 557, 560, 5, 64, 0, 0, 558, 560, 3, 104, 52, 0, 559, 557, 1, 0, 0, 0,
3971
+ 559, 558, 1, 0, 0, 0, 560, 561, 1, 0, 0, 0, 561, 559, 1, 0, 0, 0, 561, 562, 1, 0, 0, 0,
3972
+ 562, 563, 1, 0, 0, 0, 563, 564, 5, 67, 0, 0, 564, 101, 1, 0, 0, 0, 565, 567, 7, 11, 0,
3973
+ 0, 566, 568, 5, 1, 0, 0, 567, 566, 1, 0, 0, 0, 567, 568, 1, 0, 0, 0, 568, 575, 1, 0, 0,
3974
+ 0, 569, 576, 3, 60, 30, 0, 570, 571, 5, 52, 0, 0, 571, 572, 3, 60, 30, 0, 572, 573, 5,
3975
+ 53, 0, 0, 573, 576, 1, 0, 0, 0, 574, 576, 3, 100, 50, 0, 575, 569, 1, 0, 0, 0, 575, 570,
3976
+ 1, 0, 0, 0, 575, 574, 1, 0, 0, 0, 576, 592, 1, 0, 0, 0, 577, 578, 5, 25, 0, 0, 578, 583,
3977
+ 5, 56, 0, 0, 579, 580, 5, 2, 0, 0, 580, 582, 5, 56, 0, 0, 581, 579, 1, 0, 0, 0, 582, 585,
3978
+ 1, 0, 0, 0, 583, 581, 1, 0, 0, 0, 583, 584, 1, 0, 0, 0, 584, 586, 1, 0, 0, 0, 585, 583,
3979
+ 1, 0, 0, 0, 586, 587, 5, 26, 0, 0, 587, 588, 3, 66, 33, 0, 588, 589, 5, 1, 0, 0, 589, 590,
3980
+ 3, 94, 47, 0, 590, 592, 1, 0, 0, 0, 591, 565, 1, 0, 0, 0, 591, 577, 1, 0, 0, 0, 592, 103,
3981
+ 1, 0, 0, 0, 593, 594, 3, 106, 53, 0, 594, 595, 5, 1, 0, 0, 595, 596, 3, 108, 54, 0, 596,
3982
+ 105, 1, 0, 0, 0, 597, 598, 7, 12, 0, 0, 598, 107, 1, 0, 0, 0, 599, 609, 3, 100, 50, 0,
3983
+ 600, 605, 3, 66, 33, 0, 601, 602, 5, 2, 0, 0, 602, 604, 3, 66, 33, 0, 603, 601, 1, 0,
3984
+ 0, 0, 604, 607, 1, 0, 0, 0, 605, 603, 1, 0, 0, 0, 605, 606, 1, 0, 0, 0, 606, 609, 1, 0,
3985
+ 0, 0, 607, 605, 1, 0, 0, 0, 608, 599, 1, 0, 0, 0, 608, 600, 1, 0, 0, 0, 609, 109, 1, 0,
3986
+ 0, 0, 610, 613, 5, 56, 0, 0, 611, 614, 5, 57, 0, 0, 612, 614, 3, 66, 33, 0, 613, 611,
3987
+ 1, 0, 0, 0, 613, 612, 1, 0, 0, 0, 614, 617, 1, 0, 0, 0, 615, 617, 5, 56, 0, 0, 616, 610,
3988
+ 1, 0, 0, 0, 616, 615, 1, 0, 0, 0, 617, 111, 1, 0, 0, 0, 618, 622, 5, 14, 0, 0, 619, 621,
3989
+ 3, 110, 55, 0, 620, 619, 1, 0, 0, 0, 621, 624, 1, 0, 0, 0, 622, 620, 1, 0, 0, 0, 622, 623,
3990
+ 1, 0, 0, 0, 623, 113, 1, 0, 0, 0, 624, 622, 1, 0, 0, 0, 625, 636, 5, 6, 0, 0, 626, 631,
3991
+ 3, 66, 33, 0, 627, 628, 5, 2, 0, 0, 628, 630, 3, 66, 33, 0, 629, 627, 1, 0, 0, 0, 630,
3992
+ 633, 1, 0, 0, 0, 631, 629, 1, 0, 0, 0, 631, 632, 1, 0, 0, 0, 632, 635, 1, 0, 0, 0, 633,
3993
+ 631, 1, 0, 0, 0, 634, 626, 1, 0, 0, 0, 635, 638, 1, 0, 0, 0, 636, 634, 1, 0, 0, 0, 636,
3994
+ 637, 1, 0, 0, 0, 637, 639, 1, 0, 0, 0, 638, 636, 1, 0, 0, 0, 639, 640, 5, 7, 0, 0, 640,
3995
+ 115, 1, 0, 0, 0, 641, 644, 5, 19, 0, 0, 642, 645, 5, 56, 0, 0, 643, 645, 3, 66, 33, 0,
3996
+ 644, 642, 1, 0, 0, 0, 644, 643, 1, 0, 0, 0, 645, 117, 1, 0, 0, 0, 646, 647, 5, 24, 0, 0,
3997
+ 647, 648, 5, 56, 0, 0, 648, 119, 1, 0, 0, 0, 649, 650, 7, 13, 0, 0, 650, 651, 5, 1, 0,
3998
+ 0, 651, 652, 3, 10, 5, 0, 652, 121, 1, 0, 0, 0, 653, 654, 5, 29, 0, 0, 654, 655, 3, 66,
3999
+ 33, 0, 655, 656, 5, 1, 0, 0, 656, 660, 3, 10, 5, 0, 657, 659, 3, 124, 62, 0, 658, 657,
4000
+ 1, 0, 0, 0, 659, 662, 1, 0, 0, 0, 660, 658, 1, 0, 0, 0, 660, 661, 1, 0, 0, 0, 661, 664,
4001
+ 1, 0, 0, 0, 662, 660, 1, 0, 0, 0, 663, 665, 3, 126, 63, 0, 664, 663, 1, 0, 0, 0, 664, 665,
4002
+ 1, 0, 0, 0, 665, 123, 1, 0, 0, 0, 666, 667, 5, 30, 0, 0, 667, 668, 5, 29, 0, 0, 668, 669,
4003
+ 3, 66, 33, 0, 669, 670, 5, 1, 0, 0, 670, 671, 3, 10, 5, 0, 671, 125, 1, 0, 0, 0, 672, 673,
4004
+ 5, 30, 0, 0, 673, 674, 5, 1, 0, 0, 674, 675, 3, 10, 5, 0, 675, 127, 1, 0, 0, 0, 676, 677,
4005
+ 5, 27, 0, 0, 677, 678, 3, 66, 33, 0, 678, 679, 5, 1, 0, 0, 679, 680, 3, 10, 5, 0, 680,
4006
+ 129, 1, 0, 0, 0, 681, 682, 5, 25, 0, 0, 682, 687, 5, 56, 0, 0, 683, 684, 5, 2, 0, 0, 684,
4007
+ 686, 5, 56, 0, 0, 685, 683, 1, 0, 0, 0, 686, 689, 1, 0, 0, 0, 687, 685, 1, 0, 0, 0, 687,
4008
+ 688, 1, 0, 0, 0, 688, 690, 1, 0, 0, 0, 689, 687, 1, 0, 0, 0, 690, 691, 5, 26, 0, 0, 691,
4009
+ 692, 3, 66, 33, 0, 692, 693, 5, 1, 0, 0, 693, 694, 3, 10, 5, 0, 694, 131, 1, 0, 0, 0, 76,
4010
+ 134, 136, 141, 143, 159, 166, 170, 178, 184, 186, 200, 202, 217, 221, 226, 230,
4011
+ 238, 251, 262, 270, 272, 283, 294, 296, 302, 308, 312, 322, 340, 347, 355, 358,
4012
+ 376, 386, 401, 403, 411, 419, 427, 429, 435, 442, 451, 463, 466, 473, 478, 483,
4013
+ 486, 492, 495, 499, 515, 517, 525, 527, 536, 549, 551, 559, 561, 567, 575, 583,
4014
+ 591, 605, 608, 613, 616, 622, 631, 636, 644, 660, 664, 687
3945
4015
  ];
3946
4016
  CircuitScriptParser.vocabulary = new antlr.Vocabulary(CircuitScriptParser.literalNames, CircuitScriptParser.symbolicNames, []);
3947
4017
  CircuitScriptParser.decisionsToDFA = CircuitScriptParser._ATN.decisionToState.map((ds, index) => new antlr.DFA(ds, index));
@@ -3989,14 +4059,11 @@ class ExpressionContext extends antlr.ParserRuleContext {
3989
4059
  constructor(parent, invokingState) {
3990
4060
  super(parent, invokingState);
3991
4061
  }
3992
- add_component_expr() {
3993
- return this.getRuleContext(0, Add_component_exprContext);
3994
- }
3995
- to_component_expr() {
3996
- return this.getRuleContext(0, To_component_exprContext);
4062
+ graph_expressions() {
4063
+ return this.getRuleContext(0, Graph_expressionsContext);
3997
4064
  }
3998
- at_component_expr() {
3999
- return this.getRuleContext(0, At_component_exprContext);
4065
+ flow_expressions() {
4066
+ return this.getRuleContext(0, Flow_expressionsContext);
4000
4067
  }
4001
4068
  assignment_expr() {
4002
4069
  return this.getRuleContext(0, Assignment_exprContext);
@@ -4013,38 +4080,37 @@ class ExpressionContext extends antlr.ParserRuleContext {
4013
4080
  double_dot_property_set_expr() {
4014
4081
  return this.getRuleContext(0, Double_dot_property_set_exprContext);
4015
4082
  }
4016
- break_keyword() {
4017
- return this.getRuleContext(0, Break_keywordContext);
4018
- }
4019
- continue_keyword() {
4020
- return this.getRuleContext(0, Continue_keywordContext);
4021
- }
4022
4083
  function_def_expr() {
4023
4084
  return this.getRuleContext(0, Function_def_exprContext);
4024
4085
  }
4025
4086
  function_call_expr() {
4026
4087
  return this.getRuleContext(0, Function_call_exprContext);
4027
4088
  }
4028
- wire_expr() {
4029
- return this.getRuleContext(0, Wire_exprContext);
4030
- }
4031
4089
  import_expr() {
4032
4090
  return this.getRuleContext(0, Import_exprContext);
4033
4091
  }
4034
- frame_expr() {
4035
- return this.getRuleContext(0, Frame_exprContext);
4036
- }
4037
4092
  atom_expr() {
4038
4093
  return this.getRuleContext(0, Atom_exprContext);
4039
4094
  }
4040
- at_block() {
4041
- return this.getRuleContext(0, At_blockContext);
4095
+ frame_expr() {
4096
+ return this.getRuleContext(0, Frame_exprContext);
4042
4097
  }
4043
- path_blocks() {
4044
- return this.getRuleContext(0, Path_blocksContext);
4098
+ get ruleIndex() {
4099
+ return CircuitScriptParser.RULE_expression;
4045
4100
  }
4046
- point_expr() {
4047
- return this.getRuleContext(0, Point_exprContext);
4101
+ accept(visitor) {
4102
+ if (visitor.visitExpression) {
4103
+ return visitor.visitExpression(this);
4104
+ }
4105
+ else {
4106
+ return visitor.visitChildren(this);
4107
+ }
4108
+ }
4109
+ }
4110
+ exports.ExpressionContext = ExpressionContext;
4111
+ class Flow_expressionsContext extends antlr.ParserRuleContext {
4112
+ constructor(parent, invokingState) {
4113
+ super(parent, invokingState);
4048
4114
  }
4049
4115
  if_expr() {
4050
4116
  return this.getRuleContext(0, If_exprContext);
@@ -4055,19 +4121,83 @@ class ExpressionContext extends antlr.ParserRuleContext {
4055
4121
  for_expr() {
4056
4122
  return this.getRuleContext(0, For_exprContext);
4057
4123
  }
4124
+ break_keyword() {
4125
+ return this.getRuleContext(0, Break_keywordContext);
4126
+ }
4127
+ continue_keyword() {
4128
+ return this.getRuleContext(0, Continue_keywordContext);
4129
+ }
4058
4130
  get ruleIndex() {
4059
- return CircuitScriptParser.RULE_expression;
4131
+ return CircuitScriptParser.RULE_flow_expressions;
4060
4132
  }
4061
4133
  accept(visitor) {
4062
- if (visitor.visitExpression) {
4063
- return visitor.visitExpression(this);
4134
+ if (visitor.visitFlow_expressions) {
4135
+ return visitor.visitFlow_expressions(this);
4064
4136
  }
4065
4137
  else {
4066
4138
  return visitor.visitChildren(this);
4067
4139
  }
4068
4140
  }
4069
4141
  }
4070
- exports.ExpressionContext = ExpressionContext;
4142
+ exports.Flow_expressionsContext = Flow_expressionsContext;
4143
+ class Graph_expressionsContext extends antlr.ParserRuleContext {
4144
+ constructor(parent, invokingState) {
4145
+ super(parent, invokingState);
4146
+ }
4147
+ graph_linear_expression() {
4148
+ return this.getRuleContext(0, Graph_linear_expressionContext);
4149
+ }
4150
+ path_block() {
4151
+ return this.getRuleContext(0, Path_blockContext);
4152
+ }
4153
+ get ruleIndex() {
4154
+ return CircuitScriptParser.RULE_graph_expressions;
4155
+ }
4156
+ accept(visitor) {
4157
+ if (visitor.visitGraph_expressions) {
4158
+ return visitor.visitGraph_expressions(this);
4159
+ }
4160
+ else {
4161
+ return visitor.visitChildren(this);
4162
+ }
4163
+ }
4164
+ }
4165
+ exports.Graph_expressionsContext = Graph_expressionsContext;
4166
+ class Graph_linear_expressionContext extends antlr.ParserRuleContext {
4167
+ constructor(parent, invokingState) {
4168
+ super(parent, invokingState);
4169
+ }
4170
+ add_component_expr() {
4171
+ return this.getRuleContext(0, Add_component_exprContext);
4172
+ }
4173
+ to_component_expr() {
4174
+ return this.getRuleContext(0, To_component_exprContext);
4175
+ }
4176
+ at_component_expr() {
4177
+ return this.getRuleContext(0, At_component_exprContext);
4178
+ }
4179
+ at_block() {
4180
+ return this.getRuleContext(0, At_blockContext);
4181
+ }
4182
+ wire_expr() {
4183
+ return this.getRuleContext(0, Wire_exprContext);
4184
+ }
4185
+ point_expr() {
4186
+ return this.getRuleContext(0, Point_exprContext);
4187
+ }
4188
+ get ruleIndex() {
4189
+ return CircuitScriptParser.RULE_graph_linear_expression;
4190
+ }
4191
+ accept(visitor) {
4192
+ if (visitor.visitGraph_linear_expression) {
4193
+ return visitor.visitGraph_linear_expression(this);
4194
+ }
4195
+ else {
4196
+ return visitor.visitChildren(this);
4197
+ }
4198
+ }
4199
+ }
4200
+ exports.Graph_linear_expressionContext = Graph_linear_expressionContext;
4071
4201
  class Expressions_blockContext extends antlr.ParserRuleContext {
4072
4202
  constructor(parent, invokingState) {
4073
4203
  super(parent, invokingState);
@@ -4105,30 +4235,7 @@ class Expressions_blockContext extends antlr.ParserRuleContext {
4105
4235
  }
4106
4236
  }
4107
4237
  exports.Expressions_blockContext = Expressions_blockContext;
4108
- class Path_blocksContext extends antlr.ParserRuleContext {
4109
- constructor(parent, invokingState) {
4110
- super(parent, invokingState);
4111
- }
4112
- path_block_inner(i) {
4113
- if (i === undefined) {
4114
- return this.getRuleContexts(Path_block_innerContext);
4115
- }
4116
- return this.getRuleContext(i, Path_block_innerContext);
4117
- }
4118
- get ruleIndex() {
4119
- return CircuitScriptParser.RULE_path_blocks;
4120
- }
4121
- accept(visitor) {
4122
- if (visitor.visitPath_blocks) {
4123
- return visitor.visitPath_blocks(this);
4124
- }
4125
- else {
4126
- return visitor.visitChildren(this);
4127
- }
4128
- }
4129
- }
4130
- exports.Path_blocksContext = Path_blocksContext;
4131
- class Path_block_innerContext extends antlr.ParserRuleContext {
4238
+ class Path_blockContext extends antlr.ParserRuleContext {
4132
4239
  constructor(parent, invokingState) {
4133
4240
  super(parent, invokingState);
4134
4241
  }
@@ -4148,18 +4255,18 @@ class Path_block_innerContext extends antlr.ParserRuleContext {
4148
4255
  return this.getToken(CircuitScriptParser.Point, 0);
4149
4256
  }
4150
4257
  get ruleIndex() {
4151
- return CircuitScriptParser.RULE_path_block_inner;
4258
+ return CircuitScriptParser.RULE_path_block;
4152
4259
  }
4153
4260
  accept(visitor) {
4154
- if (visitor.visitPath_block_inner) {
4155
- return visitor.visitPath_block_inner(this);
4261
+ if (visitor.visitPath_block) {
4262
+ return visitor.visitPath_block(this);
4156
4263
  }
4157
4264
  else {
4158
4265
  return visitor.visitChildren(this);
4159
4266
  }
4160
4267
  }
4161
4268
  }
4162
- exports.Path_block_innerContext = Path_block_innerContext;
4269
+ exports.Path_blockContext = Path_blockContext;
4163
4270
  class Property_set_expr2Context extends antlr.ParserRuleContext {
4164
4271
  constructor(parent, invokingState) {
4165
4272
  super(parent, invokingState);
@@ -4704,11 +4811,14 @@ class Assignment_exprContext extends antlr.ParserRuleContext {
4704
4811
  constructor(parent, invokingState) {
4705
4812
  super(parent, invokingState);
4706
4813
  }
4814
+ data_expr() {
4815
+ return this.getRuleContext(0, Data_exprContext);
4816
+ }
4707
4817
  atom_expr() {
4708
4818
  return this.getRuleContext(0, Atom_exprContext);
4709
4819
  }
4710
- data_expr() {
4711
- return this.getRuleContext(0, Data_exprContext);
4820
+ function_call_expr() {
4821
+ return this.getRuleContext(0, Function_call_exprContext);
4712
4822
  }
4713
4823
  get ruleIndex() {
4714
4824
  return CircuitScriptParser.RULE_assignment_expr;