circuitscript 0.1.11 → 0.1.13

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 (46) hide show
  1. package/dist/cjs/BaseVisitor.js +147 -115
  2. package/dist/cjs/antlr/CircuitScriptParser.js +949 -932
  3. package/dist/cjs/builtinMethods.js +7 -1
  4. package/dist/cjs/execute.js +67 -35
  5. package/dist/cjs/globals.js +7 -1
  6. package/dist/cjs/helpers.js +11 -8
  7. package/dist/cjs/layout.js +50 -16
  8. package/dist/cjs/objects/ExecutionScope.js +3 -0
  9. package/dist/cjs/objects/Net.js +1 -0
  10. package/dist/cjs/objects/ParamDefinition.js +3 -0
  11. package/dist/cjs/objects/types.js +19 -10
  12. package/dist/cjs/parser.js +3 -1
  13. package/dist/cjs/render.js +48 -6
  14. package/dist/cjs/utils.js +16 -1
  15. package/dist/cjs/visitor.js +69 -52
  16. package/dist/esm/BaseVisitor.js +113 -81
  17. package/dist/esm/antlr/CircuitScriptParser.js +943 -926
  18. package/dist/esm/antlr/CircuitScriptVisitor.js +4 -4
  19. package/dist/esm/builtinMethods.js +8 -2
  20. package/dist/esm/execute.js +68 -36
  21. package/dist/esm/globals.js +6 -0
  22. package/dist/esm/helpers.js +11 -8
  23. package/dist/esm/layout.js +53 -17
  24. package/dist/esm/objects/ExecutionScope.js +3 -0
  25. package/dist/esm/objects/Net.js +1 -0
  26. package/dist/esm/objects/ParamDefinition.js +4 -1
  27. package/dist/esm/objects/types.js +21 -15
  28. package/dist/esm/parser.js +3 -1
  29. package/dist/esm/render.js +49 -7
  30. package/dist/esm/utils.js +13 -0
  31. package/dist/esm/visitor.js +57 -40
  32. package/dist/types/BaseVisitor.d.ts +5 -6
  33. package/dist/types/antlr/CircuitScriptParser.d.ts +58 -58
  34. package/dist/types/antlr/CircuitScriptVisitor.d.ts +8 -8
  35. package/dist/types/execute.d.ts +4 -2
  36. package/dist/types/globals.d.ts +5 -0
  37. package/dist/types/layout.d.ts +16 -3
  38. package/dist/types/objects/ExecutionScope.d.ts +15 -3
  39. package/dist/types/objects/Net.d.ts +1 -0
  40. package/dist/types/objects/types.d.ts +25 -18
  41. package/dist/types/parser.d.ts +1 -0
  42. package/dist/types/utils.d.ts +3 -1
  43. package/dist/types/visitor.d.ts +3 -2
  44. package/package.json +1 -1
  45. /package/dist/libs/{lib.cst → std.cst} +0 -0
  46. /package/libs/{lib.cst → std.cst} +0 -0
@@ -23,7 +23,7 @@ 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;
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.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
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;
28
28
  const antlr = __importStar(require("antlr4ng"));
29
29
  class CircuitScriptParser extends antlr.Parser {
@@ -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 = 155;
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
156
  this.state = 143;
157
- this.add_component_expr();
157
+ this.graph_expressions();
158
158
  }
159
159
  break;
160
160
  case 2:
161
161
  this.enterOuterAlt(localContext, 2);
162
162
  {
163
163
  this.state = 144;
164
- this.to_component_expr();
164
+ this.assignment_expr();
165
165
  }
166
166
  break;
167
167
  case 3:
168
168
  this.enterOuterAlt(localContext, 3);
169
169
  {
170
170
  this.state = 145;
171
- this.at_component_expr();
171
+ this.operator_assignment_expr();
172
172
  }
173
173
  break;
174
174
  case 4:
175
175
  this.enterOuterAlt(localContext, 4);
176
176
  {
177
177
  this.state = 146;
178
- this.assignment_expr();
178
+ this.property_set_expr();
179
179
  }
180
180
  break;
181
181
  case 5:
182
182
  this.enterOuterAlt(localContext, 5);
183
183
  {
184
184
  this.state = 147;
185
- this.operator_assignment_expr();
185
+ this.property_set_expr2();
186
186
  }
187
187
  break;
188
188
  case 6:
189
189
  this.enterOuterAlt(localContext, 6);
190
190
  {
191
191
  this.state = 148;
192
- this.property_set_expr();
192
+ this.double_dot_property_set_expr();
193
193
  }
194
194
  break;
195
195
  case 7:
196
196
  this.enterOuterAlt(localContext, 7);
197
197
  {
198
198
  this.state = 149;
199
- this.property_set_expr2();
199
+ this.function_def_expr();
200
200
  }
201
201
  break;
202
202
  case 8:
203
203
  this.enterOuterAlt(localContext, 8);
204
204
  {
205
205
  this.state = 150;
206
- this.double_dot_property_set_expr();
206
+ this.function_call_expr();
207
207
  }
208
208
  break;
209
209
  case 9:
210
210
  this.enterOuterAlt(localContext, 9);
211
211
  {
212
212
  this.state = 151;
213
- this.break_keyword();
213
+ this.import_expr();
214
214
  }
215
215
  break;
216
216
  case 10:
217
217
  this.enterOuterAlt(localContext, 10);
218
218
  {
219
219
  this.state = 152;
220
- this.continue_keyword();
220
+ this.atom_expr();
221
221
  }
222
222
  break;
223
223
  case 11:
224
224
  this.enterOuterAlt(localContext, 11);
225
225
  {
226
226
  this.state = 153;
227
- this.function_def_expr();
227
+ this.frame_expr();
228
228
  }
229
229
  break;
230
230
  case 12:
231
231
  this.enterOuterAlt(localContext, 12);
232
232
  {
233
233
  this.state = 154;
234
- this.function_call_expr();
234
+ this.flow_expressions();
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 = 162;
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 = 157;
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 = 158;
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 = 159;
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 = 160;
285
+ this.match(CircuitScriptParser.Break);
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 = 161;
292
+ this.match(CircuitScriptParser.Continue);
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 = 166;
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 = 164;
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 = 165;
331
+ this.path_block();
284
332
  }
285
333
  break;
286
- case 20:
287
- this.enterOuterAlt(localContext, 20);
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 = 174;
355
+ this.errorHandler.sync(this);
356
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 7, this.context)) {
357
+ case 1:
358
+ this.enterOuterAlt(localContext, 1);
288
359
  {
289
- this.state = 162;
290
- this.if_expr();
360
+ this.state = 168;
361
+ this.add_component_expr();
291
362
  }
292
363
  break;
293
- case 21:
294
- this.enterOuterAlt(localContext, 21);
364
+ case 2:
365
+ this.enterOuterAlt(localContext, 2);
295
366
  {
296
- this.state = 163;
297
- this.while_expr();
367
+ this.state = 169;
368
+ this.to_component_expr();
298
369
  }
299
370
  break;
300
- case 22:
301
- this.enterOuterAlt(localContext, 22);
371
+ case 3:
372
+ this.enterOuterAlt(localContext, 3);
302
373
  {
303
- this.state = 164;
304
- this.for_expr();
374
+ this.state = 170;
375
+ this.at_component_expr();
376
+ }
377
+ break;
378
+ case 4:
379
+ this.enterOuterAlt(localContext, 4);
380
+ {
381
+ this.state = 171;
382
+ this.at_block();
383
+ }
384
+ break;
385
+ case 5:
386
+ this.enterOuterAlt(localContext, 5);
387
+ {
388
+ this.state = 172;
389
+ this.wire_expr();
390
+ }
391
+ break;
392
+ case 6:
393
+ this.enterOuterAlt(localContext, 6);
394
+ {
395
+ this.state = 173;
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 = 176;
331
423
  this.match(CircuitScriptParser.NEWLINE);
332
- this.state = 168;
424
+ this.state = 177;
333
425
  this.match(CircuitScriptParser.INDENT);
334
- this.state = 171;
426
+ this.state = 180;
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 = 180;
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 = 178;
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 = 179;
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 = 182;
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 = 184;
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 = 186;
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 = 187;
460
509
  this.match(CircuitScriptParser.T__0);
461
- this.state = 184;
510
+ this.state = 188;
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 = 190;
487
536
  this.atom_expr();
488
- this.state = 187;
537
+ this.state = 191;
489
538
  this.match(CircuitScriptParser.T__0);
490
- this.state = 188;
539
+ this.state = 192;
491
540
  this.match(CircuitScriptParser.NEWLINE);
492
- this.state = 189;
541
+ this.state = 193;
493
542
  this.match(CircuitScriptParser.INDENT);
494
- this.state = 192;
543
+ this.state = 196;
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 = 196;
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 = 194;
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 = 195;
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 = 198;
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 = 200;
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 = 202;
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 = 203;
558
607
  this.match(CircuitScriptParser.T__0);
559
- this.state = 200;
608
+ this.state = 204;
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 = 206;
584
633
  this.match(CircuitScriptParser.Pin);
585
- this.state = 203;
634
+ this.state = 207;
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 = 209;
610
659
  this.match(CircuitScriptParser.ID);
611
- this.state = 206;
660
+ this.state = 210;
612
661
  this.match(CircuitScriptParser.T__0);
613
- this.state = 209;
662
+ this.state = 213;
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 = 211;
625
674
  this.value_expr();
626
675
  }
627
676
  break;
628
677
  case CircuitScriptParser.ID:
629
678
  {
630
- this.state = 208;
679
+ this.state = 212;
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 = 217;
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 = 215;
667
716
  this.data_expr(0);
668
717
  }
669
718
  break;
670
719
  case 2:
671
720
  {
672
- this.state = 212;
721
+ this.state = 216;
673
722
  this.assignment_expr();
674
723
  }
675
724
  break;
676
725
  }
677
- this.state = 218;
726
+ this.state = 222;
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 = 219;
685
734
  this.component_modifier_expr();
686
735
  }
687
736
  }
688
737
  }
689
- this.state = 220;
738
+ this.state = 224;
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 = 226;
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 = 225;
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 = 228;
725
774
  this.match(CircuitScriptParser.Add);
726
- this.state = 225;
775
+ this.state = 229;
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 = 234;
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 = 231;
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 = 232;
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 = 233;
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 = 236;
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 = 238;
842
891
  this.match(CircuitScriptParser.At);
843
- this.state = 235;
892
+ this.state = 239;
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 = 241;
869
918
  this.match(CircuitScriptParser.To);
870
919
  {
871
- this.state = 238;
920
+ this.state = 242;
872
921
  this.component_select_expr();
873
- this.state = 243;
922
+ this.state = 247;
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 = 243;
880
929
  this.match(CircuitScriptParser.T__1);
881
- this.state = 240;
930
+ this.state = 244;
882
931
  this.component_select_expr();
883
932
  }
884
933
  }
885
- this.state = 245;
934
+ this.state = 249;
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 = 250;
914
963
  this.match(CircuitScriptParser.At);
915
- this.state = 247;
964
+ this.state = 251;
916
965
  this.component_select_expr();
917
- this.state = 248;
966
+ this.state = 252;
918
967
  this.match(CircuitScriptParser.To);
919
- this.state = 249;
968
+ this.state = 253;
920
969
  this.component_select_expr();
921
- this.state = 254;
970
+ this.state = 258;
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 = 254;
928
977
  this.match(CircuitScriptParser.T__1);
929
- this.state = 251;
978
+ this.state = 255;
930
979
  this.component_select_expr();
931
980
  }
932
981
  }
933
- this.state = 256;
982
+ this.state = 260;
934
983
  this.errorHandler.sync(this);
935
984
  _la = this.tokenStream.LA(1);
936
985
  }
937
- this.state = 257;
986
+ this.state = 261;
938
987
  this.match(CircuitScriptParser.T__0);
939
- this.state = 258;
988
+ this.state = 262;
940
989
  this.match(CircuitScriptParser.NEWLINE);
941
- this.state = 259;
990
+ this.state = 263;
942
991
  this.match(CircuitScriptParser.INDENT);
943
- this.state = 262;
992
+ this.state = 266;
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 = 266;
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 = 264;
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 = 265;
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 = 268;
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 = 270;
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 = 272;
998
1047
  this.pin_select_expr2();
999
- this.state = 269;
1048
+ this.state = 273;
1000
1049
  this.match(CircuitScriptParser.T__0);
1001
- this.state = 270;
1050
+ this.state = 274;
1002
1051
  this.at_to_multiple_line_expr_to_pin();
1003
- this.state = 275;
1052
+ this.state = 279;
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 = 275;
1010
1059
  this.match(CircuitScriptParser.T__1);
1011
- this.state = 272;
1060
+ this.state = 276;
1012
1061
  this.at_to_multiple_line_expr_to_pin();
1013
1062
  }
1014
1063
  }
1015
- this.state = 277;
1064
+ this.state = 281;
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 = 282;
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 = 284;
1075
1124
  this.at_component_expr();
1076
- this.state = 281;
1125
+ this.state = 285;
1077
1126
  this.match(CircuitScriptParser.T__0);
1078
- this.state = 282;
1127
+ this.state = 286;
1079
1128
  this.match(CircuitScriptParser.NEWLINE);
1080
- this.state = 283;
1129
+ this.state = 287;
1081
1130
  this.match(CircuitScriptParser.INDENT);
1082
- this.state = 286;
1131
+ this.state = 290;
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 = 290;
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 = 288;
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 = 289;
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 = 292;
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 = 294;
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 = 298;
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 = 296;
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 = 297;
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 = 300;
1217
1266
  this.pin_select_expr2();
1218
- this.state = 297;
1267
+ this.state = 301;
1219
1268
  this.match(CircuitScriptParser.T__0);
1220
- this.state = 300;
1269
+ this.state = 304;
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 = 302;
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 = 303;
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 = 308;
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 = 306;
1307
1356
  this.expression();
1308
1357
  }
1309
1358
  break;
1310
1359
  case CircuitScriptParser.NOT_CONNECTED:
1311
1360
  {
1312
- this.state = 303;
1361
+ this.state = 307;
1313
1362
  this.match(CircuitScriptParser.NOT_CONNECTED);
1314
1363
  }
1315
1364
  break;
