circuitscript 0.0.28 → 0.0.31

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 (60) hide show
  1. package/dist/cjs/BaseVisitor.js +6 -1
  2. package/dist/cjs/antlr/CircuitScriptLexer.js +204 -200
  3. package/dist/cjs/antlr/CircuitScriptParser.js +1066 -1173
  4. package/dist/cjs/draw_symbols.js +383 -103
  5. package/dist/cjs/execute.js +39 -14
  6. package/dist/cjs/geometry.js +79 -18
  7. package/dist/cjs/globals.js +41 -7
  8. package/dist/cjs/helpers.js +40 -2
  9. package/dist/cjs/layout.js +72 -39
  10. package/dist/cjs/main.js +10 -4
  11. package/dist/cjs/objects/ClassComponent.js +2 -0
  12. package/dist/cjs/objects/ExecutionScope.js +1 -1
  13. package/dist/cjs/objects/Net.js +3 -2
  14. package/dist/cjs/objects/PinTypes.js +7 -1
  15. package/dist/cjs/objects/types.js +11 -1
  16. package/dist/cjs/regenerate-tests.js +84 -14
  17. package/dist/cjs/render.js +22 -15
  18. package/dist/cjs/sizing.js +4 -6
  19. package/dist/cjs/utils.js +29 -5
  20. package/dist/cjs/visitor.js +176 -10
  21. package/dist/esm/BaseVisitor.mjs +6 -1
  22. package/dist/esm/antlr/CircuitScriptLexer.mjs +204 -200
  23. package/dist/esm/antlr/CircuitScriptParser.mjs +1061 -1171
  24. package/dist/esm/antlr/CircuitScriptVisitor.mjs +3 -0
  25. package/dist/esm/draw_symbols.mjs +378 -102
  26. package/dist/esm/execute.mjs +40 -15
  27. package/dist/esm/geometry.mjs +79 -17
  28. package/dist/esm/globals.mjs +40 -6
  29. package/dist/esm/helpers.mjs +38 -1
  30. package/dist/esm/layout.mjs +75 -42
  31. package/dist/esm/main.mjs +11 -5
  32. package/dist/esm/objects/ClassComponent.mjs +6 -0
  33. package/dist/esm/objects/ExecutionScope.mjs +1 -1
  34. package/dist/esm/objects/Net.mjs +3 -2
  35. package/dist/esm/objects/PinTypes.mjs +6 -0
  36. package/dist/esm/objects/types.mjs +14 -0
  37. package/dist/esm/regenerate-tests.mjs +85 -15
  38. package/dist/esm/render.mjs +23 -16
  39. package/dist/esm/sizing.mjs +3 -4
  40. package/dist/esm/utils.mjs +26 -4
  41. package/dist/esm/visitor.mjs +179 -13
  42. package/dist/types/antlr/CircuitScriptLexer.d.ts +42 -41
  43. package/dist/types/antlr/CircuitScriptParser.d.ts +144 -133
  44. package/dist/types/antlr/CircuitScriptVisitor.d.ts +6 -0
  45. package/dist/types/draw_symbols.d.ts +24 -6
  46. package/dist/types/execute.d.ts +5 -4
  47. package/dist/types/geometry.d.ts +5 -3
  48. package/dist/types/globals.d.ts +38 -6
  49. package/dist/types/helpers.d.ts +12 -0
  50. package/dist/types/layout.d.ts +2 -1
  51. package/dist/types/objects/ClassComponent.d.ts +8 -0
  52. package/dist/types/objects/PinTypes.d.ts +1 -0
  53. package/dist/types/objects/Wire.d.ts +4 -2
  54. package/dist/types/objects/types.d.ts +8 -0
  55. package/dist/types/sizing.d.ts +0 -4
  56. package/dist/types/utils.d.ts +3 -0
  57. package/dist/types/visitor.d.ts +8 -1
  58. package/fonts/Arial.ttf +0 -0
  59. package/libs/lib.cst +78 -55
  60. package/package.json +1 -1
@@ -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.Function_return_exprContext = exports.Net_namespace_exprContext = exports.Function_call_exprContext = exports.Trailer_exprContext = 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.Data_exprContext = exports.Double_dot_property_set_exprContext = exports.Property_set_exprContext = exports.ParametersContext = exports.Keyword_assignment_exprContext = exports.Assignment_exprContext = 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.ExpressionContext = exports.ScriptContext = exports.CircuitScriptParser = void 0;
27
- exports.Else_exprContext = exports.If_inner_exprContext = exports.If_exprContext = exports.Frame_exprContext = exports.Import_exprContext = exports.Point_exprContext = exports.Wire_exprContext = exports.Wire_expr_direction_onlyContext = exports.Wire_expr_direction_valueContext = exports.Wire_atom_exprContext = exports.Blank_exprContext = exports.Nested_propertiesContext = exports.Single_line_propertyContext = exports.Property_value_exprContext = exports.Property_key_exprContext = exports.Property_exprContext = exports.Graphic_exprContext = exports.Nested_properties_innerContext = exports.Create_graphic_exprContext = exports.Create_component_exprContext = void 0;
26
+ exports.Net_namespace_exprContext = exports.Function_call_exprContext = exports.Trailer_exprContext = 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.Data_exprContext = exports.Double_dot_property_set_exprContext = exports.Property_set_exprContext = exports.ParametersContext = exports.Keyword_assignment_exprContext = exports.Assignment_exprContext = 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.Else_exprContext = exports.If_inner_exprContext = exports.If_exprContext = exports.Frame_exprContext = exports.Import_exprContext = exports.Point_exprContext = exports.Wire_exprContext = exports.Wire_expr_direction_onlyContext = exports.Wire_expr_direction_valueContext = exports.Wire_atom_exprContext = exports.Blank_exprContext = exports.Nested_propertiesContext = exports.Single_line_propertyContext = exports.Property_value_exprContext = exports.Property_key_exprContext = exports.Property_exprContext = exports.Graphic_exprContext = exports.Nested_properties_innerContext = exports.Create_module_exprContext = exports.Create_graphic_exprContext = exports.Create_component_exprContext = exports.Property_block_exprContext = exports.Function_return_exprContext = void 0;
28
28
  const antlr = __importStar(require("antlr4ng"));
29
29
  class CircuitScriptParser extends antlr.Parser {
30
30
  get grammarFileName() { return "CircuitScript.g4"; }
@@ -46,12 +46,12 @@ class CircuitScriptParser extends antlr.Parser {
46
46
  try {
47
47
  this.enterOuterAlt(localContext, 1);
48
48
  {
49
- this.state = 114;
49
+ this.state = 120;
50
50
  this.errorHandler.sync(this);
51
51
  _la = this.tokenStream.LA(1);
52
52
  do {
53
53
  {
54
- this.state = 114;
54
+ this.state = 120;
55
55
  this.errorHandler.sync(this);
56
56
  switch (this.tokenStream.LA(1)) {
57
57
  case CircuitScriptParser.T__3:
@@ -72,13 +72,13 @@ class CircuitScriptParser extends antlr.Parser {
72
72
  case CircuitScriptParser.Divide:
73
73
  case CircuitScriptParser.ID:
74
74
  {
75
- this.state = 112;
75
+ this.state = 118;
76
76
  this.expression();
77
77
  }
78
78
  break;
79
79
  case CircuitScriptParser.NEWLINE:
80
80
  {
81
- this.state = 113;
81
+ this.state = 119;
82
82
  this.match(CircuitScriptParser.NEWLINE);
83
83
  }
84
84
  break;
@@ -86,11 +86,11 @@ class CircuitScriptParser extends antlr.Parser {
86
86
  throw new antlr.NoViableAltException(this);
87
87
  }
88
88
  }
89
- this.state = 116;
89
+ this.state = 122;
90
90
  this.errorHandler.sync(this);
91
91
  _la = this.tokenStream.LA(1);
92
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
93
- this.state = 118;
92
+ } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 331301648) !== 0) || ((((_la - 37)) & ~0x1F) === 0 && ((1 << (_la - 37)) & 65797) !== 0));
93
+ this.state = 124;
94
94
  this.match(CircuitScriptParser.EOF);
95
95
  }
96
96
  }
@@ -112,132 +112,132 @@ class CircuitScriptParser extends antlr.Parser {
112
112
  let localContext = new ExpressionContext(this.context, this.state);
113
113
  this.enterRule(localContext, 2, CircuitScriptParser.RULE_expression);
114
114
  try {
115
- this.state = 138;
115
+ this.state = 144;
116
116
  this.errorHandler.sync(this);
117
117
  switch (this.interpreter.adaptivePredict(this.tokenStream, 2, this.context)) {
118
118
  case 1:
119
119
  this.enterOuterAlt(localContext, 1);
120
120
  {
121
- this.state = 120;
121
+ this.state = 126;
122
122
  this.add_component_expr();
123
123
  }
124
124
  break;
125
125
  case 2:
126
126
  this.enterOuterAlt(localContext, 2);
127
127
  {
128
- this.state = 121;
128
+ this.state = 127;
129
129
  this.to_component_expr();
130
130
  }
131
131
  break;
132
132
  case 3:
133
133
  this.enterOuterAlt(localContext, 3);
134
134
  {
135
- this.state = 122;
135
+ this.state = 128;
136
136
  this.at_component_expr();
137
137
  }
138
138
  break;
139
139
  case 4:
140
140
  this.enterOuterAlt(localContext, 4);
141
141
  {
142
- this.state = 123;
142
+ this.state = 129;
143
143
  this.assignment_expr();
144
144
  }
145
145
  break;
146
146
  case 5:
147
147
  this.enterOuterAlt(localContext, 5);
148
148
  {
149
- this.state = 124;
149
+ this.state = 130;
150
150
  this.property_set_expr();
151
151
  }
152
152
  break;
153
153
  case 6:
154
154
  this.enterOuterAlt(localContext, 6);
155
155
  {
156
- this.state = 125;
156
+ this.state = 131;
157
157
  this.property_set_expr2();
158
158
  }
159
159
  break;
160
160
  case 7:
161
161
  this.enterOuterAlt(localContext, 7);
162
162
  {
163
- this.state = 126;
163
+ this.state = 132;
164
164
  this.double_dot_property_set_expr();
165
165
  }
166
166
  break;
167
167
  case 8:
168
168
  this.enterOuterAlt(localContext, 8);
169
169
  {
170
- this.state = 127;
170
+ this.state = 133;
171
171
  this.break_keyword();
172
172
  }
173
173
  break;
174
174
  case 9:
175
175
  this.enterOuterAlt(localContext, 9);
176
176
  {
177
- this.state = 128;
177
+ this.state = 134;
178
178
  this.function_def_expr();
179
179
  }
180
180
  break;
181
181
  case 10:
182
182
  this.enterOuterAlt(localContext, 10);
183
183
  {
184
- this.state = 129;
184
+ this.state = 135;
185
185
  this.function_call_expr();
186
186
  }
187
187
  break;
188
188
  case 11:
189
189
  this.enterOuterAlt(localContext, 11);
190
190
  {
191
- this.state = 130;
191
+ this.state = 136;
192
192
  this.wire_expr();
193
193
  }
194
194
  break;
195
195
  case 12:
196
196
  this.enterOuterAlt(localContext, 12);
197
197
  {
198
- this.state = 131;
198
+ this.state = 137;
199
199
  this.import_expr();
200
200
  }
201
201
  break;
202
202
  case 13:
203
203
  this.enterOuterAlt(localContext, 13);
204
204
  {
205
- this.state = 132;
205
+ this.state = 138;
206
206
  this.frame_expr();
207
207
  }
208
208
  break;
209
209
  case 14:
210
210
  this.enterOuterAlt(localContext, 14);
211
211
  {
212
- this.state = 133;
212
+ this.state = 139;
213
213
  this.atom_expr();
214
214
  }
215
215
  break;
216
216
  case 15:
217
217
  this.enterOuterAlt(localContext, 15);
218
218
  {
219
- this.state = 134;
219
+ this.state = 140;
220
220
  this.at_block();
221
221
  }
222
222
  break;
223
223
  case 16:
224
224
  this.enterOuterAlt(localContext, 16);
225
225
  {
226
- this.state = 135;
226
+ this.state = 141;
227
227
  this.path_blocks();
228
228
  }
229
229
  break;
230
230
  case 17:
231
231
  this.enterOuterAlt(localContext, 17);
232
232
  {
233
- this.state = 136;
233
+ this.state = 142;
234
234
  this.point_expr();
235
235
  }
236
236
  break;
237
237
  case 18:
238
238
  this.enterOuterAlt(localContext, 18);
239
239
  {
240
- this.state = 137;
240
+ this.state = 143;
241
241
  this.if_expr();
242
242
  }
243
243
  break;
@@ -257,14 +257,87 @@ class CircuitScriptParser extends antlr.Parser {
257
257
  }
258
258
  return localContext;
259
259
  }
260
+ expressions_block() {
261
+ let localContext = new Expressions_blockContext(this.context, this.state);
262
+ this.enterRule(localContext, 4, CircuitScriptParser.RULE_expressions_block);
263
+ let _la;
264
+ try {
265
+ this.enterOuterAlt(localContext, 1);
266
+ {
267
+ this.state = 146;
268
+ this.match(CircuitScriptParser.NEWLINE);
269
+ this.state = 147;
270
+ this.match(CircuitScriptParser.INDENT);
271
+ this.state = 150;
272
+ this.errorHandler.sync(this);
273
+ _la = this.tokenStream.LA(1);
274
+ do {
275
+ {
276
+ this.state = 150;
277
+ this.errorHandler.sync(this);
278
+ switch (this.tokenStream.LA(1)) {
279
+ case CircuitScriptParser.NEWLINE:
280
+ {
281
+ this.state = 148;
282
+ this.match(CircuitScriptParser.NEWLINE);
283
+ }
284
+ break;
285
+ case CircuitScriptParser.T__3:
286
+ case CircuitScriptParser.Break:
287
+ case CircuitScriptParser.Branch:
288
+ case CircuitScriptParser.Wire:
289
+ case CircuitScriptParser.Add:
290
+ case CircuitScriptParser.At:
291
+ case CircuitScriptParser.To:
292
+ case CircuitScriptParser.Point:
293
+ case CircuitScriptParser.Join:
294
+ case CircuitScriptParser.Parallel:
295
+ case CircuitScriptParser.Define:
296
+ case CircuitScriptParser.Import:
297
+ case CircuitScriptParser.If:
298
+ case CircuitScriptParser.Frame:
299
+ case CircuitScriptParser.Addition:
300
+ case CircuitScriptParser.Divide:
301
+ case CircuitScriptParser.ID:
302
+ {
303
+ this.state = 149;
304
+ this.expression();
305
+ }
306
+ break;
307
+ default:
308
+ throw new antlr.NoViableAltException(this);
309
+ }
310
+ }
311
+ this.state = 152;
312
+ this.errorHandler.sync(this);
313
+ _la = this.tokenStream.LA(1);
314
+ } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 331301648) !== 0) || ((((_la - 37)) & ~0x1F) === 0 && ((1 << (_la - 37)) & 65797) !== 0));
315
+ this.state = 154;
316
+ this.match(CircuitScriptParser.DEDENT);
317
+ }
318
+ }
319
+ catch (re) {
320
+ if (re instanceof antlr.RecognitionException) {
321
+ this.errorHandler.reportError(this, re);
322
+ this.errorHandler.recover(this, re);
323
+ }
324
+ else {
325
+ throw re;
326
+ }
327
+ }
328
+ finally {
329
+ this.exitRule();
330
+ }
331
+ return localContext;
332
+ }
260
333
  path_blocks() {
261
334
  let localContext = new Path_blocksContext(this.context, this.state);
262
- this.enterRule(localContext, 4, CircuitScriptParser.RULE_path_blocks);
335
+ this.enterRule(localContext, 6, CircuitScriptParser.RULE_path_blocks);
263
336
  try {
264
337
  let alternative;
265
338
  this.enterOuterAlt(localContext, 1);
266
339
  {
267
- this.state = 141;
340
+ this.state = 157;
268
341
  this.errorHandler.sync(this);
269
342
  alternative = 1;
270
343
  do {
@@ -272,7 +345,7 @@ class CircuitScriptParser extends antlr.Parser {
272
345
  case 1:
273
346
  {
274
347
  {
275
- this.state = 140;
348
+ this.state = 156;
276
349
  this.path_block_inner();
277
350
  }
278
351
  }
@@ -280,9 +353,9 @@ class CircuitScriptParser extends antlr.Parser {
280
353
  default:
281
354
  throw new antlr.NoViableAltException(this);
282
355
  }
283
- this.state = 143;
356
+ this.state = 159;
284
357
  this.errorHandler.sync(this);
285
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 3, this.context);
358
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 5, this.context);
286
359
  } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
287
360
  }
288
361
  }
@@ -302,72 +375,24 @@ class CircuitScriptParser extends antlr.Parser {
302
375
  }
303
376
  path_block_inner() {
304
377
  let localContext = new Path_block_innerContext(this.context, this.state);
305
- this.enterRule(localContext, 6, CircuitScriptParser.RULE_path_block_inner);
378
+ this.enterRule(localContext, 8, CircuitScriptParser.RULE_path_block_inner);
306
379
  let _la;
307
380
  try {
308
381
  this.enterOuterAlt(localContext, 1);
309
382
  {
310
- this.state = 145;
383
+ this.state = 161;
311
384
  _la = this.tokenStream.LA(1);
312
- if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 1835520) !== 0))) {
385
+ if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 3670528) !== 0))) {
313
386
  this.errorHandler.recoverInline(this);
314
387
  }
315
388
  else {
316
389
  this.errorHandler.reportMatch(this);
317
390
  this.consume();
318
391
  }
319
- this.state = 146;
392
+ this.state = 162;
320
393
  this.match(CircuitScriptParser.T__0);
321
- this.state = 147;
322
- this.match(CircuitScriptParser.NEWLINE);
323
- this.state = 148;
324
- this.match(CircuitScriptParser.INDENT);
325
- this.state = 151;
326
- this.errorHandler.sync(this);
327
- _la = this.tokenStream.LA(1);
328
- do {
329
- {
330
- this.state = 151;
331
- this.errorHandler.sync(this);
332
- switch (this.tokenStream.LA(1)) {
333
- case CircuitScriptParser.NEWLINE:
334
- {
335
- this.state = 149;
336
- this.match(CircuitScriptParser.NEWLINE);
337
- }
338
- break;
339
- case CircuitScriptParser.T__3:
340
- case CircuitScriptParser.Break:
341
- case CircuitScriptParser.Branch:
342
- case CircuitScriptParser.Wire:
343
- case CircuitScriptParser.Add:
344
- case CircuitScriptParser.At:
345
- case CircuitScriptParser.To:
346
- case CircuitScriptParser.Point:
347
- case CircuitScriptParser.Join:
348
- case CircuitScriptParser.Parallel:
349
- case CircuitScriptParser.Define:
350
- case CircuitScriptParser.Import:
351
- case CircuitScriptParser.If:
352
- case CircuitScriptParser.Frame:
353
- case CircuitScriptParser.Addition:
354
- case CircuitScriptParser.Divide:
355
- case CircuitScriptParser.ID:
356
- {
357
- this.state = 150;
358
- this.expression();
359
- }
360
- break;
361
- default:
362
- throw new antlr.NoViableAltException(this);
363
- }
364
- }
365
- this.state = 153;
366
- this.errorHandler.sync(this);
367
- _la = this.tokenStream.LA(1);
368
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
369
- this.state = 155;
370
- this.match(CircuitScriptParser.DEDENT);
394
+ this.state = 163;
395
+ this.expressions_block();
371
396
  }
372
397
  }
