circuitscript 0.1.10 → 0.1.12

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