@@ -1334,60 +1383,12 @@ 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);
1338
- try {
1339
- this.enterOuterAlt(localContext, 1);
1340
- {
1341
- this.state = 306;
1342
- this.expressions_block();
1343
- }
1344
- }
1345
- catch (re) {
1346
- if (re instanceof antlr.RecognitionException) {
1347
- this.errorHandler.reportError(this, re);
1348
- this.errorHandler.recover(this, re);
1349
- }
1350
- else {
1351
- throw re;
1352
- }
1353
- }
1354
- finally {
1355
- this.exitRule();
1356
- }
1357
- return localContext;
1358
- }
1359
- break_keyword() {
1360
- let localContext = new Break_keywordContext(this.context, this.state);
1361
- this.enterRule(localContext, 46, CircuitScriptParser.RULE_break_keyword);
1362
- try {
1363
- this.enterOuterAlt(localContext, 1);
1364
- {
1365
- this.state = 308;
1366
- this.match(CircuitScriptParser.Break);
1367
- }
1368
- }
1369
- catch (re) {
1370
- if (re instanceof antlr.RecognitionException) {
1371
- this.errorHandler.reportError(this, re);
1372
- this.errorHandler.recover(this, re);
1373
- }
1374
- else {
1375
- throw re;
1376
- }
1377
- }
1378
- finally {
1379
- this.exitRule();
1380
- }
1381
- return localContext;
1382
- }
1383
- continue_keyword() {
1384
- let localContext = new Continue_keywordContext(this.context, this.state);
1385
- this.enterRule(localContext, 48, CircuitScriptParser.RULE_continue_keyword);
1386
+ this.enterRule(localContext, 48, CircuitScriptParser.RULE_at_block_pin_expression_complex);
1386
1387
  try {
1387
1388
  this.enterOuterAlt(localContext, 1);
1388
1389
  {
1389
1390
  this.state = 310;
1390
- this.match(CircuitScriptParser.Continue);
1391
+ this.expressions_block();
1391
1392
  }
1392
1393
  }
1393
1394
  catch (re) {
@@ -1410,11 +1411,25 @@ class CircuitScriptParser extends antlr.Parser {
1410
1411
  try {
1411
1412
  this.enterOuterAlt(localContext, 1);
1412
1413
  {
1413
- this.state = 312;
1414
- this.atom_expr();
1415
- this.state = 313;
1416
- this.match(CircuitScriptParser.T__2);
1417
1414
  this.state = 314;
1415
+ this.errorHandler.sync(this);
1416
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 27, this.context)) {
1417
+ case 1:
1418
+ {
1419
+ this.state = 312;
1420
+ this.atom_expr();
1421
+ }
1422
+ break;
1423
+ case 2:
1424
+ {
1425
+ this.state = 313;
1426
+ this.function_call_expr();
1427
+ }
1428
+ break;
1429
+ }
1430
+ this.state = 316;
1431
+ this.match(CircuitScriptParser.T__2);
1432
+ this.state = 317;
1418
1433
  this.data_expr(0);
1419
1434
  }
1420
1435
  }
@@ -1439,9 +1454,9 @@ class CircuitScriptParser extends antlr.Parser {
1439
1454
  try {
1440
1455
  this.enterOuterAlt(localContext, 1);
1441
1456
  {
1442
- this.state = 316;
1457
+ this.state = 319;
1443
1458
  this.atom_expr();
1444
- this.state = 317;
1459
+ this.state = 320;
1445
1460
  _la = this.tokenStream.LA(1);
1446
1461
  if (!(((((_la - 47)) & ~0x1F) === 0 && ((1 << (_la - 47)) & 31) !== 0))) {
1447
1462
  this.errorHandler.recoverInline(this);
@@ -1450,7 +1465,7 @@ class CircuitScriptParser extends antlr.Parser {
1450
1465
  this.errorHandler.reportMatch(this);
1451
1466
  this.consume();
1452
1467
  }
1453
- this.state = 318;
1468
+ this.state = 321;
1454
1469
  this.data_expr(0);
1455
1470
  }
1456
1471
  }
@@ -1474,11 +1489,11 @@ class CircuitScriptParser extends antlr.Parser {
1474
1489
  try {
1475
1490
  this.enterOuterAlt(localContext, 1);
1476
1491
  {
1477
- this.state = 320;
1492
+ this.state = 323;
1478
1493
  this.match(CircuitScriptParser.ID);
1479
- this.state = 321;
1494
+ this.state = 324;
1480
1495
  this.match(CircuitScriptParser.T__2);
1481
- this.state = 322;
1496
+ this.state = 325;
1482
1497
  this.data_expr(0);
1483
1498
  }
1484
1499
  }
@@ -1502,46 +1517,46 @@ class CircuitScriptParser extends antlr.Parser {
1502
1517
  let _la;
1503
1518
  try {
1504
1519
  let alternative;
1505
- this.state = 347;
1520
+ this.state = 350;
1506
1521
  this.errorHandler.sync(this);
1507
- switch (this.interpreter.adaptivePredict(this.tokenStream, 28, this.context)) {
1522
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 31, this.context)) {
1508
1523
  case 1:
1509
1524
  this.enterOuterAlt(localContext, 1);
1510
1525
  {
1511
1526
  {
1512
- this.state = 324;
1527
+ this.state = 327;
1513
1528
  this.data_expr(0);
1514
- this.state = 329;
1529
+ this.state = 332;
1515
1530
  this.errorHandler.sync(this);
1516
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 25, this.context);
1531
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 28, this.context);
1517
1532
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1518
1533
  if (alternative === 1) {
1519
1534
  {
1520
1535
  {
1521
- this.state = 325;
1536
+ this.state = 328;
1522
1537
  this.match(CircuitScriptParser.T__1);
1523
- this.state = 326;
1538
+ this.state = 329;
1524
1539
  this.data_expr(0);
1525
1540
  }
1526
1541
  }
1527
1542
  }
1528
- this.state = 331;
1543
+ this.state = 334;
1529
1544
  this.errorHandler.sync(this);
1530
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 25, this.context);
1545
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 28, this.context);
1531
1546
  }
1532
- this.state = 336;
1547
+ this.state = 339;
1533
1548
  this.errorHandler.sync(this);
1534
1549
  _la = this.tokenStream.LA(1);
1535
1550
  while (_la === 2) {
1536
1551
  {
1537
1552
  {
1538
- this.state = 332;
1553
+ this.state = 335;
1539
1554
  this.match(CircuitScriptParser.T__1);
1540
- this.state = 333;
1555
+ this.state = 336;
1541
1556
  this.keyword_assignment_expr();
1542
1557
  }
1543
1558
  }
1544
- this.state = 338;
1559
+ this.state = 341;
1545
1560
  this.errorHandler.sync(this);
1546
1561
  _la = this.tokenStream.LA(1);
1547
1562
  }
@@ -1552,21 +1567,21 @@ class CircuitScriptParser extends antlr.Parser {
1552
1567
  this.enterOuterAlt(localContext, 2);
1553
1568
  {
1554
1569
  {
1555
- this.state = 339;
1570
+ this.state = 342;
1556
1571
  this.keyword_assignment_expr();
1557
- this.state = 344;
1572
+ this.state = 347;
1558
1573
  this.errorHandler.sync(this);
1559
1574
  _la = this.tokenStream.LA(1);
1560
1575
  while (_la === 2) {
1561
1576
  {
1562
1577
  {
1563
- this.state = 340;
1578
+ this.state = 343;
1564
1579
  this.match(CircuitScriptParser.T__1);
1565
- this.state = 341;
1580
+ this.state = 344;
1566
1581
  this.keyword_assignment_expr();
1567
1582
  }
1568
1583
  }
1569
- this.state = 346;
1584
+ this.state = 349;
1570
1585
  this.errorHandler.sync(this);
1571
1586
  _la = this.tokenStream.LA(1);
1572
1587
  }
@@ -1595,11 +1610,11 @@ class CircuitScriptParser extends antlr.Parser {
1595
1610
  try {
1596
1611
  this.enterOuterAlt(localContext, 1);
1597
1612
  {
1598
- this.state = 349;
1613
+ this.state = 352;
1599
1614
  this.atom_expr();
1600
- this.state = 350;
1615
+ this.state = 353;
1601
1616
  this.match(CircuitScriptParser.T__2);
1602
- this.state = 351;
1617
+ this.state = 354;
1603
1618
  this.data_expr(0);
1604
1619
  }
1605
1620
  }
@@ -1623,13 +1638,13 @@ class CircuitScriptParser extends antlr.Parser {
1623
1638
  try {
1624
1639
  this.enterOuterAlt(localContext, 1);
1625
1640
  {
1626
- this.state = 353;
1641
+ this.state = 356;
1627
1642
  this.match(CircuitScriptParser.T__3);
1628
- this.state = 354;
1643
+ this.state = 357;
1629
1644
  this.match(CircuitScriptParser.ID);
1630
- this.state = 355;
1645
+ this.state = 358;
1631
1646
  this.match(CircuitScriptParser.T__2);
1632
- this.state = 356;
1647
+ this.state = 359;
1633
1648
  this.data_expr(0);
1634
1649
  }
1635
1650
  }
@@ -1662,19 +1677,19 @@ class CircuitScriptParser extends antlr.Parser {
1662
1677
  let alternative;
1663
1678
  this.enterOuterAlt(localContext, 1);
1664
1679
  {
1665
- this.state = 375;
1680
+ this.state = 378;
1666
1681
  this.errorHandler.sync(this);
1667
- switch (this.interpreter.adaptivePredict(this.tokenStream, 30, this.context)) {
1682
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 33, this.context)) {
1668
1683
  case 1:
1669
1684
  {
1670
1685
  localContext = new RoundedBracketsExprContext(localContext);
1671
1686
  this.context = localContext;
1672
1687
  previousContext = localContext;
1673
- this.state = 359;
1688
+ this.state = 362;
1674
1689
  this.match(CircuitScriptParser.OPEN_PAREN);
1675
- this.state = 360;
1690
+ this.state = 363;
1676
1691
  this.data_expr(0);
1677
- this.state = 361;
1692
+ this.state = 364;
1678
1693
  this.match(CircuitScriptParser.CLOSE_PAREN);
1679
1694
  }
1680
1695
  break;
@@ -1683,7 +1698,7 @@ class CircuitScriptParser extends antlr.Parser {
1683
1698
  localContext = new ValueAtomExprContext(localContext);
1684
1699
  this.context = localContext;
1685
1700
  previousContext = localContext;
1686
- this.state = 365;
1701
+ this.state = 368;
1687
1702
  this.errorHandler.sync(this);
1688
1703
  switch (this.tokenStream.LA(1)) {
1689
1704
  case CircuitScriptParser.Minus:
@@ -1694,13 +1709,13 @@ class CircuitScriptParser extends antlr.Parser {
1694
1709
  case CircuitScriptParser.STRING_VALUE:
1695
1710
  case CircuitScriptParser.PERCENTAGE_VALUE:
1696
1711
  {
1697
- this.state = 363;
1712
+ this.state = 366;
1698
1713
  this.value_expr();
1699
1714
  }
1700
1715
  break;
1701
1716
  case CircuitScriptParser.ID:
1702
1717
  {
1703
- this.state = 364;
1718
+ this.state = 367;
1704
1719
  this.atom_expr();
1705
1720
  }
1706
1721
  break;
@@ -1714,9 +1729,9 @@ class CircuitScriptParser extends antlr.Parser {
1714
1729
  localContext = new UnaryOperatorExprContext(localContext);
1715
1730
  this.context = localContext;
1716
1731
  previousContext = localContext;
1717
- this.state = 367;
1732
+ this.state = 370;
1718
1733
  this.unary_operator();
1719
- this.state = 368;
1734
+ this.state = 371;
1720
1735
  this.data_expr(10);
1721
1736
  }
1722
1737
  break;
@@ -1725,7 +1740,7 @@ class CircuitScriptParser extends antlr.Parser {
1725
1740
  localContext = new DataExprContext(localContext);
1726
1741
  this.context = localContext;
1727
1742
  previousContext = localContext;
1728
- this.state = 370;
1743
+ this.state = 373;
1729
1744
  this.create_component_expr();
1730
1745
  }
1731
1746
  break;
@@ -1734,7 +1749,7 @@ class CircuitScriptParser extends antlr.Parser {
1734
1749
  localContext = new DataExprContext(localContext);
1735
1750
  this.context = localContext;
1736
1751
  previousContext = localContext;
1737
- this.state = 371;
1752
+ this.state = 374;
1738
1753
  this.create_graphic_expr();
1739
1754
  }
1740
1755
  break;
@@ -1743,7 +1758,7 @@ class CircuitScriptParser extends antlr.Parser {
1743
1758
  localContext = new DataExprContext(localContext);
1744
1759
  this.context = localContext;
1745
1760
  previousContext = localContext;
1746
- this.state = 372;
1761
+ this.state = 375;
1747
1762
  this.create_module_expr();
1748
1763
  }
1749
1764
  break;
@@ -1752,7 +1767,7 @@ class CircuitScriptParser extends antlr.Parser {
1752
1767
  localContext = new FunctionCallExprContext(localContext);
1753
1768
  this.context = localContext;
1754
1769
  previousContext = localContext;
1755
- this.state = 373;
1770
+ this.state = 376;
1756
1771
  this.function_call_expr();
1757
1772
  }
1758
1773
  break;
@@ -1761,15 +1776,15 @@ class CircuitScriptParser extends antlr.Parser {
1761
1776
  localContext = new ArrayExprContext(localContext);
1762
1777
  this.context = localContext;
1763
1778
  previousContext = localContext;
1764
- this.state = 374;
1779
+ this.state = 377;
1765
1780
  this.array_expr();
1766
1781
  }
1767
1782
  break;
1768
1783
  }
1769
1784
  this.context.stop = this.tokenStream.LT(-1);
1770
- this.state = 392;
1785
+ this.state = 395;
1771
1786
  this.errorHandler.sync(this);
1772
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 32, this.context);
1787
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 35, this.context);
1773
1788
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1774
1789
  if (alternative === 1) {
1775
1790
  if (this.parseListeners != null) {
@@ -1777,18 +1792,18 @@ class CircuitScriptParser extends antlr.Parser {
1777
1792
  }
1778
1793
  previousContext = localContext;
1779
1794
  {
1780
- this.state = 390;
1795
+ this.state = 393;
1781
1796
  this.errorHandler.sync(this);
1782
- switch (this.interpreter.adaptivePredict(this.tokenStream, 31, this.context)) {
1797
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 34, this.context)) {
1783
1798
  case 1:
1784
1799
  {
1785
1800
  localContext = new MultiplyExprContext(new Data_exprContext(parentContext, parentState));
1786
1801
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1787
- this.state = 377;
1802
+ this.state = 380;
1788
1803
  if (!(this.precpred(this.context, 9))) {
1789
1804
  throw this.createFailedPredicateException("this.precpred(this.context, 9)");
1790
1805
  }
1791
- this.state = 378;
1806
+ this.state = 381;
1792
1807
  _la = this.tokenStream.LA(1);
1793
1808
  if (!(((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 7) !== 0))) {
1794
1809
  this.errorHandler.recoverInline(this);
@@ -1797,7 +1812,7 @@ class CircuitScriptParser extends antlr.Parser {
1797
1812
  this.errorHandler.reportMatch(this);
1798
1813
  this.consume();
1799
1814
  }
1800
- this.state = 379;
1815
+ this.state = 382;
1801
1816
  this.data_expr(10);
1802
1817
  }
1803
1818
  break;
@@ -1805,11 +1820,11 @@ class CircuitScriptParser extends antlr.Parser {
1805
1820
  {
1806
1821
  localContext = new AdditionExprContext(new Data_exprContext(parentContext, parentState));
1807
1822
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1808
- this.state = 380;
1823
+ this.state = 383;
1809
1824
  if (!(this.precpred(this.context, 8))) {
1810
1825
  throw this.createFailedPredicateException("this.precpred(this.context, 8)");
1811
1826
  }
1812
- this.state = 381;
1827
+ this.state = 384;
1813
1828
  _la = this.tokenStream.LA(1);
1814
1829
  if (!(_la === 42 || _la === 43)) {
1815
1830
  this.errorHandler.recoverInline(this);
@@ -1818,7 +1833,7 @@ class CircuitScriptParser extends antlr.Parser {
1818
1833
  this.errorHandler.reportMatch(this);
1819
1834
  this.consume();
1820
1835
  }
1821
- this.state = 382;
1836
+ this.state = 385;
1822
1837
  this.data_expr(9);
1823
1838
  }
1824
1839
  break;
@@ -1826,13 +1841,13 @@ class CircuitScriptParser extends antlr.Parser {
1826
1841
  {
1827
1842
  localContext = new BinaryOperatorExprContext(new Data_exprContext(parentContext, parentState));
1828
1843
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1829
- this.state = 383;
1844
+ this.state = 386;
1830
1845
  if (!(this.precpred(this.context, 7))) {
1831
1846
  throw this.createFailedPredicateException("this.precpred(this.context, 7)");
1832
1847
  }
1833
- this.state = 384;
1848
+ this.state = 387;
1834
1849
  this.binary_operator();
1835
- this.state = 385;
1850
+ this.state = 388;
1836
1851
  this.data_expr(8);
1837
1852
  }
1838
1853
  break;
@@ -1840,11 +1855,11 @@ class CircuitScriptParser extends antlr.Parser {
1840
1855
  {
1841
1856
  localContext = new LogicalOperatorExprContext(new Data_exprContext(parentContext, parentState));
1842
1857
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1843
- this.state = 387;
1858
+ this.state = 390;
1844
1859
  if (!(this.precpred(this.context, 6))) {
1845
1860
  throw this.createFailedPredicateException("this.precpred(this.context, 6)");
1846
1861
  }
1847
- this.state = 388;
1862
+ this.state = 391;
1848
1863
  _la = this.tokenStream.LA(1);
1849
1864
  if (!(_la === 40 || _la === 41)) {
1850
1865
  this.errorHandler.recoverInline(this);
@@ -1853,16 +1868,16 @@ class CircuitScriptParser extends antlr.Parser {
1853
1868
  this.errorHandler.reportMatch(this);
1854
1869
  this.consume();
1855
1870
  }
1856
- this.state = 389;
1871
+ this.state = 392;
1857
1872
  this.data_expr(7);
1858
1873
  }
1859
1874
  break;
1860
1875
  }
1861
1876
  }
1862
1877
  }
1863
- this.state = 394;
1878
+ this.state = 397;
1864
1879
  this.errorHandler.sync(this);
1865
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 32, this.context);
1880
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 35, this.context);
1866
1881
  }
1867
1882
  }
1868
1883
  }
@@ -1887,7 +1902,7 @@ class CircuitScriptParser extends antlr.Parser {
1887
1902
  try {
1888
1903
  this.enterOuterAlt(localContext, 1);
1889
1904
  {
1890
- this.state = 395;
1905
+ this.state = 398;
1891
1906
  _la = this.tokenStream.LA(1);
1892
1907
  if (!(((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 63) !== 0))) {
1893
1908
  this.errorHandler.recoverInline(this);
@@ -1919,7 +1934,7 @@ class CircuitScriptParser extends antlr.Parser {
1919
1934
  try {
1920
1935
  this.enterOuterAlt(localContext, 1);
1921
1936
  {
1922
- this.state = 397;
1937
+ this.state = 400;
1923
1938
  _la = this.tokenStream.LA(1);
1924
1939
  if (!(_la === 31 || _la === 43)) {
1925
1940
  this.errorHandler.recoverInline(this);
@@ -1952,16 +1967,16 @@ class CircuitScriptParser extends antlr.Parser {
1952
1967
  this.enterOuterAlt(localContext, 1);
1953
1968
  {
1954
1969
  {
1955
- this.state = 400;
1970
+ this.state = 403;
1956
1971
  this.errorHandler.sync(this);
1957
1972
  _la = this.tokenStream.LA(1);
1958
1973
  if (_la === 43) {
1959
1974
  {
1960
- this.state = 399;
1975
+ this.state = 402;
1961
1976
  this.match(CircuitScriptParser.Minus);
1962
1977
  }
1963
1978
  }
1964
- this.state = 402;
1979
+ this.state = 405;
1965
1980
  _la = this.tokenStream.LA(1);
1966
1981
  if (!(((((_la - 55)) & ~0x1F) === 0 && ((1 << (_la - 55)) & 125) !== 0))) {
1967
1982
  this.errorHandler.recoverInline(this);
@@ -1994,40 +2009,40 @@ class CircuitScriptParser extends antlr.Parser {
1994
2009
  try {
1995
2010
  this.enterOuterAlt(localContext, 1);
1996
2011
  {
1997
- this.state = 404;
2012
+ this.state = 407;
1998
2013
  this.match(CircuitScriptParser.Define);
1999
- this.state = 405;
2014
+ this.state = 408;
2000
2015
  this.match(CircuitScriptParser.ID);
2001
- this.state = 406;
2016
+ this.state = 409;
2002
2017
  this.match(CircuitScriptParser.OPEN_PAREN);
2003
- this.state = 408;
2018
+ this.state = 411;
2004
2019
  this.errorHandler.sync(this);
2005
2020
  _la = this.tokenStream.LA(1);
2006
2021
  if (_la === 56) {
2007
2022
  {
2008
- this.state = 407;
2023
+ this.state = 410;
2009
2024
  this.function_args_expr();
2010
2025
  }
2011
2026
  }
2012
- this.state = 410;
2027
+ this.state = 413;
2013
2028
  this.match(CircuitScriptParser.CLOSE_PAREN);
2014
- this.state = 411;
2029
+ this.state = 414;
2015
2030
  this.match(CircuitScriptParser.T__0);
2016
- this.state = 412;
2031
+ this.state = 415;
2017
2032
  this.match(CircuitScriptParser.NEWLINE);
2018
- this.state = 413;
2019
- this.match(CircuitScriptParser.INDENT);
2020
2033
  this.state = 416;
2034
+ this.match(CircuitScriptParser.INDENT);
2035
+ this.state = 419;
2021
2036
  this.errorHandler.sync(this);
2022
2037
  _la = this.tokenStream.LA(1);
2023
2038
  do {
2024
2039
  {
2025
- this.state = 416;
2040
+ this.state = 419;
2026
2041
  this.errorHandler.sync(this);
2027
2042
  switch (this.tokenStream.LA(1)) {
2028
2043
  case CircuitScriptParser.NEWLINE:
2029
2044
  {
2030
- this.state = 414;
2045
+ this.state = 417;
2031
2046
  this.match(CircuitScriptParser.NEWLINE);
2032
2047
  }
2033
2048
  break;
@@ -2054,7 +2069,7 @@ class CircuitScriptParser extends antlr.Parser {
2054
2069
  case CircuitScriptParser.Divide:
2055
2070
  case CircuitScriptParser.ID:
2056
2071
  {
2057
- this.state = 415;
2072
+ this.state = 418;
2058
2073
  this.function_expr();
2059
2074
  }
2060
2075
  break;
@@ -2062,11 +2077,11 @@ class CircuitScriptParser extends antlr.Parser {
2062
2077
  throw new antlr.NoViableAltException(this);
2063
2078
  }
2064
2079
  }
2065
- this.state = 418;
2080
+ this.state = 421;
2066
2081
  this.errorHandler.sync(this);
2067
2082
  _la = this.tokenStream.LA(1);
2068
2083
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 868217905) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4210693) !== 0));
2069
- this.state = 420;
2084
+ this.state = 423;
2070
2085
  this.match(CircuitScriptParser.DEDENT);
2071
2086
  }
2072
2087
  }
@@ -2088,7 +2103,7 @@ class CircuitScriptParser extends antlr.Parser {
2088
2103
  let localContext = new Function_exprContext(this.context, this.state);
2089
2104
  this.enterRule(localContext, 72, CircuitScriptParser.RULE_function_expr);
2090
2105
  try {
2091
- this.state = 424;
2106
+ this.state = 427;
2092
2107
  this.errorHandler.sync(this);
2093
2108
  switch (this.tokenStream.LA(1)) {
2094
2109
  case CircuitScriptParser.T__3:
@@ -2114,14 +2129,14 @@ class CircuitScriptParser extends antlr.Parser {
2114
2129
  case CircuitScriptParser.ID:
2115
2130
  this.enterOuterAlt(localContext, 1);
2116
2131
  {
2117
- this.state = 422;
2132
+ this.state = 425;
2118
2133
  this.expression();
2119
2134
  }
2120
2135
  break;
2121
2136
  case CircuitScriptParser.Return:
2122
2137
  this.enterOuterAlt(localContext, 2);
2123
2138
  {
2124
- this.state = 423;
2139
+ this.state = 426;
2125
2140
  this.function_return_expr();
2126
2141
  }
2127
2142
  break;
@@ -2149,49 +2164,49 @@ class CircuitScriptParser extends antlr.Parser {
2149
2164
  let _la;
2150
2165
  try {
2151
2166
  let alternative;
2152
- this.state = 455;
2167
+ this.state = 458;
2153
2168
  this.errorHandler.sync(this);
2154
- switch (this.interpreter.adaptivePredict(this.tokenStream, 41, this.context)) {
2169
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 44, this.context)) {
2155
2170
  case 1:
2156
2171
  this.enterOuterAlt(localContext, 1);
2157
2172
  {
2158
- this.state = 426;
2173
+ this.state = 429;
2159
2174
  this.match(CircuitScriptParser.ID);
2160
- this.state = 431;
2175
+ this.state = 434;
2161
2176
  this.errorHandler.sync(this);
2162
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 38, this.context);
2177
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 41, this.context);
2163
2178
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2164
2179
  if (alternative === 1) {
2165
2180
  {
2166
2181
  {
2167
- this.state = 427;
2182
+ this.state = 430;
2168
2183
  this.match(CircuitScriptParser.T__1);
2169
- this.state = 428;
2184
+ this.state = 431;
2170
2185
  this.match(CircuitScriptParser.ID);
2171
2186
  }
2172
2187
  }
2173
2188
  }
2174
- this.state = 433;
2189
+ this.state = 436;
2175
2190
  this.errorHandler.sync(this);
2176
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 38, this.context);
2191
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 41, this.context);
2177
2192
  }
2178
- this.state = 440;
2193
+ this.state = 443;
2179
2194
  this.errorHandler.sync(this);
2180
2195
  _la = this.tokenStream.LA(1);
2181
2196
  while (_la === 2) {
2182
2197
  {
2183
2198
  {
2184
- this.state = 434;
2199
+ this.state = 437;
2185
2200
  this.match(CircuitScriptParser.T__1);
2186
- this.state = 435;
2201
+ this.state = 438;
2187
2202
  this.match(CircuitScriptParser.ID);
2188
- this.state = 436;
2203
+ this.state = 439;
2189
2204
  this.match(CircuitScriptParser.T__2);
2190
- this.state = 437;
2205
+ this.state = 440;
2191
2206
  this.value_expr();
2192
2207
  }
2193
2208
  }
2194
- this.state = 442;
2209
+ this.state = 445;
2195
2210
  this.errorHandler.sync(this);
2196
2211
  _la = this.tokenStream.LA(1);
2197
2212
  }
@@ -2200,29 +2215,29 @@ class CircuitScriptParser extends antlr.Parser {
2200
2215
  case 2:
2201
2216
  this.enterOuterAlt(localContext, 2);
2202
2217
  {
2203
- this.state = 443;
2218
+ this.state = 446;
2204
2219
  this.match(CircuitScriptParser.ID);
2205
- this.state = 444;
2220
+ this.state = 447;
2206
2221
  this.match(CircuitScriptParser.T__2);
2207
- this.state = 445;
2222
+ this.state = 448;
2208
2223
  this.value_expr();
2209
- this.state = 452;
2224
+ this.state = 455;
2210
2225
  this.errorHandler.sync(this);
2211
2226
  _la = this.tokenStream.LA(1);
2212
2227
  while (_la === 2) {
2213
2228
  {
2214
2229
  {
2215
- this.state = 446;
2230
+ this.state = 449;
2216
2231
  this.match(CircuitScriptParser.T__1);
2217
- this.state = 447;
2232
+ this.state = 450;
2218
2233
  this.match(CircuitScriptParser.ID);
2219
- this.state = 448;
2234
+ this.state = 451;
2220
2235
  this.match(CircuitScriptParser.T__2);
2221
- this.state = 449;
2236
+ this.state = 452;
2222
2237
  this.value_expr();
2223
2238
  }
2224
2239
  }
2225
- this.state = 454;
2240
+ this.state = 457;
2226
2241
  this.errorHandler.sync(this);
2227
2242
  _la = this.tokenStream.LA(1);
2228
2243
  }
@@ -2251,25 +2266,25 @@ class CircuitScriptParser extends antlr.Parser {
2251
2266
  let alternative;
2252
2267
  this.enterOuterAlt(localContext, 1);
2253
2268
  {
2254
- this.state = 457;
2269
+ this.state = 460;
2255
2270
  this.match(CircuitScriptParser.ID);
2256
- this.state = 462;
2271
+ this.state = 465;
2257
2272
  this.errorHandler.sync(this);
2258
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 42, this.context);
2273
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 45, this.context);
2259
2274
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2260
2275
  if (alternative === 1) {
2261
2276
  {
2262
2277
  {
2263
- this.state = 458;
2278
+ this.state = 461;
2264
2279
  this.match(CircuitScriptParser.T__4);
2265
- this.state = 459;
2280
+ this.state = 462;
2266
2281
  this.match(CircuitScriptParser.ID);
2267
2282
  }
2268
2283
  }
2269
2284
  }
2270
- this.state = 464;
2285
+ this.state = 467;
2271
2286
  this.errorHandler.sync(this);
2272
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 42, this.context);
2287
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 45, this.context);
2273
2288
  }
2274
2289
  }
2275
2290
  }
@@ -2292,33 +2307,33 @@ class CircuitScriptParser extends antlr.Parser {
2292
2307
  this.enterRule(localContext, 78, CircuitScriptParser.RULE_trailer_expr);
2293
2308
  let _la;
2294
2309
  try {
2295
- this.state = 472;
2310
+ this.state = 475;
2296
2311
  this.errorHandler.sync(this);
2297
2312
  switch (this.tokenStream.LA(1)) {
2298
2313
  case CircuitScriptParser.OPEN_PAREN:
2299
2314
  this.enterOuterAlt(localContext, 1);
2300
2315
  {
2301
- this.state = 465;
2316
+ this.state = 468;
2302
2317
  this.match(CircuitScriptParser.OPEN_PAREN);
2303
- this.state = 467;
2318
+ this.state = 470;
2304
2319
  this.errorHandler.sync(this);
2305
2320
  _la = this.tokenStream.LA(1);
2306
2321
  if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484736) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 1041415) !== 0)) {
2307
2322
  {
2308
- this.state = 466;
2323
+ this.state = 469;
2309
2324
  this.parameters();
2310
2325
  }
2311
2326
  }
2312
- this.state = 469;
2327
+ this.state = 472;
2313
2328
  this.match(CircuitScriptParser.CLOSE_PAREN);
2314
2329
  }
2315
2330
  break;
2316
2331
  case CircuitScriptParser.T__4:
2317
2332
  this.enterOuterAlt(localContext, 2);
2318
2333
  {
2319
- this.state = 470;
2334
+ this.state = 473;
2320
2335
  this.match(CircuitScriptParser.T__4);
2321
- this.state = 471;
2336
+ this.state = 474;
2322
2337
  this.match(CircuitScriptParser.ID);
2323
2338
  }
2324
2339
  break;
@@ -2348,18 +2363,18 @@ class CircuitScriptParser extends antlr.Parser {
2348
2363
  let alternative;
2349
2364
  this.enterOuterAlt(localContext, 1);
2350
2365
  {
2351
- this.state = 475;
2366
+ this.state = 478;
2352
2367
  this.errorHandler.sync(this);
2353
2368
  _la = this.tokenStream.LA(1);
2354
2369
  if (_la === 42 || _la === 44) {
2355
2370
  {
2356
- this.state = 474;
2371
+ this.state = 477;
2357
2372
  this.net_namespace_expr();
2358
2373
  }
2359
2374
  }
2360
- this.state = 477;
2375
+ this.state = 480;
2361
2376
  this.match(CircuitScriptParser.ID);
2362
- this.state = 479;
2377
+ this.state = 482;
2363
2378
  this.errorHandler.sync(this);
2364
2379
  alternative = 1;
2365
2380
  do {
@@ -2367,7 +2382,7 @@ class CircuitScriptParser extends antlr.Parser {
2367
2382
  case 1:
2368
2383
  {
2369
2384
  {
2370
- this.state = 478;
2385
+ this.state = 481;
2371
2386
  this.trailer_expr();
2372
2387
  }
2373
2388
  }
@@ -2375,9 +2390,9 @@ class CircuitScriptParser extends antlr.Parser {
2375
2390
  default:
2376
2391
  throw new antlr.NoViableAltException(this);
2377
2392
  }
2378
- this.state = 481;
2393
+ this.state = 484;
2379
2394
  this.errorHandler.sync(this);
2380
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 46, this.context);
2395
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 49, this.context);
2381
2396
  } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
2382
2397
  }
2383
2398
  }
@@ -2402,23 +2417,23 @@ class CircuitScriptParser extends antlr.Parser {
2402
2417
  try {
2403
2418
  this.enterOuterAlt(localContext, 1);
2404
2419
  {
2405
- this.state = 484;
2420
+ this.state = 487;
2406
2421
  this.errorHandler.sync(this);
2407
2422
  _la = this.tokenStream.LA(1);
2408
2423
  if (_la === 42) {
2409
2424
  {
2410
- this.state = 483;
2425
+ this.state = 486;
2411
2426
  this.match(CircuitScriptParser.Addition);
2412
2427
  }
2413
2428
  }
2414
- this.state = 486;
2429
+ this.state = 489;
2415
2430
  this.match(CircuitScriptParser.Divide);
2416
- this.state = 488;
2431
+ this.state = 491;
2417
2432
  this.errorHandler.sync(this);
2418
- switch (this.interpreter.adaptivePredict(this.tokenStream, 48, this.context)) {
2433
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 51, this.context)) {
2419
2434
  case 1:
2420
2435
  {
2421
- this.state = 487;
2436
+ this.state = 490;
2422
2437
  this.data_expr(0);
2423
2438
  }
2424
2439
  break;
@@ -2445,9 +2460,9 @@ class CircuitScriptParser extends antlr.Parser {
2445
2460
  try {
2446
2461
  this.enterOuterAlt(localContext, 1);
2447
2462
  {
2448
- this.state = 490;
2463
+ this.state = 493;
2449
2464
  this.match(CircuitScriptParser.Return);
2450
- this.state = 491;
2465
+ this.state = 494;
2451
2466
  this.data_expr(0);
2452
2467
  }
2453
2468
  }
@@ -2471,11 +2486,11 @@ class CircuitScriptParser extends antlr.Parser {
2471
2486
  try {
2472
2487
  this.enterOuterAlt(localContext, 1);
2473
2488
  {
2474
- this.state = 493;
2489
+ this.state = 496;
2475
2490
  this.property_key_expr();
2476
- this.state = 494;
2491
+ this.state = 497;
2477
2492
  this.match(CircuitScriptParser.T__0);
2478
- this.state = 495;
2493
+ this.state = 498;
2479
2494
  this.expressions_block();
2480
2495
  }
2481
2496
  }
@@ -2500,27 +2515,27 @@ class CircuitScriptParser extends antlr.Parser {
2500
2515
  try {
2501
2516
  this.enterOuterAlt(localContext, 1);
2502
2517
  {
2503
- this.state = 497;
2518
+ this.state = 500;
2504
2519
  this.match(CircuitScriptParser.Create);
2505
- this.state = 498;
2520
+ this.state = 501;
2506
2521
  this.match(CircuitScriptParser.Component);
2507
- this.state = 499;
2522
+ this.state = 502;
2508
2523
  this.match(CircuitScriptParser.T__0);
2509
- this.state = 500;
2524
+ this.state = 503;
2510
2525
  this.match(CircuitScriptParser.NEWLINE);
2511
- this.state = 501;
2512
- this.match(CircuitScriptParser.INDENT);
2513
2526
  this.state = 504;
2527
+ this.match(CircuitScriptParser.INDENT);
2528
+ this.state = 507;
2514
2529
  this.errorHandler.sync(this);
2515
2530
  _la = this.tokenStream.LA(1);
2516
2531
  do {
2517
2532
  {
2518
- this.state = 504;
2533
+ this.state = 507;
2519
2534
  this.errorHandler.sync(this);
2520
2535
  switch (this.tokenStream.LA(1)) {
2521
2536
  case CircuitScriptParser.NEWLINE:
2522
2537
  {
2523
- this.state = 502;
2538
+ this.state = 505;
2524
2539
  this.match(CircuitScriptParser.NEWLINE);
2525
2540
  }
2526
2541
  break;
@@ -2528,7 +2543,7 @@ class CircuitScriptParser extends antlr.Parser {
2528
2543
  case CircuitScriptParser.INTEGER_VALUE:
2529
2544
  case CircuitScriptParser.STRING_VALUE:
2530
2545
  {
2531
- this.state = 503;
2546
+ this.state = 506;
2532
2547
  this.property_expr();
2533
2548
  }
2534
2549
  break;
@@ -2536,11 +2551,11 @@ class CircuitScriptParser extends antlr.Parser {
2536
2551
  throw new antlr.NoViableAltException(this);
2537
2552
  }
2538
2553
  }
2539
- this.state = 506;
2554
+ this.state = 509;
2540
2555
  this.errorHandler.sync(this);
2541
2556
  _la = this.tokenStream.LA(1);
2542
2557
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2543
- this.state = 508;
2558
+ this.state = 511;
2544
2559
  this.match(CircuitScriptParser.DEDENT);
2545
2560
  }
2546
2561
  }
@@ -2565,21 +2580,21 @@ class CircuitScriptParser extends antlr.Parser {
2565
2580
  try {
2566
2581
  this.enterOuterAlt(localContext, 1);
2567
2582
  {
2568
- this.state = 510;
2583
+ this.state = 513;
2569
2584
  this.match(CircuitScriptParser.NEWLINE);
2570
- this.state = 511;
2571
- this.match(CircuitScriptParser.INDENT);
2572
2585
  this.state = 514;
2586
+ this.match(CircuitScriptParser.INDENT);
2587
+ this.state = 517;
2573
2588
  this.errorHandler.sync(this);
2574
2589
  _la = this.tokenStream.LA(1);
2575
2590
  do {
2576
2591
  {
2577
- this.state = 514;
2592
+ this.state = 517;
2578
2593
  this.errorHandler.sync(this);
2579
2594
  switch (this.tokenStream.LA(1)) {
2580
2595
  case CircuitScriptParser.NEWLINE:
2581
2596
  {
2582
- this.state = 512;
2597
+ this.state = 515;
2583
2598
  this.match(CircuitScriptParser.NEWLINE);
2584
2599
  }
2585
2600
  break;
@@ -2587,7 +2602,7 @@ class CircuitScriptParser extends antlr.Parser {
2587
2602
  case CircuitScriptParser.For:
2588
2603
  case CircuitScriptParser.ID:
2589
2604
  {
2590
- this.state = 513;
2605
+ this.state = 516;
2591
2606
  this.graphic_expr();
2592
2607
  }
2593
2608
  break;
@@ -2595,11 +2610,11 @@ class CircuitScriptParser extends antlr.Parser {
2595
2610
  throw new antlr.NoViableAltException(this);
2596
2611
  }
2597
2612
  }
2598
- this.state = 516;
2613
+ this.state = 519;
2599
2614
  this.errorHandler.sync(this);
2600
2615
  _la = this.tokenStream.LA(1);
2601
2616
  } while (_la === 15 || _la === 25 || _la === 56 || _la === 64);
2602
- this.state = 518;
2617
+ this.state = 521;
2603
2618
  this.match(CircuitScriptParser.DEDENT);
2604
2619
  }
2605
2620
  }
@@ -2624,26 +2639,26 @@ class CircuitScriptParser extends antlr.Parser {
2624
2639
  try {
2625
2640
  this.enterOuterAlt(localContext, 1);
2626
2641
  {
2627
- this.state = 520;
2642
+ this.state = 523;
2628
2643
  this.match(CircuitScriptParser.Create);
2629
- this.state = 521;
2644
+ this.state = 524;
2630
2645
  this.match(CircuitScriptParser.Graphic);
2631
- this.state = 525;
2646
+ this.state = 528;
2632
2647
  this.errorHandler.sync(this);
2633
2648
  _la = this.tokenStream.LA(1);
2634
2649
  if (_la === 52) {
2635
2650
  {
2636
- this.state = 522;
2651
+ this.state = 525;
2637
2652
  this.match(CircuitScriptParser.OPEN_PAREN);
2638
- this.state = 523;
2653
+ this.state = 526;
2639
2654
  this.match(CircuitScriptParser.ID);
2640
- this.state = 524;
2655
+ this.state = 527;
2641
2656
  this.match(CircuitScriptParser.CLOSE_PAREN);
2642
2657
  }
2643
2658
  }
2644
- this.state = 527;
2659
+ this.state = 530;
2645
2660
  this.match(CircuitScriptParser.T__0);
2646
- this.state = 528;
2661
+ this.state = 531;
2647
2662
  this.graphic_expressions_block();
2648
2663
  }
2649
2664
  }
@@ -2668,49 +2683,49 @@ class CircuitScriptParser extends antlr.Parser {
2668
2683
  try {
2669
2684
  this.enterOuterAlt(localContext, 1);
2670
2685
  {
2671
- this.state = 530;
2686
+ this.state = 533;
2672
2687
  this.match(CircuitScriptParser.Create);
2673
- this.state = 531;
2688
+ this.state = 534;
2674
2689
  this.match(CircuitScriptParser.Module);
2675
- this.state = 532;
2690
+ this.state = 535;
2676
2691
  this.match(CircuitScriptParser.T__0);
2677
- this.state = 533;
2692
+ this.state = 536;
2678
2693
  this.match(CircuitScriptParser.NEWLINE);
2679
- this.state = 534;
2694
+ this.state = 537;
2680
2695
  this.match(CircuitScriptParser.INDENT);
2681
- this.state = 538;
2696
+ this.state = 541;
2682
2697
  this.errorHandler.sync(this);
2683
2698
  _la = this.tokenStream.LA(1);
2684
2699
  do {
2685
2700
  {
2686
- this.state = 538;
2701
+ this.state = 541;
2687
2702
  this.errorHandler.sync(this);
2688
- switch (this.interpreter.adaptivePredict(this.tokenStream, 54, this.context)) {
2703
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 57, this.context)) {
2689
2704
  case 1:
2690
2705
  {
2691
- this.state = 535;
2706
+ this.state = 538;
2692
2707
  this.match(CircuitScriptParser.NEWLINE);
2693
2708
  }
2694
2709
  break;
2695
2710
  case 2:
2696
2711
  {
2697
- this.state = 536;
2712
+ this.state = 539;
2698
2713
  this.property_expr();
2699
2714
  }
2700
2715
  break;
2701
2716
  case 3:
2702
2717
  {
2703
- this.state = 537;
2718
+ this.state = 540;
2704
2719
  this.property_block_expr();
2705
2720
  }
2706
2721
  break;
2707
2722
  }
2708
2723
  }
2709
- this.state = 540;
2724
+ this.state = 543;
2710
2725
  this.errorHandler.sync(this);
2711
2726
  _la = this.tokenStream.LA(1);
2712
2727
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2713
- this.state = 542;
2728
+ this.state = 545;
2714
2729
  this.match(CircuitScriptParser.DEDENT);
2715
2730
  }
2716
2731
  }
@@ -2736,21 +2751,21 @@ class CircuitScriptParser extends antlr.Parser {
2736
2751
  this.enterOuterAlt(localContext, 1);
2737
2752
  {
2738
2753
  {
2739
- this.state = 544;
2754
+ this.state = 547;
2740
2755
  this.match(CircuitScriptParser.NEWLINE);
2741
- this.state = 545;
2742
- this.match(CircuitScriptParser.INDENT);
2743
2756
  this.state = 548;
2757
+ this.match(CircuitScriptParser.INDENT);
2758
+ this.state = 551;
2744
2759
  this.errorHandler.sync(this);
2745
2760
  _la = this.tokenStream.LA(1);
2746
2761
  do {
2747
2762
  {
2748
- this.state = 548;
2763
+ this.state = 551;
2749
2764
  this.errorHandler.sync(this);
2750
2765
  switch (this.tokenStream.LA(1)) {
2751
2766
  case CircuitScriptParser.NEWLINE:
2752
2767
  {
2753
- this.state = 546;
2768
+ this.state = 549;
2754
2769
  this.match(CircuitScriptParser.NEWLINE);
2755
2770
  }
2756
2771
  break;
@@ -2758,7 +2773,7 @@ class CircuitScriptParser extends antlr.Parser {
2758
2773
  case CircuitScriptParser.INTEGER_VALUE:
2759
2774
  case CircuitScriptParser.STRING_VALUE:
2760
2775
  {
2761
- this.state = 547;
2776
+ this.state = 550;
2762
2777
  this.property_expr();
2763
2778
  }
2764
2779
  break;
@@ -2766,11 +2781,11 @@ class CircuitScriptParser extends antlr.Parser {
2766
2781
  throw new antlr.NoViableAltException(this);
2767
2782
  }
2768
2783
  }
2769
- this.state = 550;
2784
+ this.state = 553;
2770
2785
  this.errorHandler.sync(this);
2771
2786
  _la = this.tokenStream.LA(1);
2772
2787
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2773
- this.state = 552;
2788
+ this.state = 555;
2774
2789
  this.match(CircuitScriptParser.DEDENT);
2775
2790
  }
2776
2791
  }
@@ -2794,7 +2809,7 @@ class CircuitScriptParser extends antlr.Parser {
2794
2809
  this.enterRule(localContext, 98, CircuitScriptParser.RULE_graphic_expr);
2795
2810
  let _la;
2796
2811
  try {
2797
- this.state = 580;
2812
+ this.state = 583;
2798
2813
  this.errorHandler.sync(this);
2799
2814
  switch (this.tokenStream.LA(1)) {
2800
2815
  case CircuitScriptParser.Pin:
@@ -2802,7 +2817,7 @@ class CircuitScriptParser extends antlr.Parser {
2802
2817
  localContext = new GraphicCommandExprContext(localContext);
2803
2818
  this.enterOuterAlt(localContext, 1);
2804
2819
  {
2805
- this.state = 554;
2820
+ this.state = 557;
2806
2821
  localContext._command = this.tokenStream.LT(1);
2807
2822
  _la = this.tokenStream.LA(1);
2808
2823
  if (!(_la === 15 || _la === 56)) {
@@ -2812,37 +2827,37 @@ class CircuitScriptParser extends antlr.Parser {
2812
2827
  this.errorHandler.reportMatch(this);
2813
2828
  this.consume();
2814
2829
  }
2815
- this.state = 556;
2830
+ this.state = 559;
2816
2831
  this.errorHandler.sync(this);
2817
2832
  _la = this.tokenStream.LA(1);
2818
2833
  if (_la === 1) {
2819
2834
  {
2820
- this.state = 555;
2835
+ this.state = 558;
2821
2836
  this.match(CircuitScriptParser.T__0);
2822
2837
  }
2823
2838
  }
2824
- this.state = 564;
2839
+ this.state = 567;
2825
2840
  this.errorHandler.sync(this);
2826
- switch (this.interpreter.adaptivePredict(this.tokenStream, 59, this.context)) {
2841
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 62, this.context)) {
2827
2842
  case 1:
2828
2843
  {
2829
- this.state = 558;
2844
+ this.state = 561;
2830
2845
  this.parameters();
2831
2846
  }
2832
2847
  break;
2833
2848
  case 2:
2834
2849
  {
2835
- this.state = 559;
2850
+ this.state = 562;
2836
2851
  this.match(CircuitScriptParser.OPEN_PAREN);
2837
- this.state = 560;
2852
+ this.state = 563;
2838
2853
  this.parameters();
2839
- this.state = 561;
2854
+ this.state = 564;
2840
2855
  this.match(CircuitScriptParser.CLOSE_PAREN);
2841
2856
  }
2842
2857
  break;
2843
2858
  case 3:
2844
2859
  {
2845
- this.state = 563;
2860
+ this.state = 566;
2846
2861
  this.nested_properties_inner();
2847
2862
  }
2848
2863
  break;
@@ -2853,33 +2868,33 @@ class CircuitScriptParser extends antlr.Parser {
2853
2868
  localContext = new GraphicForExprContext(localContext);
2854
2869
  this.enterOuterAlt(localContext, 2);
2855
2870
  {
2856
- this.state = 566;
2871
+ this.state = 569;
2857
2872
  this.match(CircuitScriptParser.For);
2858
- this.state = 567;
2873
+ this.state = 570;
2859
2874
  this.match(CircuitScriptParser.ID);
2860
- this.state = 572;
2875
+ this.state = 575;
2861
2876
  this.errorHandler.sync(this);
2862
2877
  _la = this.tokenStream.LA(1);
2863
2878
  while (_la === 2) {
2864
2879
  {
2865
2880
  {
2866
- this.state = 568;
2881
+ this.state = 571;
2867
2882
  this.match(CircuitScriptParser.T__1);
2868
- this.state = 569;
2883
+ this.state = 572;
2869
2884
  this.match(CircuitScriptParser.ID);
2870
2885
  }
2871
2886
  }
2872
- this.state = 574;
2887
+ this.state = 577;
2873
2888
  this.errorHandler.sync(this);
2874
2889
  _la = this.tokenStream.LA(1);
2875
2890
  }
2876
- this.state = 575;
2891
+ this.state = 578;
2877
2892
  this.match(CircuitScriptParser.In);
2878
- this.state = 576;
2893
+ this.state = 579;
2879
2894
  this.data_expr(0);
2880
- this.state = 577;
2895
+ this.state = 580;
2881
2896
  this.match(CircuitScriptParser.T__0);
2882
- this.state = 578;
2897
+ this.state = 581;
2883
2898
  this.graphic_expressions_block();
2884
2899
  }
2885
2900
  break;
@@ -2907,11 +2922,11 @@ class CircuitScriptParser extends antlr.Parser {
2907
2922
  try {
2908
2923
  this.enterOuterAlt(localContext, 1);
2909
2924
  {
2910
- this.state = 582;
2925
+ this.state = 585;
2911
2926
  this.property_key_expr();
2912
- this.state = 583;
2927
+ this.state = 586;
2913
2928
  this.match(CircuitScriptParser.T__0);
2914
- this.state = 584;
2929
+ this.state = 587;
2915
2930
  this.property_value_expr();
2916
2931
  }
2917
2932
  }
@@ -2936,7 +2951,7 @@ class CircuitScriptParser extends antlr.Parser {
2936
2951
  try {
2937
2952
  this.enterOuterAlt(localContext, 1);
2938
2953
  {
2939
- this.state = 586;
2954
+ this.state = 589;
2940
2955
  _la = this.tokenStream.LA(1);
2941
2956
  if (!(((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 19) !== 0))) {
2942
2957
  this.errorHandler.recoverInline(this);
@@ -2966,14 +2981,14 @@ class CircuitScriptParser extends antlr.Parser {
2966
2981
  this.enterRule(localContext, 104, CircuitScriptParser.RULE_property_value_expr);
2967
2982
  let _la;
2968
2983
  try {
2969
- this.state = 597;
2984
+ this.state = 600;
2970
2985
  this.errorHandler.sync(this);
2971
2986
  switch (this.tokenStream.LA(1)) {
2972
2987
  case CircuitScriptParser.NEWLINE:
2973
2988
  localContext = new Nested_propertiesContext(localContext);
2974
2989
  this.enterOuterAlt(localContext, 1);
2975
2990
  {
2976
- this.state = 588;
2991
+ this.state = 591;
2977
2992
  this.nested_properties_inner();
2978
2993
  }
2979
2994
  break;
@@ -2994,21 +3009,21 @@ class CircuitScriptParser extends antlr.Parser {
2994
3009
  localContext = new Single_line_propertyContext(localContext);
2995
3010
  this.enterOuterAlt(localContext, 2);
2996
3011
  {
2997
- this.state = 589;
3012
+ this.state = 592;
2998
3013
  this.data_expr(0);
2999
- this.state = 594;
3014
+ this.state = 597;
3000
3015
  this.errorHandler.sync(this);
3001
3016
  _la = this.tokenStream.LA(1);
3002
3017
  while (_la === 2) {
3003
3018
  {
3004
3019
  {
3005
- this.state = 590;
3020
+ this.state = 593;
3006
3021
  this.match(CircuitScriptParser.T__1);
3007
- this.state = 591;
3022
+ this.state = 594;
3008
3023
  this.data_expr(0);
3009
3024
  }
3010
3025
  }
3011
- this.state = 596;
3026
+ this.state = 599;
3012
3027
  this.errorHandler.sync(this);
3013
3028
  _la = this.tokenStream.LA(1);
3014
3029
  }
@@ -3036,27 +3051,27 @@ class CircuitScriptParser extends antlr.Parser {
3036
3051
  let localContext = new Wire_atom_exprContext(this.context, this.state);
3037
3052
  this.enterRule(localContext, 106, CircuitScriptParser.RULE_wire_atom_expr);
3038
3053
  try {
3039
- this.state = 605;
3054
+ this.state = 608;
3040
3055
  this.errorHandler.sync(this);
3041
- switch (this.interpreter.adaptivePredict(this.tokenStream, 65, this.context)) {
3056
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 68, this.context)) {
3042
3057
  case 1:
3043
3058
  localContext = new Wire_expr_direction_valueContext(localContext);
3044
3059
  this.enterOuterAlt(localContext, 1);
3045
3060
  {
3046
- this.state = 599;
3047
- this.match(CircuitScriptParser.ID);
3048
3061
  this.state = 602;
3062
+ this.match(CircuitScriptParser.ID);
3063
+ this.state = 605;
3049
3064
  this.errorHandler.sync(this);
3050
- switch (this.interpreter.adaptivePredict(this.tokenStream, 64, this.context)) {
3065
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 67, this.context)) {
3051
3066
  case 1:
3052
3067
  {
3053
- this.state = 600;
3068
+ this.state = 603;
3054
3069
  this.match(CircuitScriptParser.INTEGER_VALUE);
3055
3070
  }
3056
3071
  break;
3057
3072
  case 2:
3058
3073
  {
3059
- this.state = 601;
3074
+ this.state = 604;
3060
3075
  this.data_expr(0);
3061
3076
  }
3062
3077
  break;
@@ -3067,7 +3082,7 @@ class CircuitScriptParser extends antlr.Parser {
3067
3082
  localContext = new Wire_expr_direction_onlyContext(localContext);
3068
3083
  this.enterOuterAlt(localContext, 2);
3069
3084
  {
3070
- this.state = 604;
3085
+ this.state = 607;
3071
3086
  this.match(CircuitScriptParser.ID);
3072
3087
  }
3073
3088
  break;
@@ -3094,23 +3109,23 @@ class CircuitScriptParser extends antlr.Parser {
3094
3109
  let alternative;
3095
3110
  this.enterOuterAlt(localContext, 1);
3096
3111
  {
3097
- this.state = 607;
3112
+ this.state = 610;
3098
3113
  this.match(CircuitScriptParser.Wire);
3099
- this.state = 611;
3114
+ this.state = 614;
3100
3115
  this.errorHandler.sync(this);
3101
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 66, this.context);
3116
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
3102
3117
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3103
3118
  if (alternative === 1) {
3104
3119
  {
3105
3120
  {
3106
- this.state = 608;
3121
+ this.state = 611;
3107
3122
  this.wire_atom_expr();
3108
3123
  }
3109
3124
  }
3110
3125
  }
3111
- this.state = 613;
3126
+ this.state = 616;
3112
3127
  this.errorHandler.sync(this);
3113
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 66, this.context);
3128
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
3114
3129
  }
3115
3130
  }
3116
3131
  }
@@ -3135,39 +3150,39 @@ class CircuitScriptParser extends antlr.Parser {
3135
3150
  try {
3136
3151
  this.enterOuterAlt(localContext, 1);
3137
3152
  {
3138
- this.state = 614;
3153
+ this.state = 617;
3139
3154
  this.match(CircuitScriptParser.T__5);
3140
- this.state = 625;
3155
+ this.state = 628;
3141
3156
  this.errorHandler.sync(this);
3142
3157
  _la = this.tokenStream.LA(1);
3143
3158
  while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484736) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 1041415) !== 0)) {
3144
3159
  {
3145
3160
  {
3146
- this.state = 615;
3161
+ this.state = 618;
3147
3162
  this.data_expr(0);
3148
- this.state = 620;
3163
+ this.state = 623;
3149
3164
  this.errorHandler.sync(this);
3150
3165
  _la = this.tokenStream.LA(1);
3151
3166
  while (_la === 2) {
3152
3167
  {
3153
3168
  {
3154
- this.state = 616;
3169
+ this.state = 619;
3155
3170
  this.match(CircuitScriptParser.T__1);
3156
- this.state = 617;
3171
+ this.state = 620;
3157
3172
  this.data_expr(0);
3158
3173
  }
3159
3174
  }
3160
- this.state = 622;
3175
+ this.state = 625;
3161
3176
  this.errorHandler.sync(this);
3162
3177
  _la = this.tokenStream.LA(1);
3163
3178
  }
3164
3179
  }
3165
3180
  }
3166
- this.state = 627;
3181
+ this.state = 630;
3167
3182
  this.errorHandler.sync(this);
3168
3183
  _la = this.tokenStream.LA(1);
3169
3184
  }
3170
- this.state = 628;
3185
+ this.state = 631;
3171
3186
  this.match(CircuitScriptParser.T__6);
3172
3187
  }
3173
3188
  }
@@ -3191,20 +3206,20 @@ class CircuitScriptParser extends antlr.Parser {
3191
3206
  try {
3192
3207
  this.enterOuterAlt(localContext, 1);
3193
3208
  {
3194
- this.state = 630;
3195
- this.match(CircuitScriptParser.Point);
3196
3209
  this.state = 633;
3210
+ this.match(CircuitScriptParser.Point);
3211
+ this.state = 636;
3197
3212
  this.errorHandler.sync(this);
3198
- switch (this.interpreter.adaptivePredict(this.tokenStream, 69, this.context)) {
3213
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 72, this.context)) {
3199
3214
  case 1:
3200
3215
  {
3201
- this.state = 631;
3216
+ this.state = 634;
3202
3217
  this.match(CircuitScriptParser.ID);
3203
3218
  }
3204
3219
  break;
3205
3220
  case 2:
3206
3221
  {
3207
- this.state = 632;
3222
+ this.state = 635;
3208
3223
  this.data_expr(0);
3209
3224
  }
3210
3225
  break;
@@ -3231,9 +3246,9 @@ class CircuitScriptParser extends antlr.Parser {
3231
3246
  try {
3232
3247
  this.enterOuterAlt(localContext, 1);
3233
3248
  {
3234
- this.state = 635;
3249
+ this.state = 638;
3235
3250
  this.match(CircuitScriptParser.Import);
3236
- this.state = 636;
3251
+ this.state = 639;
3237
3252
  this.match(CircuitScriptParser.ID);
3238
3253
  }
3239
3254
  }
@@ -3258,7 +3273,7 @@ class CircuitScriptParser extends antlr.Parser {
3258
3273
  try {
3259
3274
  this.enterOuterAlt(localContext, 1);
3260
3275
  {
3261
- this.state = 638;
3276
+ this.state = 641;
3262
3277
  _la = this.tokenStream.LA(1);
3263
3278
  if (!(_la === 32 || _la === 33)) {
3264
3279
  this.errorHandler.recoverInline(this);
@@ -3267,9 +3282,9 @@ class CircuitScriptParser extends antlr.Parser {
3267
3282
  this.errorHandler.reportMatch(this);
3268
3283
  this.consume();
3269
3284
  }
3270
- this.state = 639;
3285
+ this.state = 642;
3271
3286
  this.match(CircuitScriptParser.T__0);
3272
- this.state = 640;
3287
+ this.state = 643;
3273
3288
  this.expressions_block();
3274
3289
  }
3275
3290
  }
@@ -3295,36 +3310,36 @@ class CircuitScriptParser extends antlr.Parser {
3295
3310
  let alternative;
3296
3311
  this.enterOuterAlt(localContext, 1);
3297
3312
  {
3298
- this.state = 642;
3313
+ this.state = 645;
3299
3314
  this.match(CircuitScriptParser.If);
3300
- this.state = 643;
3315
+ this.state = 646;
3301
3316
  this.data_expr(0);
3302
- this.state = 644;
3317
+ this.state = 647;
3303
3318
  this.match(CircuitScriptParser.T__0);
3304
- this.state = 645;
3319
+ this.state = 648;
3305
3320
  this.expressions_block();
3306
- this.state = 649;
3321
+ this.state = 652;
3307
3322
  this.errorHandler.sync(this);
3308
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 70, this.context);
3323
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 73, this.context);
3309
3324
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3310
3325
  if (alternative === 1) {
3311
3326
  {
3312
3327
  {
3313
- this.state = 646;
3328
+ this.state = 649;
3314
3329
  this.if_inner_expr();
3315
3330
  }
3316
3331
  }
3317
3332
  }
3318
- this.state = 651;
3333
+ this.state = 654;
3319
3334
  this.errorHandler.sync(this);
3320
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 70, this.context);
3335
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 73, this.context);
3321
3336
  }
3322
- this.state = 653;
3337
+ this.state = 656;
3323
3338
  this.errorHandler.sync(this);
3324
3339
  _la = this.tokenStream.LA(1);
3325
3340
  if (_la === 30) {
3326
3341
  {
3327
- this.state = 652;
3342
+ this.state = 655;
3328
3343
  this.else_expr();
3329
3344
  }
3330
3345
  }
@@ -3350,15 +3365,15 @@ class CircuitScriptParser extends antlr.Parser {
3350
3365
  try {
3351
3366
  this.enterOuterAlt(localContext, 1);
3352
3367
  {
3353
- this.state = 655;
3368
+ this.state = 658;
3354
3369
  this.match(CircuitScriptParser.Else);
3355
- this.state = 656;
3370
+ this.state = 659;
3356
3371
  this.match(CircuitScriptParser.If);
3357
- this.state = 657;
3372
+ this.state = 660;
3358
3373
  this.data_expr(0);
3359
- this.state = 658;
3374
+ this.state = 661;
3360
3375
  this.match(CircuitScriptParser.T__0);
3361
- this.state = 659;
3376
+ this.state = 662;
3362
3377
  this.expressions_block();
3363
3378
  }
3364
3379
  }
@@ -3382,11 +3397,11 @@ class CircuitScriptParser extends antlr.Parser {
3382
3397
  try {
3383
3398
  this.enterOuterAlt(localContext, 1);
3384
3399
  {
3385
- this.state = 661;
3400
+ this.state = 664;
3386
3401
  this.match(CircuitScriptParser.Else);
3387
- this.state = 662;
3402
+ this.state = 665;
3388
3403
  this.match(CircuitScriptParser.T__0);
3389
- this.state = 663;
3404
+ this.state = 666;
3390
3405
  this.expressions_block();
3391
3406
  }
3392
3407
  }
@@ -3410,13 +3425,13 @@ class CircuitScriptParser extends antlr.Parser {
3410
3425
  try {
3411
3426
  this.enterOuterAlt(localContext, 1);
3412
3427
  {
3413
- this.state = 665;
3428
+ this.state = 668;
3414
3429
  this.match(CircuitScriptParser.While);
3415
- this.state = 666;
3430
+ this.state = 669;
3416
3431
  this.data_expr(0);
3417
- this.state = 667;
3432
+ this.state = 670;
3418
3433
  this.match(CircuitScriptParser.T__0);
3419
- this.state = 668;
3434
+ this.state = 671;
3420
3435
  this.expressions_block();
3421
3436
  }
3422
3437
  }
@@ -3441,33 +3456,33 @@ class CircuitScriptParser extends antlr.Parser {
3441
3456
  try {
3442
3457
  this.enterOuterAlt(localContext, 1);
3443
3458
  {
3444
- this.state = 670;
3459
+ this.state = 673;
3445
3460
  this.match(CircuitScriptParser.For);
3446
- this.state = 671;
3461
+ this.state = 674;
3447
3462
  this.match(CircuitScriptParser.ID);
3448
- this.state = 676;
3463
+ this.state = 679;
3449
3464
  this.errorHandler.sync(this);
3450
3465
  _la = this.tokenStream.LA(1);
3451
3466
  while (_la === 2) {
3452
3467
  {
3453
3468
  {
3454
- this.state = 672;
3469
+ this.state = 675;
3455
3470
  this.match(CircuitScriptParser.T__1);
3456
- this.state = 673;
3471
+ this.state = 676;
3457
3472
  this.match(CircuitScriptParser.ID);
3458
3473
  }
3459
3474
  }
3460
- this.state = 678;
3475
+ this.state = 681;
3461
3476
  this.errorHandler.sync(this);
3462
3477
  _la = this.tokenStream.LA(1);
3463
3478
  }
3464
- this.state = 679;
3479
+ this.state = 682;
3465
3480
  this.match(CircuitScriptParser.In);
3466
- this.state = 680;
3481
+ this.state = 683;
3467
3482
  this.data_expr(0);
3468
- this.state = 681;
3483
+ this.state = 684;
3469
3484
  this.match(CircuitScriptParser.T__0);
3470
- this.state = 682;
3485
+ this.state = 685;
3471
3486
  this.expressions_block();
3472
3487
  }
3473
3488
  }
@@ -3585,29 +3600,29 @@ CircuitScriptParser.INDENT = 66;
3585
3600
  CircuitScriptParser.DEDENT = 67;
3586
3601
  CircuitScriptParser.RULE_script = 0;
3587
3602
  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;
3603
+ CircuitScriptParser.RULE_flow_expressions = 2;
3604
+ CircuitScriptParser.RULE_graph_expressions = 3;
3605
+ CircuitScriptParser.RULE_graph_linear_expression = 4;
3606
+ CircuitScriptParser.RULE_expressions_block = 5;
3607
+ CircuitScriptParser.RULE_path_block = 6;
3608
+ CircuitScriptParser.RULE_property_set_expr2 = 7;
3609
+ CircuitScriptParser.RULE_assignment_expr2 = 8;
3610
+ CircuitScriptParser.RULE_pin_select_expr = 9;
3611
+ CircuitScriptParser.RULE_component_modifier_expr = 10;
3612
+ CircuitScriptParser.RULE_data_expr_with_assignment = 11;
3613
+ CircuitScriptParser.RULE_add_component_expr = 12;
3614
+ CircuitScriptParser.RULE_component_select_expr = 13;
3615
+ CircuitScriptParser.RULE_pin_select_expr2 = 14;
3616
+ CircuitScriptParser.RULE_at_component_expr = 15;
3617
+ CircuitScriptParser.RULE_to_component_expr = 16;
3618
+ CircuitScriptParser.RULE_at_to_multiple_expr = 17;
3619
+ CircuitScriptParser.RULE_at_to_multiple_line_expr = 18;
3620
+ CircuitScriptParser.RULE_at_to_multiple_line_expr_to_pin = 19;
3621
+ CircuitScriptParser.RULE_at_block = 20;
3622
+ CircuitScriptParser.RULE_at_block_expressions = 21;
3623
+ CircuitScriptParser.RULE_at_block_pin_expr = 22;
3624
+ CircuitScriptParser.RULE_at_block_pin_expression_simple = 23;
3625
+ CircuitScriptParser.RULE_at_block_pin_expression_complex = 24;
3611
3626
  CircuitScriptParser.RULE_assignment_expr = 25;
3612
3627
  CircuitScriptParser.RULE_operator_assignment_expr = 26;
3613
3628
  CircuitScriptParser.RULE_keyword_assignment_expr = 27;
@@ -3671,15 +3686,15 @@ CircuitScriptParser.symbolicNames = [
3671
3686
  "ALPHA_NUMERIC", "WS", "NEWLINE", "COMMENT", "INDENT", "DEDENT"
3672
3687
  ];
3673
3688
  CircuitScriptParser.ruleNames = [
3674
- "script", "expression", "expressions_block", "path_blocks", "path_block_inner",
3675
- "property_set_expr2", "assignment_expr2", "pin_select_expr", "component_modifier_expr",
3689
+ "script", "expression", "flow_expressions", "graph_expressions",
3690
+ "graph_linear_expression", "expressions_block", "path_block", "property_set_expr2",
3691
+ "assignment_expr2", "pin_select_expr", "component_modifier_expr",
3676
3692
  "data_expr_with_assignment", "add_component_expr", "component_select_expr",
3677
3693
  "pin_select_expr2", "at_component_expr", "to_component_expr", "at_to_multiple_expr",
3678
3694
  "at_to_multiple_line_expr", "at_to_multiple_line_expr_to_pin", "at_block",
3679
3695
  "at_block_expressions", "at_block_pin_expr", "at_block_pin_expression_simple",
3680
- "at_block_pin_expression_complex", "break_keyword", "continue_keyword",
3681
- "assignment_expr", "operator_assignment_expr", "keyword_assignment_expr",
3682
- "parameters", "property_set_expr", "double_dot_property_set_expr",
3696
+ "at_block_pin_expression_complex", "assignment_expr", "operator_assignment_expr",
3697
+ "keyword_assignment_expr", "parameters", "property_set_expr", "double_dot_property_set_expr",
3683
3698
  "data_expr", "binary_operator", "unary_operator", "value_expr",
3684
3699
  "function_def_expr", "function_expr", "function_args_expr", "atom_expr",
3685
3700
  "trailer_expr", "function_call_expr", "net_namespace_expr", "function_return_expr",
@@ -3691,7 +3706,7 @@ CircuitScriptParser.ruleNames = [
3691
3706
  "for_expr",
3692
3707
  ];
3693
3708
  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,
3709
+ 4, 1, 67, 688, 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
3710
  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
3711
  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
3712
  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,
@@ -3702,246 +3717,248 @@ CircuitScriptParser._serializedATN = [
3702
3717
  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
3718
  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
3719
  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,
3753
- 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78,
3754
- 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
3720
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 156, 8, 1, 1, 2, 1, 2,
3721
+ 1, 2, 1, 2, 1, 2, 3, 2, 163, 8, 2, 1, 3, 1, 3, 3, 3, 167, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4,
3722
+ 1, 4, 3, 4, 175, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 4, 5, 181, 8, 5, 11, 5, 12, 5, 182, 1, 5, 1,
3723
+ 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 4, 7, 197, 8, 7, 11, 7, 12, 7,
3724
+ 198, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10,
3725
+ 214, 8, 10, 1, 11, 1, 11, 3, 11, 218, 8, 11, 1, 11, 5, 11, 221, 8, 11, 10, 11, 12, 11,
3726
+ 224, 9, 11, 1, 11, 3, 11, 227, 8, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 3, 13, 235,
3727
+ 8, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 246, 8, 16,
3728
+ 10, 16, 12, 16, 249, 9, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 257, 8, 17,
3729
+ 10, 17, 12, 17, 260, 9, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 4, 17, 267, 8, 17, 11, 17,
3730
+ 12, 17, 268, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 5, 18, 278, 8, 18, 10, 18,
3731
+ 12, 18, 281, 9, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 4, 20, 291,
3732
+ 8, 20, 11, 20, 12, 20, 292, 1, 20, 1, 20, 1, 21, 1, 21, 3, 21, 299, 8, 21, 1, 22, 1, 22,
3733
+ 1, 22, 1, 22, 3, 22, 305, 8, 22, 1, 23, 1, 23, 3, 23, 309, 8, 23, 1, 24, 1, 24, 1, 25, 1,
3734
+ 25, 3, 25, 315, 8, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1,
3735
+ 27, 1, 27, 1, 28, 1, 28, 1, 28, 5, 28, 331, 8, 28, 10, 28, 12, 28, 334, 9, 28, 1, 28, 1,
3736
+ 28, 5, 28, 338, 8, 28, 10, 28, 12, 28, 341, 9, 28, 1, 28, 1, 28, 1, 28, 5, 28, 346, 8,
3737
+ 28, 10, 28, 12, 28, 349, 9, 28, 3, 28, 351, 8, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1,
3738
+ 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 369, 8,
3739
+ 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 379, 8, 31, 1, 31, 1,
3740
+ 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 5, 31, 394,
3741
+ 8, 31, 10, 31, 12, 31, 397, 9, 31, 1, 32, 1, 32, 1, 33, 1, 33, 1, 34, 3, 34, 404, 8, 34,
3742
+ 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 412, 8, 35, 1, 35, 1, 35, 1, 35, 1, 35,
3743
+ 1, 35, 1, 35, 4, 35, 420, 8, 35, 11, 35, 12, 35, 421, 1, 35, 1, 35, 1, 36, 1, 36, 3, 36,
3744
+ 428, 8, 36, 1, 37, 1, 37, 1, 37, 5, 37, 433, 8, 37, 10, 37, 12, 37, 436, 9, 37, 1, 37,
3745
+ 1, 37, 1, 37, 1, 37, 5, 37, 442, 8, 37, 10, 37, 12, 37, 445, 9, 37, 1, 37, 1, 37, 1, 37,
3746
+ 1, 37, 1, 37, 1, 37, 1, 37, 5, 37, 454, 8, 37, 10, 37, 12, 37, 457, 9, 37, 3, 37, 459,
3747
+ 8, 37, 1, 38, 1, 38, 1, 38, 5, 38, 464, 8, 38, 10, 38, 12, 38, 467, 9, 38, 1, 39, 1, 39,
3748
+ 3, 39, 471, 8, 39, 1, 39, 1, 39, 1, 39, 3, 39, 476, 8, 39, 1, 40, 3, 40, 479, 8, 40, 1,
3749
+ 40, 1, 40, 4, 40, 483, 8, 40, 11, 40, 12, 40, 484, 1, 41, 3, 41, 488, 8, 41, 1, 41, 1,
3750
+ 41, 3, 41, 492, 8, 41, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1,
3751
+ 44, 1, 44, 1, 44, 1, 44, 1, 44, 4, 44, 508, 8, 44, 11, 44, 12, 44, 509, 1, 44, 1, 44, 1,
3752
+ 45, 1, 45, 1, 45, 1, 45, 4, 45, 518, 8, 45, 11, 45, 12, 45, 519, 1, 45, 1, 45, 1, 46, 1,
3753
+ 46, 1, 46, 1, 46, 1, 46, 3, 46, 529, 8, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1,
3754
+ 47, 1, 47, 1, 47, 1, 47, 1, 47, 4, 47, 542, 8, 47, 11, 47, 12, 47, 543, 1, 47, 1, 47, 1,
3755
+ 48, 1, 48, 1, 48, 1, 48, 4, 48, 552, 8, 48, 11, 48, 12, 48, 553, 1, 48, 1, 48, 1, 49, 1,
3756
+ 49, 3, 49, 560, 8, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 3, 49, 568, 8, 49, 1, 49,
3757
+ 1, 49, 1, 49, 1, 49, 5, 49, 574, 8, 49, 10, 49, 12, 49, 577, 9, 49, 1, 49, 1, 49, 1, 49,
3758
+ 1, 49, 1, 49, 3, 49, 584, 8, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 52, 1, 52,
3759
+ 1, 52, 1, 52, 5, 52, 596, 8, 52, 10, 52, 12, 52, 599, 9, 52, 3, 52, 601, 8, 52, 1, 53,
3760
+ 1, 53, 1, 53, 3, 53, 606, 8, 53, 1, 53, 3, 53, 609, 8, 53, 1, 54, 1, 54, 5, 54, 613, 8,
3761
+ 54, 10, 54, 12, 54, 616, 9, 54, 1, 55, 1, 55, 1, 55, 1, 55, 5, 55, 622, 8, 55, 10, 55,
3762
+ 12, 55, 625, 9, 55, 5, 55, 627, 8, 55, 10, 55, 12, 55, 630, 9, 55, 1, 55, 1, 55, 1, 56,
3763
+ 1, 56, 1, 56, 3, 56, 637, 8, 56, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59,
3764
+ 1, 59, 1, 59, 1, 59, 1, 59, 5, 59, 651, 8, 59, 10, 59, 12, 59, 654, 9, 59, 1, 59, 3, 59,
3765
+ 657, 8, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62,
3766
+ 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 5, 63, 678, 8, 63, 10, 63, 12, 63,
3767
+ 681, 9, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 0, 1, 62, 64, 0, 2, 4, 6, 8, 10, 12,
3768
+ 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56,
3769
+ 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100,
3770
+ 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 0, 14, 2, 0, 9, 9,
3771
+ 19, 21, 1, 0, 56, 57, 2, 0, 57, 57, 60, 60, 2, 0, 54, 54, 57, 57, 1, 0, 47, 51, 1, 0, 44,
3772
+ 46, 1, 0, 42, 43, 1, 0, 40, 41, 1, 0, 34, 39, 2, 0, 31, 31, 43, 43, 2, 0, 55, 55, 57, 61,
3773
+ 2, 0, 15, 15, 56, 56, 2, 0, 56, 57, 60, 60, 1, 0, 32, 33, 727, 0, 132, 1, 0, 0, 0, 2, 155,
3774
+ 1, 0, 0, 0, 4, 162, 1, 0, 0, 0, 6, 166, 1, 0, 0, 0, 8, 174, 1, 0, 0, 0, 10, 176, 1, 0, 0, 0,
3775
+ 12, 186, 1, 0, 0, 0, 14, 190, 1, 0, 0, 0, 16, 202, 1, 0, 0, 0, 18, 206, 1, 0, 0, 0, 20, 209,
3776
+ 1, 0, 0, 0, 22, 217, 1, 0, 0, 0, 24, 228, 1, 0, 0, 0, 26, 234, 1, 0, 0, 0, 28, 236, 1, 0,
3777
+ 0, 0, 30, 238, 1, 0, 0, 0, 32, 241, 1, 0, 0, 0, 34, 250, 1, 0, 0, 0, 36, 272, 1, 0, 0, 0,
3778
+ 38, 282, 1, 0, 0, 0, 40, 284, 1, 0, 0, 0, 42, 298, 1, 0, 0, 0, 44, 300, 1, 0, 0, 0, 46, 308,
3779
+ 1, 0, 0, 0, 48, 310, 1, 0, 0, 0, 50, 314, 1, 0, 0, 0, 52, 319, 1, 0, 0, 0, 54, 323, 1, 0,
3780
+ 0, 0, 56, 350, 1, 0, 0, 0, 58, 352, 1, 0, 0, 0, 60, 356, 1, 0, 0, 0, 62, 378, 1, 0, 0, 0,
3781
+ 64, 398, 1, 0, 0, 0, 66, 400, 1, 0, 0, 0, 68, 403, 1, 0, 0, 0, 70, 407, 1, 0, 0, 0, 72, 427,
3782
+ 1, 0, 0, 0, 74, 458, 1, 0, 0, 0, 76, 460, 1, 0, 0, 0, 78, 475, 1, 0, 0, 0, 80, 478, 1, 0,
3783
+ 0, 0, 82, 487, 1, 0, 0, 0, 84, 493, 1, 0, 0, 0, 86, 496, 1, 0, 0, 0, 88, 500, 1, 0, 0, 0,
3784
+ 90, 513, 1, 0, 0, 0, 92, 523, 1, 0, 0, 0, 94, 533, 1, 0, 0, 0, 96, 547, 1, 0, 0, 0, 98, 583,
3785
+ 1, 0, 0, 0, 100, 585, 1, 0, 0, 0, 102, 589, 1, 0, 0, 0, 104, 600, 1, 0, 0, 0, 106, 608,
3786
+ 1, 0, 0, 0, 108, 610, 1, 0, 0, 0, 110, 617, 1, 0, 0, 0, 112, 633, 1, 0, 0, 0, 114, 638,
3787
+ 1, 0, 0, 0, 116, 641, 1, 0, 0, 0, 118, 645, 1, 0, 0, 0, 120, 658, 1, 0, 0, 0, 122, 664,
3788
+ 1, 0, 0, 0, 124, 668, 1, 0, 0, 0, 126, 673, 1, 0, 0, 0, 128, 131, 3, 114, 57, 0, 129, 131,
3789
+ 5, 64, 0, 0, 130, 128, 1, 0, 0, 0, 130, 129, 1, 0, 0, 0, 131, 134, 1, 0, 0, 0, 132, 130,
3790
+ 1, 0, 0, 0, 132, 133, 1, 0, 0, 0, 133, 137, 1, 0, 0, 0, 134, 132, 1, 0, 0, 0, 135, 138,
3791
+ 3, 2, 1, 0, 136, 138, 5, 64, 0, 0, 137, 135, 1, 0, 0, 0, 137, 136, 1, 0, 0, 0, 138, 139,
3792
+ 1, 0, 0, 0, 139, 137, 1, 0, 0, 0, 139, 140, 1, 0, 0, 0, 140, 141, 1, 0, 0, 0, 141, 142,
3793
+ 5, 0, 0, 1, 142, 1, 1, 0, 0, 0, 143, 156, 3, 6, 3, 0, 144, 156, 3, 50, 25, 0, 145, 156,
3794
+ 3, 52, 26, 0, 146, 156, 3, 58, 29, 0, 147, 156, 3, 14, 7, 0, 148, 156, 3, 60, 30, 0, 149,
3795
+ 156, 3, 70, 35, 0, 150, 156, 3, 80, 40, 0, 151, 156, 3, 114, 57, 0, 152, 156, 3, 76,
3796
+ 38, 0, 153, 156, 3, 116, 58, 0, 154, 156, 3, 4, 2, 0, 155, 143, 1, 0, 0, 0, 155, 144,
3797
+ 1, 0, 0, 0, 155, 145, 1, 0, 0, 0, 155, 146, 1, 0, 0, 0, 155, 147, 1, 0, 0, 0, 155, 148,
3798
+ 1, 0, 0, 0, 155, 149, 1, 0, 0, 0, 155, 150, 1, 0, 0, 0, 155, 151, 1, 0, 0, 0, 155, 152,
3799
+ 1, 0, 0, 0, 155, 153, 1, 0, 0, 0, 155, 154, 1, 0, 0, 0, 156, 3, 1, 0, 0, 0, 157, 163, 3,
3800
+ 118, 59, 0, 158, 163, 3, 124, 62, 0, 159, 163, 3, 126, 63, 0, 160, 163, 5, 8, 0, 0, 161,
3801
+ 163, 5, 28, 0, 0, 162, 157, 1, 0, 0, 0, 162, 158, 1, 0, 0, 0, 162, 159, 1, 0, 0, 0, 162,
3802
+ 160, 1, 0, 0, 0, 162, 161, 1, 0, 0, 0, 163, 5, 1, 0, 0, 0, 164, 167, 3, 8, 4, 0, 165, 167,
3803
+ 3, 12, 6, 0, 166, 164, 1, 0, 0, 0, 166, 165, 1, 0, 0, 0, 167, 7, 1, 0, 0, 0, 168, 175, 3,
3804
+ 24, 12, 0, 169, 175, 3, 32, 16, 0, 170, 175, 3, 30, 15, 0, 171, 175, 3, 40, 20, 0, 172,
3805
+ 175, 3, 108, 54, 0, 173, 175, 3, 112, 56, 0, 174, 168, 1, 0, 0, 0, 174, 169, 1, 0, 0,
3806
+ 0, 174, 170, 1, 0, 0, 0, 174, 171, 1, 0, 0, 0, 174, 172, 1, 0, 0, 0, 174, 173, 1, 0, 0,
3807
+ 0, 175, 9, 1, 0, 0, 0, 176, 177, 5, 64, 0, 0, 177, 180, 5, 66, 0, 0, 178, 181, 5, 64, 0,
3808
+ 0, 179, 181, 3, 2, 1, 0, 180, 178, 1, 0, 0, 0, 180, 179, 1, 0, 0, 0, 181, 182, 1, 0, 0,
3809
+ 0, 182, 180, 1, 0, 0, 0, 182, 183, 1, 0, 0, 0, 183, 184, 1, 0, 0, 0, 184, 185, 5, 67, 0,
3810
+ 0, 185, 11, 1, 0, 0, 0, 186, 187, 7, 0, 0, 0, 187, 188, 5, 1, 0, 0, 188, 189, 3, 10, 5,
3811
+ 0, 189, 13, 1, 0, 0, 0, 190, 191, 3, 76, 38, 0, 191, 192, 5, 1, 0, 0, 192, 193, 5, 64,
3812
+ 0, 0, 193, 196, 5, 66, 0, 0, 194, 197, 5, 64, 0, 0, 195, 197, 3, 16, 8, 0, 196, 194, 1,
3813
+ 0, 0, 0, 196, 195, 1, 0, 0, 0, 197, 198, 1, 0, 0, 0, 198, 196, 1, 0, 0, 0, 198, 199, 1,
3814
+ 0, 0, 0, 199, 200, 1, 0, 0, 0, 200, 201, 5, 67, 0, 0, 201, 15, 1, 0, 0, 0, 202, 203, 7,
3815
+ 1, 0, 0, 203, 204, 5, 1, 0, 0, 204, 205, 3, 68, 34, 0, 205, 17, 1, 0, 0, 0, 206, 207, 5,
3816
+ 15, 0, 0, 207, 208, 3, 62, 31, 0, 208, 19, 1, 0, 0, 0, 209, 210, 5, 56, 0, 0, 210, 213,
3817
+ 5, 1, 0, 0, 211, 214, 3, 68, 34, 0, 212, 214, 5, 56, 0, 0, 213, 211, 1, 0, 0, 0, 213, 212,
3818
+ 1, 0, 0, 0, 214, 21, 1, 0, 0, 0, 215, 218, 3, 62, 31, 0, 216, 218, 3, 50, 25, 0, 217, 215,
3819
+ 1, 0, 0, 0, 217, 216, 1, 0, 0, 0, 218, 222, 1, 0, 0, 0, 219, 221, 3, 20, 10, 0, 220, 219,
3820
+ 1, 0, 0, 0, 221, 224, 1, 0, 0, 0, 222, 220, 1, 0, 0, 0, 222, 223, 1, 0, 0, 0, 223, 226,
3821
+ 1, 0, 0, 0, 224, 222, 1, 0, 0, 0, 225, 227, 3, 18, 9, 0, 226, 225, 1, 0, 0, 0, 226, 227,
3822
+ 1, 0, 0, 0, 227, 23, 1, 0, 0, 0, 228, 229, 5, 16, 0, 0, 229, 230, 3, 22, 11, 0, 230, 25,
3823
+ 1, 0, 0, 0, 231, 235, 3, 22, 11, 0, 232, 235, 3, 18, 9, 0, 233, 235, 5, 19, 0, 0, 234,
3824
+ 231, 1, 0, 0, 0, 234, 232, 1, 0, 0, 0, 234, 233, 1, 0, 0, 0, 235, 27, 1, 0, 0, 0, 236, 237,
3825
+ 7, 2, 0, 0, 237, 29, 1, 0, 0, 0, 238, 239, 5, 17, 0, 0, 239, 240, 3, 26, 13, 0, 240, 31,
3826
+ 1, 0, 0, 0, 241, 242, 5, 18, 0, 0, 242, 247, 3, 26, 13, 0, 243, 244, 5, 2, 0, 0, 244, 246,
3827
+ 3, 26, 13, 0, 245, 243, 1, 0, 0, 0, 246, 249, 1, 0, 0, 0, 247, 245, 1, 0, 0, 0, 247, 248,
3828
+ 1, 0, 0, 0, 248, 33, 1, 0, 0, 0, 249, 247, 1, 0, 0, 0, 250, 251, 5, 17, 0, 0, 251, 252,
3829
+ 3, 26, 13, 0, 252, 253, 5, 18, 0, 0, 253, 258, 3, 26, 13, 0, 254, 255, 5, 2, 0, 0, 255,
3830
+ 257, 3, 26, 13, 0, 256, 254, 1, 0, 0, 0, 257, 260, 1, 0, 0, 0, 258, 256, 1, 0, 0, 0, 258,
3831
+ 259, 1, 0, 0, 0, 259, 261, 1, 0, 0, 0, 260, 258, 1, 0, 0, 0, 261, 262, 5, 1, 0, 0, 262,
3832
+ 263, 5, 64, 0, 0, 263, 266, 5, 66, 0, 0, 264, 267, 5, 64, 0, 0, 265, 267, 3, 36, 18, 0,
3833
+ 266, 264, 1, 0, 0, 0, 266, 265, 1, 0, 0, 0, 267, 268, 1, 0, 0, 0, 268, 266, 1, 0, 0, 0,
3834
+ 268, 269, 1, 0, 0, 0, 269, 270, 1, 0, 0, 0, 270, 271, 5, 67, 0, 0, 271, 35, 1, 0, 0, 0,
3835
+ 272, 273, 3, 28, 14, 0, 273, 274, 5, 1, 0, 0, 274, 279, 3, 38, 19, 0, 275, 276, 5, 2,
3836
+ 0, 0, 276, 278, 3, 38, 19, 0, 277, 275, 1, 0, 0, 0, 278, 281, 1, 0, 0, 0, 279, 277, 1,
3837
+ 0, 0, 0, 279, 280, 1, 0, 0, 0, 280, 37, 1, 0, 0, 0, 281, 279, 1, 0, 0, 0, 282, 283, 7, 3,
3838
+ 0, 0, 283, 39, 1, 0, 0, 0, 284, 285, 3, 30, 15, 0, 285, 286, 5, 1, 0, 0, 286, 287, 5, 64,
3839
+ 0, 0, 287, 290, 5, 66, 0, 0, 288, 291, 5, 64, 0, 0, 289, 291, 3, 42, 21, 0, 290, 288,
3840
+ 1, 0, 0, 0, 290, 289, 1, 0, 0, 0, 291, 292, 1, 0, 0, 0, 292, 290, 1, 0, 0, 0, 292, 293,
3841
+ 1, 0, 0, 0, 293, 294, 1, 0, 0, 0, 294, 295, 5, 67, 0, 0, 295, 41, 1, 0, 0, 0, 296, 299,
3842
+ 3, 2, 1, 0, 297, 299, 3, 44, 22, 0, 298, 296, 1, 0, 0, 0, 298, 297, 1, 0, 0, 0, 299, 43,
3843
+ 1, 0, 0, 0, 300, 301, 3, 28, 14, 0, 301, 304, 5, 1, 0, 0, 302, 305, 3, 46, 23, 0, 303,
3844
+ 305, 3, 48, 24, 0, 304, 302, 1, 0, 0, 0, 304, 303, 1, 0, 0, 0, 305, 45, 1, 0, 0, 0, 306,
3845
+ 309, 3, 2, 1, 0, 307, 309, 5, 54, 0, 0, 308, 306, 1, 0, 0, 0, 308, 307, 1, 0, 0, 0, 309,
3846
+ 47, 1, 0, 0, 0, 310, 311, 3, 10, 5, 0, 311, 49, 1, 0, 0, 0, 312, 315, 3, 76, 38, 0, 313,
3847
+ 315, 3, 80, 40, 0, 314, 312, 1, 0, 0, 0, 314, 313, 1, 0, 0, 0, 315, 316, 1, 0, 0, 0, 316,
3848
+ 317, 5, 3, 0, 0, 317, 318, 3, 62, 31, 0, 318, 51, 1, 0, 0, 0, 319, 320, 3, 76, 38, 0, 320,
3849
+ 321, 7, 4, 0, 0, 321, 322, 3, 62, 31, 0, 322, 53, 1, 0, 0, 0, 323, 324, 5, 56, 0, 0, 324,
3850
+ 325, 5, 3, 0, 0, 325, 326, 3, 62, 31, 0, 326, 55, 1, 0, 0, 0, 327, 332, 3, 62, 31, 0, 328,
3851
+ 329, 5, 2, 0, 0, 329, 331, 3, 62, 31, 0, 330, 328, 1, 0, 0, 0, 331, 334, 1, 0, 0, 0, 332,
3852
+ 330, 1, 0, 0, 0, 332, 333, 1, 0, 0, 0, 333, 339, 1, 0, 0, 0, 334, 332, 1, 0, 0, 0, 335,
3853
+ 336, 5, 2, 0, 0, 336, 338, 3, 54, 27, 0, 337, 335, 1, 0, 0, 0, 338, 341, 1, 0, 0, 0, 339,
3854
+ 337, 1, 0, 0, 0, 339, 340, 1, 0, 0, 0, 340, 351, 1, 0, 0, 0, 341, 339, 1, 0, 0, 0, 342,
3855
+ 347, 3, 54, 27, 0, 343, 344, 5, 2, 0, 0, 344, 346, 3, 54, 27, 0, 345, 343, 1, 0, 0, 0,
3856
+ 346, 349, 1, 0, 0, 0, 347, 345, 1, 0, 0, 0, 347, 348, 1, 0, 0, 0, 348, 351, 1, 0, 0, 0,
3857
+ 349, 347, 1, 0, 0, 0, 350, 327, 1, 0, 0, 0, 350, 342, 1, 0, 0, 0, 351, 57, 1, 0, 0, 0, 352,
3858
+ 353, 3, 76, 38, 0, 353, 354, 5, 3, 0, 0, 354, 355, 3, 62, 31, 0, 355, 59, 1, 0, 0, 0, 356,
3859
+ 357, 5, 4, 0, 0, 357, 358, 5, 56, 0, 0, 358, 359, 5, 3, 0, 0, 359, 360, 3, 62, 31, 0, 360,
3860
+ 61, 1, 0, 0, 0, 361, 362, 6, 31, -1, 0, 362, 363, 5, 52, 0, 0, 363, 364, 3, 62, 31, 0,
3861
+ 364, 365, 5, 53, 0, 0, 365, 379, 1, 0, 0, 0, 366, 369, 3, 68, 34, 0, 367, 369, 3, 76,
3862
+ 38, 0, 368, 366, 1, 0, 0, 0, 368, 367, 1, 0, 0, 0, 369, 379, 1, 0, 0, 0, 370, 371, 3, 66,
3863
+ 33, 0, 371, 372, 3, 62, 31, 10, 372, 379, 1, 0, 0, 0, 373, 379, 3, 88, 44, 0, 374, 379,
3864
+ 3, 92, 46, 0, 375, 379, 3, 94, 47, 0, 376, 379, 3, 80, 40, 0, 377, 379, 3, 110, 55, 0,
3865
+ 378, 361, 1, 0, 0, 0, 378, 368, 1, 0, 0, 0, 378, 370, 1, 0, 0, 0, 378, 373, 1, 0, 0, 0,
3866
+ 378, 374, 1, 0, 0, 0, 378, 375, 1, 0, 0, 0, 378, 376, 1, 0, 0, 0, 378, 377, 1, 0, 0, 0,
3867
+ 379, 395, 1, 0, 0, 0, 380, 381, 10, 9, 0, 0, 381, 382, 7, 5, 0, 0, 382, 394, 3, 62, 31,
3868
+ 10, 383, 384, 10, 8, 0, 0, 384, 385, 7, 6, 0, 0, 385, 394, 3, 62, 31, 9, 386, 387, 10,
3869
+ 7, 0, 0, 387, 388, 3, 64, 32, 0, 388, 389, 3, 62, 31, 8, 389, 394, 1, 0, 0, 0, 390, 391,
3870
+ 10, 6, 0, 0, 391, 392, 7, 7, 0, 0, 392, 394, 3, 62, 31, 7, 393, 380, 1, 0, 0, 0, 393, 383,
3871
+ 1, 0, 0, 0, 393, 386, 1, 0, 0, 0, 393, 390, 1, 0, 0, 0, 394, 397, 1, 0, 0, 0, 395, 393,
3872
+ 1, 0, 0, 0, 395, 396, 1, 0, 0, 0, 396, 63, 1, 0, 0, 0, 397, 395, 1, 0, 0, 0, 398, 399, 7,
3873
+ 8, 0, 0, 399, 65, 1, 0, 0, 0, 400, 401, 7, 9, 0, 0, 401, 67, 1, 0, 0, 0, 402, 404, 5, 43,
3874
+ 0, 0, 403, 402, 1, 0, 0, 0, 403, 404, 1, 0, 0, 0, 404, 405, 1, 0, 0, 0, 405, 406, 7, 10,
3875
+ 0, 0, 406, 69, 1, 0, 0, 0, 407, 408, 5, 23, 0, 0, 408, 409, 5, 56, 0, 0, 409, 411, 5, 52,
3876
+ 0, 0, 410, 412, 3, 74, 37, 0, 411, 410, 1, 0, 0, 0, 411, 412, 1, 0, 0, 0, 412, 413, 1,
3877
+ 0, 0, 0, 413, 414, 5, 53, 0, 0, 414, 415, 5, 1, 0, 0, 415, 416, 5, 64, 0, 0, 416, 419,
3878
+ 5, 66, 0, 0, 417, 420, 5, 64, 0, 0, 418, 420, 3, 72, 36, 0, 419, 417, 1, 0, 0, 0, 419,
3879
+ 418, 1, 0, 0, 0, 420, 421, 1, 0, 0, 0, 421, 419, 1, 0, 0, 0, 421, 422, 1, 0, 0, 0, 422,
3880
+ 423, 1, 0, 0, 0, 423, 424, 5, 67, 0, 0, 424, 71, 1, 0, 0, 0, 425, 428, 3, 2, 1, 0, 426,
3881
+ 428, 3, 84, 42, 0, 427, 425, 1, 0, 0, 0, 427, 426, 1, 0, 0, 0, 428, 73, 1, 0, 0, 0, 429,
3882
+ 434, 5, 56, 0, 0, 430, 431, 5, 2, 0, 0, 431, 433, 5, 56, 0, 0, 432, 430, 1, 0, 0, 0, 433,
3883
+ 436, 1, 0, 0, 0, 434, 432, 1, 0, 0, 0, 434, 435, 1, 0, 0, 0, 435, 443, 1, 0, 0, 0, 436,
3884
+ 434, 1, 0, 0, 0, 437, 438, 5, 2, 0, 0, 438, 439, 5, 56, 0, 0, 439, 440, 5, 3, 0, 0, 440,
3885
+ 442, 3, 68, 34, 0, 441, 437, 1, 0, 0, 0, 442, 445, 1, 0, 0, 0, 443, 441, 1, 0, 0, 0, 443,
3886
+ 444, 1, 0, 0, 0, 444, 459, 1, 0, 0, 0, 445, 443, 1, 0, 0, 0, 446, 447, 5, 56, 0, 0, 447,
3887
+ 448, 5, 3, 0, 0, 448, 455, 3, 68, 34, 0, 449, 450, 5, 2, 0, 0, 450, 451, 5, 56, 0, 0, 451,
3888
+ 452, 5, 3, 0, 0, 452, 454, 3, 68, 34, 0, 453, 449, 1, 0, 0, 0, 454, 457, 1, 0, 0, 0, 455,
3889
+ 453, 1, 0, 0, 0, 455, 456, 1, 0, 0, 0, 456, 459, 1, 0, 0, 0, 457, 455, 1, 0, 0, 0, 458,
3890
+ 429, 1, 0, 0, 0, 458, 446, 1, 0, 0, 0, 459, 75, 1, 0, 0, 0, 460, 465, 5, 56, 0, 0, 461,
3891
+ 462, 5, 5, 0, 0, 462, 464, 5, 56, 0, 0, 463, 461, 1, 0, 0, 0, 464, 467, 1, 0, 0, 0, 465,
3892
+ 463, 1, 0, 0, 0, 465, 466, 1, 0, 0, 0, 466, 77, 1, 0, 0, 0, 467, 465, 1, 0, 0, 0, 468, 470,
3893
+ 5, 52, 0, 0, 469, 471, 3, 56, 28, 0, 470, 469, 1, 0, 0, 0, 470, 471, 1, 0, 0, 0, 471, 472,
3894
+ 1, 0, 0, 0, 472, 476, 5, 53, 0, 0, 473, 474, 5, 5, 0, 0, 474, 476, 5, 56, 0, 0, 475, 468,
3895
+ 1, 0, 0, 0, 475, 473, 1, 0, 0, 0, 476, 79, 1, 0, 0, 0, 477, 479, 3, 82, 41, 0, 478, 477,
3896
+ 1, 0, 0, 0, 478, 479, 1, 0, 0, 0, 479, 480, 1, 0, 0, 0, 480, 482, 5, 56, 0, 0, 481, 483,
3897
+ 3, 78, 39, 0, 482, 481, 1, 0, 0, 0, 483, 484, 1, 0, 0, 0, 484, 482, 1, 0, 0, 0, 484, 485,
3898
+ 1, 0, 0, 0, 485, 81, 1, 0, 0, 0, 486, 488, 5, 42, 0, 0, 487, 486, 1, 0, 0, 0, 487, 488,
3899
+ 1, 0, 0, 0, 488, 489, 1, 0, 0, 0, 489, 491, 5, 44, 0, 0, 490, 492, 3, 62, 31, 0, 491, 490,
3900
+ 1, 0, 0, 0, 491, 492, 1, 0, 0, 0, 492, 83, 1, 0, 0, 0, 493, 494, 5, 22, 0, 0, 494, 495,
3901
+ 3, 62, 31, 0, 495, 85, 1, 0, 0, 0, 496, 497, 3, 102, 51, 0, 497, 498, 5, 1, 0, 0, 498,
3902
+ 499, 3, 10, 5, 0, 499, 87, 1, 0, 0, 0, 500, 501, 5, 10, 0, 0, 501, 502, 5, 11, 0, 0, 502,
3903
+ 503, 5, 1, 0, 0, 503, 504, 5, 64, 0, 0, 504, 507, 5, 66, 0, 0, 505, 508, 5, 64, 0, 0, 506,
3904
+ 508, 3, 100, 50, 0, 507, 505, 1, 0, 0, 0, 507, 506, 1, 0, 0, 0, 508, 509, 1, 0, 0, 0, 509,
3905
+ 507, 1, 0, 0, 0, 509, 510, 1, 0, 0, 0, 510, 511, 1, 0, 0, 0, 511, 512, 5, 67, 0, 0, 512,
3906
+ 89, 1, 0, 0, 0, 513, 514, 5, 64, 0, 0, 514, 517, 5, 66, 0, 0, 515, 518, 5, 64, 0, 0, 516,
3907
+ 518, 3, 98, 49, 0, 517, 515, 1, 0, 0, 0, 517, 516, 1, 0, 0, 0, 518, 519, 1, 0, 0, 0, 519,
3908
+ 517, 1, 0, 0, 0, 519, 520, 1, 0, 0, 0, 520, 521, 1, 0, 0, 0, 521, 522, 5, 67, 0, 0, 522,
3909
+ 91, 1, 0, 0, 0, 523, 524, 5, 10, 0, 0, 524, 528, 5, 12, 0, 0, 525, 526, 5, 52, 0, 0, 526,
3910
+ 527, 5, 56, 0, 0, 527, 529, 5, 53, 0, 0, 528, 525, 1, 0, 0, 0, 528, 529, 1, 0, 0, 0, 529,
3911
+ 530, 1, 0, 0, 0, 530, 531, 5, 1, 0, 0, 531, 532, 3, 90, 45, 0, 532, 93, 1, 0, 0, 0, 533,
3912
+ 534, 5, 10, 0, 0, 534, 535, 5, 13, 0, 0, 535, 536, 5, 1, 0, 0, 536, 537, 5, 64, 0, 0, 537,
3913
+ 541, 5, 66, 0, 0, 538, 542, 5, 64, 0, 0, 539, 542, 3, 100, 50, 0, 540, 542, 3, 86, 43,
3914
+ 0, 541, 538, 1, 0, 0, 0, 541, 539, 1, 0, 0, 0, 541, 540, 1, 0, 0, 0, 542, 543, 1, 0, 0,
3915
+ 0, 543, 541, 1, 0, 0, 0, 543, 544, 1, 0, 0, 0, 544, 545, 1, 0, 0, 0, 545, 546, 5, 67, 0,
3916
+ 0, 546, 95, 1, 0, 0, 0, 547, 548, 5, 64, 0, 0, 548, 551, 5, 66, 0, 0, 549, 552, 5, 64,
3917
+ 0, 0, 550, 552, 3, 100, 50, 0, 551, 549, 1, 0, 0, 0, 551, 550, 1, 0, 0, 0, 552, 553, 1,
3918
+ 0, 0, 0, 553, 551, 1, 0, 0, 0, 553, 554, 1, 0, 0, 0, 554, 555, 1, 0, 0, 0, 555, 556, 5,
3919
+ 67, 0, 0, 556, 97, 1, 0, 0, 0, 557, 559, 7, 11, 0, 0, 558, 560, 5, 1, 0, 0, 559, 558, 1,
3920
+ 0, 0, 0, 559, 560, 1, 0, 0, 0, 560, 567, 1, 0, 0, 0, 561, 568, 3, 56, 28, 0, 562, 563,
3921
+ 5, 52, 0, 0, 563, 564, 3, 56, 28, 0, 564, 565, 5, 53, 0, 0, 565, 568, 1, 0, 0, 0, 566,
3922
+ 568, 3, 96, 48, 0, 567, 561, 1, 0, 0, 0, 567, 562, 1, 0, 0, 0, 567, 566, 1, 0, 0, 0, 568,
3923
+ 584, 1, 0, 0, 0, 569, 570, 5, 25, 0, 0, 570, 575, 5, 56, 0, 0, 571, 572, 5, 2, 0, 0, 572,
3924
+ 574, 5, 56, 0, 0, 573, 571, 1, 0, 0, 0, 574, 577, 1, 0, 0, 0, 575, 573, 1, 0, 0, 0, 575,
3925
+ 576, 1, 0, 0, 0, 576, 578, 1, 0, 0, 0, 577, 575, 1, 0, 0, 0, 578, 579, 5, 26, 0, 0, 579,
3926
+ 580, 3, 62, 31, 0, 580, 581, 5, 1, 0, 0, 581, 582, 3, 90, 45, 0, 582, 584, 1, 0, 0, 0,
3927
+ 583, 557, 1, 0, 0, 0, 583, 569, 1, 0, 0, 0, 584, 99, 1, 0, 0, 0, 585, 586, 3, 102, 51,
3928
+ 0, 586, 587, 5, 1, 0, 0, 587, 588, 3, 104, 52, 0, 588, 101, 1, 0, 0, 0, 589, 590, 7, 12,
3929
+ 0, 0, 590, 103, 1, 0, 0, 0, 591, 601, 3, 96, 48, 0, 592, 597, 3, 62, 31, 0, 593, 594,
3930
+ 5, 2, 0, 0, 594, 596, 3, 62, 31, 0, 595, 593, 1, 0, 0, 0, 596, 599, 1, 0, 0, 0, 597, 595,
3931
+ 1, 0, 0, 0, 597, 598, 1, 0, 0, 0, 598, 601, 1, 0, 0, 0, 599, 597, 1, 0, 0, 0, 600, 591,
3932
+ 1, 0, 0, 0, 600, 592, 1, 0, 0, 0, 601, 105, 1, 0, 0, 0, 602, 605, 5, 56, 0, 0, 603, 606,
3933
+ 5, 57, 0, 0, 604, 606, 3, 62, 31, 0, 605, 603, 1, 0, 0, 0, 605, 604, 1, 0, 0, 0, 606, 609,
3934
+ 1, 0, 0, 0, 607, 609, 5, 56, 0, 0, 608, 602, 1, 0, 0, 0, 608, 607, 1, 0, 0, 0, 609, 107,
3935
+ 1, 0, 0, 0, 610, 614, 5, 14, 0, 0, 611, 613, 3, 106, 53, 0, 612, 611, 1, 0, 0, 0, 613,
3936
+ 616, 1, 0, 0, 0, 614, 612, 1, 0, 0, 0, 614, 615, 1, 0, 0, 0, 615, 109, 1, 0, 0, 0, 616,
3937
+ 614, 1, 0, 0, 0, 617, 628, 5, 6, 0, 0, 618, 623, 3, 62, 31, 0, 619, 620, 5, 2, 0, 0, 620,
3938
+ 622, 3, 62, 31, 0, 621, 619, 1, 0, 0, 0, 622, 625, 1, 0, 0, 0, 623, 621, 1, 0, 0, 0, 623,
3939
+ 624, 1, 0, 0, 0, 624, 627, 1, 0, 0, 0, 625, 623, 1, 0, 0, 0, 626, 618, 1, 0, 0, 0, 627,
3940
+ 630, 1, 0, 0, 0, 628, 626, 1, 0, 0, 0, 628, 629, 1, 0, 0, 0, 629, 631, 1, 0, 0, 0, 630,
3941
+ 628, 1, 0, 0, 0, 631, 632, 5, 7, 0, 0, 632, 111, 1, 0, 0, 0, 633, 636, 5, 19, 0, 0, 634,
3942
+ 637, 5, 56, 0, 0, 635, 637, 3, 62, 31, 0, 636, 634, 1, 0, 0, 0, 636, 635, 1, 0, 0, 0, 637,
3943
+ 113, 1, 0, 0, 0, 638, 639, 5, 24, 0, 0, 639, 640, 5, 56, 0, 0, 640, 115, 1, 0, 0, 0, 641,
3944
+ 642, 7, 13, 0, 0, 642, 643, 5, 1, 0, 0, 643, 644, 3, 10, 5, 0, 644, 117, 1, 0, 0, 0, 645,
3945
+ 646, 5, 29, 0, 0, 646, 647, 3, 62, 31, 0, 647, 648, 5, 1, 0, 0, 648, 652, 3, 10, 5, 0,
3946
+ 649, 651, 3, 120, 60, 0, 650, 649, 1, 0, 0, 0, 651, 654, 1, 0, 0, 0, 652, 650, 1, 0, 0,
3947
+ 0, 652, 653, 1, 0, 0, 0, 653, 656, 1, 0, 0, 0, 654, 652, 1, 0, 0, 0, 655, 657, 3, 122,
3948
+ 61, 0, 656, 655, 1, 0, 0, 0, 656, 657, 1, 0, 0, 0, 657, 119, 1, 0, 0, 0, 658, 659, 5, 30,
3949
+ 0, 0, 659, 660, 5, 29, 0, 0, 660, 661, 3, 62, 31, 0, 661, 662, 5, 1, 0, 0, 662, 663, 3,
3950
+ 10, 5, 0, 663, 121, 1, 0, 0, 0, 664, 665, 5, 30, 0, 0, 665, 666, 5, 1, 0, 0, 666, 667,
3951
+ 3, 10, 5, 0, 667, 123, 1, 0, 0, 0, 668, 669, 5, 27, 0, 0, 669, 670, 3, 62, 31, 0, 670,
3952
+ 671, 5, 1, 0, 0, 671, 672, 3, 10, 5, 0, 672, 125, 1, 0, 0, 0, 673, 674, 5, 25, 0, 0, 674,
3953
+ 679, 5, 56, 0, 0, 675, 676, 5, 2, 0, 0, 676, 678, 5, 56, 0, 0, 677, 675, 1, 0, 0, 0, 678,
3954
+ 681, 1, 0, 0, 0, 679, 677, 1, 0, 0, 0, 679, 680, 1, 0, 0, 0, 680, 682, 1, 0, 0, 0, 681,
3955
+ 679, 1, 0, 0, 0, 682, 683, 5, 26, 0, 0, 683, 684, 3, 62, 31, 0, 684, 685, 5, 1, 0, 0, 685,
3956
+ 686, 3, 10, 5, 0, 686, 127, 1, 0, 0, 0, 76, 130, 132, 137, 139, 155, 162, 166, 174,
3957
+ 180, 182, 196, 198, 213, 217, 222, 226, 234, 247, 258, 266, 268, 279, 290, 292,
3958
+ 298, 304, 308, 314, 332, 339, 347, 350, 368, 378, 393, 395, 403, 411, 419, 421,
3959
+ 427, 434, 443, 455, 458, 465, 470, 475, 478, 484, 487, 491, 507, 509, 517, 519,
3960
+ 528, 541, 543, 551, 553, 559, 567, 575, 583, 597, 600, 605, 608, 614, 623, 628,
3961
+ 636, 652, 656, 679
3945
3962
  ];
3946
3963
  CircuitScriptParser.vocabulary = new antlr.Vocabulary(CircuitScriptParser.literalNames, CircuitScriptParser.symbolicNames, []);
3947
3964
  CircuitScriptParser.decisionsToDFA = CircuitScriptParser._ATN.decisionToState.map((ds, index) => new antlr.DFA(ds, index));
@@ -3989,14 +4006,8 @@ class ExpressionContext extends antlr.ParserRuleContext {
3989
4006
  constructor(parent, invokingState) {
3990
4007
  super(parent, invokingState);
3991
4008
  }
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);
3997
- }
3998
- at_component_expr() {
3999
- return this.getRuleContext(0, At_component_exprContext);
4009
+ graph_expressions() {
4010
+ return this.getRuleContext(0, Graph_expressionsContext);
4000
4011
  }
4001
4012
  assignment_expr() {
4002
4013
  return this.getRuleContext(0, Assignment_exprContext);
@@ -4013,38 +4024,40 @@ class ExpressionContext extends antlr.ParserRuleContext {
4013
4024
  double_dot_property_set_expr() {
4014
4025
  return this.getRuleContext(0, Double_dot_property_set_exprContext);
4015
4026
  }
4016
- break_keyword() {
4017
- return this.getRuleContext(0, Break_keywordContext);
4018
- }
4019
- continue_keyword() {
4020
- return this.getRuleContext(0, Continue_keywordContext);
4021
- }
4022
4027
  function_def_expr() {
4023
4028
  return this.getRuleContext(0, Function_def_exprContext);
4024
4029
  }
4025
4030
  function_call_expr() {
4026
4031
  return this.getRuleContext(0, Function_call_exprContext);
4027
4032
  }
4028
- wire_expr() {
4029
- return this.getRuleContext(0, Wire_exprContext);
4030
- }
4031
4033
  import_expr() {
4032
4034
  return this.getRuleContext(0, Import_exprContext);
4033
4035
  }
4036
+ atom_expr() {
4037
+ return this.getRuleContext(0, Atom_exprContext);
4038
+ }
4034
4039
  frame_expr() {
4035
4040
  return this.getRuleContext(0, Frame_exprContext);
4036
4041
  }
4037
- atom_expr() {
4038
- return this.getRuleContext(0, Atom_exprContext);
4042
+ flow_expressions() {
4043
+ return this.getRuleContext(0, Flow_expressionsContext);
4039
4044
  }
4040
- at_block() {
4041
- return this.getRuleContext(0, At_blockContext);
4045
+ get ruleIndex() {
4046
+ return CircuitScriptParser.RULE_expression;
4042
4047
  }
4043
- path_blocks() {
4044
- return this.getRuleContext(0, Path_blocksContext);
4048
+ accept(visitor) {
4049
+ if (visitor.visitExpression) {
4050
+ return visitor.visitExpression(this);
4051
+ }
4052
+ else {
4053
+ return visitor.visitChildren(this);
4054
+ }
4045
4055
  }
4046
- point_expr() {
4047
- return this.getRuleContext(0, Point_exprContext);
4056
+ }
4057
+ exports.ExpressionContext = ExpressionContext;
4058
+ class Flow_expressionsContext extends antlr.ParserRuleContext {
4059
+ constructor(parent, invokingState) {
4060
+ super(parent, invokingState);
4048
4061
  }
4049
4062
  if_expr() {
4050
4063
  return this.getRuleContext(0, If_exprContext);
@@ -4055,19 +4068,83 @@ class ExpressionContext extends antlr.ParserRuleContext {
4055
4068
  for_expr() {
4056
4069
  return this.getRuleContext(0, For_exprContext);
4057
4070
  }
4071
+ Break() {
4072
+ return this.getToken(CircuitScriptParser.Break, 0);
4073
+ }
4074
+ Continue() {
4075
+ return this.getToken(CircuitScriptParser.Continue, 0);
4076
+ }
4058
4077
  get ruleIndex() {
4059
- return CircuitScriptParser.RULE_expression;
4078
+ return CircuitScriptParser.RULE_flow_expressions;
4060
4079
  }
4061
4080
  accept(visitor) {
4062
- if (visitor.visitExpression) {
4063
- return visitor.visitExpression(this);
4081
+ if (visitor.visitFlow_expressions) {
4082
+ return visitor.visitFlow_expressions(this);
4064
4083
  }
4065
4084
  else {
4066
4085
  return visitor.visitChildren(this);
4067
4086
  }
4068
4087
  }
4069
4088
  }
4070
- exports.ExpressionContext = ExpressionContext;
4089
+ exports.Flow_expressionsContext = Flow_expressionsContext;
4090
+ class Graph_expressionsContext extends antlr.ParserRuleContext {
4091
+ constructor(parent, invokingState) {
4092
+ super(parent, invokingState);
4093
+ }
4094
+ graph_linear_expression() {
4095
+ return this.getRuleContext(0, Graph_linear_expressionContext);
4096
+ }
4097
+ path_block() {
4098
+ return this.getRuleContext(0, Path_blockContext);
4099
+ }
4100
+ get ruleIndex() {
4101
+ return CircuitScriptParser.RULE_graph_expressions;
4102
+ }
4103
+ accept(visitor) {
4104
+ if (visitor.visitGraph_expressions) {
4105
+ return visitor.visitGraph_expressions(this);
4106
+ }
4107
+ else {
4108
+ return visitor.visitChildren(this);
4109
+ }
4110
+ }
4111
+ }
4112
+ exports.Graph_expressionsContext = Graph_expressionsContext;
4113
+ class Graph_linear_expressionContext extends antlr.ParserRuleContext {
4114
+ constructor(parent, invokingState) {
4115
+ super(parent, invokingState);
4116
+ }
4117
+ add_component_expr() {
4118
+ return this.getRuleContext(0, Add_component_exprContext);
4119
+ }
4120
+ to_component_expr() {
4121
+ return this.getRuleContext(0, To_component_exprContext);
4122
+ }
4123
+ at_component_expr() {
4124
+ return this.getRuleContext(0, At_component_exprContext);
4125
+ }
4126
+ at_block() {
4127
+ return this.getRuleContext(0, At_blockContext);
4128
+ }
4129
+ wire_expr() {
4130
+ return this.getRuleContext(0, Wire_exprContext);
4131
+ }
4132
+ point_expr() {
4133
+ return this.getRuleContext(0, Point_exprContext);
4134
+ }
4135
+ get ruleIndex() {
4136
+ return CircuitScriptParser.RULE_graph_linear_expression;
4137
+ }
4138
+ accept(visitor) {
4139
+ if (visitor.visitGraph_linear_expression) {
4140
+ return visitor.visitGraph_linear_expression(this);
4141
+ }
4142
+ else {
4143
+ return visitor.visitChildren(this);
4144
+ }
4145
+ }
4146
+ }
4147
+ exports.Graph_linear_expressionContext = Graph_linear_expressionContext;
4071
4148
  class Expressions_blockContext extends antlr.ParserRuleContext {
4072
4149
  constructor(parent, invokingState) {
4073
4150
  super(parent, invokingState);
@@ -4105,30 +4182,7 @@ class Expressions_blockContext extends antlr.ParserRuleContext {
4105
4182
  }
4106
4183
  }
4107
4184
  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 {
4185
+ class Path_blockContext extends antlr.ParserRuleContext {
4132
4186
  constructor(parent, invokingState) {
4133
4187
  super(parent, invokingState);
4134
4188
  }
@@ -4148,18 +4202,18 @@ class Path_block_innerContext extends antlr.ParserRuleContext {
4148
4202
  return this.getToken(CircuitScriptParser.Point, 0);
4149
4203
  }
4150
4204
  get ruleIndex() {
4151
- return CircuitScriptParser.RULE_path_block_inner;
4205
+ return CircuitScriptParser.RULE_path_block;
4152
4206
  }
4153
4207
  accept(visitor) {
4154
- if (visitor.visitPath_block_inner) {
4155
- return visitor.visitPath_block_inner(this);
4208
+ if (visitor.visitPath_block) {
4209
+ return visitor.visitPath_block(this);
4156
4210
  }
4157
4211
  else {
4158
4212
  return visitor.visitChildren(this);
4159
4213
  }
4160
4214
  }
4161
4215
  }
4162
- exports.Path_block_innerContext = Path_block_innerContext;
4216
+ exports.Path_blockContext = Path_blockContext;
4163
4217
  class Property_set_expr2Context extends antlr.ParserRuleContext {
4164
4218
  constructor(parent, invokingState) {
4165
4219
  super(parent, invokingState);
@@ -4660,55 +4714,18 @@ class At_block_pin_expression_complexContext extends antlr.ParserRuleContext {
4660
4714
  }
4661
4715
  }
4662
4716
  exports.At_block_pin_expression_complexContext = At_block_pin_expression_complexContext;
4663
- class Break_keywordContext extends antlr.ParserRuleContext {
4664
- constructor(parent, invokingState) {
4665
- super(parent, invokingState);
4666
- }
4667
- Break() {
4668
- return this.getToken(CircuitScriptParser.Break, 0);
4669
- }
4670
- get ruleIndex() {
4671
- return CircuitScriptParser.RULE_break_keyword;
4672
- }
4673
- accept(visitor) {
4674
- if (visitor.visitBreak_keyword) {
4675
- return visitor.visitBreak_keyword(this);
4676
- }
4677
- else {
4678
- return visitor.visitChildren(this);
4679
- }
4680
- }
4681
- }
4682
- exports.Break_keywordContext = Break_keywordContext;
4683
- class Continue_keywordContext extends antlr.ParserRuleContext {
4684
- constructor(parent, invokingState) {
4685
- super(parent, invokingState);
4686
- }
4687
- Continue() {
4688
- return this.getToken(CircuitScriptParser.Continue, 0);
4689
- }
4690
- get ruleIndex() {
4691
- return CircuitScriptParser.RULE_continue_keyword;
4692
- }
4693
- accept(visitor) {
4694
- if (visitor.visitContinue_keyword) {
4695
- return visitor.visitContinue_keyword(this);
4696
- }
4697
- else {
4698
- return visitor.visitChildren(this);
4699
- }
4700
- }
4701
- }
4702
- exports.Continue_keywordContext = Continue_keywordContext;
4703
4717
  class Assignment_exprContext extends antlr.ParserRuleContext {
4704
4718
  constructor(parent, invokingState) {
4705
4719
  super(parent, invokingState);
4706
4720
  }
4721
+ data_expr() {
4722
+ return this.getRuleContext(0, Data_exprContext);
4723
+ }
4707
4724
  atom_expr() {
4708
4725
  return this.getRuleContext(0, Atom_exprContext);
4709
4726
  }
4710
- data_expr() {
4711
- return this.getRuleContext(0, Data_exprContext);
4727
+ function_call_expr() {
4728
+ return this.getRuleContext(0, Function_call_exprContext);
4712
4729
  }
4713
4730
  get ruleIndex() {
4714
4731
  return CircuitScriptParser.RULE_assignment_expr;