373
398
  catch (re) {
@@ -386,37 +411,37 @@ class CircuitScriptParser extends antlr.Parser {
386
411
  }
387
412
  property_set_expr2() {
388
413
  let localContext = new Property_set_expr2Context(this.context, this.state);
389
- this.enterRule(localContext, 8, CircuitScriptParser.RULE_property_set_expr2);
414
+ this.enterRule(localContext, 10, CircuitScriptParser.RULE_property_set_expr2);
390
415
  let _la;
391
416
  try {
392
417
  this.enterOuterAlt(localContext, 1);
393
418
  {
394
- this.state = 157;
419
+ this.state = 165;
395
420
  this.atom_expr();
396
- this.state = 158;
421
+ this.state = 166;
397
422
  this.match(CircuitScriptParser.T__0);
398
- this.state = 159;
423
+ this.state = 167;
399
424
  this.match(CircuitScriptParser.NEWLINE);
400
- this.state = 160;
425
+ this.state = 168;
401
426
  this.match(CircuitScriptParser.INDENT);
402
- this.state = 163;
427
+ this.state = 171;
403
428
  this.errorHandler.sync(this);
404
429
  _la = this.tokenStream.LA(1);
405
430
  do {
406
431
  {
407
- this.state = 163;
432
+ this.state = 171;
408
433
  this.errorHandler.sync(this);
409
434
  switch (this.tokenStream.LA(1)) {
410
435
  case CircuitScriptParser.NEWLINE:
411
436
  {
412
- this.state = 161;
437
+ this.state = 169;
413
438
  this.match(CircuitScriptParser.NEWLINE);
414
439
  }
415
440
  break;
416
441
  case CircuitScriptParser.ID:
417
442
  case CircuitScriptParser.INTEGER_VALUE:
418
443
  {
419
- this.state = 162;
444
+ this.state = 170;
420
445
  this.assignment_expr2();
421
446
  }
422
447
  break;
@@ -424,11 +449,11 @@ class CircuitScriptParser extends antlr.Parser {
424
449
  throw new antlr.NoViableAltException(this);
425
450
  }
426
451
  }
427
- this.state = 165;
452
+ this.state = 173;
428
453
  this.errorHandler.sync(this);
429
454
  _la = this.tokenStream.LA(1);
430
- } while (((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 259) !== 0));
431
- this.state = 167;
455
+ } while (((((_la - 45)) & ~0x1F) === 0 && ((1 << (_la - 45)) & 259) !== 0));
456
+ this.state = 175;
432
457
  this.match(CircuitScriptParser.DEDENT);
433
458
  }
434
459
  }
@@ -448,23 +473,23 @@ class CircuitScriptParser extends antlr.Parser {
448
473
  }
449
474
  assignment_expr2() {
450
475
  let localContext = new Assignment_expr2Context(this.context, this.state);
451
- this.enterRule(localContext, 10, CircuitScriptParser.RULE_assignment_expr2);
476
+ this.enterRule(localContext, 12, CircuitScriptParser.RULE_assignment_expr2);
452
477
  let _la;
453
478
  try {
454
479
  this.enterOuterAlt(localContext, 1);
455
480
  {
456
- this.state = 169;
481
+ this.state = 177;
457
482
  _la = this.tokenStream.LA(1);
458
- if (!(_la === 44 || _la === 45)) {
483
+ if (!(_la === 45 || _la === 46)) {
459
484
  this.errorHandler.recoverInline(this);
460
485
  }
461
486
  else {
462
487
  this.errorHandler.reportMatch(this);
463
488
  this.consume();
464
489
  }
465
- this.state = 170;
490
+ this.state = 178;
466
491
  this.match(CircuitScriptParser.T__0);
467
- this.state = 171;
492
+ this.state = 179;
468
493
  this.value_expr();
469
494
  }
470
495
  }
@@ -484,16 +509,16 @@ class CircuitScriptParser extends antlr.Parser {
484
509
  }
485
510
  pin_select_expr() {
486
511
  let localContext = new Pin_select_exprContext(this.context, this.state);
487
- this.enterRule(localContext, 12, CircuitScriptParser.RULE_pin_select_expr);
512
+ this.enterRule(localContext, 14, CircuitScriptParser.RULE_pin_select_expr);
488
513
  let _la;
489
514
  try {
490
515
  this.enterOuterAlt(localContext, 1);
491
516
  {
492
- this.state = 173;
517
+ this.state = 181;
493
518
  this.match(CircuitScriptParser.Pin);
494
- this.state = 174;
519
+ this.state = 182;
495
520
  _la = this.tokenStream.LA(1);
496
- if (!(_la === 45 || _la === 48)) {
521
+ if (!(_la === 46 || _la === 49)) {
497
522
  this.errorHandler.recoverInline(this);
498
523
  }
499
524
  else {
@@ -518,15 +543,15 @@ class CircuitScriptParser extends antlr.Parser {
518
543
  }
519
544
  component_modifier_expr() {
520
545
  let localContext = new Component_modifier_exprContext(this.context, this.state);
521
- this.enterRule(localContext, 14, CircuitScriptParser.RULE_component_modifier_expr);
546
+ this.enterRule(localContext, 16, CircuitScriptParser.RULE_component_modifier_expr);
522
547
  try {
523
548
  this.enterOuterAlt(localContext, 1);
524
549
  {
525
- this.state = 176;
550
+ this.state = 184;
526
551
  this.match(CircuitScriptParser.ID);
527
- this.state = 177;
552
+ this.state = 185;
528
553
  this.match(CircuitScriptParser.T__0);
529
- this.state = 180;
554
+ this.state = 188;
530
555
  this.errorHandler.sync(this);
531
556
  switch (this.tokenStream.LA(1)) {
532
557
  case CircuitScriptParser.T__5:
@@ -538,13 +563,13 @@ class CircuitScriptParser extends antlr.Parser {
538
563
  case CircuitScriptParser.STRING_VALUE:
539
564
  case CircuitScriptParser.PERCENTAGE_VALUE:
540
565
  {
541
- this.state = 178;
566
+ this.state = 186;
542
567
  this.value_expr();
543
568
  }
544
569
  break;
545
570
  case CircuitScriptParser.ID:
546
571
  {
547
- this.state = 179;
572
+ this.state = 187;
548
573
  this.match(CircuitScriptParser.ID);
549
574
  }
550
575
  break;
@@ -569,50 +594,50 @@ class CircuitScriptParser extends antlr.Parser {
569
594
  }
570
595
  data_expr_with_assignment() {
571
596
  let localContext = new Data_expr_with_assignmentContext(this.context, this.state);
572
- this.enterRule(localContext, 16, CircuitScriptParser.RULE_data_expr_with_assignment);
597
+ this.enterRule(localContext, 18, CircuitScriptParser.RULE_data_expr_with_assignment);
573
598
  let _la;
574
599
  try {
575
600
  let alternative;
576
601
  this.enterOuterAlt(localContext, 1);
577
602
  {
578
- this.state = 184;
603
+ this.state = 192;
579
604
  this.errorHandler.sync(this);
580
605
  switch (this.interpreter.adaptivePredict(this.tokenStream, 9, this.context)) {
581
606
  case 1:
582
607
  {
583
- this.state = 182;
608
+ this.state = 190;
584
609
  this.data_expr(0);
585
610
  }
586
611
  break;
587
612
  case 2:
588
613
  {
589
- this.state = 183;
614
+ this.state = 191;
590
615
  this.assignment_expr();
591
616
  }
592
617
  break;
593
618
  }
594
- this.state = 189;
619
+ this.state = 197;
595
620
  this.errorHandler.sync(this);
596
621
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 10, this.context);
597
622
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
598
623
  if (alternative === 1) {
599
624
  {
600
625
  {
601
- this.state = 186;
626
+ this.state = 194;
602
627
  this.component_modifier_expr();
603
628
  }
604
629
  }
605
630
  }
606
- this.state = 191;
631
+ this.state = 199;
607
632
  this.errorHandler.sync(this);
608
633
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 10, this.context);
609
634
  }
610
- this.state = 193;
635
+ this.state = 201;
611
636
  this.errorHandler.sync(this);
612
637
  _la = this.tokenStream.LA(1);
613
- if (_la === 14) {
638
+ if (_la === 15) {
614
639
  {
615
- this.state = 192;
640
+ this.state = 200;
616
641
  this.pin_select_expr();
617
642
  }
618
643
  }
@@ -634,13 +659,13 @@ class CircuitScriptParser extends antlr.Parser {
634
659
  }
635
660
  add_component_expr() {
636
661
  let localContext = new Add_component_exprContext(this.context, this.state);
637
- this.enterRule(localContext, 18, CircuitScriptParser.RULE_add_component_expr);
662
+ this.enterRule(localContext, 20, CircuitScriptParser.RULE_add_component_expr);
638
663
  try {
639
664
  this.enterOuterAlt(localContext, 1);
640
665
  {
641
- this.state = 195;
666
+ this.state = 203;
642
667
  this.match(CircuitScriptParser.Add);
643
- this.state = 196;
668
+ this.state = 204;
644
669
  this.data_expr_with_assignment();
645
670
  }
646
671
  }
@@ -660,9 +685,9 @@ class CircuitScriptParser extends antlr.Parser {
660
685
  }
661
686
  component_select_expr() {
662
687
  let localContext = new Component_select_exprContext(this.context, this.state);
663
- this.enterRule(localContext, 20, CircuitScriptParser.RULE_component_select_expr);
688
+ this.enterRule(localContext, 22, CircuitScriptParser.RULE_component_select_expr);
664
689
  try {
665
- this.state = 200;
690
+ this.state = 208;
666
691
  this.errorHandler.sync(this);
667
692
  switch (this.tokenStream.LA(1)) {
668
693
  case CircuitScriptParser.T__5:
@@ -681,14 +706,14 @@ class CircuitScriptParser extends antlr.Parser {
681
706
  case CircuitScriptParser.PERCENTAGE_VALUE:
682
707
  this.enterOuterAlt(localContext, 1);
683
708
  {
684
- this.state = 198;
709
+ this.state = 206;
685
710
  this.data_expr_with_assignment();
686
711
  }
687
712
  break;
688
713
  case CircuitScriptParser.Pin:
689
714
  this.enterOuterAlt(localContext, 2);
690
715
  {
691
- this.state = 199;
716
+ this.state = 207;
692
717
  this.pin_select_expr();
693
718
  }
694
719
  break;
@@ -712,14 +737,14 @@ class CircuitScriptParser extends antlr.Parser {
712
737
  }
713
738
  pin_select_expr2() {
714
739
  let localContext = new Pin_select_expr2Context(this.context, this.state);
715
- this.enterRule(localContext, 22, CircuitScriptParser.RULE_pin_select_expr2);
740
+ this.enterRule(localContext, 24, CircuitScriptParser.RULE_pin_select_expr2);
716
741
  let _la;
717
742
  try {
718
743
  this.enterOuterAlt(localContext, 1);
719
744
  {
720
- this.state = 202;
745
+ this.state = 210;
721
746
  _la = this.tokenStream.LA(1);
722
- if (!(_la === 45 || _la === 48)) {
747
+ if (!(_la === 46 || _la === 49)) {
723
748
  this.errorHandler.recoverInline(this);
724
749
  }
725
750
  else {
@@ -744,13 +769,13 @@ class CircuitScriptParser extends antlr.Parser {
744
769
  }
745
770
  at_component_expr() {
746
771
  let localContext = new At_component_exprContext(this.context, this.state);
747
- this.enterRule(localContext, 24, CircuitScriptParser.RULE_at_component_expr);
772
+ this.enterRule(localContext, 26, CircuitScriptParser.RULE_at_component_expr);
748
773
  try {
749
774
  this.enterOuterAlt(localContext, 1);
750
775
  {
751
- this.state = 204;
776
+ this.state = 212;
752
777
  this.match(CircuitScriptParser.At);
753
- this.state = 207;
778
+ this.state = 215;
754
779
  this.errorHandler.sync(this);
755
780
  switch (this.tokenStream.LA(1)) {
756
781
  case CircuitScriptParser.T__5:
@@ -769,13 +794,13 @@ class CircuitScriptParser extends antlr.Parser {
769
794
  case CircuitScriptParser.STRING_VALUE:
770
795
  case CircuitScriptParser.PERCENTAGE_VALUE:
771
796
  {
772
- this.state = 205;
797
+ this.state = 213;
773
798
  this.component_select_expr();
774
799
  }
775
800
  break;
776
801
  case CircuitScriptParser.Point:
777
802
  {
778
- this.state = 206;
803
+ this.state = 214;
779
804
  this.match(CircuitScriptParser.Point);
780
805
  }
781
806
  break;
@@ -800,14 +825,14 @@ class CircuitScriptParser extends antlr.Parser {
800
825
  }
801
826
  to_component_expr() {
802
827
  let localContext = new To_component_exprContext(this.context, this.state);
803
- this.enterRule(localContext, 26, CircuitScriptParser.RULE_to_component_expr);
828
+ this.enterRule(localContext, 28, CircuitScriptParser.RULE_to_component_expr);
804
829
  let _la;
805
830
  try {
806
831
  this.enterOuterAlt(localContext, 1);
807
832
  {
808
- this.state = 209;
833
+ this.state = 217;
809
834
  this.match(CircuitScriptParser.To);
810
- this.state = 219;
835
+ this.state = 227;
811
836
  this.errorHandler.sync(this);
812
837
  switch (this.tokenStream.LA(1)) {
813
838
  case CircuitScriptParser.T__5:
@@ -827,21 +852,21 @@ class CircuitScriptParser extends antlr.Parser {
827
852
  case CircuitScriptParser.PERCENTAGE_VALUE:
828
853
  {
829
854
  {
830
- this.state = 210;
855
+ this.state = 218;
831
856
  this.component_select_expr();
832
- this.state = 215;
857
+ this.state = 223;
833
858
  this.errorHandler.sync(this);
834
859
  _la = this.tokenStream.LA(1);
835
860
  while (_la === 2) {
836
861
  {
837
862
  {
838
- this.state = 211;
863
+ this.state = 219;
839
864
  this.match(CircuitScriptParser.T__1);
840
- this.state = 212;
865
+ this.state = 220;
841
866
  this.component_select_expr();
842
867
  }
843
868
  }
844
- this.state = 217;
869
+ this.state = 225;
845
870
  this.errorHandler.sync(this);
846
871
  _la = this.tokenStream.LA(1);
847
872
  }
@@ -850,7 +875,7 @@ class CircuitScriptParser extends antlr.Parser {
850
875
  break;
851
876
  case CircuitScriptParser.Point:
852
877
  {
853
- this.state = 218;
878
+ this.state = 226;
854
879
  this.match(CircuitScriptParser.Point);
855
880
  }
856
881
  break;
@@ -875,59 +900,59 @@ class CircuitScriptParser extends antlr.Parser {
875
900
  }
876
901
  at_to_multiple_expr() {
877
902
  let localContext = new At_to_multiple_exprContext(this.context, this.state);
878
- this.enterRule(localContext, 28, CircuitScriptParser.RULE_at_to_multiple_expr);
903
+ this.enterRule(localContext, 30, CircuitScriptParser.RULE_at_to_multiple_expr);
879
904
  let _la;
880
905
  try {
881
906
  this.enterOuterAlt(localContext, 1);
882
907
  {
883
- this.state = 221;
908
+ this.state = 229;
884
909
  this.match(CircuitScriptParser.At);
885
- this.state = 222;
910
+ this.state = 230;
886
911
  this.component_select_expr();
887
- this.state = 223;
912
+ this.state = 231;
888
913
  this.match(CircuitScriptParser.To);
889
- this.state = 224;
914
+ this.state = 232;
890
915
  this.component_select_expr();
891
- this.state = 229;
916
+ this.state = 237;
892
917
  this.errorHandler.sync(this);
893
918
  _la = this.tokenStream.LA(1);
894
919
  while (_la === 2) {
895
920
  {
896
921
  {
897
- this.state = 225;
922
+ this.state = 233;
898
923
  this.match(CircuitScriptParser.T__1);
899
- this.state = 226;
924
+ this.state = 234;
900
925
  this.component_select_expr();
901
926
  }
902
927
  }
903
- this.state = 231;
928
+ this.state = 239;
904
929
  this.errorHandler.sync(this);
905
930
  _la = this.tokenStream.LA(1);
906
931
  }
907
- this.state = 232;
932
+ this.state = 240;
908
933
  this.match(CircuitScriptParser.T__0);
909
- this.state = 233;
934
+ this.state = 241;
910
935
  this.match(CircuitScriptParser.NEWLINE);
911
- this.state = 234;
936
+ this.state = 242;
912
937
  this.match(CircuitScriptParser.INDENT);
913
- this.state = 237;
938
+ this.state = 245;
914
939
  this.errorHandler.sync(this);
915
940
  _la = this.tokenStream.LA(1);
916
941
  do {
917
942
  {
918
- this.state = 237;
943
+ this.state = 245;
919
944
  this.errorHandler.sync(this);
920
945
  switch (this.tokenStream.LA(1)) {
921
946
  case CircuitScriptParser.NEWLINE:
922
947
  {
923
- this.state = 235;
948
+ this.state = 243;
924
949
  this.match(CircuitScriptParser.NEWLINE);
925
950
  }
926
951
  break;
927
952
  case CircuitScriptParser.INTEGER_VALUE:
928
953
  case CircuitScriptParser.STRING_VALUE:
929
954
  {
930
- this.state = 236;
955
+ this.state = 244;
931
956
  this.at_to_multiple_line_expr();
932
957
  }
933
958
  break;
@@ -935,11 +960,11 @@ class CircuitScriptParser extends antlr.Parser {
935
960
  throw new antlr.NoViableAltException(this);
936
961
  }
937
962
  }
938
- this.state = 239;
963
+ this.state = 247;
939
964
  this.errorHandler.sync(this);
940
965
  _la = this.tokenStream.LA(1);
941
- } while (((((_la - 45)) & ~0x1F) === 0 && ((1 << (_la - 45)) & 137) !== 0));
942
- this.state = 241;
966
+ } while (((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 137) !== 0));
967
+ this.state = 249;
943
968
  this.match(CircuitScriptParser.DEDENT);
944
969
  }
945
970
  }
@@ -959,30 +984,30 @@ class CircuitScriptParser extends antlr.Parser {
959
984
  }
960
985
  at_to_multiple_line_expr() {
961
986
  let localContext = new At_to_multiple_line_exprContext(this.context, this.state);
962
- this.enterRule(localContext, 30, CircuitScriptParser.RULE_at_to_multiple_line_expr);
987
+ this.enterRule(localContext, 32, CircuitScriptParser.RULE_at_to_multiple_line_expr);
963
988
  let _la;
964
989
  try {
965
990
  this.enterOuterAlt(localContext, 1);
966
991
  {
967
- this.state = 243;
992
+ this.state = 251;
968
993
  this.pin_select_expr2();
969
- this.state = 244;
994
+ this.state = 252;
970
995
  this.match(CircuitScriptParser.T__0);
971
- this.state = 245;
996
+ this.state = 253;
972
997
  this.at_to_multiple_line_expr_to_pin();
973
- this.state = 250;
998
+ this.state = 258;
974
999
  this.errorHandler.sync(this);
975
1000
  _la = this.tokenStream.LA(1);
976
1001
  while (_la === 2) {
977
1002
  {
978
1003
  {
979
- this.state = 246;
1004
+ this.state = 254;
980
1005
  this.match(CircuitScriptParser.T__1);
981
- this.state = 247;
1006
+ this.state = 255;
982
1007
  this.at_to_multiple_line_expr_to_pin();
983
1008
  }
984
1009
  }
985
- this.state = 252;
1010
+ this.state = 260;
986
1011
  this.errorHandler.sync(this);
987
1012
  _la = this.tokenStream.LA(1);
988
1013
  }
@@ -1004,14 +1029,14 @@ class CircuitScriptParser extends antlr.Parser {
1004
1029
  }
1005
1030
  at_to_multiple_line_expr_to_pin() {
1006
1031
  let localContext = new At_to_multiple_line_expr_to_pinContext(this.context, this.state);
1007
- this.enterRule(localContext, 32, CircuitScriptParser.RULE_at_to_multiple_line_expr_to_pin);
1032
+ this.enterRule(localContext, 34, CircuitScriptParser.RULE_at_to_multiple_line_expr_to_pin);
1008
1033
  let _la;
1009
1034
  try {
1010
1035
  this.enterOuterAlt(localContext, 1);
1011
1036
  {
1012
- this.state = 253;
1037
+ this.state = 261;
1013
1038
  _la = this.tokenStream.LA(1);
1014
- if (!(_la === 42 || _la === 45)) {
1039
+ if (!(_la === 43 || _la === 46)) {
1015
1040
  this.errorHandler.recoverInline(this);
1016
1041
  }
1017
1042
  else {
@@ -1036,30 +1061,30 @@ class CircuitScriptParser extends antlr.Parser {
1036
1061
  }
1037
1062
  at_block() {
1038
1063
  let localContext = new At_blockContext(this.context, this.state);
1039
- this.enterRule(localContext, 34, CircuitScriptParser.RULE_at_block);
1064
+ this.enterRule(localContext, 36, CircuitScriptParser.RULE_at_block);
1040
1065
  let _la;
1041
1066
  try {
1042
1067
  this.enterOuterAlt(localContext, 1);
1043
1068
  {
1044
- this.state = 255;
1069
+ this.state = 263;
1045
1070
  this.at_component_expr();
1046
- this.state = 256;
1071
+ this.state = 264;
1047
1072
  this.match(CircuitScriptParser.T__0);
1048
- this.state = 257;
1073
+ this.state = 265;
1049
1074
  this.match(CircuitScriptParser.NEWLINE);
1050
- this.state = 258;
1075
+ this.state = 266;
1051
1076
  this.match(CircuitScriptParser.INDENT);
1052
- this.state = 261;
1077
+ this.state = 269;
1053
1078
  this.errorHandler.sync(this);
1054
1079
  _la = this.tokenStream.LA(1);
1055
1080
  do {
1056
1081
  {
1057
- this.state = 261;
1082
+ this.state = 269;
1058
1083
  this.errorHandler.sync(this);
1059
1084
  switch (this.tokenStream.LA(1)) {
1060
1085
  case CircuitScriptParser.NEWLINE:
1061
1086
  {
1062
- this.state = 259;
1087
+ this.state = 267;
1063
1088
  this.match(CircuitScriptParser.NEWLINE);
1064
1089
  }
1065
1090
  break;
@@ -1083,7 +1108,7 @@ class CircuitScriptParser extends antlr.Parser {
1083
1108
  case CircuitScriptParser.INTEGER_VALUE:
1084
1109
  case CircuitScriptParser.STRING_VALUE:
1085
1110
  {
1086
- this.state = 260;
1111
+ this.state = 268;
1087
1112
  this.at_block_expressions();
1088
1113
  }
1089
1114
  break;
@@ -1091,11 +1116,11 @@ class CircuitScriptParser extends antlr.Parser {
1091
1116
  throw new antlr.NoViableAltException(this);
1092
1117
  }
1093
1118
  }
1094
- this.state = 263;
1119
+ this.state = 271;
1095
1120
  this.errorHandler.sync(this);
1096
1121
  _la = this.tokenStream.LA(1);
1097
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 70405) !== 0));
1098
- this.state = 265;
1122
+ } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 331301648) !== 0) || ((((_la - 37)) & ~0x1F) === 0 && ((1 << (_la - 37)) & 70405) !== 0));
1123
+ this.state = 273;
1099
1124
  this.match(CircuitScriptParser.DEDENT);
1100
1125
  }
1101
1126
  }
@@ -1115,9 +1140,9 @@ class CircuitScriptParser extends antlr.Parser {
1115
1140
  }
1116
1141
  at_block_expressions() {
1117
1142
  let localContext = new At_block_expressionsContext(this.context, this.state);
1118
- this.enterRule(localContext, 36, CircuitScriptParser.RULE_at_block_expressions);
1143
+ this.enterRule(localContext, 38, CircuitScriptParser.RULE_at_block_expressions);
1119
1144
  try {
1120
- this.state = 269;
1145
+ this.state = 277;
1121
1146
  this.errorHandler.sync(this);
1122
1147
  switch (this.tokenStream.LA(1)) {
1123
1148
  case CircuitScriptParser.T__3:
@@ -1139,7 +1164,7 @@ class CircuitScriptParser extends antlr.Parser {
1139
1164
  case CircuitScriptParser.ID:
1140
1165
  this.enterOuterAlt(localContext, 1);
1141
1166
  {
1142
- this.state = 267;
1167
+ this.state = 275;
1143
1168
  this.expression();
1144
1169
  }
1145
1170
  break;
@@ -1147,7 +1172,7 @@ class CircuitScriptParser extends antlr.Parser {
1147
1172
  case CircuitScriptParser.STRING_VALUE:
1148
1173
  this.enterOuterAlt(localContext, 2);
1149
1174
  {
1150
- this.state = 268;
1175
+ this.state = 276;
1151
1176
  this.at_block_pin_expr();
1152
1177
  }
1153
1178
  break;
@@ -1171,15 +1196,15 @@ class CircuitScriptParser extends antlr.Parser {
1171
1196
  }
1172
1197
  at_block_pin_expr() {
1173
1198
  let localContext = new At_block_pin_exprContext(this.context, this.state);
1174
- this.enterRule(localContext, 38, CircuitScriptParser.RULE_at_block_pin_expr);
1199
+ this.enterRule(localContext, 40, CircuitScriptParser.RULE_at_block_pin_expr);
1175
1200
  try {
1176
1201
  this.enterOuterAlt(localContext, 1);
1177
1202
  {
1178
- this.state = 271;
1203
+ this.state = 279;
1179
1204
  this.pin_select_expr2();
1180
- this.state = 272;
1205
+ this.state = 280;
1181
1206
  this.match(CircuitScriptParser.T__0);
1182
- this.state = 275;
1207
+ this.state = 283;
1183
1208
  this.errorHandler.sync(this);
1184
1209
  switch (this.tokenStream.LA(1)) {
1185
1210
  case CircuitScriptParser.T__3:
@@ -1201,13 +1226,13 @@ class CircuitScriptParser extends antlr.Parser {
1201
1226
  case CircuitScriptParser.NOT_CONNECTED:
1202
1227
  case CircuitScriptParser.ID:
1203
1228
  {
1204
- this.state = 273;
1229
+ this.state = 281;
1205
1230
  this.at_block_pin_expression_simple();
1206
1231
  }
1207
1232
  break;
1208
1233
  case CircuitScriptParser.NEWLINE:
1209
1234
  {
1210
- this.state = 274;
1235
+ this.state = 282;
1211
1236
  this.at_block_pin_expression_complex();
1212
1237
  }
1213
1238
  break;
@@ -1232,11 +1257,11 @@ class CircuitScriptParser extends antlr.Parser {
1232
1257
  }
1233
1258
  at_block_pin_expression_simple() {
1234
1259
  let localContext = new At_block_pin_expression_simpleContext(this.context, this.state);
1235
- this.enterRule(localContext, 40, CircuitScriptParser.RULE_at_block_pin_expression_simple);
1260
+ this.enterRule(localContext, 42, CircuitScriptParser.RULE_at_block_pin_expression_simple);
1236
1261
  try {
1237
1262
  this.enterOuterAlt(localContext, 1);
1238
1263
  {
1239
- this.state = 279;
1264
+ this.state = 287;
1240
1265
  this.errorHandler.sync(this);
1241
1266
  switch (this.tokenStream.LA(1)) {
1242
1267
  case CircuitScriptParser.T__3:
@@ -1257,13 +1282,13 @@ class CircuitScriptParser extends antlr.Parser {
1257
1282
  case CircuitScriptParser.Divide:
1258
1283
  case CircuitScriptParser.ID:
1259
1284
  {
1260
- this.state = 277;
1285
+ this.state = 285;
1261
1286
  this.expression();
1262
1287
  }
1263
1288
  break;
1264
1289
  case CircuitScriptParser.NOT_CONNECTED:
1265
1290
  {
1266
- this.state = 278;
1291
+ this.state = 286;
1267
1292
  this.match(CircuitScriptParser.NOT_CONNECTED);
1268
1293
  }
1269
1294
  break;
@@ -1288,61 +1313,12 @@ class CircuitScriptParser extends antlr.Parser {
1288
1313
  }
1289
1314
  at_block_pin_expression_complex() {
1290
1315
  let localContext = new At_block_pin_expression_complexContext(this.context, this.state);
1291
- this.enterRule(localContext, 42, CircuitScriptParser.RULE_at_block_pin_expression_complex);
1292
- let _la;
1316
+ this.enterRule(localContext, 44, CircuitScriptParser.RULE_at_block_pin_expression_complex);
1293
1317
  try {
1294
1318
  this.enterOuterAlt(localContext, 1);
1295
1319
  {
1296
- this.state = 281;
1297
- this.match(CircuitScriptParser.NEWLINE);
1298
- this.state = 282;
1299
- this.match(CircuitScriptParser.INDENT);
1300
- this.state = 285;
1301
- this.errorHandler.sync(this);
1302
- _la = this.tokenStream.LA(1);
1303
- do {
1304
- {
1305
- this.state = 285;
1306
- this.errorHandler.sync(this);
1307
- switch (this.tokenStream.LA(1)) {
1308
- case CircuitScriptParser.NEWLINE:
1309
- {
1310
- this.state = 283;
1311
- this.match(CircuitScriptParser.NEWLINE);
1312
- }
1313
- break;
1314
- case CircuitScriptParser.T__3:
1315
- case CircuitScriptParser.Break:
1316
- case CircuitScriptParser.Branch:
1317
- case CircuitScriptParser.Wire:
1318
- case CircuitScriptParser.Add:
1319
- case CircuitScriptParser.At:
1320
- case CircuitScriptParser.To:
1321
- case CircuitScriptParser.Point:
1322
- case CircuitScriptParser.Join:
1323
- case CircuitScriptParser.Parallel:
1324
- case CircuitScriptParser.Define:
1325
- case CircuitScriptParser.Import:
1326
- case CircuitScriptParser.If:
1327
- case CircuitScriptParser.Frame:
1328
- case CircuitScriptParser.Addition:
1329
- case CircuitScriptParser.Divide:
1330
- case CircuitScriptParser.ID:
1331
- {
1332
- this.state = 284;
1333
- this.expression();
1334
- }
1335
- break;
1336
- default:
1337
- throw new antlr.NoViableAltException(this);
1338
- }
1339
- }
1340
- this.state = 287;
1341
- this.errorHandler.sync(this);
1342
- _la = this.tokenStream.LA(1);
1343
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
1344
1320
  this.state = 289;
1345
- this.match(CircuitScriptParser.DEDENT);
1321
+ this.expressions_block();
1346
1322
  }
1347
1323
  }
1348
1324
  catch (re) {
@@ -1361,7 +1337,7 @@ class CircuitScriptParser extends antlr.Parser {
1361
1337
  }
1362
1338
  break_keyword() {
1363
1339
  let localContext = new Break_keywordContext(this.context, this.state);
1364
- this.enterRule(localContext, 44, CircuitScriptParser.RULE_break_keyword);
1340
+ this.enterRule(localContext, 46, CircuitScriptParser.RULE_break_keyword);
1365
1341
  try {
1366
1342
  this.enterOuterAlt(localContext, 1);
1367
1343
  {
@@ -1385,7 +1361,7 @@ class CircuitScriptParser extends antlr.Parser {
1385
1361
  }
1386
1362
  assignment_expr() {
1387
1363
  let localContext = new Assignment_exprContext(this.context, this.state);
1388
- this.enterRule(localContext, 46, CircuitScriptParser.RULE_assignment_expr);
1364
+ this.enterRule(localContext, 48, CircuitScriptParser.RULE_assignment_expr);
1389
1365
  try {
1390
1366
  this.enterOuterAlt(localContext, 1);
1391
1367
  {
@@ -1413,7 +1389,7 @@ class CircuitScriptParser extends antlr.Parser {
1413
1389
  }
1414
1390
  keyword_assignment_expr() {
1415
1391
  let localContext = new Keyword_assignment_exprContext(this.context, this.state);
1416
- this.enterRule(localContext, 48, CircuitScriptParser.RULE_keyword_assignment_expr);
1392
+ this.enterRule(localContext, 50, CircuitScriptParser.RULE_keyword_assignment_expr);
1417
1393
  try {
1418
1394
  this.enterOuterAlt(localContext, 1);
1419
1395
  {
@@ -1441,13 +1417,13 @@ class CircuitScriptParser extends antlr.Parser {
1441
1417
  }
1442
1418
  parameters() {
1443
1419
  let localContext = new ParametersContext(this.context, this.state);
1444
- this.enterRule(localContext, 50, CircuitScriptParser.RULE_parameters);
1420
+ this.enterRule(localContext, 52, CircuitScriptParser.RULE_parameters);
1445
1421
  let _la;
1446
1422
  try {
1447
1423
  let alternative;
1448
1424
  this.state = 324;
1449
1425
  this.errorHandler.sync(this);
1450
- switch (this.interpreter.adaptivePredict(this.tokenStream, 30, this.context)) {
1426
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 28, this.context)) {
1451
1427
  case 1:
1452
1428
  this.enterOuterAlt(localContext, 1);
1453
1429
  {
@@ -1456,7 +1432,7 @@ class CircuitScriptParser extends antlr.Parser {
1456
1432
  this.data_expr(0);
1457
1433
  this.state = 306;
1458
1434
  this.errorHandler.sync(this);
1459
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 27, this.context);
1435
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 25, this.context);
1460
1436
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1461
1437
  if (alternative === 1) {
1462
1438
  {
@@ -1470,7 +1446,7 @@ class CircuitScriptParser extends antlr.Parser {
1470
1446
  }
1471
1447
  this.state = 308;
1472
1448
  this.errorHandler.sync(this);
1473
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 27, this.context);
1449
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 25, this.context);
1474
1450
  }
1475
1451
  this.state = 313;
1476
1452
  this.errorHandler.sync(this);
@@ -1534,7 +1510,7 @@ class CircuitScriptParser extends antlr.Parser {
1534
1510
  }
1535
1511
  property_set_expr() {
1536
1512
  let localContext = new Property_set_exprContext(this.context, this.state);
1537
- this.enterRule(localContext, 52, CircuitScriptParser.RULE_property_set_expr);
1513
+ this.enterRule(localContext, 54, CircuitScriptParser.RULE_property_set_expr);
1538
1514
  try {
1539
1515
  this.enterOuterAlt(localContext, 1);
1540
1516
  {
@@ -1562,7 +1538,7 @@ class CircuitScriptParser extends antlr.Parser {
1562
1538
  }
1563
1539
  double_dot_property_set_expr() {
1564
1540
  let localContext = new Double_dot_property_set_exprContext(this.context, this.state);
1565
- this.enterRule(localContext, 54, CircuitScriptParser.RULE_double_dot_property_set_expr);
1541
+ this.enterRule(localContext, 56, CircuitScriptParser.RULE_double_dot_property_set_expr);
1566
1542
  try {
1567
1543
  this.enterOuterAlt(localContext, 1);
1568
1544
  {
@@ -1598,16 +1574,16 @@ class CircuitScriptParser extends antlr.Parser {
1598
1574
  let parentState = this.state;
1599
1575
  let localContext = new Data_exprContext(this.context, parentState);
1600
1576
  let previousContext = localContext;
1601
- let _startState = 56;
1602
- this.enterRecursionRule(localContext, 56, CircuitScriptParser.RULE_data_expr, _p);
1577
+ let _startState = 58;
1578
+ this.enterRecursionRule(localContext, 58, CircuitScriptParser.RULE_data_expr, _p);
1603
1579
  let _la;
1604
1580
  try {
1605
1581
  let alternative;
1606
1582
  this.enterOuterAlt(localContext, 1);
1607
1583
  {
1608
- this.state = 350;
1584
+ this.state = 351;
1609
1585
  this.errorHandler.sync(this);
1610
- switch (this.interpreter.adaptivePredict(this.tokenStream, 32, this.context)) {
1586
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 30, this.context)) {
1611
1587
  case 1:
1612
1588
  {
1613
1589
  localContext = new RoundedBracketsExprContext(localContext);
@@ -1661,7 +1637,7 @@ class CircuitScriptParser extends antlr.Parser {
1661
1637
  this.state = 344;
1662
1638
  this.unary_operator();
1663
1639
  this.state = 345;
1664
- this.data_expr(8);
1640
+ this.data_expr(9);
1665
1641
  }
1666
1642
  break;
1667
1643
  case 4:
@@ -1684,18 +1660,27 @@ class CircuitScriptParser extends antlr.Parser {
1684
1660
  break;
1685
1661
  case 6:
1686
1662
  {
1687
- localContext = new FunctionCallExprContext(localContext);
1663
+ localContext = new DataExprContext(localContext);
1688
1664
  this.context = localContext;
1689
1665
  previousContext = localContext;
1690
1666
  this.state = 349;
1667
+ this.create_module_expr();
1668
+ }
1669
+ break;
1670
+ case 7:
1671
+ {
1672
+ localContext = new FunctionCallExprContext(localContext);
1673
+ this.context = localContext;
1674
+ previousContext = localContext;
1675
+ this.state = 350;
1691
1676
  this.function_call_expr();
1692
1677
  }
1693
1678
  break;
1694
1679
  }
1695
1680
  this.context.stop = this.tokenStream.LT(-1);
1696
- this.state = 367;
1681
+ this.state = 368;
1697
1682
  this.errorHandler.sync(this);
1698
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 34, this.context);
1683
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 32, this.context);
1699
1684
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1700
1685
  if (alternative === 1) {
1701
1686
  if (this.parseListeners != null) {
@@ -1703,92 +1688,92 @@ class CircuitScriptParser extends antlr.Parser {
1703
1688
  }
1704
1689
  previousContext = localContext;
1705
1690
  {
1706
- this.state = 365;
1691
+ this.state = 366;
1707
1692
  this.errorHandler.sync(this);
1708
- switch (this.interpreter.adaptivePredict(this.tokenStream, 33, this.context)) {
1693
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 31, this.context)) {
1709
1694
  case 1:
1710
1695
  {
1711
1696
  localContext = new MultiplyExprContext(new Data_exprContext(parentContext, parentState));
1712
1697
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1713
- this.state = 352;
1714
- if (!(this.precpred(this.context, 7))) {
1715
- throw this.createFailedPredicateException("this.precpred(this.context, 7)");
1716
- }
1717
1698
  this.state = 353;
1699
+ if (!(this.precpred(this.context, 8))) {
1700
+ throw this.createFailedPredicateException("this.precpred(this.context, 8)");
1701
+ }
1702
+ this.state = 354;
1718
1703
  _la = this.tokenStream.LA(1);
1719
- if (!(_la === 38 || _la === 39)) {
1704
+ if (!(_la === 39 || _la === 40)) {
1720
1705
  this.errorHandler.recoverInline(this);
1721
1706
  }
1722
1707
  else {
1723
1708
  this.errorHandler.reportMatch(this);
1724
1709
  this.consume();
1725
1710
  }
1726
- this.state = 354;
1727
- this.data_expr(8);
1711
+ this.state = 355;
1712
+ this.data_expr(9);
1728
1713
  }
1729
1714
  break;
1730
1715
  case 2:
1731
1716
  {
1732
1717
  localContext = new AdditionExprContext(new Data_exprContext(parentContext, parentState));
1733
1718
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1734
- this.state = 355;
1735
- if (!(this.precpred(this.context, 6))) {
1736
- throw this.createFailedPredicateException("this.precpred(this.context, 6)");
1737
- }
1738
1719
  this.state = 356;
1720
+ if (!(this.precpred(this.context, 7))) {
1721
+ throw this.createFailedPredicateException("this.precpred(this.context, 7)");
1722
+ }
1723
+ this.state = 357;
1739
1724
  _la = this.tokenStream.LA(1);
1740
- if (!(_la === 36 || _la === 37)) {
1725
+ if (!(_la === 37 || _la === 38)) {
1741
1726
  this.errorHandler.recoverInline(this);
1742
1727
  }
1743
1728
  else {
1744
1729
  this.errorHandler.reportMatch(this);
1745
1730
  this.consume();
1746
1731
  }
1747
- this.state = 357;
1748
- this.data_expr(7);
1732
+ this.state = 358;
1733
+ this.data_expr(8);
1749
1734
  }
1750
1735
  break;
1751
1736
  case 3:
1752
1737
  {
1753
1738
  localContext = new BinaryOperatorExprContext(new Data_exprContext(parentContext, parentState));
1754
1739
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1755
- this.state = 358;
1756
- if (!(this.precpred(this.context, 5))) {
1757
- throw this.createFailedPredicateException("this.precpred(this.context, 5)");
1758
- }
1759
1740
  this.state = 359;
1760
- this.binary_operator();
1741
+ if (!(this.precpred(this.context, 6))) {
1742
+ throw this.createFailedPredicateException("this.precpred(this.context, 6)");
1743
+ }
1761
1744
  this.state = 360;
1762
- this.data_expr(6);
1745
+ this.binary_operator();
1746
+ this.state = 361;
1747
+ this.data_expr(7);
1763
1748
  }
1764
1749
  break;
1765
1750
  case 4:
1766
1751
  {
1767
1752
  localContext = new LogicalOperatorExprContext(new Data_exprContext(parentContext, parentState));
1768
1753
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1769
- this.state = 362;
1770
- if (!(this.precpred(this.context, 4))) {
1771
- throw this.createFailedPredicateException("this.precpred(this.context, 4)");
1772
- }
1773
1754
  this.state = 363;
1774
- _la = this.tokenStream.LA(1);
1775
- if (!(_la === 34 || _la === 35)) {
1776
- this.errorHandler.recoverInline(this);
1755
+ if (!(this.precpred(this.context, 5))) {
1756
+ throw this.createFailedPredicateException("this.precpred(this.context, 5)");
1757
+ }
1758
+ this.state = 364;
1759
+ _la = this.tokenStream.LA(1);
1760
+ if (!(_la === 35 || _la === 36)) {
1761
+ this.errorHandler.recoverInline(this);
1777
1762
  }
1778
1763
  else {
1779
1764
  this.errorHandler.reportMatch(this);
1780
1765
  this.consume();
1781
1766
  }
1782
- this.state = 364;
1783
- this.data_expr(5);
1767
+ this.state = 365;
1768
+ this.data_expr(6);
1784
1769
  }
1785
1770
  break;
1786
1771
  }
1787
1772
  }
1788
1773
  }
1789
- this.state = 369;
1774
+ this.state = 370;
1790
1775
  this.errorHandler.sync(this);
1791
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 34, this.context);
1776
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 32, this.context);
1792
1777
  }
1793
1778
  }
1794
1779
  }
@@ -1808,14 +1793,14 @@ class CircuitScriptParser extends antlr.Parser {
1808
1793
  }
1809
1794
  binary_operator() {
1810
1795
  let localContext = new Binary_operatorContext(this.context, this.state);
1811
- this.enterRule(localContext, 58, CircuitScriptParser.RULE_binary_operator);
1796
+ this.enterRule(localContext, 60, CircuitScriptParser.RULE_binary_operator);
1812
1797
  let _la;
1813
1798
  try {
1814
1799
  this.enterOuterAlt(localContext, 1);
1815
1800
  {
1816
- this.state = 370;
1801
+ this.state = 371;
1817
1802
  _la = this.tokenStream.LA(1);
1818
- if (!(((((_la - 28)) & ~0x1F) === 0 && ((1 << (_la - 28)) & 63) !== 0))) {
1803
+ if (!(((((_la - 29)) & ~0x1F) === 0 && ((1 << (_la - 29)) & 63) !== 0))) {
1819
1804
  this.errorHandler.recoverInline(this);
1820
1805
  }
1821
1806
  else {
@@ -1840,14 +1825,14 @@ class CircuitScriptParser extends antlr.Parser {
1840
1825
  }
1841
1826
  unary_operator() {
1842
1827
  let localContext = new Unary_operatorContext(this.context, this.state);
1843
- this.enterRule(localContext, 60, CircuitScriptParser.RULE_unary_operator);
1828
+ this.enterRule(localContext, 62, CircuitScriptParser.RULE_unary_operator);
1844
1829
  let _la;
1845
1830
  try {
1846
1831
  this.enterOuterAlt(localContext, 1);
1847
1832
  {
1848
- this.state = 372;
1833
+ this.state = 373;
1849
1834
  _la = this.tokenStream.LA(1);
1850
- if (!(_la === 26 || _la === 37)) {
1835
+ if (!(_la === 27 || _la === 38)) {
1851
1836
  this.errorHandler.recoverInline(this);
1852
1837
  }
1853
1838
  else {
@@ -1872,10 +1857,10 @@ class CircuitScriptParser extends antlr.Parser {
1872
1857
  }
1873
1858
  value_expr() {
1874
1859
  let localContext = new Value_exprContext(this.context, this.state);
1875
- this.enterRule(localContext, 62, CircuitScriptParser.RULE_value_expr);
1860
+ this.enterRule(localContext, 64, CircuitScriptParser.RULE_value_expr);
1876
1861
  let _la;
1877
1862
  try {
1878
- this.state = 379;
1863
+ this.state = 380;
1879
1864
  this.errorHandler.sync(this);
1880
1865
  switch (this.tokenStream.LA(1)) {
1881
1866
  case CircuitScriptParser.Minus:
@@ -1888,18 +1873,18 @@ class CircuitScriptParser extends antlr.Parser {
1888
1873
  this.enterOuterAlt(localContext, 1);
1889
1874
  {
1890
1875
  {
1891
- this.state = 375;
1876
+ this.state = 376;
1892
1877
  this.errorHandler.sync(this);
1893
1878
  _la = this.tokenStream.LA(1);
1894
- if (_la === 37) {
1879
+ if (_la === 38) {
1895
1880
  {
1896
- this.state = 374;
1881
+ this.state = 375;
1897
1882
  this.match(CircuitScriptParser.Minus);
1898
1883
  }
1899
1884
  }
1900
- this.state = 377;
1885
+ this.state = 378;
1901
1886
  _la = this.tokenStream.LA(1);
1902
- if (!(((((_la - 43)) & ~0x1F) === 0 && ((1 << (_la - 43)) & 125) !== 0))) {
1887
+ if (!(((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 125) !== 0))) {
1903
1888
  this.errorHandler.recoverInline(this);
1904
1889
  }
1905
1890
  else {
@@ -1912,7 +1897,7 @@ class CircuitScriptParser extends antlr.Parser {
1912
1897
  case CircuitScriptParser.T__5:
1913
1898
  this.enterOuterAlt(localContext, 2);
1914
1899
  {
1915
- this.state = 378;
1900
+ this.state = 379;
1916
1901
  this.blank_expr();
1917
1902
  }
1918
1903
  break;
@@ -1936,45 +1921,45 @@ class CircuitScriptParser extends antlr.Parser {
1936
1921
  }
1937
1922
  function_def_expr() {
1938
1923
  let localContext = new Function_def_exprContext(this.context, this.state);
1939
- this.enterRule(localContext, 64, CircuitScriptParser.RULE_function_def_expr);
1924
+ this.enterRule(localContext, 66, CircuitScriptParser.RULE_function_def_expr);
1940
1925
  let _la;
1941
1926
  try {
1942
1927
  this.enterOuterAlt(localContext, 1);
1943
1928
  {
1944
- this.state = 381;
1945
- this.match(CircuitScriptParser.Define);
1946
1929
  this.state = 382;
1947
- this.match(CircuitScriptParser.ID);
1930
+ this.match(CircuitScriptParser.Define);
1948
1931
  this.state = 383;
1932
+ this.match(CircuitScriptParser.ID);
1933
+ this.state = 384;
1949
1934
  this.match(CircuitScriptParser.OPEN_PAREN);
1950
- this.state = 385;
1935
+ this.state = 386;
1951
1936
  this.errorHandler.sync(this);
1952
1937
  _la = this.tokenStream.LA(1);
1953
- if (_la === 44) {
1938
+ if (_la === 45) {
1954
1939
  {
1955
- this.state = 384;
1940
+ this.state = 385;
1956
1941
  this.function_args_expr();
1957
1942
  }
1958
1943
  }
1959
- this.state = 387;
1960
- this.match(CircuitScriptParser.CLOSE_PAREN);
1961
1944
  this.state = 388;
1962
- this.match(CircuitScriptParser.T__0);
1945
+ this.match(CircuitScriptParser.CLOSE_PAREN);
1963
1946
  this.state = 389;
1964
- this.match(CircuitScriptParser.NEWLINE);
1947
+ this.match(CircuitScriptParser.T__0);
1965
1948
  this.state = 390;
1949
+ this.match(CircuitScriptParser.NEWLINE);
1950
+ this.state = 391;
1966
1951
  this.match(CircuitScriptParser.INDENT);
1967
- this.state = 393;
1952
+ this.state = 394;
1968
1953
  this.errorHandler.sync(this);
1969
1954
  _la = this.tokenStream.LA(1);
1970
1955
  do {
1971
1956
  {
1972
- this.state = 393;
1957
+ this.state = 394;
1973
1958
  this.errorHandler.sync(this);
1974
1959
  switch (this.tokenStream.LA(1)) {
1975
1960
  case CircuitScriptParser.NEWLINE:
1976
1961
  {
1977
- this.state = 391;
1962
+ this.state = 392;
1978
1963
  this.match(CircuitScriptParser.NEWLINE);
1979
1964
  }
1980
1965
  break;
@@ -1997,7 +1982,7 @@ class CircuitScriptParser extends antlr.Parser {
1997
1982
  case CircuitScriptParser.Divide:
1998
1983
  case CircuitScriptParser.ID:
1999
1984
  {
2000
- this.state = 392;
1985
+ this.state = 393;
2001
1986
  this.function_expr();
2002
1987
  }
2003
1988
  break;
@@ -2005,11 +1990,11 @@ class CircuitScriptParser extends antlr.Parser {
2005
1990
  throw new antlr.NoViableAltException(this);
2006
1991
  }
2007
1992
  }
2008
- this.state = 395;
1993
+ this.state = 396;
2009
1994
  this.errorHandler.sync(this);
2010
1995
  _la = this.tokenStream.LA(1);
2011
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 167748368) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
2012
- this.state = 397;
1996
+ } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 335495952) !== 0) || ((((_la - 37)) & ~0x1F) === 0 && ((1 << (_la - 37)) & 65797) !== 0));
1997
+ this.state = 398;
2013
1998
  this.match(CircuitScriptParser.DEDENT);
2014
1999
  }
2015
2000
  }
@@ -2029,9 +2014,9 @@ class CircuitScriptParser extends antlr.Parser {
2029
2014
  }
2030
2015
  function_expr() {
2031
2016
  let localContext = new Function_exprContext(this.context, this.state);
2032
- this.enterRule(localContext, 66, CircuitScriptParser.RULE_function_expr);
2017
+ this.enterRule(localContext, 68, CircuitScriptParser.RULE_function_expr);
2033
2018
  try {
2034
- this.state = 401;
2019
+ this.state = 402;
2035
2020
  this.errorHandler.sync(this);
2036
2021
  switch (this.tokenStream.LA(1)) {
2037
2022
  case CircuitScriptParser.T__3:
@@ -2053,14 +2038,14 @@ class CircuitScriptParser extends antlr.Parser {
2053
2038
  case CircuitScriptParser.ID:
2054
2039
  this.enterOuterAlt(localContext, 1);
2055
2040
  {
2056
- this.state = 399;
2041
+ this.state = 400;
2057
2042
  this.expression();
2058
2043
  }
2059
2044
  break;
2060
2045
  case CircuitScriptParser.Return:
2061
2046
  this.enterOuterAlt(localContext, 2);
2062
2047
  {
2063
- this.state = 400;
2048
+ this.state = 401;
2064
2049
  this.function_return_expr();
2065
2050
  }
2066
2051
  break;
@@ -2084,53 +2069,53 @@ class CircuitScriptParser extends antlr.Parser {
2084
2069
  }
2085
2070
  function_args_expr() {
2086
2071
  let localContext = new Function_args_exprContext(this.context, this.state);
2087
- this.enterRule(localContext, 68, CircuitScriptParser.RULE_function_args_expr);
2072
+ this.enterRule(localContext, 70, CircuitScriptParser.RULE_function_args_expr);
2088
2073
  let _la;
2089
2074
  try {
2090
2075
  let alternative;
2091
- this.state = 432;
2076
+ this.state = 433;
2092
2077
  this.errorHandler.sync(this);
2093
- switch (this.interpreter.adaptivePredict(this.tokenStream, 44, this.context)) {
2078
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 42, this.context)) {
2094
2079
  case 1:
2095
2080
  this.enterOuterAlt(localContext, 1);
2096
2081
  {
2097
- this.state = 403;
2082
+ this.state = 404;
2098
2083
  this.match(CircuitScriptParser.ID);
2099
- this.state = 408;
2084
+ this.state = 409;
2100
2085
  this.errorHandler.sync(this);
2101
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 41, this.context);
2086
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 39, this.context);
2102
2087
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2103
2088
  if (alternative === 1) {
2104
2089
  {
2105
2090
  {
2106
- this.state = 404;
2107
- this.match(CircuitScriptParser.T__1);
2108
2091
  this.state = 405;
2092
+ this.match(CircuitScriptParser.T__1);
2093
+ this.state = 406;
2109
2094
  this.match(CircuitScriptParser.ID);
2110
2095
  }
2111
2096
  }
2112
2097
  }
2113
- this.state = 410;
2098
+ this.state = 411;
2114
2099
  this.errorHandler.sync(this);
2115
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 41, this.context);
2100
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 39, this.context);
2116
2101
  }
2117
- this.state = 417;
2102
+ this.state = 418;
2118
2103
  this.errorHandler.sync(this);
2119
2104
  _la = this.tokenStream.LA(1);
2120
2105
  while (_la === 2) {
2121
2106
  {
2122
2107
  {
2123
- this.state = 411;
2124
- this.match(CircuitScriptParser.T__1);
2125
2108
  this.state = 412;
2126
- this.match(CircuitScriptParser.ID);
2109
+ this.match(CircuitScriptParser.T__1);
2127
2110
  this.state = 413;
2128
- this.match(CircuitScriptParser.T__2);
2111
+ this.match(CircuitScriptParser.ID);
2129
2112
  this.state = 414;
2113
+ this.match(CircuitScriptParser.T__2);
2114
+ this.state = 415;
2130
2115
  this.value_expr();
2131
2116
  }
2132
2117
  }
2133
- this.state = 419;
2118
+ this.state = 420;
2134
2119
  this.errorHandler.sync(this);
2135
2120
  _la = this.tokenStream.LA(1);
2136
2121
  }
@@ -2139,29 +2124,29 @@ class CircuitScriptParser extends antlr.Parser {
2139
2124
  case 2:
2140
2125
  this.enterOuterAlt(localContext, 2);
2141
2126
  {
2142
- this.state = 420;
2143
- this.match(CircuitScriptParser.ID);
2144
2127
  this.state = 421;
2145
- this.match(CircuitScriptParser.T__2);
2128
+ this.match(CircuitScriptParser.ID);
2146
2129
  this.state = 422;
2130
+ this.match(CircuitScriptParser.T__2);
2131
+ this.state = 423;
2147
2132
  this.value_expr();
2148
- this.state = 429;
2133
+ this.state = 430;
2149
2134
  this.errorHandler.sync(this);
2150
2135
  _la = this.tokenStream.LA(1);
2151
2136
  while (_la === 2) {
2152
2137
  {
2153
2138
  {
2154
- this.state = 423;
2155
- this.match(CircuitScriptParser.T__1);
2156
2139
  this.state = 424;
2157
- this.match(CircuitScriptParser.ID);
2140
+ this.match(CircuitScriptParser.T__1);
2158
2141
  this.state = 425;
2159
- this.match(CircuitScriptParser.T__2);
2142
+ this.match(CircuitScriptParser.ID);
2160
2143
  this.state = 426;
2144
+ this.match(CircuitScriptParser.T__2);
2145
+ this.state = 427;
2161
2146
  this.value_expr();
2162
2147
  }
2163
2148
  }
2164
- this.state = 431;
2149
+ this.state = 432;
2165
2150
  this.errorHandler.sync(this);
2166
2151
  _la = this.tokenStream.LA(1);
2167
2152
  }
@@ -2185,30 +2170,30 @@ class CircuitScriptParser extends antlr.Parser {
2185
2170
  }
2186
2171
  atom_expr() {
2187
2172
  let localContext = new Atom_exprContext(this.context, this.state);
2188
- this.enterRule(localContext, 70, CircuitScriptParser.RULE_atom_expr);
2173
+ this.enterRule(localContext, 72, CircuitScriptParser.RULE_atom_expr);
2189
2174
  try {
2190
2175
  let alternative;
2191
2176
  this.enterOuterAlt(localContext, 1);
2192
2177
  {
2193
- this.state = 434;
2178
+ this.state = 435;
2194
2179
  this.match(CircuitScriptParser.ID);
2195
- this.state = 439;
2180
+ this.state = 440;
2196
2181
  this.errorHandler.sync(this);
2197
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 45, this.context);
2182
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 43, this.context);
2198
2183
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2199
2184
  if (alternative === 1) {
2200
2185
  {
2201
2186
  {
2202
- this.state = 435;
2203
- this.match(CircuitScriptParser.T__4);
2204
2187
  this.state = 436;
2188
+ this.match(CircuitScriptParser.T__4);
2189
+ this.state = 437;
2205
2190
  this.match(CircuitScriptParser.ID);
2206
2191
  }
2207
2192
  }
2208
2193
  }
2209
- this.state = 441;
2194
+ this.state = 442;
2210
2195
  this.errorHandler.sync(this);
2211
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 45, this.context);
2196
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 43, this.context);
2212
2197
  }
2213
2198
  }
2214
2199
  }
@@ -2228,36 +2213,36 @@ class CircuitScriptParser extends antlr.Parser {
2228
2213
  }
2229
2214
  trailer_expr() {
2230
2215
  let localContext = new Trailer_exprContext(this.context, this.state);
2231
- this.enterRule(localContext, 72, CircuitScriptParser.RULE_trailer_expr);
2216
+ this.enterRule(localContext, 74, CircuitScriptParser.RULE_trailer_expr);
2232
2217
  let _la;
2233
2218
  try {
2234
- this.state = 449;
2219
+ this.state = 450;
2235
2220
  this.errorHandler.sync(this);
2236
2221
  switch (this.tokenStream.LA(1)) {
2237
2222
  case CircuitScriptParser.OPEN_PAREN:
2238
2223
  this.enterOuterAlt(localContext, 1);
2239
2224
  {
2240
- this.state = 442;
2225
+ this.state = 443;
2241
2226
  this.match(CircuitScriptParser.OPEN_PAREN);
2242
- this.state = 444;
2227
+ this.state = 445;
2243
2228
  this.errorHandler.sync(this);
2244
2229
  _la = this.tokenStream.LA(1);
2245
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 67109952) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 16279) !== 0)) {
2230
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 134218816) !== 0) || ((((_la - 37)) & ~0x1F) === 0 && ((1 << (_la - 37)) & 16279) !== 0)) {
2246
2231
  {
2247
- this.state = 443;
2232
+ this.state = 444;
2248
2233
  this.parameters();
2249
2234
  }
2250
2235
  }
2251
- this.state = 446;
2236
+ this.state = 447;
2252
2237
  this.match(CircuitScriptParser.CLOSE_PAREN);
2253
2238
  }
2254
2239
  break;
2255
2240
  case CircuitScriptParser.T__4:
2256
2241
  this.enterOuterAlt(localContext, 2);
2257
2242
  {
2258
- this.state = 447;
2259
- this.match(CircuitScriptParser.T__4);
2260
2243
  this.state = 448;
2244
+ this.match(CircuitScriptParser.T__4);
2245
+ this.state = 449;
2261
2246
  this.match(CircuitScriptParser.ID);
2262
2247
  }
2263
2248
  break;
@@ -2281,24 +2266,24 @@ class CircuitScriptParser extends antlr.Parser {
2281
2266
  }
2282
2267
  function_call_expr() {
2283
2268
  let localContext = new Function_call_exprContext(this.context, this.state);
2284
- this.enterRule(localContext, 74, CircuitScriptParser.RULE_function_call_expr);
2269
+ this.enterRule(localContext, 76, CircuitScriptParser.RULE_function_call_expr);
2285
2270
  let _la;
2286
2271
  try {
2287
2272
  let alternative;
2288
2273
  this.enterOuterAlt(localContext, 1);
2289
2274
  {
2290
- this.state = 452;
2275
+ this.state = 453;
2291
2276
  this.errorHandler.sync(this);
2292
2277
  _la = this.tokenStream.LA(1);
2293
- if (_la === 36 || _la === 38) {
2278
+ if (_la === 37 || _la === 39) {
2294
2279
  {
2295
- this.state = 451;
2280
+ this.state = 452;
2296
2281
  this.net_namespace_expr();
2297
2282
  }
2298
2283
  }
2299
- this.state = 454;
2284
+ this.state = 455;
2300
2285
  this.match(CircuitScriptParser.ID);
2301
- this.state = 456;
2286
+ this.state = 457;
2302
2287
  this.errorHandler.sync(this);
2303
2288
  alternative = 1;
2304
2289
  do {
@@ -2306,7 +2291,7 @@ class CircuitScriptParser extends antlr.Parser {
2306
2291
  case 1:
2307
2292
  {
2308
2293
  {
2309
- this.state = 455;
2294
+ this.state = 456;
2310
2295
  this.trailer_expr();
2311
2296
  }
2312
2297
  }
@@ -2314,9 +2299,9 @@ class CircuitScriptParser extends antlr.Parser {
2314
2299
  default:
2315
2300
  throw new antlr.NoViableAltException(this);
2316
2301
  }
2317
- this.state = 458;
2302
+ this.state = 459;
2318
2303
  this.errorHandler.sync(this);
2319
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 49, this.context);
2304
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 47, this.context);
2320
2305
  } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
2321
2306
  }
2322
2307
  }
@@ -2336,28 +2321,28 @@ class CircuitScriptParser extends antlr.Parser {
2336
2321
  }
2337
2322
  net_namespace_expr() {
2338
2323
  let localContext = new Net_namespace_exprContext(this.context, this.state);
2339
- this.enterRule(localContext, 76, CircuitScriptParser.RULE_net_namespace_expr);
2324
+ this.enterRule(localContext, 78, CircuitScriptParser.RULE_net_namespace_expr);
2340
2325
  let _la;
2341
2326
  try {
2342
2327
  this.enterOuterAlt(localContext, 1);
2343
2328
  {
2344
- this.state = 461;
2329
+ this.state = 462;
2345
2330
  this.errorHandler.sync(this);
2346
2331
  _la = this.tokenStream.LA(1);
2347
- if (_la === 36) {
2332
+ if (_la === 37) {
2348
2333
  {
2349
- this.state = 460;
2334
+ this.state = 461;
2350
2335
  this.match(CircuitScriptParser.Addition);
2351
2336
  }
2352
2337
  }
2353
- this.state = 463;
2338
+ this.state = 464;
2354
2339
  this.match(CircuitScriptParser.Divide);
2355
- this.state = 465;
2340
+ this.state = 466;
2356
2341
  this.errorHandler.sync(this);
2357
- switch (this.interpreter.adaptivePredict(this.tokenStream, 51, this.context)) {
2342
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 49, this.context)) {
2358
2343
  case 1:
2359
2344
  {
2360
- this.state = 464;
2345
+ this.state = 465;
2361
2346
  this.data_expr(0);
2362
2347
  }
2363
2348
  break;
@@ -2380,13 +2365,13 @@ class CircuitScriptParser extends antlr.Parser {
2380
2365
  }
2381
2366
  function_return_expr() {
2382
2367
  let localContext = new Function_return_exprContext(this.context, this.state);
2383
- this.enterRule(localContext, 78, CircuitScriptParser.RULE_function_return_expr);
2368
+ this.enterRule(localContext, 80, CircuitScriptParser.RULE_function_return_expr);
2384
2369
  try {
2385
2370
  this.enterOuterAlt(localContext, 1);
2386
2371
  {
2387
- this.state = 467;
2388
- this.match(CircuitScriptParser.Return);
2389
2372
  this.state = 468;
2373
+ this.match(CircuitScriptParser.Return);
2374
+ this.state = 469;
2390
2375
  this.data_expr(0);
2391
2376
  }
2392
2377
  }
@@ -2404,34 +2389,62 @@ class CircuitScriptParser extends antlr.Parser {
2404
2389
  }
2405
2390
  return localContext;
2406
2391
  }
2392
+ property_block_expr() {
2393
+ let localContext = new Property_block_exprContext(this.context, this.state);
2394
+ this.enterRule(localContext, 82, CircuitScriptParser.RULE_property_block_expr);
2395
+ try {
2396
+ this.enterOuterAlt(localContext, 1);
2397
+ {
2398
+ this.state = 471;
2399
+ this.property_key_expr();
2400
+ this.state = 472;
2401
+ this.match(CircuitScriptParser.T__0);
2402
+ this.state = 473;
2403
+ this.expressions_block();
2404
+ }
2405
+ }
2406
+ catch (re) {
2407
+ if (re instanceof antlr.RecognitionException) {
2408
+ this.errorHandler.reportError(this, re);
2409
+ this.errorHandler.recover(this, re);
2410
+ }
2411
+ else {
2412
+ throw re;
2413
+ }
2414
+ }
2415
+ finally {
2416
+ this.exitRule();
2417
+ }
2418
+ return localContext;
2419
+ }
2407
2420
  create_component_expr() {
2408
2421
  let localContext = new Create_component_exprContext(this.context, this.state);
2409
- this.enterRule(localContext, 80, CircuitScriptParser.RULE_create_component_expr);
2422
+ this.enterRule(localContext, 84, CircuitScriptParser.RULE_create_component_expr);
2410
2423
  let _la;
2411
2424
  try {
2412
2425
  this.enterOuterAlt(localContext, 1);
2413
2426
  {
2414
- this.state = 470;
2427
+ this.state = 475;
2415
2428
  this.match(CircuitScriptParser.Create);
2416
- this.state = 471;
2429
+ this.state = 476;
2417
2430
  this.match(CircuitScriptParser.Component);
2418
- this.state = 472;
2431
+ this.state = 477;
2419
2432
  this.match(CircuitScriptParser.T__0);
2420
- this.state = 473;
2433
+ this.state = 478;
2421
2434
  this.match(CircuitScriptParser.NEWLINE);
2422
- this.state = 474;
2435
+ this.state = 479;
2423
2436
  this.match(CircuitScriptParser.INDENT);
2424
- this.state = 477;
2437
+ this.state = 482;
2425
2438
  this.errorHandler.sync(this);
2426
2439
  _la = this.tokenStream.LA(1);
2427
2440
  do {
2428
2441
  {
2429
- this.state = 477;
2442
+ this.state = 482;
2430
2443
  this.errorHandler.sync(this);
2431
2444
  switch (this.tokenStream.LA(1)) {
2432
2445
  case CircuitScriptParser.NEWLINE:
2433
2446
  {
2434
- this.state = 475;
2447
+ this.state = 480;
2435
2448
  this.match(CircuitScriptParser.NEWLINE);
2436
2449
  }
2437
2450
  break;
@@ -2439,7 +2452,7 @@ class CircuitScriptParser extends antlr.Parser {
2439
2452
  case CircuitScriptParser.INTEGER_VALUE:
2440
2453
  case CircuitScriptParser.STRING_VALUE:
2441
2454
  {
2442
- this.state = 476;
2455
+ this.state = 481;
2443
2456
  this.property_expr();
2444
2457
  }
2445
2458
  break;
@@ -2447,11 +2460,11 @@ class CircuitScriptParser extends antlr.Parser {
2447
2460
  throw new antlr.NoViableAltException(this);
2448
2461
  }
2449
2462
  }
2450
- this.state = 479;
2463
+ this.state = 484;
2451
2464
  this.errorHandler.sync(this);
2452
2465
  _la = this.tokenStream.LA(1);
2453
- } while (((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 275) !== 0));
2454
- this.state = 481;
2466
+ } while (((((_la - 45)) & ~0x1F) === 0 && ((1 << (_la - 45)) & 275) !== 0));
2467
+ this.state = 486;
2455
2468
  this.match(CircuitScriptParser.DEDENT);
2456
2469
  }
2457
2470
  }
@@ -2471,39 +2484,39 @@ class CircuitScriptParser extends antlr.Parser {
2471
2484
  }
2472
2485
  create_graphic_expr() {
2473
2486
  let localContext = new Create_graphic_exprContext(this.context, this.state);
2474
- this.enterRule(localContext, 82, CircuitScriptParser.RULE_create_graphic_expr);
2487
+ this.enterRule(localContext, 86, CircuitScriptParser.RULE_create_graphic_expr);
2475
2488
  let _la;
2476
2489
  try {
2477
2490
  this.enterOuterAlt(localContext, 1);
2478
2491
  {
2479
- this.state = 483;
2492
+ this.state = 488;
2480
2493
  this.match(CircuitScriptParser.Create);
2481
- this.state = 484;
2494
+ this.state = 489;
2482
2495
  this.match(CircuitScriptParser.Graphic);
2483
- this.state = 485;
2496
+ this.state = 490;
2484
2497
  this.match(CircuitScriptParser.T__0);
2485
- this.state = 486;
2498
+ this.state = 491;
2486
2499
  this.match(CircuitScriptParser.NEWLINE);
2487
- this.state = 487;
2500
+ this.state = 492;
2488
2501
  this.match(CircuitScriptParser.INDENT);
2489
- this.state = 490;
2502
+ this.state = 495;
2490
2503
  this.errorHandler.sync(this);
2491
2504
  _la = this.tokenStream.LA(1);
2492
2505
  do {
2493
2506
  {
2494
- this.state = 490;
2507
+ this.state = 495;
2495
2508
  this.errorHandler.sync(this);
2496
2509
  switch (this.tokenStream.LA(1)) {
2497
2510
  case CircuitScriptParser.NEWLINE:
2498
2511
  {
2499
- this.state = 488;
2512
+ this.state = 493;
2500
2513
  this.match(CircuitScriptParser.NEWLINE);
2501
2514
  }
2502
2515
  break;
2503
2516
  case CircuitScriptParser.Pin:
2504
2517
  case CircuitScriptParser.ID:
2505
2518
  {
2506
- this.state = 489;
2519
+ this.state = 494;
2507
2520
  this.graphic_expr();
2508
2521
  }
2509
2522
  break;
@@ -2511,11 +2524,78 @@ class CircuitScriptParser extends antlr.Parser {
2511
2524
  throw new antlr.NoViableAltException(this);
2512
2525
  }
2513
2526
  }
2514
- this.state = 492;
2527
+ this.state = 497;
2528
+ this.errorHandler.sync(this);
2529
+ _la = this.tokenStream.LA(1);
2530
+ } while (_la === 15 || _la === 45 || _la === 53);
2531
+ this.state = 499;
2532
+ this.match(CircuitScriptParser.DEDENT);
2533
+ }
2534
+ }
2535
+ catch (re) {
2536
+ if (re instanceof antlr.RecognitionException) {
2537
+ this.errorHandler.reportError(this, re);
2538
+ this.errorHandler.recover(this, re);
2539
+ }
2540
+ else {
2541
+ throw re;
2542
+ }
2543
+ }
2544
+ finally {
2545
+ this.exitRule();
2546
+ }
2547
+ return localContext;
2548
+ }
2549
+ create_module_expr() {
2550
+ let localContext = new Create_module_exprContext(this.context, this.state);
2551
+ this.enterRule(localContext, 88, CircuitScriptParser.RULE_create_module_expr);
2552
+ let _la;
2553
+ try {
2554
+ this.enterOuterAlt(localContext, 1);
2555
+ {
2556
+ this.state = 501;
2557
+ this.match(CircuitScriptParser.Create);
2558
+ this.state = 502;
2559
+ this.match(CircuitScriptParser.Module);
2560
+ this.state = 503;
2561
+ this.match(CircuitScriptParser.T__0);
2562
+ this.state = 504;
2563
+ this.match(CircuitScriptParser.NEWLINE);
2564
+ this.state = 505;
2565
+ this.match(CircuitScriptParser.INDENT);
2566
+ this.state = 509;
2567
+ this.errorHandler.sync(this);
2568
+ _la = this.tokenStream.LA(1);
2569
+ do {
2570
+ {
2571
+ this.state = 509;
2572
+ this.errorHandler.sync(this);
2573
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 54, this.context)) {
2574
+ case 1:
2575
+ {
2576
+ this.state = 506;
2577
+ this.match(CircuitScriptParser.NEWLINE);
2578
+ }
2579
+ break;
2580
+ case 2:
2581
+ {
2582
+ this.state = 507;
2583
+ this.property_expr();
2584
+ }
2585
+ break;
2586
+ case 3:
2587
+ {
2588
+ this.state = 508;
2589
+ this.property_block_expr();
2590
+ }
2591
+ break;
2592
+ }
2593
+ }
2594
+ this.state = 511;
2515
2595
  this.errorHandler.sync(this);
2516
2596
  _la = this.tokenStream.LA(1);
2517
- } while (_la === 14 || _la === 44 || _la === 52);
2518
- this.state = 494;
2597
+ } while (((((_la - 45)) & ~0x1F) === 0 && ((1 << (_la - 45)) & 275) !== 0));
2598
+ this.state = 513;
2519
2599
  this.match(CircuitScriptParser.DEDENT);
2520
2600
  }
2521
2601
  }
@@ -2535,27 +2615,27 @@ class CircuitScriptParser extends antlr.Parser {
2535
2615
  }
2536
2616
  nested_properties_inner() {
2537
2617
  let localContext = new Nested_properties_innerContext(this.context, this.state);
2538
- this.enterRule(localContext, 84, CircuitScriptParser.RULE_nested_properties_inner);
2618
+ this.enterRule(localContext, 90, CircuitScriptParser.RULE_nested_properties_inner);
2539
2619
  let _la;
2540
2620
  try {
2541
2621
  this.enterOuterAlt(localContext, 1);
2542
2622
  {
2543
2623
  {
2544
- this.state = 496;
2624
+ this.state = 515;
2545
2625
  this.match(CircuitScriptParser.NEWLINE);
2546
- this.state = 497;
2626
+ this.state = 516;
2547
2627
  this.match(CircuitScriptParser.INDENT);
2548
- this.state = 500;
2628
+ this.state = 519;
2549
2629
  this.errorHandler.sync(this);
2550
2630
  _la = this.tokenStream.LA(1);
2551
2631
  do {
2552
2632
  {
2553
- this.state = 500;
2633
+ this.state = 519;
2554
2634
  this.errorHandler.sync(this);
2555
2635
  switch (this.tokenStream.LA(1)) {
2556
2636
  case CircuitScriptParser.NEWLINE:
2557
2637
  {
2558
- this.state = 498;
2638
+ this.state = 517;
2559
2639
  this.match(CircuitScriptParser.NEWLINE);
2560
2640
  }
2561
2641
  break;
@@ -2563,7 +2643,7 @@ class CircuitScriptParser extends antlr.Parser {
2563
2643
  case CircuitScriptParser.INTEGER_VALUE:
2564
2644
  case CircuitScriptParser.STRING_VALUE:
2565
2645
  {
2566
- this.state = 499;
2646
+ this.state = 518;
2567
2647
  this.property_expr();
2568
2648
  }
2569
2649
  break;
@@ -2571,11 +2651,11 @@ class CircuitScriptParser extends antlr.Parser {
2571
2651
  throw new antlr.NoViableAltException(this);
2572
2652
  }
2573
2653
  }
2574
- this.state = 502;
2654
+ this.state = 521;
2575
2655
  this.errorHandler.sync(this);
2576
2656
  _la = this.tokenStream.LA(1);
2577
- } while (((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 275) !== 0));
2578
- this.state = 504;
2657
+ } while (((((_la - 45)) & ~0x1F) === 0 && ((1 << (_la - 45)) & 275) !== 0));
2658
+ this.state = 523;
2579
2659
  this.match(CircuitScriptParser.DEDENT);
2580
2660
  }
2581
2661
  }
@@ -2596,52 +2676,52 @@ class CircuitScriptParser extends antlr.Parser {
2596
2676
  }
2597
2677
  graphic_expr() {
2598
2678
  let localContext = new Graphic_exprContext(this.context, this.state);
2599
- this.enterRule(localContext, 86, CircuitScriptParser.RULE_graphic_expr);
2679
+ this.enterRule(localContext, 92, CircuitScriptParser.RULE_graphic_expr);
2600
2680
  let _la;
2601
2681
  try {
2602
2682
  this.enterOuterAlt(localContext, 1);
2603
2683
  {
2604
- this.state = 506;
2684
+ this.state = 525;
2605
2685
  localContext._command = this.tokenStream.LT(1);
2606
2686
  _la = this.tokenStream.LA(1);
2607
- if (!(_la === 14 || _la === 44)) {
2687
+ if (!(_la === 15 || _la === 45)) {
2608
2688
  localContext._command = this.errorHandler.recoverInline(this);
2609
2689
  }
2610
2690
  else {
2611
2691
  this.errorHandler.reportMatch(this);
2612
2692
  this.consume();
2613
2693
  }
2614
- this.state = 508;
2694
+ this.state = 527;
2615
2695
  this.errorHandler.sync(this);
2616
2696
  _la = this.tokenStream.LA(1);
2617
2697
  if (_la === 1) {
2618
2698
  {
2619
- this.state = 507;
2699
+ this.state = 526;
2620
2700
  this.match(CircuitScriptParser.T__0);
2621
2701
  }
2622
2702
  }
2623
- this.state = 516;
2703
+ this.state = 535;
2624
2704
  this.errorHandler.sync(this);
2625
2705
  switch (this.interpreter.adaptivePredict(this.tokenStream, 59, this.context)) {
2626
2706
  case 1:
2627
2707
  {
2628
- this.state = 510;
2708
+ this.state = 529;
2629
2709
  this.parameters();
2630
2710
  }
2631
2711
  break;
2632
2712
  case 2:
2633
2713
  {
2634
- this.state = 511;
2714
+ this.state = 530;
2635
2715
  this.match(CircuitScriptParser.OPEN_PAREN);
2636
- this.state = 512;
2716
+ this.state = 531;
2637
2717
  this.parameters();
2638
- this.state = 513;
2718
+ this.state = 532;
2639
2719
  this.match(CircuitScriptParser.CLOSE_PAREN);
2640
2720
  }
2641
2721
  break;
2642
2722
  case 3:
2643
2723
  {
2644
- this.state = 515;
2724
+ this.state = 534;
2645
2725
  this.nested_properties_inner();
2646
2726
  }
2647
2727
  break;
@@ -2664,15 +2744,15 @@ class CircuitScriptParser extends antlr.Parser {
2664
2744
  }
2665
2745
  property_expr() {
2666
2746
  let localContext = new Property_exprContext(this.context, this.state);
2667
- this.enterRule(localContext, 88, CircuitScriptParser.RULE_property_expr);
2747
+ this.enterRule(localContext, 94, CircuitScriptParser.RULE_property_expr);
2668
2748
  try {
2669
2749
  this.enterOuterAlt(localContext, 1);
2670
2750
  {
2671
- this.state = 518;
2751
+ this.state = 537;
2672
2752
  this.property_key_expr();
2673
- this.state = 519;
2753
+ this.state = 538;
2674
2754
  this.match(CircuitScriptParser.T__0);
2675
- this.state = 520;
2755
+ this.state = 539;
2676
2756
  this.property_value_expr();
2677
2757
  }
2678
2758
  }
@@ -2692,14 +2772,14 @@ class CircuitScriptParser extends antlr.Parser {
2692
2772
  }
2693
2773
  property_key_expr() {
2694
2774
  let localContext = new Property_key_exprContext(this.context, this.state);
2695
- this.enterRule(localContext, 90, CircuitScriptParser.RULE_property_key_expr);
2775
+ this.enterRule(localContext, 96, CircuitScriptParser.RULE_property_key_expr);
2696
2776
  let _la;
2697
2777
  try {
2698
2778
  this.enterOuterAlt(localContext, 1);
2699
2779
  {
2700
- this.state = 522;
2780
+ this.state = 541;
2701
2781
  _la = this.tokenStream.LA(1);
2702
- if (!(((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 19) !== 0))) {
2782
+ if (!(((((_la - 45)) & ~0x1F) === 0 && ((1 << (_la - 45)) & 19) !== 0))) {
2703
2783
  this.errorHandler.recoverInline(this);
2704
2784
  }
2705
2785
  else {
@@ -2724,17 +2804,17 @@ class CircuitScriptParser extends antlr.Parser {
2724
2804
  }
2725
2805
  property_value_expr() {
2726
2806
  let localContext = new Property_value_exprContext(this.context, this.state);
2727
- this.enterRule(localContext, 92, CircuitScriptParser.RULE_property_value_expr);
2807
+ this.enterRule(localContext, 98, CircuitScriptParser.RULE_property_value_expr);
2728
2808
  let _la;
2729
2809
  try {
2730
- this.state = 533;
2810
+ this.state = 552;
2731
2811
  this.errorHandler.sync(this);
2732
2812
  switch (this.tokenStream.LA(1)) {
2733
2813
  case CircuitScriptParser.NEWLINE:
2734
2814
  localContext = new Nested_propertiesContext(localContext);
2735
2815
  this.enterOuterAlt(localContext, 1);
2736
2816
  {
2737
- this.state = 524;
2817
+ this.state = 543;
2738
2818
  this.nested_properties_inner();
2739
2819
  }
2740
2820
  break;
@@ -2755,21 +2835,21 @@ class CircuitScriptParser extends antlr.Parser {
2755
2835
  localContext = new Single_line_propertyContext(localContext);
2756
2836
  this.enterOuterAlt(localContext, 2);
2757
2837
  {
2758
- this.state = 525;
2838
+ this.state = 544;
2759
2839
  this.data_expr(0);
2760
- this.state = 530;
2840
+ this.state = 549;
2761
2841
  this.errorHandler.sync(this);
2762
2842
  _la = this.tokenStream.LA(1);
2763
2843
  while (_la === 2) {
2764
2844
  {
2765
2845
  {
2766
- this.state = 526;
2846
+ this.state = 545;
2767
2847
  this.match(CircuitScriptParser.T__1);
2768
- this.state = 527;
2848
+ this.state = 546;
2769
2849
  this.data_expr(0);
2770
2850
  }
2771
2851
  }
2772
- this.state = 532;
2852
+ this.state = 551;
2773
2853
  this.errorHandler.sync(this);
2774
2854
  _la = this.tokenStream.LA(1);
2775
2855
  }
@@ -2795,15 +2875,15 @@ class CircuitScriptParser extends antlr.Parser {
2795
2875
  }
2796
2876
  blank_expr() {
2797
2877
  let localContext = new Blank_exprContext(this.context, this.state);
2798
- this.enterRule(localContext, 94, CircuitScriptParser.RULE_blank_expr);
2878
+ this.enterRule(localContext, 100, CircuitScriptParser.RULE_blank_expr);
2799
2879
  try {
2800
2880
  this.enterOuterAlt(localContext, 1);
2801
2881
  {
2802
- this.state = 535;
2882
+ this.state = 554;
2803
2883
  this.match(CircuitScriptParser.T__5);
2804
- this.state = 536;
2884
+ this.state = 555;
2805
2885
  this.match(CircuitScriptParser.INTEGER_VALUE);
2806
- this.state = 537;
2886
+ this.state = 556;
2807
2887
  this.match(CircuitScriptParser.T__6);
2808
2888
  }
2809
2889
  }
@@ -2823,29 +2903,29 @@ class CircuitScriptParser extends antlr.Parser {
2823
2903
  }
2824
2904
  wire_atom_expr() {
2825
2905
  let localContext = new Wire_atom_exprContext(this.context, this.state);
2826
- this.enterRule(localContext, 96, CircuitScriptParser.RULE_wire_atom_expr);
2906
+ this.enterRule(localContext, 102, CircuitScriptParser.RULE_wire_atom_expr);
2827
2907
  try {
2828
- this.state = 545;
2908
+ this.state = 564;
2829
2909
  this.errorHandler.sync(this);
2830
2910
  switch (this.interpreter.adaptivePredict(this.tokenStream, 63, this.context)) {
2831
2911
  case 1:
2832
2912
  localContext = new Wire_expr_direction_valueContext(localContext);
2833
2913
  this.enterOuterAlt(localContext, 1);
2834
2914
  {
2835
- this.state = 539;
2915
+ this.state = 558;
2836
2916
  this.match(CircuitScriptParser.ID);
2837
- this.state = 542;
2917
+ this.state = 561;
2838
2918
  this.errorHandler.sync(this);
2839
2919
  switch (this.interpreter.adaptivePredict(this.tokenStream, 62, this.context)) {
2840
2920
  case 1:
2841
2921
  {
2842
- this.state = 540;
2922
+ this.state = 559;
2843
2923
  this.match(CircuitScriptParser.INTEGER_VALUE);
2844
2924
  }
2845
2925
  break;
2846
2926
  case 2:
2847
2927
  {
2848
- this.state = 541;
2928
+ this.state = 560;
2849
2929
  this.data_expr(0);
2850
2930
  }
2851
2931
  break;
@@ -2856,7 +2936,7 @@ class CircuitScriptParser extends antlr.Parser {
2856
2936
  localContext = new Wire_expr_direction_onlyContext(localContext);
2857
2937
  this.enterOuterAlt(localContext, 2);
2858
2938
  {
2859
- this.state = 544;
2939
+ this.state = 563;
2860
2940
  this.match(CircuitScriptParser.ID);
2861
2941
  }
2862
2942
  break;
@@ -2878,26 +2958,26 @@ class CircuitScriptParser extends antlr.Parser {
2878
2958
  }
2879
2959
  wire_expr() {
2880
2960
  let localContext = new Wire_exprContext(this.context, this.state);
2881
- this.enterRule(localContext, 98, CircuitScriptParser.RULE_wire_expr);
2961
+ this.enterRule(localContext, 104, CircuitScriptParser.RULE_wire_expr);
2882
2962
  try {
2883
2963
  let alternative;
2884
2964
  this.enterOuterAlt(localContext, 1);
2885
2965
  {
2886
- this.state = 547;
2966
+ this.state = 566;
2887
2967
  this.match(CircuitScriptParser.Wire);
2888
- this.state = 551;
2968
+ this.state = 570;
2889
2969
  this.errorHandler.sync(this);
2890
2970
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 64, this.context);
2891
2971
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2892
2972
  if (alternative === 1) {
2893
2973
  {
2894
2974
  {
2895
- this.state = 548;
2975
+ this.state = 567;
2896
2976
  this.wire_atom_expr();
2897
2977
  }
2898
2978
  }
2899
2979
  }
2900
- this.state = 553;
2980
+ this.state = 572;
2901
2981
  this.errorHandler.sync(this);
2902
2982
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 64, this.context);
2903
2983
  }
@@ -2919,13 +2999,13 @@ class CircuitScriptParser extends antlr.Parser {
2919
2999
  }
2920
3000
  point_expr() {
2921
3001
  let localContext = new Point_exprContext(this.context, this.state);
2922
- this.enterRule(localContext, 100, CircuitScriptParser.RULE_point_expr);
3002
+ this.enterRule(localContext, 106, CircuitScriptParser.RULE_point_expr);
2923
3003
  try {
2924
3004
  this.enterOuterAlt(localContext, 1);
2925
3005
  {
2926
- this.state = 554;
3006
+ this.state = 573;
2927
3007
  this.match(CircuitScriptParser.Point);
2928
- this.state = 555;
3008
+ this.state = 574;
2929
3009
  this.match(CircuitScriptParser.ID);
2930
3010
  }
2931
3011
  }
@@ -2945,13 +3025,13 @@ class CircuitScriptParser extends antlr.Parser {
2945
3025
  }
2946
3026
  import_expr() {
2947
3027
  let localContext = new Import_exprContext(this.context, this.state);
2948
- this.enterRule(localContext, 102, CircuitScriptParser.RULE_import_expr);
3028
+ this.enterRule(localContext, 108, CircuitScriptParser.RULE_import_expr);
2949
3029
  try {
2950
3030
  this.enterOuterAlt(localContext, 1);
2951
3031
  {
2952
- this.state = 557;
3032
+ this.state = 576;
2953
3033
  this.match(CircuitScriptParser.Import);
2954
- this.state = 558;
3034
+ this.state = 577;
2955
3035
  this.match(CircuitScriptParser.ID);
2956
3036
  }
2957
3037
  }
@@ -2971,65 +3051,16 @@ class CircuitScriptParser extends antlr.Parser {
2971
3051
  }
2972
3052
  frame_expr() {
2973
3053
  let localContext = new Frame_exprContext(this.context, this.state);
2974
- this.enterRule(localContext, 104, CircuitScriptParser.RULE_frame_expr);
2975
- let _la;
3054
+ this.enterRule(localContext, 110, CircuitScriptParser.RULE_frame_expr);
2976
3055
  try {
2977
3056
  this.enterOuterAlt(localContext, 1);
2978
3057
  {
2979
- this.state = 560;
3058
+ this.state = 579;
2980
3059
  this.match(CircuitScriptParser.Frame);
2981
- this.state = 561;
3060
+ this.state = 580;
2982
3061
  this.match(CircuitScriptParser.T__0);
2983
- this.state = 562;
2984
- this.match(CircuitScriptParser.NEWLINE);
2985
- this.state = 563;
2986
- this.match(CircuitScriptParser.INDENT);
2987
- this.state = 566;
2988
- this.errorHandler.sync(this);
2989
- _la = this.tokenStream.LA(1);
2990
- do {
2991
- {
2992
- this.state = 566;
2993
- this.errorHandler.sync(this);
2994
- switch (this.tokenStream.LA(1)) {
2995
- case CircuitScriptParser.NEWLINE:
2996
- {
2997
- this.state = 564;
2998
- this.match(CircuitScriptParser.NEWLINE);
2999
- }
3000
- break;
3001
- case CircuitScriptParser.T__3:
3002
- case CircuitScriptParser.Break:
3003
- case CircuitScriptParser.Branch:
3004
- case CircuitScriptParser.Wire:
3005
- case CircuitScriptParser.Add:
3006
- case CircuitScriptParser.At:
3007
- case CircuitScriptParser.To:
3008
- case CircuitScriptParser.Point:
3009
- case CircuitScriptParser.Join:
3010
- case CircuitScriptParser.Parallel:
3011
- case CircuitScriptParser.Define:
3012
- case CircuitScriptParser.Import:
3013
- case CircuitScriptParser.If:
3014
- case CircuitScriptParser.Frame:
3015
- case CircuitScriptParser.Addition:
3016
- case CircuitScriptParser.Divide:
3017
- case CircuitScriptParser.ID:
3018
- {
3019
- this.state = 565;
3020
- this.expression();
3021
- }
3022
- break;
3023
- default:
3024
- throw new antlr.NoViableAltException(this);
3025
- }
3026
- }
3027
- this.state = 568;
3028
- this.errorHandler.sync(this);
3029
- _la = this.tokenStream.LA(1);
3030
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
3031
- this.state = 570;
3032
- this.match(CircuitScriptParser.DEDENT);
3062
+ this.state = 581;
3063
+ this.expressions_block();
3033
3064
  }
3034
3065
  }
3035
3066
  catch (re) {
@@ -3048,90 +3079,42 @@ class CircuitScriptParser extends antlr.Parser {
3048
3079
  }
3049
3080
  if_expr() {
3050
3081
  let localContext = new If_exprContext(this.context, this.state);
3051
- this.enterRule(localContext, 106, CircuitScriptParser.RULE_if_expr);
3082
+ this.enterRule(localContext, 112, CircuitScriptParser.RULE_if_expr);
3052
3083
  let _la;
3053
3084
  try {
3054
3085
  let alternative;
3055
3086
  this.enterOuterAlt(localContext, 1);
3056
3087
  {
3057
- this.state = 572;
3088
+ this.state = 583;
3058
3089
  this.match(CircuitScriptParser.If);
3059
- this.state = 573;
3090
+ this.state = 584;
3060
3091
  this.data_expr(0);
3061
- this.state = 574;
3092
+ this.state = 585;
3062
3093
  this.match(CircuitScriptParser.T__0);
3063
- this.state = 575;
3064
- this.match(CircuitScriptParser.NEWLINE);
3065
- this.state = 576;
3066
- this.match(CircuitScriptParser.INDENT);
3067
- this.state = 579;
3068
- this.errorHandler.sync(this);
3069
- _la = this.tokenStream.LA(1);
3070
- do {
3071
- {
3072
- this.state = 579;
3073
- this.errorHandler.sync(this);
3074
- switch (this.tokenStream.LA(1)) {
3075
- case CircuitScriptParser.NEWLINE:
3076
- {
3077
- this.state = 577;
3078
- this.match(CircuitScriptParser.NEWLINE);
3079
- }
3080
- break;
3081
- case CircuitScriptParser.T__3:
3082
- case CircuitScriptParser.Break:
3083
- case CircuitScriptParser.Branch:
3084
- case CircuitScriptParser.Wire:
3085
- case CircuitScriptParser.Add:
3086
- case CircuitScriptParser.At:
3087
- case CircuitScriptParser.To:
3088
- case CircuitScriptParser.Point:
3089
- case CircuitScriptParser.Join:
3090
- case CircuitScriptParser.Parallel:
3091
- case CircuitScriptParser.Define:
3092
- case CircuitScriptParser.Import:
3093
- case CircuitScriptParser.If:
3094
- case CircuitScriptParser.Frame:
3095
- case CircuitScriptParser.Addition:
3096
- case CircuitScriptParser.Divide:
3097
- case CircuitScriptParser.ID:
3098
- {
3099
- this.state = 578;
3100
- this.expression();
3101
- }
3102
- break;
3103
- default:
3104
- throw new antlr.NoViableAltException(this);
3105
- }
3106
- }
3107
- this.state = 581;
3108
- this.errorHandler.sync(this);
3109
- _la = this.tokenStream.LA(1);
3110
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
3111
- this.state = 583;
3112
- this.match(CircuitScriptParser.DEDENT);
3113
- this.state = 587;
3094
+ this.state = 586;
3095
+ this.expressions_block();
3096
+ this.state = 590;
3114
3097
  this.errorHandler.sync(this);
3115
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
3098
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 65, this.context);
3116
3099
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3117
3100
  if (alternative === 1) {
3118
3101
  {
3119
3102
  {
3120
- this.state = 584;
3103
+ this.state = 587;
3121
3104
  this.if_inner_expr();
3122
3105
  }
3123
3106
  }
3124
3107
  }
3125
- this.state = 589;
3108
+ this.state = 592;
3126
3109
  this.errorHandler.sync(this);
3127
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
3110
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 65, this.context);
3128
3111
  }
3129
- this.state = 591;
3112
+ this.state = 594;
3130
3113
  this.errorHandler.sync(this);
3131
3114
  _la = this.tokenStream.LA(1);
3132
- if (_la === 25) {
3115
+ if (_la === 26) {
3133
3116
  {
3134
- this.state = 590;
3117
+ this.state = 593;
3135
3118
  this.else_expr();
3136
3119
  }
3137
3120
  }
@@ -3153,69 +3136,20 @@ class CircuitScriptParser extends antlr.Parser {
3153
3136
  }
3154
3137
  if_inner_expr() {
3155
3138
  let localContext = new If_inner_exprContext(this.context, this.state);
3156
- this.enterRule(localContext, 108, CircuitScriptParser.RULE_if_inner_expr);
3157
- let _la;
3139
+ this.enterRule(localContext, 114, CircuitScriptParser.RULE_if_inner_expr);
3158
3140
  try {
3159
3141
  this.enterOuterAlt(localContext, 1);
3160
3142
  {
3161
- this.state = 593;
3162
- this.match(CircuitScriptParser.Else);
3163
- this.state = 594;
3164
- this.match(CircuitScriptParser.If);
3165
- this.state = 595;
3166
- this.data_expr(0);
3167
3143
  this.state = 596;
3168
- this.match(CircuitScriptParser.T__0);
3169
- this.state = 597;
3170
- this.match(CircuitScriptParser.NEWLINE);
3171
- this.state = 598;
3172
- this.match(CircuitScriptParser.INDENT);
3173
- this.state = 601;
3174
- this.errorHandler.sync(this);
3175
- _la = this.tokenStream.LA(1);
3176
- do {
3177
- {
3178
- this.state = 601;
3179
- this.errorHandler.sync(this);
3180
- switch (this.tokenStream.LA(1)) {
3181
- case CircuitScriptParser.NEWLINE:
3182
- {
3183
- this.state = 599;
3184
- this.match(CircuitScriptParser.NEWLINE);
3185
- }
3186
- break;
3187
- case CircuitScriptParser.T__3:
3188
- case CircuitScriptParser.Break:
3189
- case CircuitScriptParser.Branch:
3190
- case CircuitScriptParser.Wire:
3191
- case CircuitScriptParser.Add:
3192
- case CircuitScriptParser.At:
3193
- case CircuitScriptParser.To:
3194
- case CircuitScriptParser.Point:
3195
- case CircuitScriptParser.Join:
3196
- case CircuitScriptParser.Parallel:
3197
- case CircuitScriptParser.Define:
3198
- case CircuitScriptParser.Import:
3199
- case CircuitScriptParser.If:
3200
- case CircuitScriptParser.Frame:
3201
- case CircuitScriptParser.Addition:
3202
- case CircuitScriptParser.Divide:
3203
- case CircuitScriptParser.ID:
3204
- {
3205
- this.state = 600;
3206
- this.expression();
3207
- }
3208
- break;
3209
- default:
3210
- throw new antlr.NoViableAltException(this);
3211
- }
3212
- }
3213
- this.state = 603;
3214
- this.errorHandler.sync(this);
3215
- _la = this.tokenStream.LA(1);
3216
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
3217
- this.state = 605;
3218
- this.match(CircuitScriptParser.DEDENT);
3144
+ this.match(CircuitScriptParser.Else);
3145
+ this.state = 597;
3146
+ this.match(CircuitScriptParser.If);
3147
+ this.state = 598;
3148
+ this.data_expr(0);
3149
+ this.state = 599;
3150
+ this.match(CircuitScriptParser.T__0);
3151
+ this.state = 600;
3152
+ this.expressions_block();
3219
3153
  }
3220
3154
  }
3221
3155
  catch (re) {
@@ -3234,65 +3168,16 @@ class CircuitScriptParser extends antlr.Parser {
3234
3168
  }
3235
3169
  else_expr() {
3236
3170
  let localContext = new Else_exprContext(this.context, this.state);
3237
- this.enterRule(localContext, 110, CircuitScriptParser.RULE_else_expr);
3238
- let _la;
3171
+ this.enterRule(localContext, 116, CircuitScriptParser.RULE_else_expr);
3239
3172
  try {
3240
3173
  this.enterOuterAlt(localContext, 1);
3241
3174
  {
3242
- this.state = 607;
3175
+ this.state = 602;
3243
3176
  this.match(CircuitScriptParser.Else);
3244
- this.state = 608;
3177
+ this.state = 603;
3245
3178
  this.match(CircuitScriptParser.T__0);
3246
- this.state = 609;
3247
- this.match(CircuitScriptParser.NEWLINE);
3248
- this.state = 610;
3249
- this.match(CircuitScriptParser.INDENT);
3250
- this.state = 613;
3251
- this.errorHandler.sync(this);
3252
- _la = this.tokenStream.LA(1);
3253
- do {
3254
- {
3255
- this.state = 613;
3256
- this.errorHandler.sync(this);
3257
- switch (this.tokenStream.LA(1)) {
3258
- case CircuitScriptParser.NEWLINE:
3259
- {
3260
- this.state = 611;
3261
- this.match(CircuitScriptParser.NEWLINE);
3262
- }
3263
- break;
3264
- case CircuitScriptParser.T__3:
3265
- case CircuitScriptParser.Break:
3266
- case CircuitScriptParser.Branch:
3267
- case CircuitScriptParser.Wire:
3268
- case CircuitScriptParser.Add:
3269
- case CircuitScriptParser.At:
3270
- case CircuitScriptParser.To:
3271
- case CircuitScriptParser.Point:
3272
- case CircuitScriptParser.Join:
3273
- case CircuitScriptParser.Parallel:
3274
- case CircuitScriptParser.Define:
3275
- case CircuitScriptParser.Import:
3276
- case CircuitScriptParser.If:
3277
- case CircuitScriptParser.Frame:
3278
- case CircuitScriptParser.Addition:
3279
- case CircuitScriptParser.Divide:
3280
- case CircuitScriptParser.ID:
3281
- {
3282
- this.state = 612;
3283
- this.expression();
3284
- }
3285
- break;
3286
- default:
3287
- throw new antlr.NoViableAltException(this);
3288
- }
3289
- }
3290
- this.state = 615;
3291
- this.errorHandler.sync(this);
3292
- _la = this.tokenStream.LA(1);
3293
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
3294
- this.state = 617;
3295
- this.match(CircuitScriptParser.DEDENT);
3179
+ this.state = 604;
3180
+ this.expressions_block();
3296
3181
  }
3297
3182
  }
3298
3183
  catch (re) {
@@ -3311,7 +3196,7 @@ class CircuitScriptParser extends antlr.Parser {
3311
3196
  }
3312
3197
  sempred(localContext, ruleIndex, predIndex) {
3313
3198
  switch (ruleIndex) {
3314
- case 28:
3199
+ case 29:
3315
3200
  return this.data_expr_sempred(localContext, predIndex);
3316
3201
  }
3317
3202
  return true;
@@ -3319,13 +3204,13 @@ class CircuitScriptParser extends antlr.Parser {
3319
3204
  data_expr_sempred(localContext, predIndex) {
3320
3205
  switch (predIndex) {
3321
3206
  case 0:
3322
- return this.precpred(this.context, 7);
3207
+ return this.precpred(this.context, 8);
3323
3208
  case 1:
3324
- return this.precpred(this.context, 6);
3209
+ return this.precpred(this.context, 7);
3325
3210
  case 2:
3326
- return this.precpred(this.context, 5);
3211
+ return this.precpred(this.context, 6);
3327
3212
  case 3:
3328
- return this.precpred(this.context, 4);
3213
+ return this.precpred(this.context, 5);
3329
3214
  }
3330
3215
  return true;
3331
3216
  }
@@ -3352,127 +3237,131 @@ CircuitScriptParser.Branch = 9;
3352
3237
  CircuitScriptParser.Create = 10;
3353
3238
  CircuitScriptParser.Component = 11;
3354
3239
  CircuitScriptParser.Graphic = 12;
3355
- CircuitScriptParser.Wire = 13;
3356
- CircuitScriptParser.Pin = 14;
3357
- CircuitScriptParser.Add = 15;
3358
- CircuitScriptParser.At = 16;
3359
- CircuitScriptParser.To = 17;
3360
- CircuitScriptParser.Point = 18;
3361
- CircuitScriptParser.Join = 19;
3362
- CircuitScriptParser.Parallel = 20;
3363
- CircuitScriptParser.Return = 21;
3364
- CircuitScriptParser.Define = 22;
3365
- CircuitScriptParser.Import = 23;
3366
- CircuitScriptParser.If = 24;
3367
- CircuitScriptParser.Else = 25;
3368
- CircuitScriptParser.Not = 26;
3369
- CircuitScriptParser.Frame = 27;
3370
- CircuitScriptParser.Equals = 28;
3371
- CircuitScriptParser.NotEquals = 29;
3372
- CircuitScriptParser.GreaterThan = 30;
3373
- CircuitScriptParser.GreatOrEqualThan = 31;
3374
- CircuitScriptParser.LessThan = 32;
3375
- CircuitScriptParser.LessOrEqualThan = 33;
3376
- CircuitScriptParser.LogicalAnd = 34;
3377
- CircuitScriptParser.LogicalOr = 35;
3378
- CircuitScriptParser.Addition = 36;
3379
- CircuitScriptParser.Minus = 37;
3380
- CircuitScriptParser.Divide = 38;
3381
- CircuitScriptParser.Multiply = 39;
3382
- CircuitScriptParser.OPEN_PAREN = 40;
3383
- CircuitScriptParser.CLOSE_PAREN = 41;
3384
- CircuitScriptParser.NOT_CONNECTED = 42;
3385
- CircuitScriptParser.BOOLEAN_VALUE = 43;
3386
- CircuitScriptParser.ID = 44;
3387
- CircuitScriptParser.INTEGER_VALUE = 45;
3388
- CircuitScriptParser.DECIMAL_VALUE = 46;
3389
- CircuitScriptParser.NUMERIC_VALUE = 47;
3390
- CircuitScriptParser.STRING_VALUE = 48;
3391
- CircuitScriptParser.PERCENTAGE_VALUE = 49;
3392
- CircuitScriptParser.ALPHA_NUMERIC = 50;
3393
- CircuitScriptParser.WS = 51;
3394
- CircuitScriptParser.NEWLINE = 52;
3395
- CircuitScriptParser.COMMENT = 53;
3396
- CircuitScriptParser.INDENT = 54;
3397
- CircuitScriptParser.DEDENT = 55;
3240
+ CircuitScriptParser.Module = 13;
3241
+ CircuitScriptParser.Wire = 14;
3242
+ CircuitScriptParser.Pin = 15;
3243
+ CircuitScriptParser.Add = 16;
3244
+ CircuitScriptParser.At = 17;
3245
+ CircuitScriptParser.To = 18;
3246
+ CircuitScriptParser.Point = 19;
3247
+ CircuitScriptParser.Join = 20;
3248
+ CircuitScriptParser.Parallel = 21;
3249
+ CircuitScriptParser.Return = 22;
3250
+ CircuitScriptParser.Define = 23;
3251
+ CircuitScriptParser.Import = 24;
3252
+ CircuitScriptParser.If = 25;
3253
+ CircuitScriptParser.Else = 26;
3254
+ CircuitScriptParser.Not = 27;
3255
+ CircuitScriptParser.Frame = 28;
3256
+ CircuitScriptParser.Equals = 29;
3257
+ CircuitScriptParser.NotEquals = 30;
3258
+ CircuitScriptParser.GreaterThan = 31;
3259
+ CircuitScriptParser.GreatOrEqualThan = 32;
3260
+ CircuitScriptParser.LessThan = 33;
3261
+ CircuitScriptParser.LessOrEqualThan = 34;
3262
+ CircuitScriptParser.LogicalAnd = 35;
3263
+ CircuitScriptParser.LogicalOr = 36;
3264
+ CircuitScriptParser.Addition = 37;
3265
+ CircuitScriptParser.Minus = 38;
3266
+ CircuitScriptParser.Divide = 39;
3267
+ CircuitScriptParser.Multiply = 40;
3268
+ CircuitScriptParser.OPEN_PAREN = 41;
3269
+ CircuitScriptParser.CLOSE_PAREN = 42;
3270
+ CircuitScriptParser.NOT_CONNECTED = 43;
3271
+ CircuitScriptParser.BOOLEAN_VALUE = 44;
3272
+ CircuitScriptParser.ID = 45;
3273
+ CircuitScriptParser.INTEGER_VALUE = 46;
3274
+ CircuitScriptParser.DECIMAL_VALUE = 47;
3275
+ CircuitScriptParser.NUMERIC_VALUE = 48;
3276
+ CircuitScriptParser.STRING_VALUE = 49;
3277
+ CircuitScriptParser.PERCENTAGE_VALUE = 50;
3278
+ CircuitScriptParser.ALPHA_NUMERIC = 51;
3279
+ CircuitScriptParser.WS = 52;
3280
+ CircuitScriptParser.NEWLINE = 53;
3281
+ CircuitScriptParser.COMMENT = 54;
3282
+ CircuitScriptParser.INDENT = 55;
3283
+ CircuitScriptParser.DEDENT = 56;
3398
3284
  CircuitScriptParser.RULE_script = 0;
3399
3285
  CircuitScriptParser.RULE_expression = 1;
3400
- CircuitScriptParser.RULE_path_blocks = 2;
3401
- CircuitScriptParser.RULE_path_block_inner = 3;
3402
- CircuitScriptParser.RULE_property_set_expr2 = 4;
3403
- CircuitScriptParser.RULE_assignment_expr2 = 5;
3404
- CircuitScriptParser.RULE_pin_select_expr = 6;
3405
- CircuitScriptParser.RULE_component_modifier_expr = 7;
3406
- CircuitScriptParser.RULE_data_expr_with_assignment = 8;
3407
- CircuitScriptParser.RULE_add_component_expr = 9;
3408
- CircuitScriptParser.RULE_component_select_expr = 10;
3409
- CircuitScriptParser.RULE_pin_select_expr2 = 11;
3410
- CircuitScriptParser.RULE_at_component_expr = 12;
3411
- CircuitScriptParser.RULE_to_component_expr = 13;
3412
- CircuitScriptParser.RULE_at_to_multiple_expr = 14;
3413
- CircuitScriptParser.RULE_at_to_multiple_line_expr = 15;
3414
- CircuitScriptParser.RULE_at_to_multiple_line_expr_to_pin = 16;
3415
- CircuitScriptParser.RULE_at_block = 17;
3416
- CircuitScriptParser.RULE_at_block_expressions = 18;
3417
- CircuitScriptParser.RULE_at_block_pin_expr = 19;
3418
- CircuitScriptParser.RULE_at_block_pin_expression_simple = 20;
3419
- CircuitScriptParser.RULE_at_block_pin_expression_complex = 21;
3420
- CircuitScriptParser.RULE_break_keyword = 22;
3421
- CircuitScriptParser.RULE_assignment_expr = 23;
3422
- CircuitScriptParser.RULE_keyword_assignment_expr = 24;
3423
- CircuitScriptParser.RULE_parameters = 25;
3424
- CircuitScriptParser.RULE_property_set_expr = 26;
3425
- CircuitScriptParser.RULE_double_dot_property_set_expr = 27;
3426
- CircuitScriptParser.RULE_data_expr = 28;
3427
- CircuitScriptParser.RULE_binary_operator = 29;
3428
- CircuitScriptParser.RULE_unary_operator = 30;
3429
- CircuitScriptParser.RULE_value_expr = 31;
3430
- CircuitScriptParser.RULE_function_def_expr = 32;
3431
- CircuitScriptParser.RULE_function_expr = 33;
3432
- CircuitScriptParser.RULE_function_args_expr = 34;
3433
- CircuitScriptParser.RULE_atom_expr = 35;
3434
- CircuitScriptParser.RULE_trailer_expr = 36;
3435
- CircuitScriptParser.RULE_function_call_expr = 37;
3436
- CircuitScriptParser.RULE_net_namespace_expr = 38;
3437
- CircuitScriptParser.RULE_function_return_expr = 39;
3438
- CircuitScriptParser.RULE_create_component_expr = 40;
3439
- CircuitScriptParser.RULE_create_graphic_expr = 41;
3440
- CircuitScriptParser.RULE_nested_properties_inner = 42;
3441
- CircuitScriptParser.RULE_graphic_expr = 43;
3442
- CircuitScriptParser.RULE_property_expr = 44;
3443
- CircuitScriptParser.RULE_property_key_expr = 45;
3444
- CircuitScriptParser.RULE_property_value_expr = 46;
3445
- CircuitScriptParser.RULE_blank_expr = 47;
3446
- CircuitScriptParser.RULE_wire_atom_expr = 48;
3447
- CircuitScriptParser.RULE_wire_expr = 49;
3448
- CircuitScriptParser.RULE_point_expr = 50;
3449
- CircuitScriptParser.RULE_import_expr = 51;
3450
- CircuitScriptParser.RULE_frame_expr = 52;
3451
- CircuitScriptParser.RULE_if_expr = 53;
3452
- CircuitScriptParser.RULE_if_inner_expr = 54;
3453
- CircuitScriptParser.RULE_else_expr = 55;
3286
+ CircuitScriptParser.RULE_expressions_block = 2;
3287
+ CircuitScriptParser.RULE_path_blocks = 3;
3288
+ CircuitScriptParser.RULE_path_block_inner = 4;
3289
+ CircuitScriptParser.RULE_property_set_expr2 = 5;
3290
+ CircuitScriptParser.RULE_assignment_expr2 = 6;
3291
+ CircuitScriptParser.RULE_pin_select_expr = 7;
3292
+ CircuitScriptParser.RULE_component_modifier_expr = 8;
3293
+ CircuitScriptParser.RULE_data_expr_with_assignment = 9;
3294
+ CircuitScriptParser.RULE_add_component_expr = 10;
3295
+ CircuitScriptParser.RULE_component_select_expr = 11;
3296
+ CircuitScriptParser.RULE_pin_select_expr2 = 12;
3297
+ CircuitScriptParser.RULE_at_component_expr = 13;
3298
+ CircuitScriptParser.RULE_to_component_expr = 14;
3299
+ CircuitScriptParser.RULE_at_to_multiple_expr = 15;
3300
+ CircuitScriptParser.RULE_at_to_multiple_line_expr = 16;
3301
+ CircuitScriptParser.RULE_at_to_multiple_line_expr_to_pin = 17;
3302
+ CircuitScriptParser.RULE_at_block = 18;
3303
+ CircuitScriptParser.RULE_at_block_expressions = 19;
3304
+ CircuitScriptParser.RULE_at_block_pin_expr = 20;
3305
+ CircuitScriptParser.RULE_at_block_pin_expression_simple = 21;
3306
+ CircuitScriptParser.RULE_at_block_pin_expression_complex = 22;
3307
+ CircuitScriptParser.RULE_break_keyword = 23;
3308
+ CircuitScriptParser.RULE_assignment_expr = 24;
3309
+ CircuitScriptParser.RULE_keyword_assignment_expr = 25;
3310
+ CircuitScriptParser.RULE_parameters = 26;
3311
+ CircuitScriptParser.RULE_property_set_expr = 27;
3312
+ CircuitScriptParser.RULE_double_dot_property_set_expr = 28;
3313
+ CircuitScriptParser.RULE_data_expr = 29;
3314
+ CircuitScriptParser.RULE_binary_operator = 30;
3315
+ CircuitScriptParser.RULE_unary_operator = 31;
3316
+ CircuitScriptParser.RULE_value_expr = 32;
3317
+ CircuitScriptParser.RULE_function_def_expr = 33;
3318
+ CircuitScriptParser.RULE_function_expr = 34;
3319
+ CircuitScriptParser.RULE_function_args_expr = 35;
3320
+ CircuitScriptParser.RULE_atom_expr = 36;
3321
+ CircuitScriptParser.RULE_trailer_expr = 37;
3322
+ CircuitScriptParser.RULE_function_call_expr = 38;
3323
+ CircuitScriptParser.RULE_net_namespace_expr = 39;
3324
+ CircuitScriptParser.RULE_function_return_expr = 40;
3325
+ CircuitScriptParser.RULE_property_block_expr = 41;
3326
+ CircuitScriptParser.RULE_create_component_expr = 42;
3327
+ CircuitScriptParser.RULE_create_graphic_expr = 43;
3328
+ CircuitScriptParser.RULE_create_module_expr = 44;
3329
+ CircuitScriptParser.RULE_nested_properties_inner = 45;
3330
+ CircuitScriptParser.RULE_graphic_expr = 46;
3331
+ CircuitScriptParser.RULE_property_expr = 47;
3332
+ CircuitScriptParser.RULE_property_key_expr = 48;
3333
+ CircuitScriptParser.RULE_property_value_expr = 49;
3334
+ CircuitScriptParser.RULE_blank_expr = 50;
3335
+ CircuitScriptParser.RULE_wire_atom_expr = 51;
3336
+ CircuitScriptParser.RULE_wire_expr = 52;
3337
+ CircuitScriptParser.RULE_point_expr = 53;
3338
+ CircuitScriptParser.RULE_import_expr = 54;
3339
+ CircuitScriptParser.RULE_frame_expr = 55;
3340
+ CircuitScriptParser.RULE_if_expr = 56;
3341
+ CircuitScriptParser.RULE_if_inner_expr = 57;
3342
+ CircuitScriptParser.RULE_else_expr = 58;
3454
3343
  CircuitScriptParser.literalNames = [
3455
3344
  null, "':'", "','", "'='", "'..'", "'.'", "'['", "']'", "'break'",
3456
- "'branch'", "'create'", "'component'", "'graphic'", "'wire'", "'pin'",
3457
- "'add'", "'at'", "'to'", "'point'", "'join'", "'parallel'", "'return'",
3458
- "'def'", "'import'", "'if'", "'else'", "'!'", "'frame'", "'=='",
3459
- "'!='", "'>'", "'>='", "'<'", "'<='", "'&&'", "'||'", "'+'", "'-'",
3460
- "'/'", "'*'", "'('", "')'"
3345
+ "'branch'", "'create'", "'component'", "'graphic'", "'module'",
3346
+ "'wire'", "'pin'", "'add'", "'at'", "'to'", "'point'", "'join'",
3347
+ "'parallel'", "'return'", "'def'", "'import'", "'if'", "'else'",
3348
+ "'!'", "'frame'", "'=='", "'!='", "'>'", "'>='", "'<'", "'<='",
3349
+ "'&&'", "'||'", "'+'", "'-'", "'/'", "'*'", "'('", "')'"
3461
3350
  ];
3462
3351
  CircuitScriptParser.symbolicNames = [
3463
3352
  null, null, null, null, null, null, null, null, "Break", "Branch",
3464
- "Create", "Component", "Graphic", "Wire", "Pin", "Add", "At", "To",
3465
- "Point", "Join", "Parallel", "Return", "Define", "Import", "If",
3466
- "Else", "Not", "Frame", "Equals", "NotEquals", "GreaterThan", "GreatOrEqualThan",
3467
- "LessThan", "LessOrEqualThan", "LogicalAnd", "LogicalOr", "Addition",
3468
- "Minus", "Divide", "Multiply", "OPEN_PAREN", "CLOSE_PAREN", "NOT_CONNECTED",
3469
- "BOOLEAN_VALUE", "ID", "INTEGER_VALUE", "DECIMAL_VALUE", "NUMERIC_VALUE",
3470
- "STRING_VALUE", "PERCENTAGE_VALUE", "ALPHA_NUMERIC", "WS", "NEWLINE",
3471
- "COMMENT", "INDENT", "DEDENT"
3353
+ "Create", "Component", "Graphic", "Module", "Wire", "Pin", "Add",
3354
+ "At", "To", "Point", "Join", "Parallel", "Return", "Define", "Import",
3355
+ "If", "Else", "Not", "Frame", "Equals", "NotEquals", "GreaterThan",
3356
+ "GreatOrEqualThan", "LessThan", "LessOrEqualThan", "LogicalAnd",
3357
+ "LogicalOr", "Addition", "Minus", "Divide", "Multiply", "OPEN_PAREN",
3358
+ "CLOSE_PAREN", "NOT_CONNECTED", "BOOLEAN_VALUE", "ID", "INTEGER_VALUE",
3359
+ "DECIMAL_VALUE", "NUMERIC_VALUE", "STRING_VALUE", "PERCENTAGE_VALUE",
3360
+ "ALPHA_NUMERIC", "WS", "NEWLINE", "COMMENT", "INDENT", "DEDENT"
3472
3361
  ];
3473
3362
  CircuitScriptParser.ruleNames = [
3474
- "script", "expression", "path_blocks", "path_block_inner", "property_set_expr2",
3475
- "assignment_expr2", "pin_select_expr", "component_modifier_expr",
3363
+ "script", "expression", "expressions_block", "path_blocks", "path_block_inner",
3364
+ "property_set_expr2", "assignment_expr2", "pin_select_expr", "component_modifier_expr",
3476
3365
  "data_expr_with_assignment", "add_component_expr", "component_select_expr",
3477
3366
  "pin_select_expr2", "at_component_expr", "to_component_expr", "at_to_multiple_expr",
3478
3367
  "at_to_multiple_line_expr", "at_to_multiple_line_expr_to_pin", "at_block",
@@ -3482,13 +3371,14 @@ CircuitScriptParser.ruleNames = [
3482
3371
  "data_expr", "binary_operator", "unary_operator", "value_expr",
3483
3372
  "function_def_expr", "function_expr", "function_args_expr", "atom_expr",
3484
3373
  "trailer_expr", "function_call_expr", "net_namespace_expr", "function_return_expr",
3485
- "create_component_expr", "create_graphic_expr", "nested_properties_inner",
3486
- "graphic_expr", "property_expr", "property_key_expr", "property_value_expr",
3487
- "blank_expr", "wire_atom_expr", "wire_expr", "point_expr", "import_expr",
3488
- "frame_expr", "if_expr", "if_inner_expr", "else_expr",
3374
+ "property_block_expr", "create_component_expr", "create_graphic_expr",
3375
+ "create_module_expr", "nested_properties_inner", "graphic_expr",
3376
+ "property_expr", "property_key_expr", "property_value_expr", "blank_expr",
3377
+ "wire_atom_expr", "wire_expr", "point_expr", "import_expr", "frame_expr",
3378
+ "if_expr", "if_inner_expr", "else_expr",
3489
3379
  ];
3490
3380
  CircuitScriptParser._serializedATN = [
3491
- 4, 1, 55, 620, 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,
3381
+ 4, 1, 56, 607, 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,
3492
3382
  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,
3493
3383
  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,
3494
3384
  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,
@@ -3496,227 +3386,220 @@ CircuitScriptParser._serializedATN = [
3496
3386
  7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39,
3497
3387
  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,
3498
3388
  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,
3499
- 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 1, 0, 1, 0, 4, 0, 115, 8, 0, 11, 0, 12, 0, 116,
3500
- 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, 1, 1, 1, 1,
3501
- 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 139, 8, 1, 1, 2, 4, 2, 142, 8, 2, 11, 2, 12, 2, 143, 1, 3, 1,
3502
- 3, 1, 3, 1, 3, 1, 3, 1, 3, 4, 3, 152, 8, 3, 11, 3, 12, 3, 153, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4,
3503
- 1, 4, 1, 4, 1, 4, 4, 4, 164, 8, 4, 11, 4, 12, 4, 165, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1,
3504
- 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 181, 8, 7, 1, 8, 1, 8, 3, 8, 185, 8, 8, 1, 8, 5,
3505
- 8, 188, 8, 8, 10, 8, 12, 8, 191, 9, 8, 1, 8, 3, 8, 194, 8, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10,
3506
- 3, 10, 201, 8, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 3, 12, 208, 8, 12, 1, 13, 1, 13, 1,
3507
- 13, 1, 13, 5, 13, 214, 8, 13, 10, 13, 12, 13, 217, 9, 13, 1, 13, 3, 13, 220, 8, 13, 1,
3508
- 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 5, 14, 228, 8, 14, 10, 14, 12, 14, 231, 9, 14, 1,
3509
- 14, 1, 14, 1, 14, 1, 14, 1, 14, 4, 14, 238, 8, 14, 11, 14, 12, 14, 239, 1, 14, 1, 14, 1,
3510
- 15, 1, 15, 1, 15, 1, 15, 1, 15, 5, 15, 249, 8, 15, 10, 15, 12, 15, 252, 9, 15, 1, 16, 1,
3511
- 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 4, 17, 262, 8, 17, 11, 17, 12, 17, 263, 1,
3512
- 17, 1, 17, 1, 18, 1, 18, 3, 18, 270, 8, 18, 1, 19, 1, 19, 1, 19, 1, 19, 3, 19, 276, 8, 19,
3513
- 1, 20, 1, 20, 3, 20, 280, 8, 20, 1, 21, 1, 21, 1, 21, 1, 21, 4, 21, 286, 8, 21, 11, 21,
3514
- 12, 21, 287, 1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24,
3515
- 1, 24, 1, 25, 1, 25, 1, 25, 5, 25, 305, 8, 25, 10, 25, 12, 25, 308, 9, 25, 1, 25, 1, 25,
3516
- 5, 25, 312, 8, 25, 10, 25, 12, 25, 315, 9, 25, 1, 25, 1, 25, 1, 25, 5, 25, 320, 8, 25,
3517
- 10, 25, 12, 25, 323, 9, 25, 3, 25, 325, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27,
3518
- 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 343, 8, 28,
3519
- 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 351, 8, 28, 1, 28, 1, 28, 1, 28, 1, 28,
3520
- 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 5, 28, 366, 8, 28, 10, 28,
3521
- 12, 28, 369, 9, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 31, 3, 31, 376, 8, 31, 1, 31, 1, 31,
3522
- 3, 31, 380, 8, 31, 1, 32, 1, 32, 1, 32, 1, 32, 3, 32, 386, 8, 32, 1, 32, 1, 32, 1, 32, 1,
3523
- 32, 1, 32, 1, 32, 4, 32, 394, 8, 32, 11, 32, 12, 32, 395, 1, 32, 1, 32, 1, 33, 1, 33, 3,
3524
- 33, 402, 8, 33, 1, 34, 1, 34, 1, 34, 5, 34, 407, 8, 34, 10, 34, 12, 34, 410, 9, 34, 1,
3525
- 34, 1, 34, 1, 34, 1, 34, 5, 34, 416, 8, 34, 10, 34, 12, 34, 419, 9, 34, 1, 34, 1, 34, 1,
3526
- 34, 1, 34, 1, 34, 1, 34, 1, 34, 5, 34, 428, 8, 34, 10, 34, 12, 34, 431, 9, 34, 3, 34, 433,
3527
- 8, 34, 1, 35, 1, 35, 1, 35, 5, 35, 438, 8, 35, 10, 35, 12, 35, 441, 9, 35, 1, 36, 1, 36,
3528
- 3, 36, 445, 8, 36, 1, 36, 1, 36, 1, 36, 3, 36, 450, 8, 36, 1, 37, 3, 37, 453, 8, 37, 1,
3529
- 37, 1, 37, 4, 37, 457, 8, 37, 11, 37, 12, 37, 458, 1, 38, 3, 38, 462, 8, 38, 1, 38, 1,
3530
- 38, 3, 38, 466, 8, 38, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1,
3531
- 40, 4, 40, 478, 8, 40, 11, 40, 12, 40, 479, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1,
3532
- 41, 1, 41, 1, 41, 4, 41, 491, 8, 41, 11, 41, 12, 41, 492, 1, 41, 1, 41, 1, 42, 1, 42, 1,
3533
- 42, 1, 42, 4, 42, 501, 8, 42, 11, 42, 12, 42, 502, 1, 42, 1, 42, 1, 43, 1, 43, 3, 43, 509,
3534
- 8, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 3, 43, 517, 8, 43, 1, 44, 1, 44, 1, 44,
3535
- 1, 44, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 5, 46, 529, 8, 46, 10, 46, 12, 46, 532,
3536
- 9, 46, 3, 46, 534, 8, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 3, 48, 543, 8,
3537
- 48, 1, 48, 3, 48, 546, 8, 48, 1, 49, 1, 49, 5, 49, 550, 8, 49, 10, 49, 12, 49, 553, 9,
3538
- 49, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 4,
3539
- 52, 567, 8, 52, 11, 52, 12, 52, 568, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1,
3540
- 53, 1, 53, 4, 53, 580, 8, 53, 11, 53, 12, 53, 581, 1, 53, 1, 53, 5, 53, 586, 8, 53, 10,
3541
- 53, 12, 53, 589, 9, 53, 1, 53, 3, 53, 592, 8, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1,
3542
- 54, 1, 54, 1, 54, 4, 54, 602, 8, 54, 11, 54, 12, 54, 603, 1, 54, 1, 54, 1, 55, 1, 55, 1,
3543
- 55, 1, 55, 1, 55, 1, 55, 4, 55, 614, 8, 55, 11, 55, 12, 55, 615, 1, 55, 1, 55, 1, 55, 0,
3544
- 1, 56, 56, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40,
3545
- 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84,
3546
- 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 0, 12, 2, 0, 9, 9, 18, 20,
3547
- 1, 0, 44, 45, 2, 0, 45, 45, 48, 48, 2, 0, 42, 42, 45, 45, 1, 0, 38, 39, 1, 0, 36, 37, 1,
3548
- 0, 34, 35, 1, 0, 28, 33, 2, 0, 26, 26, 37, 37, 2, 0, 43, 43, 45, 49, 2, 0, 14, 14, 44, 44,
3549
- 2, 0, 44, 45, 48, 48, 661, 0, 114, 1, 0, 0, 0, 2, 138, 1, 0, 0, 0, 4, 141, 1, 0, 0, 0, 6,
3550
- 145, 1, 0, 0, 0, 8, 157, 1, 0, 0, 0, 10, 169, 1, 0, 0, 0, 12, 173, 1, 0, 0, 0, 14, 176, 1,
3551
- 0, 0, 0, 16, 184, 1, 0, 0, 0, 18, 195, 1, 0, 0, 0, 20, 200, 1, 0, 0, 0, 22, 202, 1, 0, 0,
3552
- 0, 24, 204, 1, 0, 0, 0, 26, 209, 1, 0, 0, 0, 28, 221, 1, 0, 0, 0, 30, 243, 1, 0, 0, 0, 32,
3553
- 253, 1, 0, 0, 0, 34, 255, 1, 0, 0, 0, 36, 269, 1, 0, 0, 0, 38, 271, 1, 0, 0, 0, 40, 279,
3554
- 1, 0, 0, 0, 42, 281, 1, 0, 0, 0, 44, 291, 1, 0, 0, 0, 46, 293, 1, 0, 0, 0, 48, 297, 1, 0,
3555
- 0, 0, 50, 324, 1, 0, 0, 0, 52, 326, 1, 0, 0, 0, 54, 330, 1, 0, 0, 0, 56, 350, 1, 0, 0, 0,
3556
- 58, 370, 1, 0, 0, 0, 60, 372, 1, 0, 0, 0, 62, 379, 1, 0, 0, 0, 64, 381, 1, 0, 0, 0, 66, 401,
3557
- 1, 0, 0, 0, 68, 432, 1, 0, 0, 0, 70, 434, 1, 0, 0, 0, 72, 449, 1, 0, 0, 0, 74, 452, 1, 0,
3558
- 0, 0, 76, 461, 1, 0, 0, 0, 78, 467, 1, 0, 0, 0, 80, 470, 1, 0, 0, 0, 82, 483, 1, 0, 0, 0,
3559
- 84, 496, 1, 0, 0, 0, 86, 506, 1, 0, 0, 0, 88, 518, 1, 0, 0, 0, 90, 522, 1, 0, 0, 0, 92, 533,
3560
- 1, 0, 0, 0, 94, 535, 1, 0, 0, 0, 96, 545, 1, 0, 0, 0, 98, 547, 1, 0, 0, 0, 100, 554, 1, 0,
3561
- 0, 0, 102, 557, 1, 0, 0, 0, 104, 560, 1, 0, 0, 0, 106, 572, 1, 0, 0, 0, 108, 593, 1, 0,
3562
- 0, 0, 110, 607, 1, 0, 0, 0, 112, 115, 3, 2, 1, 0, 113, 115, 5, 52, 0, 0, 114, 112, 1, 0,
3563
- 0, 0, 114, 113, 1, 0, 0, 0, 115, 116, 1, 0, 0, 0, 116, 114, 1, 0, 0, 0, 116, 117, 1, 0,
3564
- 0, 0, 117, 118, 1, 0, 0, 0, 118, 119, 5, 0, 0, 1, 119, 1, 1, 0, 0, 0, 120, 139, 3, 18, 9,
3565
- 0, 121, 139, 3, 26, 13, 0, 122, 139, 3, 24, 12, 0, 123, 139, 3, 46, 23, 0, 124, 139,
3566
- 3, 52, 26, 0, 125, 139, 3, 8, 4, 0, 126, 139, 3, 54, 27, 0, 127, 139, 3, 44, 22, 0, 128,
3567
- 139, 3, 64, 32, 0, 129, 139, 3, 74, 37, 0, 130, 139, 3, 98, 49, 0, 131, 139, 3, 102,
3568
- 51, 0, 132, 139, 3, 104, 52, 0, 133, 139, 3, 70, 35, 0, 134, 139, 3, 34, 17, 0, 135,
3569
- 139, 3, 4, 2, 0, 136, 139, 3, 100, 50, 0, 137, 139, 3, 106, 53, 0, 138, 120, 1, 0, 0,
3570
- 0, 138, 121, 1, 0, 0, 0, 138, 122, 1, 0, 0, 0, 138, 123, 1, 0, 0, 0, 138, 124, 1, 0, 0,
3571
- 0, 138, 125, 1, 0, 0, 0, 138, 126, 1, 0, 0, 0, 138, 127, 1, 0, 0, 0, 138, 128, 1, 0, 0,
3572
- 0, 138, 129, 1, 0, 0, 0, 138, 130, 1, 0, 0, 0, 138, 131, 1, 0, 0, 0, 138, 132, 1, 0, 0,
3573
- 0, 138, 133, 1, 0, 0, 0, 138, 134, 1, 0, 0, 0, 138, 135, 1, 0, 0, 0, 138, 136, 1, 0, 0,
3574
- 0, 138, 137, 1, 0, 0, 0, 139, 3, 1, 0, 0, 0, 140, 142, 3, 6, 3, 0, 141, 140, 1, 0, 0, 0,
3575
- 142, 143, 1, 0, 0, 0, 143, 141, 1, 0, 0, 0, 143, 144, 1, 0, 0, 0, 144, 5, 1, 0, 0, 0, 145,
3576
- 146, 7, 0, 0, 0, 146, 147, 5, 1, 0, 0, 147, 148, 5, 52, 0, 0, 148, 151, 5, 54, 0, 0, 149,
3577
- 152, 5, 52, 0, 0, 150, 152, 3, 2, 1, 0, 151, 149, 1, 0, 0, 0, 151, 150, 1, 0, 0, 0, 152,
3578
- 153, 1, 0, 0, 0, 153, 151, 1, 0, 0, 0, 153, 154, 1, 0, 0, 0, 154, 155, 1, 0, 0, 0, 155,
3579
- 156, 5, 55, 0, 0, 156, 7, 1, 0, 0, 0, 157, 158, 3, 70, 35, 0, 158, 159, 5, 1, 0, 0, 159,
3580
- 160, 5, 52, 0, 0, 160, 163, 5, 54, 0, 0, 161, 164, 5, 52, 0, 0, 162, 164, 3, 10, 5, 0,
3581
- 163, 161, 1, 0, 0, 0, 163, 162, 1, 0, 0, 0, 164, 165, 1, 0, 0, 0, 165, 163, 1, 0, 0, 0,
3582
- 165, 166, 1, 0, 0, 0, 166, 167, 1, 0, 0, 0, 167, 168, 5, 55, 0, 0, 168, 9, 1, 0, 0, 0, 169,
3583
- 170, 7, 1, 0, 0, 170, 171, 5, 1, 0, 0, 171, 172, 3, 62, 31, 0, 172, 11, 1, 0, 0, 0, 173,
3584
- 174, 5, 14, 0, 0, 174, 175, 7, 2, 0, 0, 175, 13, 1, 0, 0, 0, 176, 177, 5, 44, 0, 0, 177,
3585
- 180, 5, 1, 0, 0, 178, 181, 3, 62, 31, 0, 179, 181, 5, 44, 0, 0, 180, 178, 1, 0, 0, 0, 180,
3586
- 179, 1, 0, 0, 0, 181, 15, 1, 0, 0, 0, 182, 185, 3, 56, 28, 0, 183, 185, 3, 46, 23, 0, 184,
3587
- 182, 1, 0, 0, 0, 184, 183, 1, 0, 0, 0, 185, 189, 1, 0, 0, 0, 186, 188, 3, 14, 7, 0, 187,
3588
- 186, 1, 0, 0, 0, 188, 191, 1, 0, 0, 0, 189, 187, 1, 0, 0, 0, 189, 190, 1, 0, 0, 0, 190,
3589
- 193, 1, 0, 0, 0, 191, 189, 1, 0, 0, 0, 192, 194, 3, 12, 6, 0, 193, 192, 1, 0, 0, 0, 193,
3590
- 194, 1, 0, 0, 0, 194, 17, 1, 0, 0, 0, 195, 196, 5, 15, 0, 0, 196, 197, 3, 16, 8, 0, 197,
3591
- 19, 1, 0, 0, 0, 198, 201, 3, 16, 8, 0, 199, 201, 3, 12, 6, 0, 200, 198, 1, 0, 0, 0, 200,
3592
- 199, 1, 0, 0, 0, 201, 21, 1, 0, 0, 0, 202, 203, 7, 2, 0, 0, 203, 23, 1, 0, 0, 0, 204, 207,
3593
- 5, 16, 0, 0, 205, 208, 3, 20, 10, 0, 206, 208, 5, 18, 0, 0, 207, 205, 1, 0, 0, 0, 207,
3594
- 206, 1, 0, 0, 0, 208, 25, 1, 0, 0, 0, 209, 219, 5, 17, 0, 0, 210, 215, 3, 20, 10, 0, 211,
3595
- 212, 5, 2, 0, 0, 212, 214, 3, 20, 10, 0, 213, 211, 1, 0, 0, 0, 214, 217, 1, 0, 0, 0, 215,
3596
- 213, 1, 0, 0, 0, 215, 216, 1, 0, 0, 0, 216, 220, 1, 0, 0, 0, 217, 215, 1, 0, 0, 0, 218,
3597
- 220, 5, 18, 0, 0, 219, 210, 1, 0, 0, 0, 219, 218, 1, 0, 0, 0, 220, 27, 1, 0, 0, 0, 221,
3598
- 222, 5, 16, 0, 0, 222, 223, 3, 20, 10, 0, 223, 224, 5, 17, 0, 0, 224, 229, 3, 20, 10,
3599
- 0, 225, 226, 5, 2, 0, 0, 226, 228, 3, 20, 10, 0, 227, 225, 1, 0, 0, 0, 228, 231, 1, 0,
3600
- 0, 0, 229, 227, 1, 0, 0, 0, 229, 230, 1, 0, 0, 0, 230, 232, 1, 0, 0, 0, 231, 229, 1, 0,
3601
- 0, 0, 232, 233, 5, 1, 0, 0, 233, 234, 5, 52, 0, 0, 234, 237, 5, 54, 0, 0, 235, 238, 5,
3602
- 52, 0, 0, 236, 238, 3, 30, 15, 0, 237, 235, 1, 0, 0, 0, 237, 236, 1, 0, 0, 0, 238, 239,
3603
- 1, 0, 0, 0, 239, 237, 1, 0, 0, 0, 239, 240, 1, 0, 0, 0, 240, 241, 1, 0, 0, 0, 241, 242,
3604
- 5, 55, 0, 0, 242, 29, 1, 0, 0, 0, 243, 244, 3, 22, 11, 0, 244, 245, 5, 1, 0, 0, 245, 250,
3605
- 3, 32, 16, 0, 246, 247, 5, 2, 0, 0, 247, 249, 3, 32, 16, 0, 248, 246, 1, 0, 0, 0, 249,
3606
- 252, 1, 0, 0, 0, 250, 248, 1, 0, 0, 0, 250, 251, 1, 0, 0, 0, 251, 31, 1, 0, 0, 0, 252, 250,
3607
- 1, 0, 0, 0, 253, 254, 7, 3, 0, 0, 254, 33, 1, 0, 0, 0, 255, 256, 3, 24, 12, 0, 256, 257,
3608
- 5, 1, 0, 0, 257, 258, 5, 52, 0, 0, 258, 261, 5, 54, 0, 0, 259, 262, 5, 52, 0, 0, 260, 262,
3609
- 3, 36, 18, 0, 261, 259, 1, 0, 0, 0, 261, 260, 1, 0, 0, 0, 262, 263, 1, 0, 0, 0, 263, 261,
3610
- 1, 0, 0, 0, 263, 264, 1, 0, 0, 0, 264, 265, 1, 0, 0, 0, 265, 266, 5, 55, 0, 0, 266, 35,
3611
- 1, 0, 0, 0, 267, 270, 3, 2, 1, 0, 268, 270, 3, 38, 19, 0, 269, 267, 1, 0, 0, 0, 269, 268,
3612
- 1, 0, 0, 0, 270, 37, 1, 0, 0, 0, 271, 272, 3, 22, 11, 0, 272, 275, 5, 1, 0, 0, 273, 276,
3613
- 3, 40, 20, 0, 274, 276, 3, 42, 21, 0, 275, 273, 1, 0, 0, 0, 275, 274, 1, 0, 0, 0, 276,
3614
- 39, 1, 0, 0, 0, 277, 280, 3, 2, 1, 0, 278, 280, 5, 42, 0, 0, 279, 277, 1, 0, 0, 0, 279,
3615
- 278, 1, 0, 0, 0, 280, 41, 1, 0, 0, 0, 281, 282, 5, 52, 0, 0, 282, 285, 5, 54, 0, 0, 283,
3616
- 286, 5, 52, 0, 0, 284, 286, 3, 2, 1, 0, 285, 283, 1, 0, 0, 0, 285, 284, 1, 0, 0, 0, 286,
3617
- 287, 1, 0, 0, 0, 287, 285, 1, 0, 0, 0, 287, 288, 1, 0, 0, 0, 288, 289, 1, 0, 0, 0, 289,
3618
- 290, 5, 55, 0, 0, 290, 43, 1, 0, 0, 0, 291, 292, 5, 8, 0, 0, 292, 45, 1, 0, 0, 0, 293, 294,
3619
- 3, 70, 35, 0, 294, 295, 5, 3, 0, 0, 295, 296, 3, 56, 28, 0, 296, 47, 1, 0, 0, 0, 297, 298,
3620
- 5, 44, 0, 0, 298, 299, 5, 3, 0, 0, 299, 300, 3, 56, 28, 0, 300, 49, 1, 0, 0, 0, 301, 306,
3621
- 3, 56, 28, 0, 302, 303, 5, 2, 0, 0, 303, 305, 3, 56, 28, 0, 304, 302, 1, 0, 0, 0, 305,
3622
- 308, 1, 0, 0, 0, 306, 304, 1, 0, 0, 0, 306, 307, 1, 0, 0, 0, 307, 313, 1, 0, 0, 0, 308,
3623
- 306, 1, 0, 0, 0, 309, 310, 5, 2, 0, 0, 310, 312, 3, 48, 24, 0, 311, 309, 1, 0, 0, 0, 312,
3624
- 315, 1, 0, 0, 0, 313, 311, 1, 0, 0, 0, 313, 314, 1, 0, 0, 0, 314, 325, 1, 0, 0, 0, 315,
3625
- 313, 1, 0, 0, 0, 316, 321, 3, 48, 24, 0, 317, 318, 5, 2, 0, 0, 318, 320, 3, 48, 24, 0,
3626
- 319, 317, 1, 0, 0, 0, 320, 323, 1, 0, 0, 0, 321, 319, 1, 0, 0, 0, 321, 322, 1, 0, 0, 0,
3627
- 322, 325, 1, 0, 0, 0, 323, 321, 1, 0, 0, 0, 324, 301, 1, 0, 0, 0, 324, 316, 1, 0, 0, 0,
3628
- 325, 51, 1, 0, 0, 0, 326, 327, 3, 70, 35, 0, 327, 328, 5, 3, 0, 0, 328, 329, 3, 56, 28,
3629
- 0, 329, 53, 1, 0, 0, 0, 330, 331, 5, 4, 0, 0, 331, 332, 5, 44, 0, 0, 332, 333, 5, 3, 0,
3630
- 0, 333, 334, 3, 56, 28, 0, 334, 55, 1, 0, 0, 0, 335, 336, 6, 28, -1, 0, 336, 337, 5, 40,
3631
- 0, 0, 337, 338, 3, 56, 28, 0, 338, 339, 5, 41, 0, 0, 339, 351, 1, 0, 0, 0, 340, 343, 3,
3632
- 62, 31, 0, 341, 343, 3, 70, 35, 0, 342, 340, 1, 0, 0, 0, 342, 341, 1, 0, 0, 0, 343, 351,
3633
- 1, 0, 0, 0, 344, 345, 3, 60, 30, 0, 345, 346, 3, 56, 28, 8, 346, 351, 1, 0, 0, 0, 347,
3634
- 351, 3, 80, 40, 0, 348, 351, 3, 82, 41, 0, 349, 351, 3, 74, 37, 0, 350, 335, 1, 0, 0,
3635
- 0, 350, 342, 1, 0, 0, 0, 350, 344, 1, 0, 0, 0, 350, 347, 1, 0, 0, 0, 350, 348, 1, 0, 0,
3636
- 0, 350, 349, 1, 0, 0, 0, 351, 367, 1, 0, 0, 0, 352, 353, 10, 7, 0, 0, 353, 354, 7, 4, 0,
3637
- 0, 354, 366, 3, 56, 28, 8, 355, 356, 10, 6, 0, 0, 356, 357, 7, 5, 0, 0, 357, 366, 3, 56,
3638
- 28, 7, 358, 359, 10, 5, 0, 0, 359, 360, 3, 58, 29, 0, 360, 361, 3, 56, 28, 6, 361, 366,
3639
- 1, 0, 0, 0, 362, 363, 10, 4, 0, 0, 363, 364, 7, 6, 0, 0, 364, 366, 3, 56, 28, 5, 365, 352,
3640
- 1, 0, 0, 0, 365, 355, 1, 0, 0, 0, 365, 358, 1, 0, 0, 0, 365, 362, 1, 0, 0, 0, 366, 369,
3641
- 1, 0, 0, 0, 367, 365, 1, 0, 0, 0, 367, 368, 1, 0, 0, 0, 368, 57, 1, 0, 0, 0, 369, 367, 1,
3642
- 0, 0, 0, 370, 371, 7, 7, 0, 0, 371, 59, 1, 0, 0, 0, 372, 373, 7, 8, 0, 0, 373, 61, 1, 0,
3643
- 0, 0, 374, 376, 5, 37, 0, 0, 375, 374, 1, 0, 0, 0, 375, 376, 1, 0, 0, 0, 376, 377, 1, 0,
3644
- 0, 0, 377, 380, 7, 9, 0, 0, 378, 380, 3, 94, 47, 0, 379, 375, 1, 0, 0, 0, 379, 378, 1,
3645
- 0, 0, 0, 380, 63, 1, 0, 0, 0, 381, 382, 5, 22, 0, 0, 382, 383, 5, 44, 0, 0, 383, 385, 5,
3646
- 40, 0, 0, 384, 386, 3, 68, 34, 0, 385, 384, 1, 0, 0, 0, 385, 386, 1, 0, 0, 0, 386, 387,
3647
- 1, 0, 0, 0, 387, 388, 5, 41, 0, 0, 388, 389, 5, 1, 0, 0, 389, 390, 5, 52, 0, 0, 390, 393,
3648
- 5, 54, 0, 0, 391, 394, 5, 52, 0, 0, 392, 394, 3, 66, 33, 0, 393, 391, 1, 0, 0, 0, 393,
3649
- 392, 1, 0, 0, 0, 394, 395, 1, 0, 0, 0, 395, 393, 1, 0, 0, 0, 395, 396, 1, 0, 0, 0, 396,
3650
- 397, 1, 0, 0, 0, 397, 398, 5, 55, 0, 0, 398, 65, 1, 0, 0, 0, 399, 402, 3, 2, 1, 0, 400,
3651
- 402, 3, 78, 39, 0, 401, 399, 1, 0, 0, 0, 401, 400, 1, 0, 0, 0, 402, 67, 1, 0, 0, 0, 403,
3652
- 408, 5, 44, 0, 0, 404, 405, 5, 2, 0, 0, 405, 407, 5, 44, 0, 0, 406, 404, 1, 0, 0, 0, 407,
3653
- 410, 1, 0, 0, 0, 408, 406, 1, 0, 0, 0, 408, 409, 1, 0, 0, 0, 409, 417, 1, 0, 0, 0, 410,
3654
- 408, 1, 0, 0, 0, 411, 412, 5, 2, 0, 0, 412, 413, 5, 44, 0, 0, 413, 414, 5, 3, 0, 0, 414,
3655
- 416, 3, 62, 31, 0, 415, 411, 1, 0, 0, 0, 416, 419, 1, 0, 0, 0, 417, 415, 1, 0, 0, 0, 417,
3656
- 418, 1, 0, 0, 0, 418, 433, 1, 0, 0, 0, 419, 417, 1, 0, 0, 0, 420, 421, 5, 44, 0, 0, 421,
3657
- 422, 5, 3, 0, 0, 422, 429, 3, 62, 31, 0, 423, 424, 5, 2, 0, 0, 424, 425, 5, 44, 0, 0, 425,
3658
- 426, 5, 3, 0, 0, 426, 428, 3, 62, 31, 0, 427, 423, 1, 0, 0, 0, 428, 431, 1, 0, 0, 0, 429,
3659
- 427, 1, 0, 0, 0, 429, 430, 1, 0, 0, 0, 430, 433, 1, 0, 0, 0, 431, 429, 1, 0, 0, 0, 432,
3660
- 403, 1, 0, 0, 0, 432, 420, 1, 0, 0, 0, 433, 69, 1, 0, 0, 0, 434, 439, 5, 44, 0, 0, 435,
3661
- 436, 5, 5, 0, 0, 436, 438, 5, 44, 0, 0, 437, 435, 1, 0, 0, 0, 438, 441, 1, 0, 0, 0, 439,
3662
- 437, 1, 0, 0, 0, 439, 440, 1, 0, 0, 0, 440, 71, 1, 0, 0, 0, 441, 439, 1, 0, 0, 0, 442, 444,
3663
- 5, 40, 0, 0, 443, 445, 3, 50, 25, 0, 444, 443, 1, 0, 0, 0, 444, 445, 1, 0, 0, 0, 445, 446,
3664
- 1, 0, 0, 0, 446, 450, 5, 41, 0, 0, 447, 448, 5, 5, 0, 0, 448, 450, 5, 44, 0, 0, 449, 442,
3665
- 1, 0, 0, 0, 449, 447, 1, 0, 0, 0, 450, 73, 1, 0, 0, 0, 451, 453, 3, 76, 38, 0, 452, 451,
3666
- 1, 0, 0, 0, 452, 453, 1, 0, 0, 0, 453, 454, 1, 0, 0, 0, 454, 456, 5, 44, 0, 0, 455, 457,
3667
- 3, 72, 36, 0, 456, 455, 1, 0, 0, 0, 457, 458, 1, 0, 0, 0, 458, 456, 1, 0, 0, 0, 458, 459,
3668
- 1, 0, 0, 0, 459, 75, 1, 0, 0, 0, 460, 462, 5, 36, 0, 0, 461, 460, 1, 0, 0, 0, 461, 462,
3669
- 1, 0, 0, 0, 462, 463, 1, 0, 0, 0, 463, 465, 5, 38, 0, 0, 464, 466, 3, 56, 28, 0, 465, 464,
3670
- 1, 0, 0, 0, 465, 466, 1, 0, 0, 0, 466, 77, 1, 0, 0, 0, 467, 468, 5, 21, 0, 0, 468, 469,
3671
- 3, 56, 28, 0, 469, 79, 1, 0, 0, 0, 470, 471, 5, 10, 0, 0, 471, 472, 5, 11, 0, 0, 472, 473,
3672
- 5, 1, 0, 0, 473, 474, 5, 52, 0, 0, 474, 477, 5, 54, 0, 0, 475, 478, 5, 52, 0, 0, 476, 478,
3673
- 3, 88, 44, 0, 477, 475, 1, 0, 0, 0, 477, 476, 1, 0, 0, 0, 478, 479, 1, 0, 0, 0, 479, 477,
3674
- 1, 0, 0, 0, 479, 480, 1, 0, 0, 0, 480, 481, 1, 0, 0, 0, 481, 482, 5, 55, 0, 0, 482, 81,
3675
- 1, 0, 0, 0, 483, 484, 5, 10, 0, 0, 484, 485, 5, 12, 0, 0, 485, 486, 5, 1, 0, 0, 486, 487,
3676
- 5, 52, 0, 0, 487, 490, 5, 54, 0, 0, 488, 491, 5, 52, 0, 0, 489, 491, 3, 86, 43, 0, 490,
3677
- 488, 1, 0, 0, 0, 490, 489, 1, 0, 0, 0, 491, 492, 1, 0, 0, 0, 492, 490, 1, 0, 0, 0, 492,
3678
- 493, 1, 0, 0, 0, 493, 494, 1, 0, 0, 0, 494, 495, 5, 55, 0, 0, 495, 83, 1, 0, 0, 0, 496,
3679
- 497, 5, 52, 0, 0, 497, 500, 5, 54, 0, 0, 498, 501, 5, 52, 0, 0, 499, 501, 3, 88, 44, 0,
3680
- 500, 498, 1, 0, 0, 0, 500, 499, 1, 0, 0, 0, 501, 502, 1, 0, 0, 0, 502, 500, 1, 0, 0, 0,
3681
- 502, 503, 1, 0, 0, 0, 503, 504, 1, 0, 0, 0, 504, 505, 5, 55, 0, 0, 505, 85, 1, 0, 0, 0,
3682
- 506, 508, 7, 10, 0, 0, 507, 509, 5, 1, 0, 0, 508, 507, 1, 0, 0, 0, 508, 509, 1, 0, 0, 0,
3683
- 509, 516, 1, 0, 0, 0, 510, 517, 3, 50, 25, 0, 511, 512, 5, 40, 0, 0, 512, 513, 3, 50,
3684
- 25, 0, 513, 514, 5, 41, 0, 0, 514, 517, 1, 0, 0, 0, 515, 517, 3, 84, 42, 0, 516, 510,
3685
- 1, 0, 0, 0, 516, 511, 1, 0, 0, 0, 516, 515, 1, 0, 0, 0, 517, 87, 1, 0, 0, 0, 518, 519, 3,
3686
- 90, 45, 0, 519, 520, 5, 1, 0, 0, 520, 521, 3, 92, 46, 0, 521, 89, 1, 0, 0, 0, 522, 523,
3687
- 7, 11, 0, 0, 523, 91, 1, 0, 0, 0, 524, 534, 3, 84, 42, 0, 525, 530, 3, 56, 28, 0, 526,
3688
- 527, 5, 2, 0, 0, 527, 529, 3, 56, 28, 0, 528, 526, 1, 0, 0, 0, 529, 532, 1, 0, 0, 0, 530,
3689
- 528, 1, 0, 0, 0, 530, 531, 1, 0, 0, 0, 531, 534, 1, 0, 0, 0, 532, 530, 1, 0, 0, 0, 533,
3690
- 524, 1, 0, 0, 0, 533, 525, 1, 0, 0, 0, 534, 93, 1, 0, 0, 0, 535, 536, 5, 6, 0, 0, 536, 537,
3691
- 5, 45, 0, 0, 537, 538, 5, 7, 0, 0, 538, 95, 1, 0, 0, 0, 539, 542, 5, 44, 0, 0, 540, 543,
3692
- 5, 45, 0, 0, 541, 543, 3, 56, 28, 0, 542, 540, 1, 0, 0, 0, 542, 541, 1, 0, 0, 0, 543, 546,
3693
- 1, 0, 0, 0, 544, 546, 5, 44, 0, 0, 545, 539, 1, 0, 0, 0, 545, 544, 1, 0, 0, 0, 546, 97,
3694
- 1, 0, 0, 0, 547, 551, 5, 13, 0, 0, 548, 550, 3, 96, 48, 0, 549, 548, 1, 0, 0, 0, 550, 553,
3695
- 1, 0, 0, 0, 551, 549, 1, 0, 0, 0, 551, 552, 1, 0, 0, 0, 552, 99, 1, 0, 0, 0, 553, 551, 1,
3696
- 0, 0, 0, 554, 555, 5, 18, 0, 0, 555, 556, 5, 44, 0, 0, 556, 101, 1, 0, 0, 0, 557, 558,
3697
- 5, 23, 0, 0, 558, 559, 5, 44, 0, 0, 559, 103, 1, 0, 0, 0, 560, 561, 5, 27, 0, 0, 561, 562,
3698
- 5, 1, 0, 0, 562, 563, 5, 52, 0, 0, 563, 566, 5, 54, 0, 0, 564, 567, 5, 52, 0, 0, 565, 567,
3699
- 3, 2, 1, 0, 566, 564, 1, 0, 0, 0, 566, 565, 1, 0, 0, 0, 567, 568, 1, 0, 0, 0, 568, 566,
3700
- 1, 0, 0, 0, 568, 569, 1, 0, 0, 0, 569, 570, 1, 0, 0, 0, 570, 571, 5, 55, 0, 0, 571, 105,
3701
- 1, 0, 0, 0, 572, 573, 5, 24, 0, 0, 573, 574, 3, 56, 28, 0, 574, 575, 5, 1, 0, 0, 575, 576,
3702
- 5, 52, 0, 0, 576, 579, 5, 54, 0, 0, 577, 580, 5, 52, 0, 0, 578, 580, 3, 2, 1, 0, 579, 577,
3703
- 1, 0, 0, 0, 579, 578, 1, 0, 0, 0, 580, 581, 1, 0, 0, 0, 581, 579, 1, 0, 0, 0, 581, 582,
3704
- 1, 0, 0, 0, 582, 583, 1, 0, 0, 0, 583, 587, 5, 55, 0, 0, 584, 586, 3, 108, 54, 0, 585,
3705
- 584, 1, 0, 0, 0, 586, 589, 1, 0, 0, 0, 587, 585, 1, 0, 0, 0, 587, 588, 1, 0, 0, 0, 588,
3706
- 591, 1, 0, 0, 0, 589, 587, 1, 0, 0, 0, 590, 592, 3, 110, 55, 0, 591, 590, 1, 0, 0, 0, 591,
3707
- 592, 1, 0, 0, 0, 592, 107, 1, 0, 0, 0, 593, 594, 5, 25, 0, 0, 594, 595, 5, 24, 0, 0, 595,
3708
- 596, 3, 56, 28, 0, 596, 597, 5, 1, 0, 0, 597, 598, 5, 52, 0, 0, 598, 601, 5, 54, 0, 0,
3709
- 599, 602, 5, 52, 0, 0, 600, 602, 3, 2, 1, 0, 601, 599, 1, 0, 0, 0, 601, 600, 1, 0, 0, 0,
3710
- 602, 603, 1, 0, 0, 0, 603, 601, 1, 0, 0, 0, 603, 604, 1, 0, 0, 0, 604, 605, 1, 0, 0, 0,
3711
- 605, 606, 5, 55, 0, 0, 606, 109, 1, 0, 0, 0, 607, 608, 5, 25, 0, 0, 608, 609, 5, 1, 0,
3712
- 0, 609, 610, 5, 52, 0, 0, 610, 613, 5, 54, 0, 0, 611, 614, 5, 52, 0, 0, 612, 614, 3, 2,
3713
- 1, 0, 613, 611, 1, 0, 0, 0, 613, 612, 1, 0, 0, 0, 614, 615, 1, 0, 0, 0, 615, 613, 1, 0,
3714
- 0, 0, 615, 616, 1, 0, 0, 0, 616, 617, 1, 0, 0, 0, 617, 618, 5, 55, 0, 0, 618, 111, 1, 0,
3715
- 0, 0, 75, 114, 116, 138, 143, 151, 153, 163, 165, 180, 184, 189, 193, 200, 207, 215,
3716
- 219, 229, 237, 239, 250, 261, 263, 269, 275, 279, 285, 287, 306, 313, 321, 324,
3717
- 342, 350, 365, 367, 375, 379, 385, 393, 395, 401, 408, 417, 429, 432, 439, 444,
3718
- 449, 452, 458, 461, 465, 477, 479, 490, 492, 500, 502, 508, 516, 530, 533, 542,
3719
- 545, 551, 566, 568, 579, 581, 587, 591, 601, 603, 613, 615
3389
+ 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 1, 0,
3390
+ 1, 0, 4, 0, 121, 8, 0, 11, 0, 12, 0, 122, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3391
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 145, 8, 1, 1, 2, 1,
3392
+ 2, 1, 2, 1, 2, 4, 2, 151, 8, 2, 11, 2, 12, 2, 152, 1, 2, 1, 2, 1, 3, 4, 3, 158, 8, 3, 11, 3,
3393
+ 12, 3, 159, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 4, 5, 172, 8, 5, 11,
3394
+ 5, 12, 5, 173, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 3,
3395
+ 8, 189, 8, 8, 1, 9, 1, 9, 3, 9, 193, 8, 9, 1, 9, 5, 9, 196, 8, 9, 10, 9, 12, 9, 199, 9, 9,
3396
+ 1, 9, 3, 9, 202, 8, 9, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 3, 11, 209, 8, 11, 1, 12, 1, 12,
3397
+ 1, 13, 1, 13, 1, 13, 3, 13, 216, 8, 13, 1, 14, 1, 14, 1, 14, 1, 14, 5, 14, 222, 8, 14, 10,
3398
+ 14, 12, 14, 225, 9, 14, 1, 14, 3, 14, 228, 8, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1,
3399
+ 15, 5, 15, 236, 8, 15, 10, 15, 12, 15, 239, 9, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 4,
3400
+ 15, 246, 8, 15, 11, 15, 12, 15, 247, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 5,
3401
+ 16, 257, 8, 16, 10, 16, 12, 16, 260, 9, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1,
3402
+ 18, 1, 18, 4, 18, 270, 8, 18, 11, 18, 12, 18, 271, 1, 18, 1, 18, 1, 19, 1, 19, 3, 19, 278,
3403
+ 8, 19, 1, 20, 1, 20, 1, 20, 1, 20, 3, 20, 284, 8, 20, 1, 21, 1, 21, 3, 21, 288, 8, 21, 1,
3404
+ 22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1,
3405
+ 26, 1, 26, 5, 26, 305, 8, 26, 10, 26, 12, 26, 308, 9, 26, 1, 26, 1, 26, 5, 26, 312, 8,
3406
+ 26, 10, 26, 12, 26, 315, 9, 26, 1, 26, 1, 26, 1, 26, 5, 26, 320, 8, 26, 10, 26, 12, 26,
3407
+ 323, 9, 26, 3, 26, 325, 8, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1,
3408
+ 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 3, 29, 343, 8, 29, 1, 29, 1, 29, 1,
3409
+ 29, 1, 29, 1, 29, 1, 29, 1, 29, 3, 29, 352, 8, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1,
3410
+ 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 5, 29, 367, 8, 29, 10, 29, 12, 29,
3411
+ 370, 9, 29, 1, 30, 1, 30, 1, 31, 1, 31, 1, 32, 3, 32, 377, 8, 32, 1, 32, 1, 32, 3, 32, 381,
3412
+ 8, 32, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 387, 8, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33,
3413
+ 1, 33, 4, 33, 395, 8, 33, 11, 33, 12, 33, 396, 1, 33, 1, 33, 1, 34, 1, 34, 3, 34, 403,
3414
+ 8, 34, 1, 35, 1, 35, 1, 35, 5, 35, 408, 8, 35, 10, 35, 12, 35, 411, 9, 35, 1, 35, 1, 35,
3415
+ 1, 35, 1, 35, 5, 35, 417, 8, 35, 10, 35, 12, 35, 420, 9, 35, 1, 35, 1, 35, 1, 35, 1, 35,
3416
+ 1, 35, 1, 35, 1, 35, 5, 35, 429, 8, 35, 10, 35, 12, 35, 432, 9, 35, 3, 35, 434, 8, 35,
3417
+ 1, 36, 1, 36, 1, 36, 5, 36, 439, 8, 36, 10, 36, 12, 36, 442, 9, 36, 1, 37, 1, 37, 3, 37,
3418
+ 446, 8, 37, 1, 37, 1, 37, 1, 37, 3, 37, 451, 8, 37, 1, 38, 3, 38, 454, 8, 38, 1, 38, 1,
3419
+ 38, 4, 38, 458, 8, 38, 11, 38, 12, 38, 459, 1, 39, 3, 39, 463, 8, 39, 1, 39, 1, 39, 3,
3420
+ 39, 467, 8, 39, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1,
3421
+ 42, 1, 42, 1, 42, 1, 42, 4, 42, 483, 8, 42, 11, 42, 12, 42, 484, 1, 42, 1, 42, 1, 43, 1,
3422
+ 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 4, 43, 496, 8, 43, 11, 43, 12, 43, 497, 1, 43, 1,
3423
+ 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 4, 44, 510, 8, 44, 11, 44, 12,
3424
+ 44, 511, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 4, 45, 520, 8, 45, 11, 45, 12, 45, 521,
3425
+ 1, 45, 1, 45, 1, 46, 1, 46, 3, 46, 528, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46,
3426
+ 3, 46, 536, 8, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49,
3427
+ 5, 49, 548, 8, 49, 10, 49, 12, 49, 551, 9, 49, 3, 49, 553, 8, 49, 1, 50, 1, 50, 1, 50,
3428
+ 1, 50, 1, 51, 1, 51, 1, 51, 3, 51, 562, 8, 51, 1, 51, 3, 51, 565, 8, 51, 1, 52, 1, 52, 5,
3429
+ 52, 569, 8, 52, 10, 52, 12, 52, 572, 9, 52, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1,
3430
+ 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 589, 8, 56, 10, 56, 12,
3431
+ 56, 592, 9, 56, 1, 56, 3, 56, 595, 8, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 58,
3432
+ 1, 58, 1, 58, 1, 58, 1, 58, 0, 1, 58, 59, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24,
3433
+ 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68,
3434
+ 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108,
3435
+ 110, 112, 114, 116, 0, 12, 2, 0, 9, 9, 19, 21, 1, 0, 45, 46, 2, 0, 46, 46, 49, 49, 2, 0,
3436
+ 43, 43, 46, 46, 1, 0, 39, 40, 1, 0, 37, 38, 1, 0, 35, 36, 1, 0, 29, 34, 2, 0, 27, 27, 38,
3437
+ 38, 2, 0, 44, 44, 46, 50, 2, 0, 15, 15, 45, 45, 2, 0, 45, 46, 49, 49, 639, 0, 120, 1, 0,
3438
+ 0, 0, 2, 144, 1, 0, 0, 0, 4, 146, 1, 0, 0, 0, 6, 157, 1, 0, 0, 0, 8, 161, 1, 0, 0, 0, 10, 165,
3439
+ 1, 0, 0, 0, 12, 177, 1, 0, 0, 0, 14, 181, 1, 0, 0, 0, 16, 184, 1, 0, 0, 0, 18, 192, 1, 0,
3440
+ 0, 0, 20, 203, 1, 0, 0, 0, 22, 208, 1, 0, 0, 0, 24, 210, 1, 0, 0, 0, 26, 212, 1, 0, 0, 0,
3441
+ 28, 217, 1, 0, 0, 0, 30, 229, 1, 0, 0, 0, 32, 251, 1, 0, 0, 0, 34, 261, 1, 0, 0, 0, 36, 263,
3442
+ 1, 0, 0, 0, 38, 277, 1, 0, 0, 0, 40, 279, 1, 0, 0, 0, 42, 287, 1, 0, 0, 0, 44, 289, 1, 0,
3443
+ 0, 0, 46, 291, 1, 0, 0, 0, 48, 293, 1, 0, 0, 0, 50, 297, 1, 0, 0, 0, 52, 324, 1, 0, 0, 0,
3444
+ 54, 326, 1, 0, 0, 0, 56, 330, 1, 0, 0, 0, 58, 351, 1, 0, 0, 0, 60, 371, 1, 0, 0, 0, 62, 373,
3445
+ 1, 0, 0, 0, 64, 380, 1, 0, 0, 0, 66, 382, 1, 0, 0, 0, 68, 402, 1, 0, 0, 0, 70, 433, 1, 0,
3446
+ 0, 0, 72, 435, 1, 0, 0, 0, 74, 450, 1, 0, 0, 0, 76, 453, 1, 0, 0, 0, 78, 462, 1, 0, 0, 0,
3447
+ 80, 468, 1, 0, 0, 0, 82, 471, 1, 0, 0, 0, 84, 475, 1, 0, 0, 0, 86, 488, 1, 0, 0, 0, 88, 501,
3448
+ 1, 0, 0, 0, 90, 515, 1, 0, 0, 0, 92, 525, 1, 0, 0, 0, 94, 537, 1, 0, 0, 0, 96, 541, 1, 0,
3449
+ 0, 0, 98, 552, 1, 0, 0, 0, 100, 554, 1, 0, 0, 0, 102, 564, 1, 0, 0, 0, 104, 566, 1, 0, 0,
3450
+ 0, 106, 573, 1, 0, 0, 0, 108, 576, 1, 0, 0, 0, 110, 579, 1, 0, 0, 0, 112, 583, 1, 0, 0,
3451
+ 0, 114, 596, 1, 0, 0, 0, 116, 602, 1, 0, 0, 0, 118, 121, 3, 2, 1, 0, 119, 121, 5, 53, 0,
3452
+ 0, 120, 118, 1, 0, 0, 0, 120, 119, 1, 0, 0, 0, 121, 122, 1, 0, 0, 0, 122, 120, 1, 0, 0,
3453
+ 0, 122, 123, 1, 0, 0, 0, 123, 124, 1, 0, 0, 0, 124, 125, 5, 0, 0, 1, 125, 1, 1, 0, 0, 0,
3454
+ 126, 145, 3, 20, 10, 0, 127, 145, 3, 28, 14, 0, 128, 145, 3, 26, 13, 0, 129, 145, 3,
3455
+ 48, 24, 0, 130, 145, 3, 54, 27, 0, 131, 145, 3, 10, 5, 0, 132, 145, 3, 56, 28, 0, 133,
3456
+ 145, 3, 46, 23, 0, 134, 145, 3, 66, 33, 0, 135, 145, 3, 76, 38, 0, 136, 145, 3, 104,
3457
+ 52, 0, 137, 145, 3, 108, 54, 0, 138, 145, 3, 110, 55, 0, 139, 145, 3, 72, 36, 0, 140,
3458
+ 145, 3, 36, 18, 0, 141, 145, 3, 6, 3, 0, 142, 145, 3, 106, 53, 0, 143, 145, 3, 112, 56,
3459
+ 0, 144, 126, 1, 0, 0, 0, 144, 127, 1, 0, 0, 0, 144, 128, 1, 0, 0, 0, 144, 129, 1, 0, 0,
3460
+ 0, 144, 130, 1, 0, 0, 0, 144, 131, 1, 0, 0, 0, 144, 132, 1, 0, 0, 0, 144, 133, 1, 0, 0,
3461
+ 0, 144, 134, 1, 0, 0, 0, 144, 135, 1, 0, 0, 0, 144, 136, 1, 0, 0, 0, 144, 137, 1, 0, 0,
3462
+ 0, 144, 138, 1, 0, 0, 0, 144, 139, 1, 0, 0, 0, 144, 140, 1, 0, 0, 0, 144, 141, 1, 0, 0,
3463
+ 0, 144, 142, 1, 0, 0, 0, 144, 143, 1, 0, 0, 0, 145, 3, 1, 0, 0, 0, 146, 147, 5, 53, 0, 0,
3464
+ 147, 150, 5, 55, 0, 0, 148, 151, 5, 53, 0, 0, 149, 151, 3, 2, 1, 0, 150, 148, 1, 0, 0,
3465
+ 0, 150, 149, 1, 0, 0, 0, 151, 152, 1, 0, 0, 0, 152, 150, 1, 0, 0, 0, 152, 153, 1, 0, 0,
3466
+ 0, 153, 154, 1, 0, 0, 0, 154, 155, 5, 56, 0, 0, 155, 5, 1, 0, 0, 0, 156, 158, 3, 8, 4, 0,
3467
+ 157, 156, 1, 0, 0, 0, 158, 159, 1, 0, 0, 0, 159, 157, 1, 0, 0, 0, 159, 160, 1, 0, 0, 0,
3468
+ 160, 7, 1, 0, 0, 0, 161, 162, 7, 0, 0, 0, 162, 163, 5, 1, 0, 0, 163, 164, 3, 4, 2, 0, 164,
3469
+ 9, 1, 0, 0, 0, 165, 166, 3, 72, 36, 0, 166, 167, 5, 1, 0, 0, 167, 168, 5, 53, 0, 0, 168,
3470
+ 171, 5, 55, 0, 0, 169, 172, 5, 53, 0, 0, 170, 172, 3, 12, 6, 0, 171, 169, 1, 0, 0, 0, 171,
3471
+ 170, 1, 0, 0, 0, 172, 173, 1, 0, 0, 0, 173, 171, 1, 0, 0, 0, 173, 174, 1, 0, 0, 0, 174,
3472
+ 175, 1, 0, 0, 0, 175, 176, 5, 56, 0, 0, 176, 11, 1, 0, 0, 0, 177, 178, 7, 1, 0, 0, 178,
3473
+ 179, 5, 1, 0, 0, 179, 180, 3, 64, 32, 0, 180, 13, 1, 0, 0, 0, 181, 182, 5, 15, 0, 0, 182,
3474
+ 183, 7, 2, 0, 0, 183, 15, 1, 0, 0, 0, 184, 185, 5, 45, 0, 0, 185, 188, 5, 1, 0, 0, 186,
3475
+ 189, 3, 64, 32, 0, 187, 189, 5, 45, 0, 0, 188, 186, 1, 0, 0, 0, 188, 187, 1, 0, 0, 0, 189,
3476
+ 17, 1, 0, 0, 0, 190, 193, 3, 58, 29, 0, 191, 193, 3, 48, 24, 0, 192, 190, 1, 0, 0, 0, 192,
3477
+ 191, 1, 0, 0, 0, 193, 197, 1, 0, 0, 0, 194, 196, 3, 16, 8, 0, 195, 194, 1, 0, 0, 0, 196,
3478
+ 199, 1, 0, 0, 0, 197, 195, 1, 0, 0, 0, 197, 198, 1, 0, 0, 0, 198, 201, 1, 0, 0, 0, 199,
3479
+ 197, 1, 0, 0, 0, 200, 202, 3, 14, 7, 0, 201, 200, 1, 0, 0, 0, 201, 202, 1, 0, 0, 0, 202,
3480
+ 19, 1, 0, 0, 0, 203, 204, 5, 16, 0, 0, 204, 205, 3, 18, 9, 0, 205, 21, 1, 0, 0, 0, 206,
3481
+ 209, 3, 18, 9, 0, 207, 209, 3, 14, 7, 0, 208, 206, 1, 0, 0, 0, 208, 207, 1, 0, 0, 0, 209,
3482
+ 23, 1, 0, 0, 0, 210, 211, 7, 2, 0, 0, 211, 25, 1, 0, 0, 0, 212, 215, 5, 17, 0, 0, 213, 216,
3483
+ 3, 22, 11, 0, 214, 216, 5, 19, 0, 0, 215, 213, 1, 0, 0, 0, 215, 214, 1, 0, 0, 0, 216, 27,
3484
+ 1, 0, 0, 0, 217, 227, 5, 18, 0, 0, 218, 223, 3, 22, 11, 0, 219, 220, 5, 2, 0, 0, 220, 222,
3485
+ 3, 22, 11, 0, 221, 219, 1, 0, 0, 0, 222, 225, 1, 0, 0, 0, 223, 221, 1, 0, 0, 0, 223, 224,
3486
+ 1, 0, 0, 0, 224, 228, 1, 0, 0, 0, 225, 223, 1, 0, 0, 0, 226, 228, 5, 19, 0, 0, 227, 218,
3487
+ 1, 0, 0, 0, 227, 226, 1, 0, 0, 0, 228, 29, 1, 0, 0, 0, 229, 230, 5, 17, 0, 0, 230, 231,
3488
+ 3, 22, 11, 0, 231, 232, 5, 18, 0, 0, 232, 237, 3, 22, 11, 0, 233, 234, 5, 2, 0, 0, 234,
3489
+ 236, 3, 22, 11, 0, 235, 233, 1, 0, 0, 0, 236, 239, 1, 0, 0, 0, 237, 235, 1, 0, 0, 0, 237,
3490
+ 238, 1, 0, 0, 0, 238, 240, 1, 0, 0, 0, 239, 237, 1, 0, 0, 0, 240, 241, 5, 1, 0, 0, 241,
3491
+ 242, 5, 53, 0, 0, 242, 245, 5, 55, 0, 0, 243, 246, 5, 53, 0, 0, 244, 246, 3, 32, 16, 0,
3492
+ 245, 243, 1, 0, 0, 0, 245, 244, 1, 0, 0, 0, 246, 247, 1, 0, 0, 0, 247, 245, 1, 0, 0, 0,
3493
+ 247, 248, 1, 0, 0, 0, 248, 249, 1, 0, 0, 0, 249, 250, 5, 56, 0, 0, 250, 31, 1, 0, 0, 0,
3494
+ 251, 252, 3, 24, 12, 0, 252, 253, 5, 1, 0, 0, 253, 258, 3, 34, 17, 0, 254, 255, 5, 2,
3495
+ 0, 0, 255, 257, 3, 34, 17, 0, 256, 254, 1, 0, 0, 0, 257, 260, 1, 0, 0, 0, 258, 256, 1,
3496
+ 0, 0, 0, 258, 259, 1, 0, 0, 0, 259, 33, 1, 0, 0, 0, 260, 258, 1, 0, 0, 0, 261, 262, 7, 3,
3497
+ 0, 0, 262, 35, 1, 0, 0, 0, 263, 264, 3, 26, 13, 0, 264, 265, 5, 1, 0, 0, 265, 266, 5, 53,
3498
+ 0, 0, 266, 269, 5, 55, 0, 0, 267, 270, 5, 53, 0, 0, 268, 270, 3, 38, 19, 0, 269, 267,
3499
+ 1, 0, 0, 0, 269, 268, 1, 0, 0, 0, 270, 271, 1, 0, 0, 0, 271, 269, 1, 0, 0, 0, 271, 272,
3500
+ 1, 0, 0, 0, 272, 273, 1, 0, 0, 0, 273, 274, 5, 56, 0, 0, 274, 37, 1, 0, 0, 0, 275, 278,
3501
+ 3, 2, 1, 0, 276, 278, 3, 40, 20, 0, 277, 275, 1, 0, 0, 0, 277, 276, 1, 0, 0, 0, 278, 39,
3502
+ 1, 0, 0, 0, 279, 280, 3, 24, 12, 0, 280, 283, 5, 1, 0, 0, 281, 284, 3, 42, 21, 0, 282,
3503
+ 284, 3, 44, 22, 0, 283, 281, 1, 0, 0, 0, 283, 282, 1, 0, 0, 0, 284, 41, 1, 0, 0, 0, 285,
3504
+ 288, 3, 2, 1, 0, 286, 288, 5, 43, 0, 0, 287, 285, 1, 0, 0, 0, 287, 286, 1, 0, 0, 0, 288,
3505
+ 43, 1, 0, 0, 0, 289, 290, 3, 4, 2, 0, 290, 45, 1, 0, 0, 0, 291, 292, 5, 8, 0, 0, 292, 47,
3506
+ 1, 0, 0, 0, 293, 294, 3, 72, 36, 0, 294, 295, 5, 3, 0, 0, 295, 296, 3, 58, 29, 0, 296,
3507
+ 49, 1, 0, 0, 0, 297, 298, 5, 45, 0, 0, 298, 299, 5, 3, 0, 0, 299, 300, 3, 58, 29, 0, 300,
3508
+ 51, 1, 0, 0, 0, 301, 306, 3, 58, 29, 0, 302, 303, 5, 2, 0, 0, 303, 305, 3, 58, 29, 0, 304,
3509
+ 302, 1, 0, 0, 0, 305, 308, 1, 0, 0, 0, 306, 304, 1, 0, 0, 0, 306, 307, 1, 0, 0, 0, 307,
3510
+ 313, 1, 0, 0, 0, 308, 306, 1, 0, 0, 0, 309, 310, 5, 2, 0, 0, 310, 312, 3, 50, 25, 0, 311,
3511
+ 309, 1, 0, 0, 0, 312, 315, 1, 0, 0, 0, 313, 311, 1, 0, 0, 0, 313, 314, 1, 0, 0, 0, 314,
3512
+ 325, 1, 0, 0, 0, 315, 313, 1, 0, 0, 0, 316, 321, 3, 50, 25, 0, 317, 318, 5, 2, 0, 0, 318,
3513
+ 320, 3, 50, 25, 0, 319, 317, 1, 0, 0, 0, 320, 323, 1, 0, 0, 0, 321, 319, 1, 0, 0, 0, 321,
3514
+ 322, 1, 0, 0, 0, 322, 325, 1, 0, 0, 0, 323, 321, 1, 0, 0, 0, 324, 301, 1, 0, 0, 0, 324,
3515
+ 316, 1, 0, 0, 0, 325, 53, 1, 0, 0, 0, 326, 327, 3, 72, 36, 0, 327, 328, 5, 3, 0, 0, 328,
3516
+ 329, 3, 58, 29, 0, 329, 55, 1, 0, 0, 0, 330, 331, 5, 4, 0, 0, 331, 332, 5, 45, 0, 0, 332,
3517
+ 333, 5, 3, 0, 0, 333, 334, 3, 58, 29, 0, 334, 57, 1, 0, 0, 0, 335, 336, 6, 29, -1, 0, 336,
3518
+ 337, 5, 41, 0, 0, 337, 338, 3, 58, 29, 0, 338, 339, 5, 42, 0, 0, 339, 352, 1, 0, 0, 0,
3519
+ 340, 343, 3, 64, 32, 0, 341, 343, 3, 72, 36, 0, 342, 340, 1, 0, 0, 0, 342, 341, 1, 0,
3520
+ 0, 0, 343, 352, 1, 0, 0, 0, 344, 345, 3, 62, 31, 0, 345, 346, 3, 58, 29, 9, 346, 352,
3521
+ 1, 0, 0, 0, 347, 352, 3, 84, 42, 0, 348, 352, 3, 86, 43, 0, 349, 352, 3, 88, 44, 0, 350,
3522
+ 352, 3, 76, 38, 0, 351, 335, 1, 0, 0, 0, 351, 342, 1, 0, 0, 0, 351, 344, 1, 0, 0, 0, 351,
3523
+ 347, 1, 0, 0, 0, 351, 348, 1, 0, 0, 0, 351, 349, 1, 0, 0, 0, 351, 350, 1, 0, 0, 0, 352,
3524
+ 368, 1, 0, 0, 0, 353, 354, 10, 8, 0, 0, 354, 355, 7, 4, 0, 0, 355, 367, 3, 58, 29, 9, 356,
3525
+ 357, 10, 7, 0, 0, 357, 358, 7, 5, 0, 0, 358, 367, 3, 58, 29, 8, 359, 360, 10, 6, 0, 0,
3526
+ 360, 361, 3, 60, 30, 0, 361, 362, 3, 58, 29, 7, 362, 367, 1, 0, 0, 0, 363, 364, 10, 5,
3527
+ 0, 0, 364, 365, 7, 6, 0, 0, 365, 367, 3, 58, 29, 6, 366, 353, 1, 0, 0, 0, 366, 356, 1,
3528
+ 0, 0, 0, 366, 359, 1, 0, 0, 0, 366, 363, 1, 0, 0, 0, 367, 370, 1, 0, 0, 0, 368, 366, 1,
3529
+ 0, 0, 0, 368, 369, 1, 0, 0, 0, 369, 59, 1, 0, 0, 0, 370, 368, 1, 0, 0, 0, 371, 372, 7, 7,
3530
+ 0, 0, 372, 61, 1, 0, 0, 0, 373, 374, 7, 8, 0, 0, 374, 63, 1, 0, 0, 0, 375, 377, 5, 38, 0,
3531
+ 0, 376, 375, 1, 0, 0, 0, 376, 377, 1, 0, 0, 0, 377, 378, 1, 0, 0, 0, 378, 381, 7, 9, 0,
3532
+ 0, 379, 381, 3, 100, 50, 0, 380, 376, 1, 0, 0, 0, 380, 379, 1, 0, 0, 0, 381, 65, 1, 0,
3533
+ 0, 0, 382, 383, 5, 23, 0, 0, 383, 384, 5, 45, 0, 0, 384, 386, 5, 41, 0, 0, 385, 387, 3,
3534
+ 70, 35, 0, 386, 385, 1, 0, 0, 0, 386, 387, 1, 0, 0, 0, 387, 388, 1, 0, 0, 0, 388, 389,
3535
+ 5, 42, 0, 0, 389, 390, 5, 1, 0, 0, 390, 391, 5, 53, 0, 0, 391, 394, 5, 55, 0, 0, 392, 395,
3536
+ 5, 53, 0, 0, 393, 395, 3, 68, 34, 0, 394, 392, 1, 0, 0, 0, 394, 393, 1, 0, 0, 0, 395, 396,
3537
+ 1, 0, 0, 0, 396, 394, 1, 0, 0, 0, 396, 397, 1, 0, 0, 0, 397, 398, 1, 0, 0, 0, 398, 399,
3538
+ 5, 56, 0, 0, 399, 67, 1, 0, 0, 0, 400, 403, 3, 2, 1, 0, 401, 403, 3, 80, 40, 0, 402, 400,
3539
+ 1, 0, 0, 0, 402, 401, 1, 0, 0, 0, 403, 69, 1, 0, 0, 0, 404, 409, 5, 45, 0, 0, 405, 406,
3540
+ 5, 2, 0, 0, 406, 408, 5, 45, 0, 0, 407, 405, 1, 0, 0, 0, 408, 411, 1, 0, 0, 0, 409, 407,
3541
+ 1, 0, 0, 0, 409, 410, 1, 0, 0, 0, 410, 418, 1, 0, 0, 0, 411, 409, 1, 0, 0, 0, 412, 413,
3542
+ 5, 2, 0, 0, 413, 414, 5, 45, 0, 0, 414, 415, 5, 3, 0, 0, 415, 417, 3, 64, 32, 0, 416, 412,
3543
+ 1, 0, 0, 0, 417, 420, 1, 0, 0, 0, 418, 416, 1, 0, 0, 0, 418, 419, 1, 0, 0, 0, 419, 434,
3544
+ 1, 0, 0, 0, 420, 418, 1, 0, 0, 0, 421, 422, 5, 45, 0, 0, 422, 423, 5, 3, 0, 0, 423, 430,
3545
+ 3, 64, 32, 0, 424, 425, 5, 2, 0, 0, 425, 426, 5, 45, 0, 0, 426, 427, 5, 3, 0, 0, 427, 429,
3546
+ 3, 64, 32, 0, 428, 424, 1, 0, 0, 0, 429, 432, 1, 0, 0, 0, 430, 428, 1, 0, 0, 0, 430, 431,
3547
+ 1, 0, 0, 0, 431, 434, 1, 0, 0, 0, 432, 430, 1, 0, 0, 0, 433, 404, 1, 0, 0, 0, 433, 421,
3548
+ 1, 0, 0, 0, 434, 71, 1, 0, 0, 0, 435, 440, 5, 45, 0, 0, 436, 437, 5, 5, 0, 0, 437, 439,
3549
+ 5, 45, 0, 0, 438, 436, 1, 0, 0, 0, 439, 442, 1, 0, 0, 0, 440, 438, 1, 0, 0, 0, 440, 441,
3550
+ 1, 0, 0, 0, 441, 73, 1, 0, 0, 0, 442, 440, 1, 0, 0, 0, 443, 445, 5, 41, 0, 0, 444, 446,
3551
+ 3, 52, 26, 0, 445, 444, 1, 0, 0, 0, 445, 446, 1, 0, 0, 0, 446, 447, 1, 0, 0, 0, 447, 451,
3552
+ 5, 42, 0, 0, 448, 449, 5, 5, 0, 0, 449, 451, 5, 45, 0, 0, 450, 443, 1, 0, 0, 0, 450, 448,
3553
+ 1, 0, 0, 0, 451, 75, 1, 0, 0, 0, 452, 454, 3, 78, 39, 0, 453, 452, 1, 0, 0, 0, 453, 454,
3554
+ 1, 0, 0, 0, 454, 455, 1, 0, 0, 0, 455, 457, 5, 45, 0, 0, 456, 458, 3, 74, 37, 0, 457, 456,
3555
+ 1, 0, 0, 0, 458, 459, 1, 0, 0, 0, 459, 457, 1, 0, 0, 0, 459, 460, 1, 0, 0, 0, 460, 77, 1,
3556
+ 0, 0, 0, 461, 463, 5, 37, 0, 0, 462, 461, 1, 0, 0, 0, 462, 463, 1, 0, 0, 0, 463, 464, 1,
3557
+ 0, 0, 0, 464, 466, 5, 39, 0, 0, 465, 467, 3, 58, 29, 0, 466, 465, 1, 0, 0, 0, 466, 467,
3558
+ 1, 0, 0, 0, 467, 79, 1, 0, 0, 0, 468, 469, 5, 22, 0, 0, 469, 470, 3, 58, 29, 0, 470, 81,
3559
+ 1, 0, 0, 0, 471, 472, 3, 96, 48, 0, 472, 473, 5, 1, 0, 0, 473, 474, 3, 4, 2, 0, 474, 83,
3560
+ 1, 0, 0, 0, 475, 476, 5, 10, 0, 0, 476, 477, 5, 11, 0, 0, 477, 478, 5, 1, 0, 0, 478, 479,
3561
+ 5, 53, 0, 0, 479, 482, 5, 55, 0, 0, 480, 483, 5, 53, 0, 0, 481, 483, 3, 94, 47, 0, 482,
3562
+ 480, 1, 0, 0, 0, 482, 481, 1, 0, 0, 0, 483, 484, 1, 0, 0, 0, 484, 482, 1, 0, 0, 0, 484,
3563
+ 485, 1, 0, 0, 0, 485, 486, 1, 0, 0, 0, 486, 487, 5, 56, 0, 0, 487, 85, 1, 0, 0, 0, 488,
3564
+ 489, 5, 10, 0, 0, 489, 490, 5, 12, 0, 0, 490, 491, 5, 1, 0, 0, 491, 492, 5, 53, 0, 0, 492,
3565
+ 495, 5, 55, 0, 0, 493, 496, 5, 53, 0, 0, 494, 496, 3, 92, 46, 0, 495, 493, 1, 0, 0, 0,
3566
+ 495, 494, 1, 0, 0, 0, 496, 497, 1, 0, 0, 0, 497, 495, 1, 0, 0, 0, 497, 498, 1, 0, 0, 0,
3567
+ 498, 499, 1, 0, 0, 0, 499, 500, 5, 56, 0, 0, 500, 87, 1, 0, 0, 0, 501, 502, 5, 10, 0, 0,
3568
+ 502, 503, 5, 13, 0, 0, 503, 504, 5, 1, 0, 0, 504, 505, 5, 53, 0, 0, 505, 509, 5, 55, 0,
3569
+ 0, 506, 510, 5, 53, 0, 0, 507, 510, 3, 94, 47, 0, 508, 510, 3, 82, 41, 0, 509, 506, 1,
3570
+ 0, 0, 0, 509, 507, 1, 0, 0, 0, 509, 508, 1, 0, 0, 0, 510, 511, 1, 0, 0, 0, 511, 509, 1,
3571
+ 0, 0, 0, 511, 512, 1, 0, 0, 0, 512, 513, 1, 0, 0, 0, 513, 514, 5, 56, 0, 0, 514, 89, 1,
3572
+ 0, 0, 0, 515, 516, 5, 53, 0, 0, 516, 519, 5, 55, 0, 0, 517, 520, 5, 53, 0, 0, 518, 520,
3573
+ 3, 94, 47, 0, 519, 517, 1, 0, 0, 0, 519, 518, 1, 0, 0, 0, 520, 521, 1, 0, 0, 0, 521, 519,
3574
+ 1, 0, 0, 0, 521, 522, 1, 0, 0, 0, 522, 523, 1, 0, 0, 0, 523, 524, 5, 56, 0, 0, 524, 91,
3575
+ 1, 0, 0, 0, 525, 527, 7, 10, 0, 0, 526, 528, 5, 1, 0, 0, 527, 526, 1, 0, 0, 0, 527, 528,
3576
+ 1, 0, 0, 0, 528, 535, 1, 0, 0, 0, 529, 536, 3, 52, 26, 0, 530, 531, 5, 41, 0, 0, 531, 532,
3577
+ 3, 52, 26, 0, 532, 533, 5, 42, 0, 0, 533, 536, 1, 0, 0, 0, 534, 536, 3, 90, 45, 0, 535,
3578
+ 529, 1, 0, 0, 0, 535, 530, 1, 0, 0, 0, 535, 534, 1, 0, 0, 0, 536, 93, 1, 0, 0, 0, 537, 538,
3579
+ 3, 96, 48, 0, 538, 539, 5, 1, 0, 0, 539, 540, 3, 98, 49, 0, 540, 95, 1, 0, 0, 0, 541, 542,
3580
+ 7, 11, 0, 0, 542, 97, 1, 0, 0, 0, 543, 553, 3, 90, 45, 0, 544, 549, 3, 58, 29, 0, 545,
3581
+ 546, 5, 2, 0, 0, 546, 548, 3, 58, 29, 0, 547, 545, 1, 0, 0, 0, 548, 551, 1, 0, 0, 0, 549,
3582
+ 547, 1, 0, 0, 0, 549, 550, 1, 0, 0, 0, 550, 553, 1, 0, 0, 0, 551, 549, 1, 0, 0, 0, 552,
3583
+ 543, 1, 0, 0, 0, 552, 544, 1, 0, 0, 0, 553, 99, 1, 0, 0, 0, 554, 555, 5, 6, 0, 0, 555, 556,
3584
+ 5, 46, 0, 0, 556, 557, 5, 7, 0, 0, 557, 101, 1, 0, 0, 0, 558, 561, 5, 45, 0, 0, 559, 562,
3585
+ 5, 46, 0, 0, 560, 562, 3, 58, 29, 0, 561, 559, 1, 0, 0, 0, 561, 560, 1, 0, 0, 0, 562, 565,
3586
+ 1, 0, 0, 0, 563, 565, 5, 45, 0, 0, 564, 558, 1, 0, 0, 0, 564, 563, 1, 0, 0, 0, 565, 103,
3587
+ 1, 0, 0, 0, 566, 570, 5, 14, 0, 0, 567, 569, 3, 102, 51, 0, 568, 567, 1, 0, 0, 0, 569,
3588
+ 572, 1, 0, 0, 0, 570, 568, 1, 0, 0, 0, 570, 571, 1, 0, 0, 0, 571, 105, 1, 0, 0, 0, 572,
3589
+ 570, 1, 0, 0, 0, 573, 574, 5, 19, 0, 0, 574, 575, 5, 45, 0, 0, 575, 107, 1, 0, 0, 0, 576,
3590
+ 577, 5, 24, 0, 0, 577, 578, 5, 45, 0, 0, 578, 109, 1, 0, 0, 0, 579, 580, 5, 28, 0, 0, 580,
3591
+ 581, 5, 1, 0, 0, 581, 582, 3, 4, 2, 0, 582, 111, 1, 0, 0, 0, 583, 584, 5, 25, 0, 0, 584,
3592
+ 585, 3, 58, 29, 0, 585, 586, 5, 1, 0, 0, 586, 590, 3, 4, 2, 0, 587, 589, 3, 114, 57, 0,
3593
+ 588, 587, 1, 0, 0, 0, 589, 592, 1, 0, 0, 0, 590, 588, 1, 0, 0, 0, 590, 591, 1, 0, 0, 0,
3594
+ 591, 594, 1, 0, 0, 0, 592, 590, 1, 0, 0, 0, 593, 595, 3, 116, 58, 0, 594, 593, 1, 0, 0,
3595
+ 0, 594, 595, 1, 0, 0, 0, 595, 113, 1, 0, 0, 0, 596, 597, 5, 26, 0, 0, 597, 598, 5, 25,
3596
+ 0, 0, 598, 599, 3, 58, 29, 0, 599, 600, 5, 1, 0, 0, 600, 601, 3, 4, 2, 0, 601, 115, 1,
3597
+ 0, 0, 0, 602, 603, 5, 26, 0, 0, 603, 604, 5, 1, 0, 0, 604, 605, 3, 4, 2, 0, 605, 117, 1,
3598
+ 0, 0, 0, 67, 120, 122, 144, 150, 152, 159, 171, 173, 188, 192, 197, 201, 208, 215,
3599
+ 223, 227, 237, 245, 247, 258, 269, 271, 277, 283, 287, 306, 313, 321, 324, 342,
3600
+ 351, 366, 368, 376, 380, 386, 394, 396, 402, 409, 418, 430, 433, 440, 445, 450,
3601
+ 453, 459, 462, 466, 482, 484, 495, 497, 509, 511, 519, 521, 527, 535, 549, 552,
3602
+ 561, 564, 570, 590, 594
3720
3603
  ];
3721
3604
  CircuitScriptParser.vocabulary = new antlr.Vocabulary(CircuitScriptParser.literalNames, CircuitScriptParser.symbolicNames, []);
3722
3605
  CircuitScriptParser.decisionsToDFA = CircuitScriptParser._ATN.decisionToState.map((ds, index) => new antlr.DFA(ds, index));
@@ -3825,6 +3708,43 @@ class ExpressionContext extends antlr.ParserRuleContext {
3825
3708
  }
3826
3709
  }
3827
3710
  exports.ExpressionContext = ExpressionContext;
3711
+ class Expressions_blockContext extends antlr.ParserRuleContext {
3712
+ constructor(parent, invokingState) {
3713
+ super(parent, invokingState);
3714
+ }
3715
+ NEWLINE(i) {
3716
+ if (i === undefined) {
3717
+ return this.getTokens(CircuitScriptParser.NEWLINE);
3718
+ }
3719
+ else {
3720
+ return this.getToken(CircuitScriptParser.NEWLINE, i);
3721
+ }
3722
+ }
3723
+ INDENT() {
3724
+ return this.getToken(CircuitScriptParser.INDENT, 0);
3725
+ }
3726
+ DEDENT() {
3727
+ return this.getToken(CircuitScriptParser.DEDENT, 0);
3728
+ }
3729
+ expression(i) {
3730
+ if (i === undefined) {
3731
+ return this.getRuleContexts(ExpressionContext);
3732
+ }
3733
+ return this.getRuleContext(i, ExpressionContext);
3734
+ }
3735
+ get ruleIndex() {
3736
+ return CircuitScriptParser.RULE_expressions_block;
3737
+ }
3738
+ accept(visitor) {
3739
+ if (visitor.visitExpressions_block) {
3740
+ return visitor.visitExpressions_block(this);
3741
+ }
3742
+ else {
3743
+ return visitor.visitChildren(this);
3744
+ }
3745
+ }
3746
+ }
3747
+ exports.Expressions_blockContext = Expressions_blockContext;
3828
3748
  class Path_blocksContext extends antlr.ParserRuleContext {
3829
3749
  constructor(parent, invokingState) {
3830
3750
  super(parent, invokingState);
@@ -3852,19 +3772,8 @@ class Path_block_innerContext extends antlr.ParserRuleContext {
3852
3772
  constructor(parent, invokingState) {
3853
3773
  super(parent, invokingState);
3854
3774
  }
3855
- NEWLINE(i) {
3856
- if (i === undefined) {
3857
- return this.getTokens(CircuitScriptParser.NEWLINE);
3858
- }
3859
- else {
3860
- return this.getToken(CircuitScriptParser.NEWLINE, i);
3861
- }
3862
- }
3863
- INDENT() {
3864
- return this.getToken(CircuitScriptParser.INDENT, 0);
3865
- }
3866
- DEDENT() {
3867
- return this.getToken(CircuitScriptParser.DEDENT, 0);
3775
+ expressions_block() {
3776
+ return this.getRuleContext(0, Expressions_blockContext);
3868
3777
  }
3869
3778
  Branch() {
3870
3779
  return this.getToken(CircuitScriptParser.Branch, 0);
@@ -3878,12 +3787,6 @@ class Path_block_innerContext extends antlr.ParserRuleContext {
3878
3787
  Point() {
3879
3788
  return this.getToken(CircuitScriptParser.Point, 0);
3880
3789
  }
3881
- expression(i) {
3882
- if (i === undefined) {
3883
- return this.getRuleContexts(ExpressionContext);
3884
- }
3885
- return this.getRuleContext(i, ExpressionContext);
3886
- }
3887
3790
  get ruleIndex() {
3888
3791
  return CircuitScriptParser.RULE_path_block_inner;
3889
3792
  }
@@ -4387,25 +4290,8 @@ class At_block_pin_expression_complexContext extends antlr.ParserRuleContext {
4387
4290
  constructor(parent, invokingState) {
4388
4291
  super(parent, invokingState);
4389
4292
  }
4390
- NEWLINE(i) {
4391
- if (i === undefined) {
4392
- return this.getTokens(CircuitScriptParser.NEWLINE);
4393
- }
4394
- else {
4395
- return this.getToken(CircuitScriptParser.NEWLINE, i);
4396
- }
4397
- }
4398
- INDENT() {
4399
- return this.getToken(CircuitScriptParser.INDENT, 0);
4400
- }
4401
- DEDENT() {
4402
- return this.getToken(CircuitScriptParser.DEDENT, 0);
4403
- }
4404
- expression(i) {
4405
- if (i === undefined) {
4406
- return this.getRuleContexts(ExpressionContext);
4407
- }
4408
- return this.getRuleContext(i, ExpressionContext);
4293
+ expressions_block() {
4294
+ return this.getRuleContext(0, Expressions_blockContext);
4409
4295
  }
4410
4296
  get ruleIndex() {
4411
4297
  return CircuitScriptParser.RULE_at_block_pin_expression_complex;
@@ -4683,6 +4569,9 @@ class DataExprContext extends Data_exprContext {
4683
4569
  create_graphic_expr() {
4684
4570
  return this.getRuleContext(0, Create_graphic_exprContext);
4685
4571
  }
4572
+ create_module_expr() {
4573
+ return this.getRuleContext(0, Create_module_exprContext);
4574
+ }
4686
4575
  accept(visitor) {
4687
4576
  if (visitor.visitDataExpr) {
4688
4577
  return visitor.visitDataExpr(this);
@@ -5120,6 +5009,29 @@ class Function_return_exprContext extends antlr.ParserRuleContext {
5120
5009
  }
5121
5010
  }
5122
5011
  exports.Function_return_exprContext = Function_return_exprContext;
5012
+ class Property_block_exprContext extends antlr.ParserRuleContext {
5013
+ constructor(parent, invokingState) {
5014
+ super(parent, invokingState);
5015
+ }
5016
+ property_key_expr() {
5017
+ return this.getRuleContext(0, Property_key_exprContext);
5018
+ }
5019
+ expressions_block() {
5020
+ return this.getRuleContext(0, Expressions_blockContext);
5021
+ }
5022
+ get ruleIndex() {
5023
+ return CircuitScriptParser.RULE_property_block_expr;
5024
+ }
5025
+ accept(visitor) {
5026
+ if (visitor.visitProperty_block_expr) {
5027
+ return visitor.visitProperty_block_expr(this);
5028
+ }
5029
+ else {
5030
+ return visitor.visitChildren(this);
5031
+ }
5032
+ }
5033
+ }
5034
+ exports.Property_block_exprContext = Property_block_exprContext;
5123
5035
  class Create_component_exprContext extends antlr.ParserRuleContext {
5124
5036
  constructor(parent, invokingState) {
5125
5037
  super(parent, invokingState);
@@ -5206,6 +5118,55 @@ class Create_graphic_exprContext extends antlr.ParserRuleContext {
5206
5118
  }
5207
5119
  }
5208
5120
  exports.Create_graphic_exprContext = Create_graphic_exprContext;
5121
+ class Create_module_exprContext extends antlr.ParserRuleContext {
5122
+ constructor(parent, invokingState) {
5123
+ super(parent, invokingState);
5124
+ }
5125
+ Create() {
5126
+ return this.getToken(CircuitScriptParser.Create, 0);
5127
+ }
5128
+ Module() {
5129
+ return this.getToken(CircuitScriptParser.Module, 0);
5130
+ }
5131
+ NEWLINE(i) {
5132
+ if (i === undefined) {
5133
+ return this.getTokens(CircuitScriptParser.NEWLINE);
5134
+ }
5135
+ else {
5136
+ return this.getToken(CircuitScriptParser.NEWLINE, i);
5137
+ }
5138
+ }
5139
+ INDENT() {
5140
+ return this.getToken(CircuitScriptParser.INDENT, 0);
5141
+ }
5142
+ DEDENT() {
5143
+ return this.getToken(CircuitScriptParser.DEDENT, 0);
5144
+ }
5145
+ property_expr(i) {
5146
+ if (i === undefined) {
5147
+ return this.getRuleContexts(Property_exprContext);
5148
+ }
5149
+ return this.getRuleContext(i, Property_exprContext);
5150
+ }
5151
+ property_block_expr(i) {
5152
+ if (i === undefined) {
5153
+ return this.getRuleContexts(Property_block_exprContext);
5154
+ }
5155
+ return this.getRuleContext(i, Property_block_exprContext);
5156
+ }
5157
+ get ruleIndex() {
5158
+ return CircuitScriptParser.RULE_create_module_expr;
5159
+ }
5160
+ accept(visitor) {
5161
+ if (visitor.visitCreate_module_expr) {
5162
+ return visitor.visitCreate_module_expr(this);
5163
+ }
5164
+ else {
5165
+ return visitor.visitChildren(this);
5166
+ }
5167
+ }
5168
+ }
5169
+ exports.Create_module_exprContext = Create_module_exprContext;
5209
5170
  class Nested_properties_innerContext extends antlr.ParserRuleContext {
5210
5171
  constructor(parent, invokingState) {
5211
5172
  super(parent, invokingState);
@@ -5531,25 +5492,8 @@ class Frame_exprContext extends antlr.ParserRuleContext {
5531
5492
  Frame() {
5532
5493
  return this.getToken(CircuitScriptParser.Frame, 0);
5533
5494
  }
5534
- NEWLINE(i) {
5535
- if (i === undefined) {
5536
- return this.getTokens(CircuitScriptParser.NEWLINE);
5537
- }
5538
- else {
5539
- return this.getToken(CircuitScriptParser.NEWLINE, i);
5540
- }
5541
- }
5542
- INDENT() {
5543
- return this.getToken(CircuitScriptParser.INDENT, 0);
5544
- }
5545
- DEDENT() {
5546
- return this.getToken(CircuitScriptParser.DEDENT, 0);
5547
- }
5548
- expression(i) {
5549
- if (i === undefined) {
5550
- return this.getRuleContexts(ExpressionContext);
5551
- }
5552
- return this.getRuleContext(i, ExpressionContext);
5495
+ expressions_block() {
5496
+ return this.getRuleContext(0, Expressions_blockContext);
5553
5497
  }
5554
5498
  get ruleIndex() {
5555
5499
  return CircuitScriptParser.RULE_frame_expr;
@@ -5574,25 +5518,8 @@ class If_exprContext extends antlr.ParserRuleContext {
5574
5518
  data_expr() {
5575
5519
  return this.getRuleContext(0, Data_exprContext);
5576
5520
  }
5577
- NEWLINE(i) {
5578
- if (i === undefined) {
5579
- return this.getTokens(CircuitScriptParser.NEWLINE);
5580
- }
5581
- else {
5582
- return this.getToken(CircuitScriptParser.NEWLINE, i);
5583
- }
5584
- }
5585
- INDENT() {
5586
- return this.getToken(CircuitScriptParser.INDENT, 0);
5587
- }
5588
- DEDENT() {
5589
- return this.getToken(CircuitScriptParser.DEDENT, 0);
5590
- }
5591
- expression(i) {
5592
- if (i === undefined) {
5593
- return this.getRuleContexts(ExpressionContext);
5594
- }
5595
- return this.getRuleContext(i, ExpressionContext);
5521
+ expressions_block() {
5522
+ return this.getRuleContext(0, Expressions_blockContext);
5596
5523
  }
5597
5524
  if_inner_expr(i) {
5598
5525
  if (i === undefined) {
@@ -5629,25 +5556,8 @@ class If_inner_exprContext extends antlr.ParserRuleContext {
5629
5556
  data_expr() {
5630
5557
  return this.getRuleContext(0, Data_exprContext);
5631
5558
  }
5632
- NEWLINE(i) {
5633
- if (i === undefined) {
5634
- return this.getTokens(CircuitScriptParser.NEWLINE);
5635
- }
5636
- else {
5637
- return this.getToken(CircuitScriptParser.NEWLINE, i);
5638
- }
5639
- }
5640
- INDENT() {
5641
- return this.getToken(CircuitScriptParser.INDENT, 0);
5642
- }
5643
- DEDENT() {
5644
- return this.getToken(CircuitScriptParser.DEDENT, 0);
5645
- }
5646
- expression(i) {
5647
- if (i === undefined) {
5648
- return this.getRuleContexts(ExpressionContext);
5649
- }
5650
- return this.getRuleContext(i, ExpressionContext);
5559
+ expressions_block() {
5560
+ return this.getRuleContext(0, Expressions_blockContext);
5651
5561
  }
5652
5562
  get ruleIndex() {
5653
5563
  return CircuitScriptParser.RULE_if_inner_expr;
@@ -5669,25 +5579,8 @@ class Else_exprContext extends antlr.ParserRuleContext {
5669
5579
  Else() {
5670
5580
  return this.getToken(CircuitScriptParser.Else, 0);
5671
5581
  }
5672
- NEWLINE(i) {
5673
- if (i === undefined) {
5674
- return this.getTokens(CircuitScriptParser.NEWLINE);
5675
- }
5676
- else {
5677
- return this.getToken(CircuitScriptParser.NEWLINE, i);
5678
- }
5679
- }
5680
- INDENT() {
5681
- return this.getToken(CircuitScriptParser.INDENT, 0);
5682
- }
5683
- DEDENT() {
5684
- return this.getToken(CircuitScriptParser.DEDENT, 0);
5685
- }
5686
- expression(i) {
5687
- if (i === undefined) {
5688
- return this.getRuleContexts(ExpressionContext);
5689
- }
5690
- return this.getRuleContext(i, ExpressionContext);
5582
+ expressions_block() {
5583
+ return this.getRuleContext(0, Expressions_blockContext);
5691
5584
  }
5692
5585
  get ruleIndex() {
5693
5586
  return CircuitScriptParser.RULE_else_expr;