circuitscript 0.0.29 → 0.0.32

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 (64) 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 +330 -87
  5. package/dist/cjs/execute.js +41 -14
  6. package/dist/cjs/geometry.js +79 -18
  7. package/dist/cjs/globals.js +37 -6
  8. package/dist/cjs/helpers.js +75 -5
  9. package/dist/cjs/layout.js +107 -43
  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/Frame.js +2 -0
  14. package/dist/cjs/objects/Net.js +3 -2
  15. package/dist/cjs/objects/PinTypes.js +7 -1
  16. package/dist/cjs/objects/types.js +11 -1
  17. package/dist/cjs/regenerate-tests.js +64 -3
  18. package/dist/cjs/render.js +29 -21
  19. package/dist/cjs/sizing.js +4 -6
  20. package/dist/cjs/utils.js +29 -5
  21. package/dist/cjs/visitor.js +176 -10
  22. package/dist/esm/BaseVisitor.mjs +6 -1
  23. package/dist/esm/antlr/CircuitScriptLexer.mjs +204 -200
  24. package/dist/esm/antlr/CircuitScriptParser.mjs +1061 -1171
  25. package/dist/esm/antlr/CircuitScriptVisitor.mjs +3 -0
  26. package/dist/esm/draw_symbols.mjs +324 -85
  27. package/dist/esm/execute.mjs +42 -15
  28. package/dist/esm/geometry.mjs +79 -17
  29. package/dist/esm/globals.mjs +36 -5
  30. package/dist/esm/helpers.mjs +74 -5
  31. package/dist/esm/layout.mjs +110 -46
  32. package/dist/esm/main.mjs +11 -5
  33. package/dist/esm/objects/ClassComponent.mjs +6 -0
  34. package/dist/esm/objects/ExecutionScope.mjs +1 -1
  35. package/dist/esm/objects/Frame.mjs +2 -0
  36. package/dist/esm/objects/Net.mjs +3 -2
  37. package/dist/esm/objects/PinTypes.mjs +6 -0
  38. package/dist/esm/objects/types.mjs +14 -0
  39. package/dist/esm/regenerate-tests.mjs +64 -3
  40. package/dist/esm/render.mjs +30 -22
  41. package/dist/esm/sizing.mjs +3 -4
  42. package/dist/esm/utils.mjs +26 -4
  43. package/dist/esm/visitor.mjs +179 -13
  44. package/dist/types/antlr/CircuitScriptLexer.d.ts +42 -41
  45. package/dist/types/antlr/CircuitScriptParser.d.ts +144 -133
  46. package/dist/types/antlr/CircuitScriptVisitor.d.ts +6 -0
  47. package/dist/types/draw_symbols.d.ts +15 -2
  48. package/dist/types/execute.d.ts +5 -4
  49. package/dist/types/geometry.d.ts +4 -3
  50. package/dist/types/globals.d.ts +32 -3
  51. package/dist/types/helpers.d.ts +12 -0
  52. package/dist/types/layout.d.ts +8 -2
  53. package/dist/types/objects/ClassComponent.d.ts +8 -0
  54. package/dist/types/objects/Frame.d.ts +3 -1
  55. package/dist/types/objects/PinTypes.d.ts +1 -0
  56. package/dist/types/objects/Wire.d.ts +4 -2
  57. package/dist/types/objects/types.d.ts +8 -0
  58. package/dist/types/render.d.ts +5 -1
  59. package/dist/types/sizing.d.ts +0 -4
  60. package/dist/types/utils.d.ts +3 -0
  61. package/dist/types/visitor.d.ts +8 -1
  62. package/fonts/Arial.ttf +0 -0
  63. package/libs/lib.cst +58 -41
  64. package/package.json +5 -1
@@ -12,127 +12,131 @@ export class CircuitScriptParser extends antlr.Parser {
12
12
  static Create = 10;
13
13
  static Component = 11;
14
14
  static Graphic = 12;
15
- static Wire = 13;
16
- static Pin = 14;
17
- static Add = 15;
18
- static At = 16;
19
- static To = 17;
20
- static Point = 18;
21
- static Join = 19;
22
- static Parallel = 20;
23
- static Return = 21;
24
- static Define = 22;
25
- static Import = 23;
26
- static If = 24;
27
- static Else = 25;
28
- static Not = 26;
29
- static Frame = 27;
30
- static Equals = 28;
31
- static NotEquals = 29;
32
- static GreaterThan = 30;
33
- static GreatOrEqualThan = 31;
34
- static LessThan = 32;
35
- static LessOrEqualThan = 33;
36
- static LogicalAnd = 34;
37
- static LogicalOr = 35;
38
- static Addition = 36;
39
- static Minus = 37;
40
- static Divide = 38;
41
- static Multiply = 39;
42
- static OPEN_PAREN = 40;
43
- static CLOSE_PAREN = 41;
44
- static NOT_CONNECTED = 42;
45
- static BOOLEAN_VALUE = 43;
46
- static ID = 44;
47
- static INTEGER_VALUE = 45;
48
- static DECIMAL_VALUE = 46;
49
- static NUMERIC_VALUE = 47;
50
- static STRING_VALUE = 48;
51
- static PERCENTAGE_VALUE = 49;
52
- static ALPHA_NUMERIC = 50;
53
- static WS = 51;
54
- static NEWLINE = 52;
55
- static COMMENT = 53;
56
- static INDENT = 54;
57
- static DEDENT = 55;
15
+ static Module = 13;
16
+ static Wire = 14;
17
+ static Pin = 15;
18
+ static Add = 16;
19
+ static At = 17;
20
+ static To = 18;
21
+ static Point = 19;
22
+ static Join = 20;
23
+ static Parallel = 21;
24
+ static Return = 22;
25
+ static Define = 23;
26
+ static Import = 24;
27
+ static If = 25;
28
+ static Else = 26;
29
+ static Not = 27;
30
+ static Frame = 28;
31
+ static Equals = 29;
32
+ static NotEquals = 30;
33
+ static GreaterThan = 31;
34
+ static GreatOrEqualThan = 32;
35
+ static LessThan = 33;
36
+ static LessOrEqualThan = 34;
37
+ static LogicalAnd = 35;
38
+ static LogicalOr = 36;
39
+ static Addition = 37;
40
+ static Minus = 38;
41
+ static Divide = 39;
42
+ static Multiply = 40;
43
+ static OPEN_PAREN = 41;
44
+ static CLOSE_PAREN = 42;
45
+ static NOT_CONNECTED = 43;
46
+ static BOOLEAN_VALUE = 44;
47
+ static ID = 45;
48
+ static INTEGER_VALUE = 46;
49
+ static DECIMAL_VALUE = 47;
50
+ static NUMERIC_VALUE = 48;
51
+ static STRING_VALUE = 49;
52
+ static PERCENTAGE_VALUE = 50;
53
+ static ALPHA_NUMERIC = 51;
54
+ static WS = 52;
55
+ static NEWLINE = 53;
56
+ static COMMENT = 54;
57
+ static INDENT = 55;
58
+ static DEDENT = 56;
58
59
  static RULE_script = 0;
59
60
  static RULE_expression = 1;
60
- static RULE_path_blocks = 2;
61
- static RULE_path_block_inner = 3;
62
- static RULE_property_set_expr2 = 4;
63
- static RULE_assignment_expr2 = 5;
64
- static RULE_pin_select_expr = 6;
65
- static RULE_component_modifier_expr = 7;
66
- static RULE_data_expr_with_assignment = 8;
67
- static RULE_add_component_expr = 9;
68
- static RULE_component_select_expr = 10;
69
- static RULE_pin_select_expr2 = 11;
70
- static RULE_at_component_expr = 12;
71
- static RULE_to_component_expr = 13;
72
- static RULE_at_to_multiple_expr = 14;
73
- static RULE_at_to_multiple_line_expr = 15;
74
- static RULE_at_to_multiple_line_expr_to_pin = 16;
75
- static RULE_at_block = 17;
76
- static RULE_at_block_expressions = 18;
77
- static RULE_at_block_pin_expr = 19;
78
- static RULE_at_block_pin_expression_simple = 20;
79
- static RULE_at_block_pin_expression_complex = 21;
80
- static RULE_break_keyword = 22;
81
- static RULE_assignment_expr = 23;
82
- static RULE_keyword_assignment_expr = 24;
83
- static RULE_parameters = 25;
84
- static RULE_property_set_expr = 26;
85
- static RULE_double_dot_property_set_expr = 27;
86
- static RULE_data_expr = 28;
87
- static RULE_binary_operator = 29;
88
- static RULE_unary_operator = 30;
89
- static RULE_value_expr = 31;
90
- static RULE_function_def_expr = 32;
91
- static RULE_function_expr = 33;
92
- static RULE_function_args_expr = 34;
93
- static RULE_atom_expr = 35;
94
- static RULE_trailer_expr = 36;
95
- static RULE_function_call_expr = 37;
96
- static RULE_net_namespace_expr = 38;
97
- static RULE_function_return_expr = 39;
98
- static RULE_create_component_expr = 40;
99
- static RULE_create_graphic_expr = 41;
100
- static RULE_nested_properties_inner = 42;
101
- static RULE_graphic_expr = 43;
102
- static RULE_property_expr = 44;
103
- static RULE_property_key_expr = 45;
104
- static RULE_property_value_expr = 46;
105
- static RULE_blank_expr = 47;
106
- static RULE_wire_atom_expr = 48;
107
- static RULE_wire_expr = 49;
108
- static RULE_point_expr = 50;
109
- static RULE_import_expr = 51;
110
- static RULE_frame_expr = 52;
111
- static RULE_if_expr = 53;
112
- static RULE_if_inner_expr = 54;
113
- static RULE_else_expr = 55;
61
+ static RULE_expressions_block = 2;
62
+ static RULE_path_blocks = 3;
63
+ static RULE_path_block_inner = 4;
64
+ static RULE_property_set_expr2 = 5;
65
+ static RULE_assignment_expr2 = 6;
66
+ static RULE_pin_select_expr = 7;
67
+ static RULE_component_modifier_expr = 8;
68
+ static RULE_data_expr_with_assignment = 9;
69
+ static RULE_add_component_expr = 10;
70
+ static RULE_component_select_expr = 11;
71
+ static RULE_pin_select_expr2 = 12;
72
+ static RULE_at_component_expr = 13;
73
+ static RULE_to_component_expr = 14;
74
+ static RULE_at_to_multiple_expr = 15;
75
+ static RULE_at_to_multiple_line_expr = 16;
76
+ static RULE_at_to_multiple_line_expr_to_pin = 17;
77
+ static RULE_at_block = 18;
78
+ static RULE_at_block_expressions = 19;
79
+ static RULE_at_block_pin_expr = 20;
80
+ static RULE_at_block_pin_expression_simple = 21;
81
+ static RULE_at_block_pin_expression_complex = 22;
82
+ static RULE_break_keyword = 23;
83
+ static RULE_assignment_expr = 24;
84
+ static RULE_keyword_assignment_expr = 25;
85
+ static RULE_parameters = 26;
86
+ static RULE_property_set_expr = 27;
87
+ static RULE_double_dot_property_set_expr = 28;
88
+ static RULE_data_expr = 29;
89
+ static RULE_binary_operator = 30;
90
+ static RULE_unary_operator = 31;
91
+ static RULE_value_expr = 32;
92
+ static RULE_function_def_expr = 33;
93
+ static RULE_function_expr = 34;
94
+ static RULE_function_args_expr = 35;
95
+ static RULE_atom_expr = 36;
96
+ static RULE_trailer_expr = 37;
97
+ static RULE_function_call_expr = 38;
98
+ static RULE_net_namespace_expr = 39;
99
+ static RULE_function_return_expr = 40;
100
+ static RULE_property_block_expr = 41;
101
+ static RULE_create_component_expr = 42;
102
+ static RULE_create_graphic_expr = 43;
103
+ static RULE_create_module_expr = 44;
104
+ static RULE_nested_properties_inner = 45;
105
+ static RULE_graphic_expr = 46;
106
+ static RULE_property_expr = 47;
107
+ static RULE_property_key_expr = 48;
108
+ static RULE_property_value_expr = 49;
109
+ static RULE_blank_expr = 50;
110
+ static RULE_wire_atom_expr = 51;
111
+ static RULE_wire_expr = 52;
112
+ static RULE_point_expr = 53;
113
+ static RULE_import_expr = 54;
114
+ static RULE_frame_expr = 55;
115
+ static RULE_if_expr = 56;
116
+ static RULE_if_inner_expr = 57;
117
+ static RULE_else_expr = 58;
114
118
  static literalNames = [
115
119
  null, "':'", "','", "'='", "'..'", "'.'", "'['", "']'", "'break'",
116
- "'branch'", "'create'", "'component'", "'graphic'", "'wire'", "'pin'",
117
- "'add'", "'at'", "'to'", "'point'", "'join'", "'parallel'", "'return'",
118
- "'def'", "'import'", "'if'", "'else'", "'!'", "'frame'", "'=='",
119
- "'!='", "'>'", "'>='", "'<'", "'<='", "'&&'", "'||'", "'+'", "'-'",
120
- "'/'", "'*'", "'('", "')'"
120
+ "'branch'", "'create'", "'component'", "'graphic'", "'module'",
121
+ "'wire'", "'pin'", "'add'", "'at'", "'to'", "'point'", "'join'",
122
+ "'parallel'", "'return'", "'def'", "'import'", "'if'", "'else'",
123
+ "'!'", "'frame'", "'=='", "'!='", "'>'", "'>='", "'<'", "'<='",
124
+ "'&&'", "'||'", "'+'", "'-'", "'/'", "'*'", "'('", "')'"
121
125
  ];
122
126
  static symbolicNames = [
123
127
  null, null, null, null, null, null, null, null, "Break", "Branch",
124
- "Create", "Component", "Graphic", "Wire", "Pin", "Add", "At", "To",
125
- "Point", "Join", "Parallel", "Return", "Define", "Import", "If",
126
- "Else", "Not", "Frame", "Equals", "NotEquals", "GreaterThan", "GreatOrEqualThan",
127
- "LessThan", "LessOrEqualThan", "LogicalAnd", "LogicalOr", "Addition",
128
- "Minus", "Divide", "Multiply", "OPEN_PAREN", "CLOSE_PAREN", "NOT_CONNECTED",
129
- "BOOLEAN_VALUE", "ID", "INTEGER_VALUE", "DECIMAL_VALUE", "NUMERIC_VALUE",
130
- "STRING_VALUE", "PERCENTAGE_VALUE", "ALPHA_NUMERIC", "WS", "NEWLINE",
131
- "COMMENT", "INDENT", "DEDENT"
128
+ "Create", "Component", "Graphic", "Module", "Wire", "Pin", "Add",
129
+ "At", "To", "Point", "Join", "Parallel", "Return", "Define", "Import",
130
+ "If", "Else", "Not", "Frame", "Equals", "NotEquals", "GreaterThan",
131
+ "GreatOrEqualThan", "LessThan", "LessOrEqualThan", "LogicalAnd",
132
+ "LogicalOr", "Addition", "Minus", "Divide", "Multiply", "OPEN_PAREN",
133
+ "CLOSE_PAREN", "NOT_CONNECTED", "BOOLEAN_VALUE", "ID", "INTEGER_VALUE",
134
+ "DECIMAL_VALUE", "NUMERIC_VALUE", "STRING_VALUE", "PERCENTAGE_VALUE",
135
+ "ALPHA_NUMERIC", "WS", "NEWLINE", "COMMENT", "INDENT", "DEDENT"
132
136
  ];
133
137
  static ruleNames = [
134
- "script", "expression", "path_blocks", "path_block_inner", "property_set_expr2",
135
- "assignment_expr2", "pin_select_expr", "component_modifier_expr",
138
+ "script", "expression", "expressions_block", "path_blocks", "path_block_inner",
139
+ "property_set_expr2", "assignment_expr2", "pin_select_expr", "component_modifier_expr",
136
140
  "data_expr_with_assignment", "add_component_expr", "component_select_expr",
137
141
  "pin_select_expr2", "at_component_expr", "to_component_expr", "at_to_multiple_expr",
138
142
  "at_to_multiple_line_expr", "at_to_multiple_line_expr_to_pin", "at_block",
@@ -142,10 +146,11 @@ export class CircuitScriptParser extends antlr.Parser {
142
146
  "data_expr", "binary_operator", "unary_operator", "value_expr",
143
147
  "function_def_expr", "function_expr", "function_args_expr", "atom_expr",
144
148
  "trailer_expr", "function_call_expr", "net_namespace_expr", "function_return_expr",
145
- "create_component_expr", "create_graphic_expr", "nested_properties_inner",
146
- "graphic_expr", "property_expr", "property_key_expr", "property_value_expr",
147
- "blank_expr", "wire_atom_expr", "wire_expr", "point_expr", "import_expr",
148
- "frame_expr", "if_expr", "if_inner_expr", "else_expr",
149
+ "property_block_expr", "create_component_expr", "create_graphic_expr",
150
+ "create_module_expr", "nested_properties_inner", "graphic_expr",
151
+ "property_expr", "property_key_expr", "property_value_expr", "blank_expr",
152
+ "wire_atom_expr", "wire_expr", "point_expr", "import_expr", "frame_expr",
153
+ "if_expr", "if_inner_expr", "else_expr",
149
154
  ];
150
155
  get grammarFileName() { return "CircuitScript.g4"; }
151
156
  get literalNames() { return CircuitScriptParser.literalNames; }
@@ -166,12 +171,12 @@ export class CircuitScriptParser extends antlr.Parser {
166
171
  try {
167
172
  this.enterOuterAlt(localContext, 1);
168
173
  {
169
- this.state = 114;
174
+ this.state = 120;
170
175
  this.errorHandler.sync(this);
171
176
  _la = this.tokenStream.LA(1);
172
177
  do {
173
178
  {
174
- this.state = 114;
179
+ this.state = 120;
175
180
  this.errorHandler.sync(this);
176
181
  switch (this.tokenStream.LA(1)) {
177
182
  case CircuitScriptParser.T__3:
@@ -192,13 +197,13 @@ export class CircuitScriptParser extends antlr.Parser {
192
197
  case CircuitScriptParser.Divide:
193
198
  case CircuitScriptParser.ID:
194
199
  {
195
- this.state = 112;
200
+ this.state = 118;
196
201
  this.expression();
197
202
  }
198
203
  break;
199
204
  case CircuitScriptParser.NEWLINE:
200
205
  {
201
- this.state = 113;
206
+ this.state = 119;
202
207
  this.match(CircuitScriptParser.NEWLINE);
203
208
  }
204
209
  break;
@@ -206,11 +211,11 @@ export class CircuitScriptParser extends antlr.Parser {
206
211
  throw new antlr.NoViableAltException(this);
207
212
  }
208
213
  }
209
- this.state = 116;
214
+ this.state = 122;
210
215
  this.errorHandler.sync(this);
211
216
  _la = this.tokenStream.LA(1);
212
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
213
- this.state = 118;
217
+ } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 331301648) !== 0) || ((((_la - 37)) & ~0x1F) === 0 && ((1 << (_la - 37)) & 65797) !== 0));
218
+ this.state = 124;
214
219
  this.match(CircuitScriptParser.EOF);
215
220
  }
216
221
  }
@@ -232,132 +237,132 @@ export class CircuitScriptParser extends antlr.Parser {
232
237
  let localContext = new ExpressionContext(this.context, this.state);
233
238
  this.enterRule(localContext, 2, CircuitScriptParser.RULE_expression);
234
239
  try {
235
- this.state = 138;
240
+ this.state = 144;
236
241
  this.errorHandler.sync(this);
237
242
  switch (this.interpreter.adaptivePredict(this.tokenStream, 2, this.context)) {
238
243
  case 1:
239
244
  this.enterOuterAlt(localContext, 1);
240
245
  {
241
- this.state = 120;
246
+ this.state = 126;
242
247
  this.add_component_expr();
243
248
  }
244
249
  break;
245
250
  case 2:
246
251
  this.enterOuterAlt(localContext, 2);
247
252
  {
248
- this.state = 121;
253
+ this.state = 127;
249
254
  this.to_component_expr();
250
255
  }
251
256
  break;
252
257
  case 3:
253
258
  this.enterOuterAlt(localContext, 3);
254
259
  {
255
- this.state = 122;
260
+ this.state = 128;
256
261
  this.at_component_expr();
257
262
  }
258
263
  break;
259
264
  case 4:
260
265
  this.enterOuterAlt(localContext, 4);
261
266
  {
262
- this.state = 123;
267
+ this.state = 129;
263
268
  this.assignment_expr();
264
269
  }
265
270
  break;
266
271
  case 5:
267
272
  this.enterOuterAlt(localContext, 5);
268
273
  {
269
- this.state = 124;
274
+ this.state = 130;
270
275
  this.property_set_expr();
271
276
  }
272
277
  break;
273
278
  case 6:
274
279
  this.enterOuterAlt(localContext, 6);
275
280
  {
276
- this.state = 125;
281
+ this.state = 131;
277
282
  this.property_set_expr2();
278
283
  }
279
284
  break;
280
285
  case 7:
281
286
  this.enterOuterAlt(localContext, 7);
282
287
  {
283
- this.state = 126;
288
+ this.state = 132;
284
289
  this.double_dot_property_set_expr();
285
290
  }
286
291
  break;
287
292
  case 8:
288
293
  this.enterOuterAlt(localContext, 8);
289
294
  {
290
- this.state = 127;
295
+ this.state = 133;
291
296
  this.break_keyword();
292
297
  }
293
298
  break;
294
299
  case 9:
295
300
  this.enterOuterAlt(localContext, 9);
296
301
  {
297
- this.state = 128;
302
+ this.state = 134;
298
303
  this.function_def_expr();
299
304
  }
300
305
  break;
301
306
  case 10:
302
307
  this.enterOuterAlt(localContext, 10);
303
308
  {
304
- this.state = 129;
309
+ this.state = 135;
305
310
  this.function_call_expr();
306
311
  }
307
312
  break;
308
313
  case 11:
309
314
  this.enterOuterAlt(localContext, 11);
310
315
  {
311
- this.state = 130;
316
+ this.state = 136;
312
317
  this.wire_expr();
313
318
  }
314
319
  break;
315
320
  case 12:
316
321
  this.enterOuterAlt(localContext, 12);
317
322
  {
318
- this.state = 131;
323
+ this.state = 137;
319
324
  this.import_expr();
320
325
  }
321
326
  break;
322
327
  case 13:
323
328
  this.enterOuterAlt(localContext, 13);
324
329
  {
325
- this.state = 132;
330
+ this.state = 138;
326
331
  this.frame_expr();
327
332
  }
328
333
  break;
329
334
  case 14:
330
335
  this.enterOuterAlt(localContext, 14);
331
336
  {
332
- this.state = 133;
337
+ this.state = 139;
333
338
  this.atom_expr();
334
339
  }
335
340
  break;
336
341
  case 15:
337
342
  this.enterOuterAlt(localContext, 15);
338
343
  {
339
- this.state = 134;
344
+ this.state = 140;
340
345
  this.at_block();
341
346
  }
342
347
  break;
343
348
  case 16:
344
349
  this.enterOuterAlt(localContext, 16);
345
350
  {
346
- this.state = 135;
351
+ this.state = 141;
347
352
  this.path_blocks();
348
353
  }
349
354
  break;
350
355
  case 17:
351
356
  this.enterOuterAlt(localContext, 17);
352
357
  {
353
- this.state = 136;
358
+ this.state = 142;
354
359
  this.point_expr();
355
360
  }
356
361
  break;
357
362
  case 18:
358
363
  this.enterOuterAlt(localContext, 18);
359
364
  {
360
- this.state = 137;
365
+ this.state = 143;
361
366
  this.if_expr();
362
367
  }
363
368
  break;
@@ -377,14 +382,87 @@ export class CircuitScriptParser extends antlr.Parser {
377
382
  }
378
383
  return localContext;
379
384
  }
385
+ expressions_block() {
386
+ let localContext = new Expressions_blockContext(this.context, this.state);
387
+ this.enterRule(localContext, 4, CircuitScriptParser.RULE_expressions_block);
388
+ let _la;
389
+ try {
390
+ this.enterOuterAlt(localContext, 1);
391
+ {
392
+ this.state = 146;
393
+ this.match(CircuitScriptParser.NEWLINE);
394
+ this.state = 147;
395
+ this.match(CircuitScriptParser.INDENT);
396
+ this.state = 150;
397
+ this.errorHandler.sync(this);
398
+ _la = this.tokenStream.LA(1);
399
+ do {
400
+ {
401
+ this.state = 150;
402
+ this.errorHandler.sync(this);
403
+ switch (this.tokenStream.LA(1)) {
404
+ case CircuitScriptParser.NEWLINE:
405
+ {
406
+ this.state = 148;
407
+ this.match(CircuitScriptParser.NEWLINE);
408
+ }
409
+ break;
410
+ case CircuitScriptParser.T__3:
411
+ case CircuitScriptParser.Break:
412
+ case CircuitScriptParser.Branch:
413
+ case CircuitScriptParser.Wire:
414
+ case CircuitScriptParser.Add:
415
+ case CircuitScriptParser.At:
416
+ case CircuitScriptParser.To:
417
+ case CircuitScriptParser.Point:
418
+ case CircuitScriptParser.Join:
419
+ case CircuitScriptParser.Parallel:
420
+ case CircuitScriptParser.Define:
421
+ case CircuitScriptParser.Import:
422
+ case CircuitScriptParser.If:
423
+ case CircuitScriptParser.Frame:
424
+ case CircuitScriptParser.Addition:
425
+ case CircuitScriptParser.Divide:
426
+ case CircuitScriptParser.ID:
427
+ {
428
+ this.state = 149;
429
+ this.expression();
430
+ }
431
+ break;
432
+ default:
433
+ throw new antlr.NoViableAltException(this);
434
+ }
435
+ }
436
+ this.state = 152;
437
+ this.errorHandler.sync(this);
438
+ _la = this.tokenStream.LA(1);
439
+ } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 331301648) !== 0) || ((((_la - 37)) & ~0x1F) === 0 && ((1 << (_la - 37)) & 65797) !== 0));
440
+ this.state = 154;
441
+ this.match(CircuitScriptParser.DEDENT);
442
+ }
443
+ }
444
+ catch (re) {
445
+ if (re instanceof antlr.RecognitionException) {
446
+ this.errorHandler.reportError(this, re);
447
+ this.errorHandler.recover(this, re);
448
+ }
449
+ else {
450
+ throw re;
451
+ }
452
+ }
453
+ finally {
454
+ this.exitRule();
455
+ }
456
+ return localContext;
457
+ }
380
458
  path_blocks() {
381
459
  let localContext = new Path_blocksContext(this.context, this.state);
382
- this.enterRule(localContext, 4, CircuitScriptParser.RULE_path_blocks);
460
+ this.enterRule(localContext, 6, CircuitScriptParser.RULE_path_blocks);
383
461
  try {
384
462
  let alternative;
385
463
  this.enterOuterAlt(localContext, 1);
386
464
  {
387
- this.state = 141;
465
+ this.state = 157;
388
466
  this.errorHandler.sync(this);
389
467
  alternative = 1;
390
468
  do {
@@ -392,7 +470,7 @@ export class CircuitScriptParser extends antlr.Parser {
392
470
  case 1:
393
471
  {
394
472
  {
395
- this.state = 140;
473
+ this.state = 156;
396
474
  this.path_block_inner();
397
475
  }
398
476
  }
@@ -400,9 +478,9 @@ export class CircuitScriptParser extends antlr.Parser {
400
478
  default:
401
479
  throw new antlr.NoViableAltException(this);
402
480
  }
403
- this.state = 143;
481
+ this.state = 159;
404
482
  this.errorHandler.sync(this);
405
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 3, this.context);
483
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 5, this.context);
406
484
  } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
407
485
  }
408
486
  }
@@ -422,72 +500,24 @@ export class CircuitScriptParser extends antlr.Parser {
422
500
  }
423
501
  path_block_inner() {
424
502
  let localContext = new Path_block_innerContext(this.context, this.state);
425
- this.enterRule(localContext, 6, CircuitScriptParser.RULE_path_block_inner);
503
+ this.enterRule(localContext, 8, CircuitScriptParser.RULE_path_block_inner);
426
504
  let _la;
427
505
  try {
428
506
  this.enterOuterAlt(localContext, 1);
429
507
  {
430
- this.state = 145;
508
+ this.state = 161;
431
509
  _la = this.tokenStream.LA(1);
432
- if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 1835520) !== 0))) {
510
+ if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 3670528) !== 0))) {
433
511
  this.errorHandler.recoverInline(this);
434
512
  }
435
513
  else {
436
514
  this.errorHandler.reportMatch(this);
437
515
  this.consume();
438
516
  }
439
- this.state = 146;
517
+ this.state = 162;
440
518
  this.match(CircuitScriptParser.T__0);
441
- this.state = 147;
442
- this.match(CircuitScriptParser.NEWLINE);
443
- this.state = 148;
444
- this.match(CircuitScriptParser.INDENT);
445
- this.state = 151;
446
- this.errorHandler.sync(this);
447
- _la = this.tokenStream.LA(1);
448
- do {
449
- {
450
- this.state = 151;
451
- this.errorHandler.sync(this);
452
- switch (this.tokenStream.LA(1)) {
453
- case CircuitScriptParser.NEWLINE:
454
- {
455
- this.state = 149;
456
- this.match(CircuitScriptParser.NEWLINE);
457
- }
458
- break;
459
- case CircuitScriptParser.T__3:
460
- case CircuitScriptParser.Break:
461
- case CircuitScriptParser.Branch:
462
- case CircuitScriptParser.Wire:
463
- case CircuitScriptParser.Add:
464
- case CircuitScriptParser.At:
465
- case CircuitScriptParser.To:
466
- case CircuitScriptParser.Point:
467
- case CircuitScriptParser.Join:
468
- case CircuitScriptParser.Parallel:
469
- case CircuitScriptParser.Define:
470
- case CircuitScriptParser.Import:
471
- case CircuitScriptParser.If:
472
- case CircuitScriptParser.Frame:
473
- case CircuitScriptParser.Addition:
474
- case CircuitScriptParser.Divide:
475
- case CircuitScriptParser.ID:
476
- {
477
- this.state = 150;
478
- this.expression();
479
- }
480
- break;
481
- default:
482
- throw new antlr.NoViableAltException(this);
483
- }
484
- }
485
- this.state = 153;
486
- this.errorHandler.sync(this);
487
- _la = this.tokenStream.LA(1);
488
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
489
- this.state = 155;
490
- this.match(CircuitScriptParser.DEDENT);
519
+ this.state = 163;
520
+ this.expressions_block();
491
521
  }
492
522
  }
493
523
  catch (re) {
@@ -506,37 +536,37 @@ export class CircuitScriptParser extends antlr.Parser {
506
536
  }
507
537
  property_set_expr2() {
508
538
  let localContext = new Property_set_expr2Context(this.context, this.state);
509
- this.enterRule(localContext, 8, CircuitScriptParser.RULE_property_set_expr2);
539
+ this.enterRule(localContext, 10, CircuitScriptParser.RULE_property_set_expr2);
510
540
  let _la;
511
541
  try {
512
542
  this.enterOuterAlt(localContext, 1);
513
543
  {
514
- this.state = 157;
544
+ this.state = 165;
515
545
  this.atom_expr();
516
- this.state = 158;
546
+ this.state = 166;
517
547
  this.match(CircuitScriptParser.T__0);
518
- this.state = 159;
548
+ this.state = 167;
519
549
  this.match(CircuitScriptParser.NEWLINE);
520
- this.state = 160;
550
+ this.state = 168;
521
551
  this.match(CircuitScriptParser.INDENT);
522
- this.state = 163;
552
+ this.state = 171;
523
553
  this.errorHandler.sync(this);
524
554
  _la = this.tokenStream.LA(1);
525
555
  do {
526
556
  {
527
- this.state = 163;
557
+ this.state = 171;
528
558
  this.errorHandler.sync(this);
529
559
  switch (this.tokenStream.LA(1)) {
530
560
  case CircuitScriptParser.NEWLINE:
531
561
  {
532
- this.state = 161;
562
+ this.state = 169;
533
563
  this.match(CircuitScriptParser.NEWLINE);
534
564
  }
535
565
  break;
536
566
  case CircuitScriptParser.ID:
537
567
  case CircuitScriptParser.INTEGER_VALUE:
538
568
  {
539
- this.state = 162;
569
+ this.state = 170;
540
570
  this.assignment_expr2();
541
571
  }
542
572
  break;
@@ -544,11 +574,11 @@ export class CircuitScriptParser extends antlr.Parser {
544
574
  throw new antlr.NoViableAltException(this);
545
575
  }
546
576
  }
547
- this.state = 165;
577
+ this.state = 173;
548
578
  this.errorHandler.sync(this);
549
579
  _la = this.tokenStream.LA(1);
550
- } while (((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 259) !== 0));
551
- this.state = 167;
580
+ } while (((((_la - 45)) & ~0x1F) === 0 && ((1 << (_la - 45)) & 259) !== 0));
581
+ this.state = 175;
552
582
  this.match(CircuitScriptParser.DEDENT);
553
583
  }
554
584
  }
@@ -568,23 +598,23 @@ export class CircuitScriptParser extends antlr.Parser {
568
598
  }
569
599
  assignment_expr2() {
570
600
  let localContext = new Assignment_expr2Context(this.context, this.state);
571
- this.enterRule(localContext, 10, CircuitScriptParser.RULE_assignment_expr2);
601
+ this.enterRule(localContext, 12, CircuitScriptParser.RULE_assignment_expr2);
572
602
  let _la;
573
603
  try {
574
604
  this.enterOuterAlt(localContext, 1);
575
605
  {
576
- this.state = 169;
606
+ this.state = 177;
577
607
  _la = this.tokenStream.LA(1);
578
- if (!(_la === 44 || _la === 45)) {
608
+ if (!(_la === 45 || _la === 46)) {
579
609
  this.errorHandler.recoverInline(this);
580
610
  }
581
611
  else {
582
612
  this.errorHandler.reportMatch(this);
583
613
  this.consume();
584
614
  }
585
- this.state = 170;
615
+ this.state = 178;
586
616
  this.match(CircuitScriptParser.T__0);
587
- this.state = 171;
617
+ this.state = 179;
588
618
  this.value_expr();
589
619
  }
590
620
  }
@@ -604,16 +634,16 @@ export class CircuitScriptParser extends antlr.Parser {
604
634
  }
605
635
  pin_select_expr() {
606
636
  let localContext = new Pin_select_exprContext(this.context, this.state);
607
- this.enterRule(localContext, 12, CircuitScriptParser.RULE_pin_select_expr);
637
+ this.enterRule(localContext, 14, CircuitScriptParser.RULE_pin_select_expr);
608
638
  let _la;
609
639
  try {
610
640
  this.enterOuterAlt(localContext, 1);
611
641
  {
612
- this.state = 173;
642
+ this.state = 181;
613
643
  this.match(CircuitScriptParser.Pin);
614
- this.state = 174;
644
+ this.state = 182;
615
645
  _la = this.tokenStream.LA(1);
616
- if (!(_la === 45 || _la === 48)) {
646
+ if (!(_la === 46 || _la === 49)) {
617
647
  this.errorHandler.recoverInline(this);
618
648
  }
619
649
  else {
@@ -638,15 +668,15 @@ export class CircuitScriptParser extends antlr.Parser {
638
668
  }
639
669
  component_modifier_expr() {
640
670
  let localContext = new Component_modifier_exprContext(this.context, this.state);
641
- this.enterRule(localContext, 14, CircuitScriptParser.RULE_component_modifier_expr);
671
+ this.enterRule(localContext, 16, CircuitScriptParser.RULE_component_modifier_expr);
642
672
  try {
643
673
  this.enterOuterAlt(localContext, 1);
644
674
  {
645
- this.state = 176;
675
+ this.state = 184;
646
676
  this.match(CircuitScriptParser.ID);
647
- this.state = 177;
677
+ this.state = 185;
648
678
  this.match(CircuitScriptParser.T__0);
649
- this.state = 180;
679
+ this.state = 188;
650
680
  this.errorHandler.sync(this);
651
681
  switch (this.tokenStream.LA(1)) {
652
682
  case CircuitScriptParser.T__5:
@@ -658,13 +688,13 @@ export class CircuitScriptParser extends antlr.Parser {
658
688
  case CircuitScriptParser.STRING_VALUE:
659
689
  case CircuitScriptParser.PERCENTAGE_VALUE:
660
690
  {
661
- this.state = 178;
691
+ this.state = 186;
662
692
  this.value_expr();
663
693
  }
664
694
  break;
665
695
  case CircuitScriptParser.ID:
666
696
  {
667
- this.state = 179;
697
+ this.state = 187;
668
698
  this.match(CircuitScriptParser.ID);
669
699
  }
670
700
  break;
@@ -689,50 +719,50 @@ export class CircuitScriptParser extends antlr.Parser {
689
719
  }
690
720
  data_expr_with_assignment() {
691
721
  let localContext = new Data_expr_with_assignmentContext(this.context, this.state);
692
- this.enterRule(localContext, 16, CircuitScriptParser.RULE_data_expr_with_assignment);
722
+ this.enterRule(localContext, 18, CircuitScriptParser.RULE_data_expr_with_assignment);
693
723
  let _la;
694
724
  try {
695
725
  let alternative;
696
726
  this.enterOuterAlt(localContext, 1);
697
727
  {
698
- this.state = 184;
728
+ this.state = 192;
699
729
  this.errorHandler.sync(this);
700
730
  switch (this.interpreter.adaptivePredict(this.tokenStream, 9, this.context)) {
701
731
  case 1:
702
732
  {
703
- this.state = 182;
733
+ this.state = 190;
704
734
  this.data_expr(0);
705
735
  }
706
736
  break;
707
737
  case 2:
708
738
  {
709
- this.state = 183;
739
+ this.state = 191;
710
740
  this.assignment_expr();
711
741
  }
712
742
  break;
713
743
  }
714
- this.state = 189;
744
+ this.state = 197;
715
745
  this.errorHandler.sync(this);
716
746
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 10, this.context);
717
747
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
718
748
  if (alternative === 1) {
719
749
  {
720
750
  {
721
- this.state = 186;
751
+ this.state = 194;
722
752
  this.component_modifier_expr();
723
753
  }
724
754
  }
725
755
  }
726
- this.state = 191;
756
+ this.state = 199;
727
757
  this.errorHandler.sync(this);
728
758
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 10, this.context);
729
759
  }
730
- this.state = 193;
760
+ this.state = 201;
731
761
  this.errorHandler.sync(this);
732
762
  _la = this.tokenStream.LA(1);
733
- if (_la === 14) {
763
+ if (_la === 15) {
734
764
  {
735
- this.state = 192;
765
+ this.state = 200;
736
766
  this.pin_select_expr();
737
767
  }
738
768
  }
@@ -754,13 +784,13 @@ export class CircuitScriptParser extends antlr.Parser {
754
784
  }
755
785
  add_component_expr() {
756
786
  let localContext = new Add_component_exprContext(this.context, this.state);
757
- this.enterRule(localContext, 18, CircuitScriptParser.RULE_add_component_expr);
787
+ this.enterRule(localContext, 20, CircuitScriptParser.RULE_add_component_expr);
758
788
  try {
759
789
  this.enterOuterAlt(localContext, 1);
760
790
  {
761
- this.state = 195;
791
+ this.state = 203;
762
792
  this.match(CircuitScriptParser.Add);
763
- this.state = 196;
793
+ this.state = 204;
764
794
  this.data_expr_with_assignment();
765
795
  }
766
796
  }
@@ -780,9 +810,9 @@ export class CircuitScriptParser extends antlr.Parser {
780
810
  }
781
811
  component_select_expr() {
782
812
  let localContext = new Component_select_exprContext(this.context, this.state);
783
- this.enterRule(localContext, 20, CircuitScriptParser.RULE_component_select_expr);
813
+ this.enterRule(localContext, 22, CircuitScriptParser.RULE_component_select_expr);
784
814
  try {
785
- this.state = 200;
815
+ this.state = 208;
786
816
  this.errorHandler.sync(this);
787
817
  switch (this.tokenStream.LA(1)) {
788
818
  case CircuitScriptParser.T__5:
@@ -801,14 +831,14 @@ export class CircuitScriptParser extends antlr.Parser {
801
831
  case CircuitScriptParser.PERCENTAGE_VALUE:
802
832
  this.enterOuterAlt(localContext, 1);
803
833
  {
804
- this.state = 198;
834
+ this.state = 206;
805
835
  this.data_expr_with_assignment();
806
836
  }
807
837
  break;
808
838
  case CircuitScriptParser.Pin:
809
839
  this.enterOuterAlt(localContext, 2);
810
840
  {
811
- this.state = 199;
841
+ this.state = 207;
812
842
  this.pin_select_expr();
813
843
  }
814
844
  break;
@@ -832,14 +862,14 @@ export class CircuitScriptParser extends antlr.Parser {
832
862
  }
833
863
  pin_select_expr2() {
834
864
  let localContext = new Pin_select_expr2Context(this.context, this.state);
835
- this.enterRule(localContext, 22, CircuitScriptParser.RULE_pin_select_expr2);
865
+ this.enterRule(localContext, 24, CircuitScriptParser.RULE_pin_select_expr2);
836
866
  let _la;
837
867
  try {
838
868
  this.enterOuterAlt(localContext, 1);
839
869
  {
840
- this.state = 202;
870
+ this.state = 210;
841
871
  _la = this.tokenStream.LA(1);
842
- if (!(_la === 45 || _la === 48)) {
872
+ if (!(_la === 46 || _la === 49)) {
843
873
  this.errorHandler.recoverInline(this);
844
874
  }
845
875
  else {
@@ -864,13 +894,13 @@ export class CircuitScriptParser extends antlr.Parser {
864
894
  }
865
895
  at_component_expr() {
866
896
  let localContext = new At_component_exprContext(this.context, this.state);
867
- this.enterRule(localContext, 24, CircuitScriptParser.RULE_at_component_expr);
897
+ this.enterRule(localContext, 26, CircuitScriptParser.RULE_at_component_expr);
868
898
  try {
869
899
  this.enterOuterAlt(localContext, 1);
870
900
  {
871
- this.state = 204;
901
+ this.state = 212;
872
902
  this.match(CircuitScriptParser.At);
873
- this.state = 207;
903
+ this.state = 215;
874
904
  this.errorHandler.sync(this);
875
905
  switch (this.tokenStream.LA(1)) {
876
906
  case CircuitScriptParser.T__5:
@@ -889,13 +919,13 @@ export class CircuitScriptParser extends antlr.Parser {
889
919
  case CircuitScriptParser.STRING_VALUE:
890
920
  case CircuitScriptParser.PERCENTAGE_VALUE:
891
921
  {
892
- this.state = 205;
922
+ this.state = 213;
893
923
  this.component_select_expr();
894
924
  }
895
925
  break;
896
926
  case CircuitScriptParser.Point:
897
927
  {
898
- this.state = 206;
928
+ this.state = 214;
899
929
  this.match(CircuitScriptParser.Point);
900
930
  }
901
931
  break;
@@ -920,14 +950,14 @@ export class CircuitScriptParser extends antlr.Parser {
920
950
  }
921
951
  to_component_expr() {
922
952
  let localContext = new To_component_exprContext(this.context, this.state);
923
- this.enterRule(localContext, 26, CircuitScriptParser.RULE_to_component_expr);
953
+ this.enterRule(localContext, 28, CircuitScriptParser.RULE_to_component_expr);
924
954
  let _la;
925
955
  try {
926
956
  this.enterOuterAlt(localContext, 1);
927
957
  {
928
- this.state = 209;
958
+ this.state = 217;
929
959
  this.match(CircuitScriptParser.To);
930
- this.state = 219;
960
+ this.state = 227;
931
961
  this.errorHandler.sync(this);
932
962
  switch (this.tokenStream.LA(1)) {
933
963
  case CircuitScriptParser.T__5:
@@ -947,21 +977,21 @@ export class CircuitScriptParser extends antlr.Parser {
947
977
  case CircuitScriptParser.PERCENTAGE_VALUE:
948
978
  {
949
979
  {
950
- this.state = 210;
980
+ this.state = 218;
951
981
  this.component_select_expr();
952
- this.state = 215;
982
+ this.state = 223;
953
983
  this.errorHandler.sync(this);
954
984
  _la = this.tokenStream.LA(1);
955
985
  while (_la === 2) {
956
986
  {
957
987
  {
958
- this.state = 211;
988
+ this.state = 219;
959
989
  this.match(CircuitScriptParser.T__1);
960
- this.state = 212;
990
+ this.state = 220;
961
991
  this.component_select_expr();
962
992
  }
963
993
  }
964
- this.state = 217;
994
+ this.state = 225;
965
995
  this.errorHandler.sync(this);
966
996
  _la = this.tokenStream.LA(1);
967
997
  }
@@ -970,7 +1000,7 @@ export class CircuitScriptParser extends antlr.Parser {
970
1000
  break;
971
1001
  case CircuitScriptParser.Point:
972
1002
  {
973
- this.state = 218;
1003
+ this.state = 226;
974
1004
  this.match(CircuitScriptParser.Point);
975
1005
  }
976
1006
  break;
@@ -995,59 +1025,59 @@ export class CircuitScriptParser extends antlr.Parser {
995
1025
  }
996
1026
  at_to_multiple_expr() {
997
1027
  let localContext = new At_to_multiple_exprContext(this.context, this.state);
998
- this.enterRule(localContext, 28, CircuitScriptParser.RULE_at_to_multiple_expr);
1028
+ this.enterRule(localContext, 30, CircuitScriptParser.RULE_at_to_multiple_expr);
999
1029
  let _la;
1000
1030
  try {
1001
1031
  this.enterOuterAlt(localContext, 1);
1002
1032
  {
1003
- this.state = 221;
1033
+ this.state = 229;
1004
1034
  this.match(CircuitScriptParser.At);
1005
- this.state = 222;
1035
+ this.state = 230;
1006
1036
  this.component_select_expr();
1007
- this.state = 223;
1037
+ this.state = 231;
1008
1038
  this.match(CircuitScriptParser.To);
1009
- this.state = 224;
1039
+ this.state = 232;
1010
1040
  this.component_select_expr();
1011
- this.state = 229;
1041
+ this.state = 237;
1012
1042
  this.errorHandler.sync(this);
1013
1043
  _la = this.tokenStream.LA(1);
1014
1044
  while (_la === 2) {
1015
1045
  {
1016
1046
  {
1017
- this.state = 225;
1047
+ this.state = 233;
1018
1048
  this.match(CircuitScriptParser.T__1);
1019
- this.state = 226;
1049
+ this.state = 234;
1020
1050
  this.component_select_expr();
1021
1051
  }
1022
1052
  }
1023
- this.state = 231;
1053
+ this.state = 239;
1024
1054
  this.errorHandler.sync(this);
1025
1055
  _la = this.tokenStream.LA(1);
1026
1056
  }
1027
- this.state = 232;
1057
+ this.state = 240;
1028
1058
  this.match(CircuitScriptParser.T__0);
1029
- this.state = 233;
1059
+ this.state = 241;
1030
1060
  this.match(CircuitScriptParser.NEWLINE);
1031
- this.state = 234;
1061
+ this.state = 242;
1032
1062
  this.match(CircuitScriptParser.INDENT);
1033
- this.state = 237;
1063
+ this.state = 245;
1034
1064
  this.errorHandler.sync(this);
1035
1065
  _la = this.tokenStream.LA(1);
1036
1066
  do {
1037
1067
  {
1038
- this.state = 237;
1068
+ this.state = 245;
1039
1069
  this.errorHandler.sync(this);
1040
1070
  switch (this.tokenStream.LA(1)) {
1041
1071
  case CircuitScriptParser.NEWLINE:
1042
1072
  {
1043
- this.state = 235;
1073
+ this.state = 243;
1044
1074
  this.match(CircuitScriptParser.NEWLINE);
1045
1075
  }
1046
1076
  break;
1047
1077
  case CircuitScriptParser.INTEGER_VALUE:
1048
1078
  case CircuitScriptParser.STRING_VALUE:
1049
1079
  {
1050
- this.state = 236;
1080
+ this.state = 244;
1051
1081
  this.at_to_multiple_line_expr();
1052
1082
  }
1053
1083
  break;
@@ -1055,11 +1085,11 @@ export class CircuitScriptParser extends antlr.Parser {
1055
1085
  throw new antlr.NoViableAltException(this);
1056
1086
  }
1057
1087
  }
1058
- this.state = 239;
1088
+ this.state = 247;
1059
1089
  this.errorHandler.sync(this);
1060
1090
  _la = this.tokenStream.LA(1);
1061
- } while (((((_la - 45)) & ~0x1F) === 0 && ((1 << (_la - 45)) & 137) !== 0));
1062
- this.state = 241;
1091
+ } while (((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 137) !== 0));
1092
+ this.state = 249;
1063
1093
  this.match(CircuitScriptParser.DEDENT);
1064
1094
  }
1065
1095
  }
@@ -1079,30 +1109,30 @@ export class CircuitScriptParser extends antlr.Parser {
1079
1109
  }
1080
1110
  at_to_multiple_line_expr() {
1081
1111
  let localContext = new At_to_multiple_line_exprContext(this.context, this.state);
1082
- this.enterRule(localContext, 30, CircuitScriptParser.RULE_at_to_multiple_line_expr);
1112
+ this.enterRule(localContext, 32, CircuitScriptParser.RULE_at_to_multiple_line_expr);
1083
1113
  let _la;
1084
1114
  try {
1085
1115
  this.enterOuterAlt(localContext, 1);
1086
1116
  {
1087
- this.state = 243;
1117
+ this.state = 251;
1088
1118
  this.pin_select_expr2();
1089
- this.state = 244;
1119
+ this.state = 252;
1090
1120
  this.match(CircuitScriptParser.T__0);
1091
- this.state = 245;
1121
+ this.state = 253;
1092
1122
  this.at_to_multiple_line_expr_to_pin();
1093
- this.state = 250;
1123
+ this.state = 258;
1094
1124
  this.errorHandler.sync(this);
1095
1125
  _la = this.tokenStream.LA(1);
1096
1126
  while (_la === 2) {
1097
1127
  {
1098
1128
  {
1099
- this.state = 246;
1129
+ this.state = 254;
1100
1130
  this.match(CircuitScriptParser.T__1);
1101
- this.state = 247;
1131
+ this.state = 255;
1102
1132
  this.at_to_multiple_line_expr_to_pin();
1103
1133
  }
1104
1134
  }
1105
- this.state = 252;
1135
+ this.state = 260;
1106
1136
  this.errorHandler.sync(this);
1107
1137
  _la = this.tokenStream.LA(1);
1108
1138
  }
@@ -1124,14 +1154,14 @@ export class CircuitScriptParser extends antlr.Parser {
1124
1154
  }
1125
1155
  at_to_multiple_line_expr_to_pin() {
1126
1156
  let localContext = new At_to_multiple_line_expr_to_pinContext(this.context, this.state);
1127
- this.enterRule(localContext, 32, CircuitScriptParser.RULE_at_to_multiple_line_expr_to_pin);
1157
+ this.enterRule(localContext, 34, CircuitScriptParser.RULE_at_to_multiple_line_expr_to_pin);
1128
1158
  let _la;
1129
1159
  try {
1130
1160
  this.enterOuterAlt(localContext, 1);
1131
1161
  {
1132
- this.state = 253;
1162
+ this.state = 261;
1133
1163
  _la = this.tokenStream.LA(1);
1134
- if (!(_la === 42 || _la === 45)) {
1164
+ if (!(_la === 43 || _la === 46)) {
1135
1165
  this.errorHandler.recoverInline(this);
1136
1166
  }
1137
1167
  else {
@@ -1156,30 +1186,30 @@ export class CircuitScriptParser extends antlr.Parser {
1156
1186
  }
1157
1187
  at_block() {
1158
1188
  let localContext = new At_blockContext(this.context, this.state);
1159
- this.enterRule(localContext, 34, CircuitScriptParser.RULE_at_block);
1189
+ this.enterRule(localContext, 36, CircuitScriptParser.RULE_at_block);
1160
1190
  let _la;
1161
1191
  try {
1162
1192
  this.enterOuterAlt(localContext, 1);
1163
1193
  {
1164
- this.state = 255;
1194
+ this.state = 263;
1165
1195
  this.at_component_expr();
1166
- this.state = 256;
1196
+ this.state = 264;
1167
1197
  this.match(CircuitScriptParser.T__0);
1168
- this.state = 257;
1198
+ this.state = 265;
1169
1199
  this.match(CircuitScriptParser.NEWLINE);
1170
- this.state = 258;
1200
+ this.state = 266;
1171
1201
  this.match(CircuitScriptParser.INDENT);
1172
- this.state = 261;
1202
+ this.state = 269;
1173
1203
  this.errorHandler.sync(this);
1174
1204
  _la = this.tokenStream.LA(1);
1175
1205
  do {
1176
1206
  {
1177
- this.state = 261;
1207
+ this.state = 269;
1178
1208
  this.errorHandler.sync(this);
1179
1209
  switch (this.tokenStream.LA(1)) {
1180
1210
  case CircuitScriptParser.NEWLINE:
1181
1211
  {
1182
- this.state = 259;
1212
+ this.state = 267;
1183
1213
  this.match(CircuitScriptParser.NEWLINE);
1184
1214
  }
1185
1215
  break;
@@ -1203,7 +1233,7 @@ export class CircuitScriptParser extends antlr.Parser {
1203
1233
  case CircuitScriptParser.INTEGER_VALUE:
1204
1234
  case CircuitScriptParser.STRING_VALUE:
1205
1235
  {
1206
- this.state = 260;
1236
+ this.state = 268;
1207
1237
  this.at_block_expressions();
1208
1238
  }
1209
1239
  break;
@@ -1211,11 +1241,11 @@ export class CircuitScriptParser extends antlr.Parser {
1211
1241
  throw new antlr.NoViableAltException(this);
1212
1242
  }
1213
1243
  }
1214
- this.state = 263;
1244
+ this.state = 271;
1215
1245
  this.errorHandler.sync(this);
1216
1246
  _la = this.tokenStream.LA(1);
1217
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 70405) !== 0));
1218
- this.state = 265;
1247
+ } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 331301648) !== 0) || ((((_la - 37)) & ~0x1F) === 0 && ((1 << (_la - 37)) & 70405) !== 0));
1248
+ this.state = 273;
1219
1249
  this.match(CircuitScriptParser.DEDENT);
1220
1250
  }
1221
1251
  }
@@ -1235,9 +1265,9 @@ export class CircuitScriptParser extends antlr.Parser {
1235
1265
  }
1236
1266
  at_block_expressions() {
1237
1267
  let localContext = new At_block_expressionsContext(this.context, this.state);
1238
- this.enterRule(localContext, 36, CircuitScriptParser.RULE_at_block_expressions);
1268
+ this.enterRule(localContext, 38, CircuitScriptParser.RULE_at_block_expressions);
1239
1269
  try {
1240
- this.state = 269;
1270
+ this.state = 277;
1241
1271
  this.errorHandler.sync(this);
1242
1272
  switch (this.tokenStream.LA(1)) {
1243
1273
  case CircuitScriptParser.T__3:
@@ -1259,7 +1289,7 @@ export class CircuitScriptParser extends antlr.Parser {
1259
1289
  case CircuitScriptParser.ID:
1260
1290
  this.enterOuterAlt(localContext, 1);
1261
1291
  {
1262
- this.state = 267;
1292
+ this.state = 275;
1263
1293
  this.expression();
1264
1294
  }
1265
1295
  break;
@@ -1267,7 +1297,7 @@ export class CircuitScriptParser extends antlr.Parser {
1267
1297
  case CircuitScriptParser.STRING_VALUE:
1268
1298
  this.enterOuterAlt(localContext, 2);
1269
1299
  {
1270
- this.state = 268;
1300
+ this.state = 276;
1271
1301
  this.at_block_pin_expr();
1272
1302
  }
1273
1303
  break;
@@ -1291,15 +1321,15 @@ export class CircuitScriptParser extends antlr.Parser {
1291
1321
  }
1292
1322
  at_block_pin_expr() {
1293
1323
  let localContext = new At_block_pin_exprContext(this.context, this.state);
1294
- this.enterRule(localContext, 38, CircuitScriptParser.RULE_at_block_pin_expr);
1324
+ this.enterRule(localContext, 40, CircuitScriptParser.RULE_at_block_pin_expr);
1295
1325
  try {
1296
1326
  this.enterOuterAlt(localContext, 1);
1297
1327
  {
1298
- this.state = 271;
1328
+ this.state = 279;
1299
1329
  this.pin_select_expr2();
1300
- this.state = 272;
1330
+ this.state = 280;
1301
1331
  this.match(CircuitScriptParser.T__0);
1302
- this.state = 275;
1332
+ this.state = 283;
1303
1333
  this.errorHandler.sync(this);
1304
1334
  switch (this.tokenStream.LA(1)) {
1305
1335
  case CircuitScriptParser.T__3:
@@ -1321,13 +1351,13 @@ export class CircuitScriptParser extends antlr.Parser {
1321
1351
  case CircuitScriptParser.NOT_CONNECTED:
1322
1352
  case CircuitScriptParser.ID:
1323
1353
  {
1324
- this.state = 273;
1354
+ this.state = 281;
1325
1355
  this.at_block_pin_expression_simple();
1326
1356
  }
1327
1357
  break;
1328
1358
  case CircuitScriptParser.NEWLINE:
1329
1359
  {
1330
- this.state = 274;
1360
+ this.state = 282;
1331
1361
  this.at_block_pin_expression_complex();
1332
1362
  }
1333
1363
  break;
@@ -1352,11 +1382,11 @@ export class CircuitScriptParser extends antlr.Parser {
1352
1382
  }
1353
1383
  at_block_pin_expression_simple() {
1354
1384
  let localContext = new At_block_pin_expression_simpleContext(this.context, this.state);
1355
- this.enterRule(localContext, 40, CircuitScriptParser.RULE_at_block_pin_expression_simple);
1385
+ this.enterRule(localContext, 42, CircuitScriptParser.RULE_at_block_pin_expression_simple);
1356
1386
  try {
1357
1387
  this.enterOuterAlt(localContext, 1);
1358
1388
  {
1359
- this.state = 279;
1389
+ this.state = 287;
1360
1390
  this.errorHandler.sync(this);
1361
1391
  switch (this.tokenStream.LA(1)) {
1362
1392
  case CircuitScriptParser.T__3:
@@ -1377,13 +1407,13 @@ export class CircuitScriptParser extends antlr.Parser {
1377
1407
  case CircuitScriptParser.Divide:
1378
1408
  case CircuitScriptParser.ID:
1379
1409
  {
1380
- this.state = 277;
1410
+ this.state = 285;
1381
1411
  this.expression();
1382
1412
  }
1383
1413
  break;
1384
1414
  case CircuitScriptParser.NOT_CONNECTED:
1385
1415
  {
1386
- this.state = 278;
1416
+ this.state = 286;
1387
1417
  this.match(CircuitScriptParser.NOT_CONNECTED);
1388
1418
  }
1389
1419
  break;
@@ -1408,61 +1438,12 @@ export class CircuitScriptParser extends antlr.Parser {
1408
1438
  }
1409
1439
  at_block_pin_expression_complex() {
1410
1440
  let localContext = new At_block_pin_expression_complexContext(this.context, this.state);
1411
- this.enterRule(localContext, 42, CircuitScriptParser.RULE_at_block_pin_expression_complex);
1412
- let _la;
1441
+ this.enterRule(localContext, 44, CircuitScriptParser.RULE_at_block_pin_expression_complex);
1413
1442
  try {
1414
1443
  this.enterOuterAlt(localContext, 1);
1415
1444
  {
1416
- this.state = 281;
1417
- this.match(CircuitScriptParser.NEWLINE);
1418
- this.state = 282;
1419
- this.match(CircuitScriptParser.INDENT);
1420
- this.state = 285;
1421
- this.errorHandler.sync(this);
1422
- _la = this.tokenStream.LA(1);
1423
- do {
1424
- {
1425
- this.state = 285;
1426
- this.errorHandler.sync(this);
1427
- switch (this.tokenStream.LA(1)) {
1428
- case CircuitScriptParser.NEWLINE:
1429
- {
1430
- this.state = 283;
1431
- this.match(CircuitScriptParser.NEWLINE);
1432
- }
1433
- break;
1434
- case CircuitScriptParser.T__3:
1435
- case CircuitScriptParser.Break:
1436
- case CircuitScriptParser.Branch:
1437
- case CircuitScriptParser.Wire:
1438
- case CircuitScriptParser.Add:
1439
- case CircuitScriptParser.At:
1440
- case CircuitScriptParser.To:
1441
- case CircuitScriptParser.Point:
1442
- case CircuitScriptParser.Join:
1443
- case CircuitScriptParser.Parallel:
1444
- case CircuitScriptParser.Define:
1445
- case CircuitScriptParser.Import:
1446
- case CircuitScriptParser.If:
1447
- case CircuitScriptParser.Frame:
1448
- case CircuitScriptParser.Addition:
1449
- case CircuitScriptParser.Divide:
1450
- case CircuitScriptParser.ID:
1451
- {
1452
- this.state = 284;
1453
- this.expression();
1454
- }
1455
- break;
1456
- default:
1457
- throw new antlr.NoViableAltException(this);
1458
- }
1459
- }
1460
- this.state = 287;
1461
- this.errorHandler.sync(this);
1462
- _la = this.tokenStream.LA(1);
1463
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
1464
1445
  this.state = 289;
1465
- this.match(CircuitScriptParser.DEDENT);
1446
+ this.expressions_block();
1466
1447
  }
1467
1448
  }
1468
1449
  catch (re) {
@@ -1481,7 +1462,7 @@ export class CircuitScriptParser extends antlr.Parser {
1481
1462
  }
1482
1463
  break_keyword() {
1483
1464
  let localContext = new Break_keywordContext(this.context, this.state);
1484
- this.enterRule(localContext, 44, CircuitScriptParser.RULE_break_keyword);
1465
+ this.enterRule(localContext, 46, CircuitScriptParser.RULE_break_keyword);
1485
1466
  try {
1486
1467
  this.enterOuterAlt(localContext, 1);
1487
1468
  {
@@ -1505,7 +1486,7 @@ export class CircuitScriptParser extends antlr.Parser {
1505
1486
  }
1506
1487
  assignment_expr() {
1507
1488
  let localContext = new Assignment_exprContext(this.context, this.state);
1508
- this.enterRule(localContext, 46, CircuitScriptParser.RULE_assignment_expr);
1489
+ this.enterRule(localContext, 48, CircuitScriptParser.RULE_assignment_expr);
1509
1490
  try {
1510
1491
  this.enterOuterAlt(localContext, 1);
1511
1492
  {
@@ -1533,7 +1514,7 @@ export class CircuitScriptParser extends antlr.Parser {
1533
1514
  }
1534
1515
  keyword_assignment_expr() {
1535
1516
  let localContext = new Keyword_assignment_exprContext(this.context, this.state);
1536
- this.enterRule(localContext, 48, CircuitScriptParser.RULE_keyword_assignment_expr);
1517
+ this.enterRule(localContext, 50, CircuitScriptParser.RULE_keyword_assignment_expr);
1537
1518
  try {
1538
1519
  this.enterOuterAlt(localContext, 1);
1539
1520
  {
@@ -1561,13 +1542,13 @@ export class CircuitScriptParser extends antlr.Parser {
1561
1542
  }
1562
1543
  parameters() {
1563
1544
  let localContext = new ParametersContext(this.context, this.state);
1564
- this.enterRule(localContext, 50, CircuitScriptParser.RULE_parameters);
1545
+ this.enterRule(localContext, 52, CircuitScriptParser.RULE_parameters);
1565
1546
  let _la;
1566
1547
  try {
1567
1548
  let alternative;
1568
1549
  this.state = 324;
1569
1550
  this.errorHandler.sync(this);
1570
- switch (this.interpreter.adaptivePredict(this.tokenStream, 30, this.context)) {
1551
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 28, this.context)) {
1571
1552
  case 1:
1572
1553
  this.enterOuterAlt(localContext, 1);
1573
1554
  {
@@ -1576,7 +1557,7 @@ export class CircuitScriptParser extends antlr.Parser {
1576
1557
  this.data_expr(0);
1577
1558
  this.state = 306;
1578
1559
  this.errorHandler.sync(this);
1579
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 27, this.context);
1560
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 25, this.context);
1580
1561
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1581
1562
  if (alternative === 1) {
1582
1563
  {
@@ -1590,7 +1571,7 @@ export class CircuitScriptParser extends antlr.Parser {
1590
1571
  }
1591
1572
  this.state = 308;
1592
1573
  this.errorHandler.sync(this);
1593
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 27, this.context);
1574
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 25, this.context);
1594
1575
  }
1595
1576
  this.state = 313;
1596
1577
  this.errorHandler.sync(this);
@@ -1654,7 +1635,7 @@ export class CircuitScriptParser extends antlr.Parser {
1654
1635
  }
1655
1636
  property_set_expr() {
1656
1637
  let localContext = new Property_set_exprContext(this.context, this.state);
1657
- this.enterRule(localContext, 52, CircuitScriptParser.RULE_property_set_expr);
1638
+ this.enterRule(localContext, 54, CircuitScriptParser.RULE_property_set_expr);
1658
1639
  try {
1659
1640
  this.enterOuterAlt(localContext, 1);
1660
1641
  {
@@ -1682,7 +1663,7 @@ export class CircuitScriptParser extends antlr.Parser {
1682
1663
  }
1683
1664
  double_dot_property_set_expr() {
1684
1665
  let localContext = new Double_dot_property_set_exprContext(this.context, this.state);
1685
- this.enterRule(localContext, 54, CircuitScriptParser.RULE_double_dot_property_set_expr);
1666
+ this.enterRule(localContext, 56, CircuitScriptParser.RULE_double_dot_property_set_expr);
1686
1667
  try {
1687
1668
  this.enterOuterAlt(localContext, 1);
1688
1669
  {
@@ -1718,16 +1699,16 @@ export class CircuitScriptParser extends antlr.Parser {
1718
1699
  let parentState = this.state;
1719
1700
  let localContext = new Data_exprContext(this.context, parentState);
1720
1701
  let previousContext = localContext;
1721
- let _startState = 56;
1722
- this.enterRecursionRule(localContext, 56, CircuitScriptParser.RULE_data_expr, _p);
1702
+ let _startState = 58;
1703
+ this.enterRecursionRule(localContext, 58, CircuitScriptParser.RULE_data_expr, _p);
1723
1704
  let _la;
1724
1705
  try {
1725
1706
  let alternative;
1726
1707
  this.enterOuterAlt(localContext, 1);
1727
1708
  {
1728
- this.state = 350;
1709
+ this.state = 351;
1729
1710
  this.errorHandler.sync(this);
1730
- switch (this.interpreter.adaptivePredict(this.tokenStream, 32, this.context)) {
1711
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 30, this.context)) {
1731
1712
  case 1:
1732
1713
  {
1733
1714
  localContext = new RoundedBracketsExprContext(localContext);
@@ -1781,7 +1762,7 @@ export class CircuitScriptParser extends antlr.Parser {
1781
1762
  this.state = 344;
1782
1763
  this.unary_operator();
1783
1764
  this.state = 345;
1784
- this.data_expr(8);
1765
+ this.data_expr(9);
1785
1766
  }
1786
1767
  break;
1787
1768
  case 4:
@@ -1804,18 +1785,27 @@ export class CircuitScriptParser extends antlr.Parser {
1804
1785
  break;
1805
1786
  case 6:
1806
1787
  {
1807
- localContext = new FunctionCallExprContext(localContext);
1788
+ localContext = new DataExprContext(localContext);
1808
1789
  this.context = localContext;
1809
1790
  previousContext = localContext;
1810
1791
  this.state = 349;
1792
+ this.create_module_expr();
1793
+ }
1794
+ break;
1795
+ case 7:
1796
+ {
1797
+ localContext = new FunctionCallExprContext(localContext);
1798
+ this.context = localContext;
1799
+ previousContext = localContext;
1800
+ this.state = 350;
1811
1801
  this.function_call_expr();
1812
1802
  }
1813
1803
  break;
1814
1804
  }
1815
1805
  this.context.stop = this.tokenStream.LT(-1);
1816
- this.state = 367;
1806
+ this.state = 368;
1817
1807
  this.errorHandler.sync(this);
1818
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 34, this.context);
1808
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 32, this.context);
1819
1809
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1820
1810
  if (alternative === 1) {
1821
1811
  if (this.parseListeners != null) {
@@ -1823,92 +1813,92 @@ export class CircuitScriptParser extends antlr.Parser {
1823
1813
  }
1824
1814
  previousContext = localContext;
1825
1815
  {
1826
- this.state = 365;
1816
+ this.state = 366;
1827
1817
  this.errorHandler.sync(this);
1828
- switch (this.interpreter.adaptivePredict(this.tokenStream, 33, this.context)) {
1818
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 31, this.context)) {
1829
1819
  case 1:
1830
1820
  {
1831
1821
  localContext = new MultiplyExprContext(new Data_exprContext(parentContext, parentState));
1832
1822
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1833
- this.state = 352;
1834
- if (!(this.precpred(this.context, 7))) {
1835
- throw this.createFailedPredicateException("this.precpred(this.context, 7)");
1836
- }
1837
1823
  this.state = 353;
1824
+ if (!(this.precpred(this.context, 8))) {
1825
+ throw this.createFailedPredicateException("this.precpred(this.context, 8)");
1826
+ }
1827
+ this.state = 354;
1838
1828
  _la = this.tokenStream.LA(1);
1839
- if (!(_la === 38 || _la === 39)) {
1829
+ if (!(_la === 39 || _la === 40)) {
1840
1830
  this.errorHandler.recoverInline(this);
1841
1831
  }
1842
1832
  else {
1843
1833
  this.errorHandler.reportMatch(this);
1844
1834
  this.consume();
1845
1835
  }
1846
- this.state = 354;
1847
- this.data_expr(8);
1836
+ this.state = 355;
1837
+ this.data_expr(9);
1848
1838
  }
1849
1839
  break;
1850
1840
  case 2:
1851
1841
  {
1852
1842
  localContext = new AdditionExprContext(new Data_exprContext(parentContext, parentState));
1853
1843
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1854
- this.state = 355;
1855
- if (!(this.precpred(this.context, 6))) {
1856
- throw this.createFailedPredicateException("this.precpred(this.context, 6)");
1857
- }
1858
1844
  this.state = 356;
1845
+ if (!(this.precpred(this.context, 7))) {
1846
+ throw this.createFailedPredicateException("this.precpred(this.context, 7)");
1847
+ }
1848
+ this.state = 357;
1859
1849
  _la = this.tokenStream.LA(1);
1860
- if (!(_la === 36 || _la === 37)) {
1850
+ if (!(_la === 37 || _la === 38)) {
1861
1851
  this.errorHandler.recoverInline(this);
1862
1852
  }
1863
1853
  else {
1864
1854
  this.errorHandler.reportMatch(this);
1865
1855
  this.consume();
1866
1856
  }
1867
- this.state = 357;
1868
- this.data_expr(7);
1857
+ this.state = 358;
1858
+ this.data_expr(8);
1869
1859
  }
1870
1860
  break;
1871
1861
  case 3:
1872
1862
  {
1873
1863
  localContext = new BinaryOperatorExprContext(new Data_exprContext(parentContext, parentState));
1874
1864
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1875
- this.state = 358;
1876
- if (!(this.precpred(this.context, 5))) {
1877
- throw this.createFailedPredicateException("this.precpred(this.context, 5)");
1878
- }
1879
1865
  this.state = 359;
1880
- this.binary_operator();
1866
+ if (!(this.precpred(this.context, 6))) {
1867
+ throw this.createFailedPredicateException("this.precpred(this.context, 6)");
1868
+ }
1881
1869
  this.state = 360;
1882
- this.data_expr(6);
1870
+ this.binary_operator();
1871
+ this.state = 361;
1872
+ this.data_expr(7);
1883
1873
  }
1884
1874
  break;
1885
1875
  case 4:
1886
1876
  {
1887
1877
  localContext = new LogicalOperatorExprContext(new Data_exprContext(parentContext, parentState));
1888
1878
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1889
- this.state = 362;
1890
- if (!(this.precpred(this.context, 4))) {
1891
- throw this.createFailedPredicateException("this.precpred(this.context, 4)");
1892
- }
1893
1879
  this.state = 363;
1894
- _la = this.tokenStream.LA(1);
1895
- if (!(_la === 34 || _la === 35)) {
1896
- this.errorHandler.recoverInline(this);
1880
+ if (!(this.precpred(this.context, 5))) {
1881
+ throw this.createFailedPredicateException("this.precpred(this.context, 5)");
1882
+ }
1883
+ this.state = 364;
1884
+ _la = this.tokenStream.LA(1);
1885
+ if (!(_la === 35 || _la === 36)) {
1886
+ this.errorHandler.recoverInline(this);
1897
1887
  }
1898
1888
  else {
1899
1889
  this.errorHandler.reportMatch(this);
1900
1890
  this.consume();
1901
1891
  }
1902
- this.state = 364;
1903
- this.data_expr(5);
1892
+ this.state = 365;
1893
+ this.data_expr(6);
1904
1894
  }
1905
1895
  break;
1906
1896
  }
1907
1897
  }
1908
1898
  }
1909
- this.state = 369;
1899
+ this.state = 370;
1910
1900
  this.errorHandler.sync(this);
1911
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 34, this.context);
1901
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 32, this.context);
1912
1902
  }
1913
1903
  }
1914
1904
  }
@@ -1928,14 +1918,14 @@ export class CircuitScriptParser extends antlr.Parser {
1928
1918
  }
1929
1919
  binary_operator() {
1930
1920
  let localContext = new Binary_operatorContext(this.context, this.state);
1931
- this.enterRule(localContext, 58, CircuitScriptParser.RULE_binary_operator);
1921
+ this.enterRule(localContext, 60, CircuitScriptParser.RULE_binary_operator);
1932
1922
  let _la;
1933
1923
  try {
1934
1924
  this.enterOuterAlt(localContext, 1);
1935
1925
  {
1936
- this.state = 370;
1926
+ this.state = 371;
1937
1927
  _la = this.tokenStream.LA(1);
1938
- if (!(((((_la - 28)) & ~0x1F) === 0 && ((1 << (_la - 28)) & 63) !== 0))) {
1928
+ if (!(((((_la - 29)) & ~0x1F) === 0 && ((1 << (_la - 29)) & 63) !== 0))) {
1939
1929
  this.errorHandler.recoverInline(this);
1940
1930
  }
1941
1931
  else {
@@ -1960,14 +1950,14 @@ export class CircuitScriptParser extends antlr.Parser {
1960
1950
  }
1961
1951
  unary_operator() {
1962
1952
  let localContext = new Unary_operatorContext(this.context, this.state);
1963
- this.enterRule(localContext, 60, CircuitScriptParser.RULE_unary_operator);
1953
+ this.enterRule(localContext, 62, CircuitScriptParser.RULE_unary_operator);
1964
1954
  let _la;
1965
1955
  try {
1966
1956
  this.enterOuterAlt(localContext, 1);
1967
1957
  {
1968
- this.state = 372;
1958
+ this.state = 373;
1969
1959
  _la = this.tokenStream.LA(1);
1970
- if (!(_la === 26 || _la === 37)) {
1960
+ if (!(_la === 27 || _la === 38)) {
1971
1961
  this.errorHandler.recoverInline(this);
1972
1962
  }
1973
1963
  else {
@@ -1992,10 +1982,10 @@ export class CircuitScriptParser extends antlr.Parser {
1992
1982
  }
1993
1983
  value_expr() {
1994
1984
  let localContext = new Value_exprContext(this.context, this.state);
1995
- this.enterRule(localContext, 62, CircuitScriptParser.RULE_value_expr);
1985
+ this.enterRule(localContext, 64, CircuitScriptParser.RULE_value_expr);
1996
1986
  let _la;
1997
1987
  try {
1998
- this.state = 379;
1988
+ this.state = 380;
1999
1989
  this.errorHandler.sync(this);
2000
1990
  switch (this.tokenStream.LA(1)) {
2001
1991
  case CircuitScriptParser.Minus:
@@ -2008,18 +1998,18 @@ export class CircuitScriptParser extends antlr.Parser {
2008
1998
  this.enterOuterAlt(localContext, 1);
2009
1999
  {
2010
2000
  {
2011
- this.state = 375;
2001
+ this.state = 376;
2012
2002
  this.errorHandler.sync(this);
2013
2003
  _la = this.tokenStream.LA(1);
2014
- if (_la === 37) {
2004
+ if (_la === 38) {
2015
2005
  {
2016
- this.state = 374;
2006
+ this.state = 375;
2017
2007
  this.match(CircuitScriptParser.Minus);
2018
2008
  }
2019
2009
  }
2020
- this.state = 377;
2010
+ this.state = 378;
2021
2011
  _la = this.tokenStream.LA(1);
2022
- if (!(((((_la - 43)) & ~0x1F) === 0 && ((1 << (_la - 43)) & 125) !== 0))) {
2012
+ if (!(((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 125) !== 0))) {
2023
2013
  this.errorHandler.recoverInline(this);
2024
2014
  }
2025
2015
  else {
@@ -2032,7 +2022,7 @@ export class CircuitScriptParser extends antlr.Parser {
2032
2022
  case CircuitScriptParser.T__5:
2033
2023
  this.enterOuterAlt(localContext, 2);
2034
2024
  {
2035
- this.state = 378;
2025
+ this.state = 379;
2036
2026
  this.blank_expr();
2037
2027
  }
2038
2028
  break;
@@ -2056,45 +2046,45 @@ export class CircuitScriptParser extends antlr.Parser {
2056
2046
  }
2057
2047
  function_def_expr() {
2058
2048
  let localContext = new Function_def_exprContext(this.context, this.state);
2059
- this.enterRule(localContext, 64, CircuitScriptParser.RULE_function_def_expr);
2049
+ this.enterRule(localContext, 66, CircuitScriptParser.RULE_function_def_expr);
2060
2050
  let _la;
2061
2051
  try {
2062
2052
  this.enterOuterAlt(localContext, 1);
2063
2053
  {
2064
- this.state = 381;
2065
- this.match(CircuitScriptParser.Define);
2066
2054
  this.state = 382;
2067
- this.match(CircuitScriptParser.ID);
2055
+ this.match(CircuitScriptParser.Define);
2068
2056
  this.state = 383;
2057
+ this.match(CircuitScriptParser.ID);
2058
+ this.state = 384;
2069
2059
  this.match(CircuitScriptParser.OPEN_PAREN);
2070
- this.state = 385;
2060
+ this.state = 386;
2071
2061
  this.errorHandler.sync(this);
2072
2062
  _la = this.tokenStream.LA(1);
2073
- if (_la === 44) {
2063
+ if (_la === 45) {
2074
2064
  {
2075
- this.state = 384;
2065
+ this.state = 385;
2076
2066
  this.function_args_expr();
2077
2067
  }
2078
2068
  }
2079
- this.state = 387;
2080
- this.match(CircuitScriptParser.CLOSE_PAREN);
2081
2069
  this.state = 388;
2082
- this.match(CircuitScriptParser.T__0);
2070
+ this.match(CircuitScriptParser.CLOSE_PAREN);
2083
2071
  this.state = 389;
2084
- this.match(CircuitScriptParser.NEWLINE);
2072
+ this.match(CircuitScriptParser.T__0);
2085
2073
  this.state = 390;
2074
+ this.match(CircuitScriptParser.NEWLINE);
2075
+ this.state = 391;
2086
2076
  this.match(CircuitScriptParser.INDENT);
2087
- this.state = 393;
2077
+ this.state = 394;
2088
2078
  this.errorHandler.sync(this);
2089
2079
  _la = this.tokenStream.LA(1);
2090
2080
  do {
2091
2081
  {
2092
- this.state = 393;
2082
+ this.state = 394;
2093
2083
  this.errorHandler.sync(this);
2094
2084
  switch (this.tokenStream.LA(1)) {
2095
2085
  case CircuitScriptParser.NEWLINE:
2096
2086
  {
2097
- this.state = 391;
2087
+ this.state = 392;
2098
2088
  this.match(CircuitScriptParser.NEWLINE);
2099
2089
  }
2100
2090
  break;
@@ -2117,7 +2107,7 @@ export class CircuitScriptParser extends antlr.Parser {
2117
2107
  case CircuitScriptParser.Divide:
2118
2108
  case CircuitScriptParser.ID:
2119
2109
  {
2120
- this.state = 392;
2110
+ this.state = 393;
2121
2111
  this.function_expr();
2122
2112
  }
2123
2113
  break;
@@ -2125,11 +2115,11 @@ export class CircuitScriptParser extends antlr.Parser {
2125
2115
  throw new antlr.NoViableAltException(this);
2126
2116
  }
2127
2117
  }
2128
- this.state = 395;
2118
+ this.state = 396;
2129
2119
  this.errorHandler.sync(this);
2130
2120
  _la = this.tokenStream.LA(1);
2131
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 167748368) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
2132
- this.state = 397;
2121
+ } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 335495952) !== 0) || ((((_la - 37)) & ~0x1F) === 0 && ((1 << (_la - 37)) & 65797) !== 0));
2122
+ this.state = 398;
2133
2123
  this.match(CircuitScriptParser.DEDENT);
2134
2124
  }
2135
2125
  }
@@ -2149,9 +2139,9 @@ export class CircuitScriptParser extends antlr.Parser {
2149
2139
  }
2150
2140
  function_expr() {
2151
2141
  let localContext = new Function_exprContext(this.context, this.state);
2152
- this.enterRule(localContext, 66, CircuitScriptParser.RULE_function_expr);
2142
+ this.enterRule(localContext, 68, CircuitScriptParser.RULE_function_expr);
2153
2143
  try {
2154
- this.state = 401;
2144
+ this.state = 402;
2155
2145
  this.errorHandler.sync(this);
2156
2146
  switch (this.tokenStream.LA(1)) {
2157
2147
  case CircuitScriptParser.T__3:
@@ -2173,14 +2163,14 @@ export class CircuitScriptParser extends antlr.Parser {
2173
2163
  case CircuitScriptParser.ID:
2174
2164
  this.enterOuterAlt(localContext, 1);
2175
2165
  {
2176
- this.state = 399;
2166
+ this.state = 400;
2177
2167
  this.expression();
2178
2168
  }
2179
2169
  break;
2180
2170
  case CircuitScriptParser.Return:
2181
2171
  this.enterOuterAlt(localContext, 2);
2182
2172
  {
2183
- this.state = 400;
2173
+ this.state = 401;
2184
2174
  this.function_return_expr();
2185
2175
  }
2186
2176
  break;
@@ -2204,53 +2194,53 @@ export class CircuitScriptParser extends antlr.Parser {
2204
2194
  }
2205
2195
  function_args_expr() {
2206
2196
  let localContext = new Function_args_exprContext(this.context, this.state);
2207
- this.enterRule(localContext, 68, CircuitScriptParser.RULE_function_args_expr);
2197
+ this.enterRule(localContext, 70, CircuitScriptParser.RULE_function_args_expr);
2208
2198
  let _la;
2209
2199
  try {
2210
2200
  let alternative;
2211
- this.state = 432;
2201
+ this.state = 433;
2212
2202
  this.errorHandler.sync(this);
2213
- switch (this.interpreter.adaptivePredict(this.tokenStream, 44, this.context)) {
2203
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 42, this.context)) {
2214
2204
  case 1:
2215
2205
  this.enterOuterAlt(localContext, 1);
2216
2206
  {
2217
- this.state = 403;
2207
+ this.state = 404;
2218
2208
  this.match(CircuitScriptParser.ID);
2219
- this.state = 408;
2209
+ this.state = 409;
2220
2210
  this.errorHandler.sync(this);
2221
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 41, this.context);
2211
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 39, this.context);
2222
2212
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2223
2213
  if (alternative === 1) {
2224
2214
  {
2225
2215
  {
2226
- this.state = 404;
2227
- this.match(CircuitScriptParser.T__1);
2228
2216
  this.state = 405;
2217
+ this.match(CircuitScriptParser.T__1);
2218
+ this.state = 406;
2229
2219
  this.match(CircuitScriptParser.ID);
2230
2220
  }
2231
2221
  }
2232
2222
  }
2233
- this.state = 410;
2223
+ this.state = 411;
2234
2224
  this.errorHandler.sync(this);
2235
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 41, this.context);
2225
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 39, this.context);
2236
2226
  }
2237
- this.state = 417;
2227
+ this.state = 418;
2238
2228
  this.errorHandler.sync(this);
2239
2229
  _la = this.tokenStream.LA(1);
2240
2230
  while (_la === 2) {
2241
2231
  {
2242
2232
  {
2243
- this.state = 411;
2244
- this.match(CircuitScriptParser.T__1);
2245
2233
  this.state = 412;
2246
- this.match(CircuitScriptParser.ID);
2234
+ this.match(CircuitScriptParser.T__1);
2247
2235
  this.state = 413;
2248
- this.match(CircuitScriptParser.T__2);
2236
+ this.match(CircuitScriptParser.ID);
2249
2237
  this.state = 414;
2238
+ this.match(CircuitScriptParser.T__2);
2239
+ this.state = 415;
2250
2240
  this.value_expr();
2251
2241
  }
2252
2242
  }
2253
- this.state = 419;
2243
+ this.state = 420;
2254
2244
  this.errorHandler.sync(this);
2255
2245
  _la = this.tokenStream.LA(1);
2256
2246
  }
@@ -2259,29 +2249,29 @@ export class CircuitScriptParser extends antlr.Parser {
2259
2249
  case 2:
2260
2250
  this.enterOuterAlt(localContext, 2);
2261
2251
  {
2262
- this.state = 420;
2263
- this.match(CircuitScriptParser.ID);
2264
2252
  this.state = 421;
2265
- this.match(CircuitScriptParser.T__2);
2253
+ this.match(CircuitScriptParser.ID);
2266
2254
  this.state = 422;
2255
+ this.match(CircuitScriptParser.T__2);
2256
+ this.state = 423;
2267
2257
  this.value_expr();
2268
- this.state = 429;
2258
+ this.state = 430;
2269
2259
  this.errorHandler.sync(this);
2270
2260
  _la = this.tokenStream.LA(1);
2271
2261
  while (_la === 2) {
2272
2262
  {
2273
2263
  {
2274
- this.state = 423;
2275
- this.match(CircuitScriptParser.T__1);
2276
2264
  this.state = 424;
2277
- this.match(CircuitScriptParser.ID);
2265
+ this.match(CircuitScriptParser.T__1);
2278
2266
  this.state = 425;
2279
- this.match(CircuitScriptParser.T__2);
2267
+ this.match(CircuitScriptParser.ID);
2280
2268
  this.state = 426;
2269
+ this.match(CircuitScriptParser.T__2);
2270
+ this.state = 427;
2281
2271
  this.value_expr();
2282
2272
  }
2283
2273
  }
2284
- this.state = 431;
2274
+ this.state = 432;
2285
2275
  this.errorHandler.sync(this);
2286
2276
  _la = this.tokenStream.LA(1);
2287
2277
  }
@@ -2305,30 +2295,30 @@ export class CircuitScriptParser extends antlr.Parser {
2305
2295
  }
2306
2296
  atom_expr() {
2307
2297
  let localContext = new Atom_exprContext(this.context, this.state);
2308
- this.enterRule(localContext, 70, CircuitScriptParser.RULE_atom_expr);
2298
+ this.enterRule(localContext, 72, CircuitScriptParser.RULE_atom_expr);
2309
2299
  try {
2310
2300
  let alternative;
2311
2301
  this.enterOuterAlt(localContext, 1);
2312
2302
  {
2313
- this.state = 434;
2303
+ this.state = 435;
2314
2304
  this.match(CircuitScriptParser.ID);
2315
- this.state = 439;
2305
+ this.state = 440;
2316
2306
  this.errorHandler.sync(this);
2317
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 45, this.context);
2307
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 43, this.context);
2318
2308
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2319
2309
  if (alternative === 1) {
2320
2310
  {
2321
2311
  {
2322
- this.state = 435;
2323
- this.match(CircuitScriptParser.T__4);
2324
2312
  this.state = 436;
2313
+ this.match(CircuitScriptParser.T__4);
2314
+ this.state = 437;
2325
2315
  this.match(CircuitScriptParser.ID);
2326
2316
  }
2327
2317
  }
2328
2318
  }
2329
- this.state = 441;
2319
+ this.state = 442;
2330
2320
  this.errorHandler.sync(this);
2331
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 45, this.context);
2321
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 43, this.context);
2332
2322
  }
2333
2323
  }
2334
2324
  }
@@ -2348,36 +2338,36 @@ export class CircuitScriptParser extends antlr.Parser {
2348
2338
  }
2349
2339
  trailer_expr() {
2350
2340
  let localContext = new Trailer_exprContext(this.context, this.state);
2351
- this.enterRule(localContext, 72, CircuitScriptParser.RULE_trailer_expr);
2341
+ this.enterRule(localContext, 74, CircuitScriptParser.RULE_trailer_expr);
2352
2342
  let _la;
2353
2343
  try {
2354
- this.state = 449;
2344
+ this.state = 450;
2355
2345
  this.errorHandler.sync(this);
2356
2346
  switch (this.tokenStream.LA(1)) {
2357
2347
  case CircuitScriptParser.OPEN_PAREN:
2358
2348
  this.enterOuterAlt(localContext, 1);
2359
2349
  {
2360
- this.state = 442;
2350
+ this.state = 443;
2361
2351
  this.match(CircuitScriptParser.OPEN_PAREN);
2362
- this.state = 444;
2352
+ this.state = 445;
2363
2353
  this.errorHandler.sync(this);
2364
2354
  _la = this.tokenStream.LA(1);
2365
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 67109952) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 16279) !== 0)) {
2355
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 134218816) !== 0) || ((((_la - 37)) & ~0x1F) === 0 && ((1 << (_la - 37)) & 16279) !== 0)) {
2366
2356
  {
2367
- this.state = 443;
2357
+ this.state = 444;
2368
2358
  this.parameters();
2369
2359
  }
2370
2360
  }
2371
- this.state = 446;
2361
+ this.state = 447;
2372
2362
  this.match(CircuitScriptParser.CLOSE_PAREN);
2373
2363
  }
2374
2364
  break;
2375
2365
  case CircuitScriptParser.T__4:
2376
2366
  this.enterOuterAlt(localContext, 2);
2377
2367
  {
2378
- this.state = 447;
2379
- this.match(CircuitScriptParser.T__4);
2380
2368
  this.state = 448;
2369
+ this.match(CircuitScriptParser.T__4);
2370
+ this.state = 449;
2381
2371
  this.match(CircuitScriptParser.ID);
2382
2372
  }
2383
2373
  break;
@@ -2401,24 +2391,24 @@ export class CircuitScriptParser extends antlr.Parser {
2401
2391
  }
2402
2392
  function_call_expr() {
2403
2393
  let localContext = new Function_call_exprContext(this.context, this.state);
2404
- this.enterRule(localContext, 74, CircuitScriptParser.RULE_function_call_expr);
2394
+ this.enterRule(localContext, 76, CircuitScriptParser.RULE_function_call_expr);
2405
2395
  let _la;
2406
2396
  try {
2407
2397
  let alternative;
2408
2398
  this.enterOuterAlt(localContext, 1);
2409
2399
  {
2410
- this.state = 452;
2400
+ this.state = 453;
2411
2401
  this.errorHandler.sync(this);
2412
2402
  _la = this.tokenStream.LA(1);
2413
- if (_la === 36 || _la === 38) {
2403
+ if (_la === 37 || _la === 39) {
2414
2404
  {
2415
- this.state = 451;
2405
+ this.state = 452;
2416
2406
  this.net_namespace_expr();
2417
2407
  }
2418
2408
  }
2419
- this.state = 454;
2409
+ this.state = 455;
2420
2410
  this.match(CircuitScriptParser.ID);
2421
- this.state = 456;
2411
+ this.state = 457;
2422
2412
  this.errorHandler.sync(this);
2423
2413
  alternative = 1;
2424
2414
  do {
@@ -2426,7 +2416,7 @@ export class CircuitScriptParser extends antlr.Parser {
2426
2416
  case 1:
2427
2417
  {
2428
2418
  {
2429
- this.state = 455;
2419
+ this.state = 456;
2430
2420
  this.trailer_expr();
2431
2421
  }
2432
2422
  }
@@ -2434,9 +2424,9 @@ export class CircuitScriptParser extends antlr.Parser {
2434
2424
  default:
2435
2425
  throw new antlr.NoViableAltException(this);
2436
2426
  }
2437
- this.state = 458;
2427
+ this.state = 459;
2438
2428
  this.errorHandler.sync(this);
2439
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 49, this.context);
2429
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 47, this.context);
2440
2430
  } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
2441
2431
  }
2442
2432
  }
@@ -2456,28 +2446,28 @@ export class CircuitScriptParser extends antlr.Parser {
2456
2446
  }
2457
2447
  net_namespace_expr() {
2458
2448
  let localContext = new Net_namespace_exprContext(this.context, this.state);
2459
- this.enterRule(localContext, 76, CircuitScriptParser.RULE_net_namespace_expr);
2449
+ this.enterRule(localContext, 78, CircuitScriptParser.RULE_net_namespace_expr);
2460
2450
  let _la;
2461
2451
  try {
2462
2452
  this.enterOuterAlt(localContext, 1);
2463
2453
  {
2464
- this.state = 461;
2454
+ this.state = 462;
2465
2455
  this.errorHandler.sync(this);
2466
2456
  _la = this.tokenStream.LA(1);
2467
- if (_la === 36) {
2457
+ if (_la === 37) {
2468
2458
  {
2469
- this.state = 460;
2459
+ this.state = 461;
2470
2460
  this.match(CircuitScriptParser.Addition);
2471
2461
  }
2472
2462
  }
2473
- this.state = 463;
2463
+ this.state = 464;
2474
2464
  this.match(CircuitScriptParser.Divide);
2475
- this.state = 465;
2465
+ this.state = 466;
2476
2466
  this.errorHandler.sync(this);
2477
- switch (this.interpreter.adaptivePredict(this.tokenStream, 51, this.context)) {
2467
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 49, this.context)) {
2478
2468
  case 1:
2479
2469
  {
2480
- this.state = 464;
2470
+ this.state = 465;
2481
2471
  this.data_expr(0);
2482
2472
  }
2483
2473
  break;
@@ -2500,13 +2490,13 @@ export class CircuitScriptParser extends antlr.Parser {
2500
2490
  }
2501
2491
  function_return_expr() {
2502
2492
  let localContext = new Function_return_exprContext(this.context, this.state);
2503
- this.enterRule(localContext, 78, CircuitScriptParser.RULE_function_return_expr);
2493
+ this.enterRule(localContext, 80, CircuitScriptParser.RULE_function_return_expr);
2504
2494
  try {
2505
2495
  this.enterOuterAlt(localContext, 1);
2506
2496
  {
2507
- this.state = 467;
2508
- this.match(CircuitScriptParser.Return);
2509
2497
  this.state = 468;
2498
+ this.match(CircuitScriptParser.Return);
2499
+ this.state = 469;
2510
2500
  this.data_expr(0);
2511
2501
  }
2512
2502
  }
@@ -2524,34 +2514,62 @@ export class CircuitScriptParser extends antlr.Parser {
2524
2514
  }
2525
2515
  return localContext;
2526
2516
  }
2517
+ property_block_expr() {
2518
+ let localContext = new Property_block_exprContext(this.context, this.state);
2519
+ this.enterRule(localContext, 82, CircuitScriptParser.RULE_property_block_expr);
2520
+ try {
2521
+ this.enterOuterAlt(localContext, 1);
2522
+ {
2523
+ this.state = 471;
2524
+ this.property_key_expr();
2525
+ this.state = 472;
2526
+ this.match(CircuitScriptParser.T__0);
2527
+ this.state = 473;
2528
+ this.expressions_block();
2529
+ }
2530
+ }
2531
+ catch (re) {
2532
+ if (re instanceof antlr.RecognitionException) {
2533
+ this.errorHandler.reportError(this, re);
2534
+ this.errorHandler.recover(this, re);
2535
+ }
2536
+ else {
2537
+ throw re;
2538
+ }
2539
+ }
2540
+ finally {
2541
+ this.exitRule();
2542
+ }
2543
+ return localContext;
2544
+ }
2527
2545
  create_component_expr() {
2528
2546
  let localContext = new Create_component_exprContext(this.context, this.state);
2529
- this.enterRule(localContext, 80, CircuitScriptParser.RULE_create_component_expr);
2547
+ this.enterRule(localContext, 84, CircuitScriptParser.RULE_create_component_expr);
2530
2548
  let _la;
2531
2549
  try {
2532
2550
  this.enterOuterAlt(localContext, 1);
2533
2551
  {
2534
- this.state = 470;
2552
+ this.state = 475;
2535
2553
  this.match(CircuitScriptParser.Create);
2536
- this.state = 471;
2554
+ this.state = 476;
2537
2555
  this.match(CircuitScriptParser.Component);
2538
- this.state = 472;
2556
+ this.state = 477;
2539
2557
  this.match(CircuitScriptParser.T__0);
2540
- this.state = 473;
2558
+ this.state = 478;
2541
2559
  this.match(CircuitScriptParser.NEWLINE);
2542
- this.state = 474;
2560
+ this.state = 479;
2543
2561
  this.match(CircuitScriptParser.INDENT);
2544
- this.state = 477;
2562
+ this.state = 482;
2545
2563
  this.errorHandler.sync(this);
2546
2564
  _la = this.tokenStream.LA(1);
2547
2565
  do {
2548
2566
  {
2549
- this.state = 477;
2567
+ this.state = 482;
2550
2568
  this.errorHandler.sync(this);
2551
2569
  switch (this.tokenStream.LA(1)) {
2552
2570
  case CircuitScriptParser.NEWLINE:
2553
2571
  {
2554
- this.state = 475;
2572
+ this.state = 480;
2555
2573
  this.match(CircuitScriptParser.NEWLINE);
2556
2574
  }
2557
2575
  break;
@@ -2559,7 +2577,7 @@ export class CircuitScriptParser extends antlr.Parser {
2559
2577
  case CircuitScriptParser.INTEGER_VALUE:
2560
2578
  case CircuitScriptParser.STRING_VALUE:
2561
2579
  {
2562
- this.state = 476;
2580
+ this.state = 481;
2563
2581
  this.property_expr();
2564
2582
  }
2565
2583
  break;
@@ -2567,11 +2585,11 @@ export class CircuitScriptParser extends antlr.Parser {
2567
2585
  throw new antlr.NoViableAltException(this);
2568
2586
  }
2569
2587
  }
2570
- this.state = 479;
2588
+ this.state = 484;
2571
2589
  this.errorHandler.sync(this);
2572
2590
  _la = this.tokenStream.LA(1);
2573
- } while (((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 275) !== 0));
2574
- this.state = 481;
2591
+ } while (((((_la - 45)) & ~0x1F) === 0 && ((1 << (_la - 45)) & 275) !== 0));
2592
+ this.state = 486;
2575
2593
  this.match(CircuitScriptParser.DEDENT);
2576
2594
  }
2577
2595
  }
@@ -2591,39 +2609,39 @@ export class CircuitScriptParser extends antlr.Parser {
2591
2609
  }
2592
2610
  create_graphic_expr() {
2593
2611
  let localContext = new Create_graphic_exprContext(this.context, this.state);
2594
- this.enterRule(localContext, 82, CircuitScriptParser.RULE_create_graphic_expr);
2612
+ this.enterRule(localContext, 86, CircuitScriptParser.RULE_create_graphic_expr);
2595
2613
  let _la;
2596
2614
  try {
2597
2615
  this.enterOuterAlt(localContext, 1);
2598
2616
  {
2599
- this.state = 483;
2617
+ this.state = 488;
2600
2618
  this.match(CircuitScriptParser.Create);
2601
- this.state = 484;
2619
+ this.state = 489;
2602
2620
  this.match(CircuitScriptParser.Graphic);
2603
- this.state = 485;
2621
+ this.state = 490;
2604
2622
  this.match(CircuitScriptParser.T__0);
2605
- this.state = 486;
2623
+ this.state = 491;
2606
2624
  this.match(CircuitScriptParser.NEWLINE);
2607
- this.state = 487;
2625
+ this.state = 492;
2608
2626
  this.match(CircuitScriptParser.INDENT);
2609
- this.state = 490;
2627
+ this.state = 495;
2610
2628
  this.errorHandler.sync(this);
2611
2629
  _la = this.tokenStream.LA(1);
2612
2630
  do {
2613
2631
  {
2614
- this.state = 490;
2632
+ this.state = 495;
2615
2633
  this.errorHandler.sync(this);
2616
2634
  switch (this.tokenStream.LA(1)) {
2617
2635
  case CircuitScriptParser.NEWLINE:
2618
2636
  {
2619
- this.state = 488;
2637
+ this.state = 493;
2620
2638
  this.match(CircuitScriptParser.NEWLINE);
2621
2639
  }
2622
2640
  break;
2623
2641
  case CircuitScriptParser.Pin:
2624
2642
  case CircuitScriptParser.ID:
2625
2643
  {
2626
- this.state = 489;
2644
+ this.state = 494;
2627
2645
  this.graphic_expr();
2628
2646
  }
2629
2647
  break;
@@ -2631,11 +2649,78 @@ export class CircuitScriptParser extends antlr.Parser {
2631
2649
  throw new antlr.NoViableAltException(this);
2632
2650
  }
2633
2651
  }
2634
- this.state = 492;
2652
+ this.state = 497;
2653
+ this.errorHandler.sync(this);
2654
+ _la = this.tokenStream.LA(1);
2655
+ } while (_la === 15 || _la === 45 || _la === 53);
2656
+ this.state = 499;
2657
+ this.match(CircuitScriptParser.DEDENT);
2658
+ }
2659
+ }
2660
+ catch (re) {
2661
+ if (re instanceof antlr.RecognitionException) {
2662
+ this.errorHandler.reportError(this, re);
2663
+ this.errorHandler.recover(this, re);
2664
+ }
2665
+ else {
2666
+ throw re;
2667
+ }
2668
+ }
2669
+ finally {
2670
+ this.exitRule();
2671
+ }
2672
+ return localContext;
2673
+ }
2674
+ create_module_expr() {
2675
+ let localContext = new Create_module_exprContext(this.context, this.state);
2676
+ this.enterRule(localContext, 88, CircuitScriptParser.RULE_create_module_expr);
2677
+ let _la;
2678
+ try {
2679
+ this.enterOuterAlt(localContext, 1);
2680
+ {
2681
+ this.state = 501;
2682
+ this.match(CircuitScriptParser.Create);
2683
+ this.state = 502;
2684
+ this.match(CircuitScriptParser.Module);
2685
+ this.state = 503;
2686
+ this.match(CircuitScriptParser.T__0);
2687
+ this.state = 504;
2688
+ this.match(CircuitScriptParser.NEWLINE);
2689
+ this.state = 505;
2690
+ this.match(CircuitScriptParser.INDENT);
2691
+ this.state = 509;
2692
+ this.errorHandler.sync(this);
2693
+ _la = this.tokenStream.LA(1);
2694
+ do {
2695
+ {
2696
+ this.state = 509;
2697
+ this.errorHandler.sync(this);
2698
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 54, this.context)) {
2699
+ case 1:
2700
+ {
2701
+ this.state = 506;
2702
+ this.match(CircuitScriptParser.NEWLINE);
2703
+ }
2704
+ break;
2705
+ case 2:
2706
+ {
2707
+ this.state = 507;
2708
+ this.property_expr();
2709
+ }
2710
+ break;
2711
+ case 3:
2712
+ {
2713
+ this.state = 508;
2714
+ this.property_block_expr();
2715
+ }
2716
+ break;
2717
+ }
2718
+ }
2719
+ this.state = 511;
2635
2720
  this.errorHandler.sync(this);
2636
2721
  _la = this.tokenStream.LA(1);
2637
- } while (_la === 14 || _la === 44 || _la === 52);
2638
- this.state = 494;
2722
+ } while (((((_la - 45)) & ~0x1F) === 0 && ((1 << (_la - 45)) & 275) !== 0));
2723
+ this.state = 513;
2639
2724
  this.match(CircuitScriptParser.DEDENT);
2640
2725
  }
2641
2726
  }
@@ -2655,27 +2740,27 @@ export class CircuitScriptParser extends antlr.Parser {
2655
2740
  }
2656
2741
  nested_properties_inner() {
2657
2742
  let localContext = new Nested_properties_innerContext(this.context, this.state);
2658
- this.enterRule(localContext, 84, CircuitScriptParser.RULE_nested_properties_inner);
2743
+ this.enterRule(localContext, 90, CircuitScriptParser.RULE_nested_properties_inner);
2659
2744
  let _la;
2660
2745
  try {
2661
2746
  this.enterOuterAlt(localContext, 1);
2662
2747
  {
2663
2748
  {
2664
- this.state = 496;
2749
+ this.state = 515;
2665
2750
  this.match(CircuitScriptParser.NEWLINE);
2666
- this.state = 497;
2751
+ this.state = 516;
2667
2752
  this.match(CircuitScriptParser.INDENT);
2668
- this.state = 500;
2753
+ this.state = 519;
2669
2754
  this.errorHandler.sync(this);
2670
2755
  _la = this.tokenStream.LA(1);
2671
2756
  do {
2672
2757
  {
2673
- this.state = 500;
2758
+ this.state = 519;
2674
2759
  this.errorHandler.sync(this);
2675
2760
  switch (this.tokenStream.LA(1)) {
2676
2761
  case CircuitScriptParser.NEWLINE:
2677
2762
  {
2678
- this.state = 498;
2763
+ this.state = 517;
2679
2764
  this.match(CircuitScriptParser.NEWLINE);
2680
2765
  }
2681
2766
  break;
@@ -2683,7 +2768,7 @@ export class CircuitScriptParser extends antlr.Parser {
2683
2768
  case CircuitScriptParser.INTEGER_VALUE:
2684
2769
  case CircuitScriptParser.STRING_VALUE:
2685
2770
  {
2686
- this.state = 499;
2771
+ this.state = 518;
2687
2772
  this.property_expr();
2688
2773
  }
2689
2774
  break;
@@ -2691,11 +2776,11 @@ export class CircuitScriptParser extends antlr.Parser {
2691
2776
  throw new antlr.NoViableAltException(this);
2692
2777
  }
2693
2778
  }
2694
- this.state = 502;
2779
+ this.state = 521;
2695
2780
  this.errorHandler.sync(this);
2696
2781
  _la = this.tokenStream.LA(1);
2697
- } while (((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 275) !== 0));
2698
- this.state = 504;
2782
+ } while (((((_la - 45)) & ~0x1F) === 0 && ((1 << (_la - 45)) & 275) !== 0));
2783
+ this.state = 523;
2699
2784
  this.match(CircuitScriptParser.DEDENT);
2700
2785
  }
2701
2786
  }
@@ -2716,52 +2801,52 @@ export class CircuitScriptParser extends antlr.Parser {
2716
2801
  }
2717
2802
  graphic_expr() {
2718
2803
  let localContext = new Graphic_exprContext(this.context, this.state);
2719
- this.enterRule(localContext, 86, CircuitScriptParser.RULE_graphic_expr);
2804
+ this.enterRule(localContext, 92, CircuitScriptParser.RULE_graphic_expr);
2720
2805
  let _la;
2721
2806
  try {
2722
2807
  this.enterOuterAlt(localContext, 1);
2723
2808
  {
2724
- this.state = 506;
2809
+ this.state = 525;
2725
2810
  localContext._command = this.tokenStream.LT(1);
2726
2811
  _la = this.tokenStream.LA(1);
2727
- if (!(_la === 14 || _la === 44)) {
2812
+ if (!(_la === 15 || _la === 45)) {
2728
2813
  localContext._command = this.errorHandler.recoverInline(this);
2729
2814
  }
2730
2815
  else {
2731
2816
  this.errorHandler.reportMatch(this);
2732
2817
  this.consume();
2733
2818
  }
2734
- this.state = 508;
2819
+ this.state = 527;
2735
2820
  this.errorHandler.sync(this);
2736
2821
  _la = this.tokenStream.LA(1);
2737
2822
  if (_la === 1) {
2738
2823
  {
2739
- this.state = 507;
2824
+ this.state = 526;
2740
2825
  this.match(CircuitScriptParser.T__0);
2741
2826
  }
2742
2827
  }
2743
- this.state = 516;
2828
+ this.state = 535;
2744
2829
  this.errorHandler.sync(this);
2745
2830
  switch (this.interpreter.adaptivePredict(this.tokenStream, 59, this.context)) {
2746
2831
  case 1:
2747
2832
  {
2748
- this.state = 510;
2833
+ this.state = 529;
2749
2834
  this.parameters();
2750
2835
  }
2751
2836
  break;
2752
2837
  case 2:
2753
2838
  {
2754
- this.state = 511;
2839
+ this.state = 530;
2755
2840
  this.match(CircuitScriptParser.OPEN_PAREN);
2756
- this.state = 512;
2841
+ this.state = 531;
2757
2842
  this.parameters();
2758
- this.state = 513;
2843
+ this.state = 532;
2759
2844
  this.match(CircuitScriptParser.CLOSE_PAREN);
2760
2845
  }
2761
2846
  break;
2762
2847
  case 3:
2763
2848
  {
2764
- this.state = 515;
2849
+ this.state = 534;
2765
2850
  this.nested_properties_inner();
2766
2851
  }
2767
2852
  break;
@@ -2784,15 +2869,15 @@ export class CircuitScriptParser extends antlr.Parser {
2784
2869
  }
2785
2870
  property_expr() {
2786
2871
  let localContext = new Property_exprContext(this.context, this.state);
2787
- this.enterRule(localContext, 88, CircuitScriptParser.RULE_property_expr);
2872
+ this.enterRule(localContext, 94, CircuitScriptParser.RULE_property_expr);
2788
2873
  try {
2789
2874
  this.enterOuterAlt(localContext, 1);
2790
2875
  {
2791
- this.state = 518;
2876
+ this.state = 537;
2792
2877
  this.property_key_expr();
2793
- this.state = 519;
2878
+ this.state = 538;
2794
2879
  this.match(CircuitScriptParser.T__0);
2795
- this.state = 520;
2880
+ this.state = 539;
2796
2881
  this.property_value_expr();
2797
2882
  }
2798
2883
  }
@@ -2812,14 +2897,14 @@ export class CircuitScriptParser extends antlr.Parser {
2812
2897
  }
2813
2898
  property_key_expr() {
2814
2899
  let localContext = new Property_key_exprContext(this.context, this.state);
2815
- this.enterRule(localContext, 90, CircuitScriptParser.RULE_property_key_expr);
2900
+ this.enterRule(localContext, 96, CircuitScriptParser.RULE_property_key_expr);
2816
2901
  let _la;
2817
2902
  try {
2818
2903
  this.enterOuterAlt(localContext, 1);
2819
2904
  {
2820
- this.state = 522;
2905
+ this.state = 541;
2821
2906
  _la = this.tokenStream.LA(1);
2822
- if (!(((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 19) !== 0))) {
2907
+ if (!(((((_la - 45)) & ~0x1F) === 0 && ((1 << (_la - 45)) & 19) !== 0))) {
2823
2908
  this.errorHandler.recoverInline(this);
2824
2909
  }
2825
2910
  else {
@@ -2844,17 +2929,17 @@ export class CircuitScriptParser extends antlr.Parser {
2844
2929
  }
2845
2930
  property_value_expr() {
2846
2931
  let localContext = new Property_value_exprContext(this.context, this.state);
2847
- this.enterRule(localContext, 92, CircuitScriptParser.RULE_property_value_expr);
2932
+ this.enterRule(localContext, 98, CircuitScriptParser.RULE_property_value_expr);
2848
2933
  let _la;
2849
2934
  try {
2850
- this.state = 533;
2935
+ this.state = 552;
2851
2936
  this.errorHandler.sync(this);
2852
2937
  switch (this.tokenStream.LA(1)) {
2853
2938
  case CircuitScriptParser.NEWLINE:
2854
2939
  localContext = new Nested_propertiesContext(localContext);
2855
2940
  this.enterOuterAlt(localContext, 1);
2856
2941
  {
2857
- this.state = 524;
2942
+ this.state = 543;
2858
2943
  this.nested_properties_inner();
2859
2944
  }
2860
2945
  break;
@@ -2875,21 +2960,21 @@ export class CircuitScriptParser extends antlr.Parser {
2875
2960
  localContext = new Single_line_propertyContext(localContext);
2876
2961
  this.enterOuterAlt(localContext, 2);
2877
2962
  {
2878
- this.state = 525;
2963
+ this.state = 544;
2879
2964
  this.data_expr(0);
2880
- this.state = 530;
2965
+ this.state = 549;
2881
2966
  this.errorHandler.sync(this);
2882
2967
  _la = this.tokenStream.LA(1);
2883
2968
  while (_la === 2) {
2884
2969
  {
2885
2970
  {
2886
- this.state = 526;
2971
+ this.state = 545;
2887
2972
  this.match(CircuitScriptParser.T__1);
2888
- this.state = 527;
2973
+ this.state = 546;
2889
2974
  this.data_expr(0);
2890
2975
  }
2891
2976
  }
2892
- this.state = 532;
2977
+ this.state = 551;
2893
2978
  this.errorHandler.sync(this);
2894
2979
  _la = this.tokenStream.LA(1);
2895
2980
  }
@@ -2915,15 +3000,15 @@ export class CircuitScriptParser extends antlr.Parser {
2915
3000
  }
2916
3001
  blank_expr() {
2917
3002
  let localContext = new Blank_exprContext(this.context, this.state);
2918
- this.enterRule(localContext, 94, CircuitScriptParser.RULE_blank_expr);
3003
+ this.enterRule(localContext, 100, CircuitScriptParser.RULE_blank_expr);
2919
3004
  try {
2920
3005
  this.enterOuterAlt(localContext, 1);
2921
3006
  {
2922
- this.state = 535;
3007
+ this.state = 554;
2923
3008
  this.match(CircuitScriptParser.T__5);
2924
- this.state = 536;
3009
+ this.state = 555;
2925
3010
  this.match(CircuitScriptParser.INTEGER_VALUE);
2926
- this.state = 537;
3011
+ this.state = 556;
2927
3012
  this.match(CircuitScriptParser.T__6);
2928
3013
  }
2929
3014
  }
@@ -2943,29 +3028,29 @@ export class CircuitScriptParser extends antlr.Parser {
2943
3028
  }
2944
3029
  wire_atom_expr() {
2945
3030
  let localContext = new Wire_atom_exprContext(this.context, this.state);
2946
- this.enterRule(localContext, 96, CircuitScriptParser.RULE_wire_atom_expr);
3031
+ this.enterRule(localContext, 102, CircuitScriptParser.RULE_wire_atom_expr);
2947
3032
  try {
2948
- this.state = 545;
3033
+ this.state = 564;
2949
3034
  this.errorHandler.sync(this);
2950
3035
  switch (this.interpreter.adaptivePredict(this.tokenStream, 63, this.context)) {
2951
3036
  case 1:
2952
3037
  localContext = new Wire_expr_direction_valueContext(localContext);
2953
3038
  this.enterOuterAlt(localContext, 1);
2954
3039
  {
2955
- this.state = 539;
3040
+ this.state = 558;
2956
3041
  this.match(CircuitScriptParser.ID);
2957
- this.state = 542;
3042
+ this.state = 561;
2958
3043
  this.errorHandler.sync(this);
2959
3044
  switch (this.interpreter.adaptivePredict(this.tokenStream, 62, this.context)) {
2960
3045
  case 1:
2961
3046
  {
2962
- this.state = 540;
3047
+ this.state = 559;
2963
3048
  this.match(CircuitScriptParser.INTEGER_VALUE);
2964
3049
  }
2965
3050
  break;
2966
3051
  case 2:
2967
3052
  {
2968
- this.state = 541;
3053
+ this.state = 560;
2969
3054
  this.data_expr(0);
2970
3055
  }
2971
3056
  break;
@@ -2976,7 +3061,7 @@ export class CircuitScriptParser extends antlr.Parser {
2976
3061
  localContext = new Wire_expr_direction_onlyContext(localContext);
2977
3062
  this.enterOuterAlt(localContext, 2);
2978
3063
  {
2979
- this.state = 544;
3064
+ this.state = 563;
2980
3065
  this.match(CircuitScriptParser.ID);
2981
3066
  }
2982
3067
  break;
@@ -2998,26 +3083,26 @@ export class CircuitScriptParser extends antlr.Parser {
2998
3083
  }
2999
3084
  wire_expr() {
3000
3085
  let localContext = new Wire_exprContext(this.context, this.state);
3001
- this.enterRule(localContext, 98, CircuitScriptParser.RULE_wire_expr);
3086
+ this.enterRule(localContext, 104, CircuitScriptParser.RULE_wire_expr);
3002
3087
  try {
3003
3088
  let alternative;
3004
3089
  this.enterOuterAlt(localContext, 1);
3005
3090
  {
3006
- this.state = 547;
3091
+ this.state = 566;
3007
3092
  this.match(CircuitScriptParser.Wire);
3008
- this.state = 551;
3093
+ this.state = 570;
3009
3094
  this.errorHandler.sync(this);
3010
3095
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 64, this.context);
3011
3096
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3012
3097
  if (alternative === 1) {
3013
3098
  {
3014
3099
  {
3015
- this.state = 548;
3100
+ this.state = 567;
3016
3101
  this.wire_atom_expr();
3017
3102
  }
3018
3103
  }
3019
3104
  }
3020
- this.state = 553;
3105
+ this.state = 572;
3021
3106
  this.errorHandler.sync(this);
3022
3107
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 64, this.context);
3023
3108
  }
@@ -3039,13 +3124,13 @@ export class CircuitScriptParser extends antlr.Parser {
3039
3124
  }
3040
3125
  point_expr() {
3041
3126
  let localContext = new Point_exprContext(this.context, this.state);
3042
- this.enterRule(localContext, 100, CircuitScriptParser.RULE_point_expr);
3127
+ this.enterRule(localContext, 106, CircuitScriptParser.RULE_point_expr);
3043
3128
  try {
3044
3129
  this.enterOuterAlt(localContext, 1);
3045
3130
  {
3046
- this.state = 554;
3131
+ this.state = 573;
3047
3132
  this.match(CircuitScriptParser.Point);
3048
- this.state = 555;
3133
+ this.state = 574;
3049
3134
  this.match(CircuitScriptParser.ID);
3050
3135
  }
3051
3136
  }
@@ -3065,13 +3150,13 @@ export class CircuitScriptParser extends antlr.Parser {
3065
3150
  }
3066
3151
  import_expr() {
3067
3152
  let localContext = new Import_exprContext(this.context, this.state);
3068
- this.enterRule(localContext, 102, CircuitScriptParser.RULE_import_expr);
3153
+ this.enterRule(localContext, 108, CircuitScriptParser.RULE_import_expr);
3069
3154
  try {
3070
3155
  this.enterOuterAlt(localContext, 1);
3071
3156
  {
3072
- this.state = 557;
3157
+ this.state = 576;
3073
3158
  this.match(CircuitScriptParser.Import);
3074
- this.state = 558;
3159
+ this.state = 577;
3075
3160
  this.match(CircuitScriptParser.ID);
3076
3161
  }
3077
3162
  }
@@ -3091,65 +3176,16 @@ export class CircuitScriptParser extends antlr.Parser {
3091
3176
  }
3092
3177
  frame_expr() {
3093
3178
  let localContext = new Frame_exprContext(this.context, this.state);
3094
- this.enterRule(localContext, 104, CircuitScriptParser.RULE_frame_expr);
3095
- let _la;
3179
+ this.enterRule(localContext, 110, CircuitScriptParser.RULE_frame_expr);
3096
3180
  try {
3097
3181
  this.enterOuterAlt(localContext, 1);
3098
3182
  {
3099
- this.state = 560;
3183
+ this.state = 579;
3100
3184
  this.match(CircuitScriptParser.Frame);
3101
- this.state = 561;
3185
+ this.state = 580;
3102
3186
  this.match(CircuitScriptParser.T__0);
3103
- this.state = 562;
3104
- this.match(CircuitScriptParser.NEWLINE);
3105
- this.state = 563;
3106
- this.match(CircuitScriptParser.INDENT);
3107
- this.state = 566;
3108
- this.errorHandler.sync(this);
3109
- _la = this.tokenStream.LA(1);
3110
- do {
3111
- {
3112
- this.state = 566;
3113
- this.errorHandler.sync(this);
3114
- switch (this.tokenStream.LA(1)) {
3115
- case CircuitScriptParser.NEWLINE:
3116
- {
3117
- this.state = 564;
3118
- this.match(CircuitScriptParser.NEWLINE);
3119
- }
3120
- break;
3121
- case CircuitScriptParser.T__3:
3122
- case CircuitScriptParser.Break:
3123
- case CircuitScriptParser.Branch:
3124
- case CircuitScriptParser.Wire:
3125
- case CircuitScriptParser.Add:
3126
- case CircuitScriptParser.At:
3127
- case CircuitScriptParser.To:
3128
- case CircuitScriptParser.Point:
3129
- case CircuitScriptParser.Join:
3130
- case CircuitScriptParser.Parallel:
3131
- case CircuitScriptParser.Define:
3132
- case CircuitScriptParser.Import:
3133
- case CircuitScriptParser.If:
3134
- case CircuitScriptParser.Frame:
3135
- case CircuitScriptParser.Addition:
3136
- case CircuitScriptParser.Divide:
3137
- case CircuitScriptParser.ID:
3138
- {
3139
- this.state = 565;
3140
- this.expression();
3141
- }
3142
- break;
3143
- default:
3144
- throw new antlr.NoViableAltException(this);
3145
- }
3146
- }
3147
- this.state = 568;
3148
- this.errorHandler.sync(this);
3149
- _la = this.tokenStream.LA(1);
3150
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
3151
- this.state = 570;
3152
- this.match(CircuitScriptParser.DEDENT);
3187
+ this.state = 581;
3188
+ this.expressions_block();
3153
3189
  }
3154
3190
  }
3155
3191
  catch (re) {
@@ -3168,90 +3204,42 @@ export class CircuitScriptParser extends antlr.Parser {
3168
3204
  }
3169
3205
  if_expr() {
3170
3206
  let localContext = new If_exprContext(this.context, this.state);
3171
- this.enterRule(localContext, 106, CircuitScriptParser.RULE_if_expr);
3207
+ this.enterRule(localContext, 112, CircuitScriptParser.RULE_if_expr);
3172
3208
  let _la;
3173
3209
  try {
3174
3210
  let alternative;
3175
3211
  this.enterOuterAlt(localContext, 1);
3176
3212
  {
3177
- this.state = 572;
3213
+ this.state = 583;
3178
3214
  this.match(CircuitScriptParser.If);
3179
- this.state = 573;
3215
+ this.state = 584;
3180
3216
  this.data_expr(0);
3181
- this.state = 574;
3217
+ this.state = 585;
3182
3218
  this.match(CircuitScriptParser.T__0);
3183
- this.state = 575;
3184
- this.match(CircuitScriptParser.NEWLINE);
3185
- this.state = 576;
3186
- this.match(CircuitScriptParser.INDENT);
3187
- this.state = 579;
3188
- this.errorHandler.sync(this);
3189
- _la = this.tokenStream.LA(1);
3190
- do {
3191
- {
3192
- this.state = 579;
3193
- this.errorHandler.sync(this);
3194
- switch (this.tokenStream.LA(1)) {
3195
- case CircuitScriptParser.NEWLINE:
3196
- {
3197
- this.state = 577;
3198
- this.match(CircuitScriptParser.NEWLINE);
3199
- }
3200
- break;
3201
- case CircuitScriptParser.T__3:
3202
- case CircuitScriptParser.Break:
3203
- case CircuitScriptParser.Branch:
3204
- case CircuitScriptParser.Wire:
3205
- case CircuitScriptParser.Add:
3206
- case CircuitScriptParser.At:
3207
- case CircuitScriptParser.To:
3208
- case CircuitScriptParser.Point:
3209
- case CircuitScriptParser.Join:
3210
- case CircuitScriptParser.Parallel:
3211
- case CircuitScriptParser.Define:
3212
- case CircuitScriptParser.Import:
3213
- case CircuitScriptParser.If:
3214
- case CircuitScriptParser.Frame:
3215
- case CircuitScriptParser.Addition:
3216
- case CircuitScriptParser.Divide:
3217
- case CircuitScriptParser.ID:
3218
- {
3219
- this.state = 578;
3220
- this.expression();
3221
- }
3222
- break;
3223
- default:
3224
- throw new antlr.NoViableAltException(this);
3225
- }
3226
- }
3227
- this.state = 581;
3228
- this.errorHandler.sync(this);
3229
- _la = this.tokenStream.LA(1);
3230
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
3231
- this.state = 583;
3232
- this.match(CircuitScriptParser.DEDENT);
3233
- this.state = 587;
3219
+ this.state = 586;
3220
+ this.expressions_block();
3221
+ this.state = 590;
3234
3222
  this.errorHandler.sync(this);
3235
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
3223
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 65, this.context);
3236
3224
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3237
3225
  if (alternative === 1) {
3238
3226
  {
3239
3227
  {
3240
- this.state = 584;
3228
+ this.state = 587;
3241
3229
  this.if_inner_expr();
3242
3230
  }
3243
3231
  }
3244
3232
  }
3245
- this.state = 589;
3233
+ this.state = 592;
3246
3234
  this.errorHandler.sync(this);
3247
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
3235
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 65, this.context);
3248
3236
  }
3249
- this.state = 591;
3237
+ this.state = 594;
3250
3238
  this.errorHandler.sync(this);
3251
3239
  _la = this.tokenStream.LA(1);
3252
- if (_la === 25) {
3240
+ if (_la === 26) {
3253
3241
  {
3254
- this.state = 590;
3242
+ this.state = 593;
3255
3243
  this.else_expr();
3256
3244
  }
3257
3245
  }
@@ -3273,69 +3261,20 @@ export class CircuitScriptParser extends antlr.Parser {
3273
3261
  }
3274
3262
  if_inner_expr() {
3275
3263
  let localContext = new If_inner_exprContext(this.context, this.state);
3276
- this.enterRule(localContext, 108, CircuitScriptParser.RULE_if_inner_expr);
3277
- let _la;
3264
+ this.enterRule(localContext, 114, CircuitScriptParser.RULE_if_inner_expr);
3278
3265
  try {
3279
3266
  this.enterOuterAlt(localContext, 1);
3280
3267
  {
3281
- this.state = 593;
3282
- this.match(CircuitScriptParser.Else);
3283
- this.state = 594;
3284
- this.match(CircuitScriptParser.If);
3285
- this.state = 595;
3286
- this.data_expr(0);
3287
3268
  this.state = 596;
3288
- this.match(CircuitScriptParser.T__0);
3289
- this.state = 597;
3290
- this.match(CircuitScriptParser.NEWLINE);
3291
- this.state = 598;
3292
- this.match(CircuitScriptParser.INDENT);
3293
- this.state = 601;
3294
- this.errorHandler.sync(this);
3295
- _la = this.tokenStream.LA(1);
3296
- do {
3297
- {
3298
- this.state = 601;
3299
- this.errorHandler.sync(this);
3300
- switch (this.tokenStream.LA(1)) {
3301
- case CircuitScriptParser.NEWLINE:
3302
- {
3303
- this.state = 599;
3304
- this.match(CircuitScriptParser.NEWLINE);
3305
- }
3306
- break;
3307
- case CircuitScriptParser.T__3:
3308
- case CircuitScriptParser.Break:
3309
- case CircuitScriptParser.Branch:
3310
- case CircuitScriptParser.Wire:
3311
- case CircuitScriptParser.Add:
3312
- case CircuitScriptParser.At:
3313
- case CircuitScriptParser.To:
3314
- case CircuitScriptParser.Point:
3315
- case CircuitScriptParser.Join:
3316
- case CircuitScriptParser.Parallel:
3317
- case CircuitScriptParser.Define:
3318
- case CircuitScriptParser.Import:
3319
- case CircuitScriptParser.If:
3320
- case CircuitScriptParser.Frame:
3321
- case CircuitScriptParser.Addition:
3322
- case CircuitScriptParser.Divide:
3323
- case CircuitScriptParser.ID:
3324
- {
3325
- this.state = 600;
3326
- this.expression();
3327
- }
3328
- break;
3329
- default:
3330
- throw new antlr.NoViableAltException(this);
3331
- }
3332
- }
3333
- this.state = 603;
3334
- this.errorHandler.sync(this);
3335
- _la = this.tokenStream.LA(1);
3336
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
3337
- this.state = 605;
3338
- this.match(CircuitScriptParser.DEDENT);
3269
+ this.match(CircuitScriptParser.Else);
3270
+ this.state = 597;
3271
+ this.match(CircuitScriptParser.If);
3272
+ this.state = 598;
3273
+ this.data_expr(0);
3274
+ this.state = 599;
3275
+ this.match(CircuitScriptParser.T__0);
3276
+ this.state = 600;
3277
+ this.expressions_block();
3339
3278
  }
3340
3279
  }
3341
3280
  catch (re) {
@@ -3354,65 +3293,16 @@ export class CircuitScriptParser extends antlr.Parser {
3354
3293
  }
3355
3294
  else_expr() {
3356
3295
  let localContext = new Else_exprContext(this.context, this.state);
3357
- this.enterRule(localContext, 110, CircuitScriptParser.RULE_else_expr);
3358
- let _la;
3296
+ this.enterRule(localContext, 116, CircuitScriptParser.RULE_else_expr);
3359
3297
  try {
3360
3298
  this.enterOuterAlt(localContext, 1);
3361
3299
  {
3362
- this.state = 607;
3300
+ this.state = 602;
3363
3301
  this.match(CircuitScriptParser.Else);
3364
- this.state = 608;
3302
+ this.state = 603;
3365
3303
  this.match(CircuitScriptParser.T__0);
3366
- this.state = 609;
3367
- this.match(CircuitScriptParser.NEWLINE);
3368
- this.state = 610;
3369
- this.match(CircuitScriptParser.INDENT);
3370
- this.state = 613;
3371
- this.errorHandler.sync(this);
3372
- _la = this.tokenStream.LA(1);
3373
- do {
3374
- {
3375
- this.state = 613;
3376
- this.errorHandler.sync(this);
3377
- switch (this.tokenStream.LA(1)) {
3378
- case CircuitScriptParser.NEWLINE:
3379
- {
3380
- this.state = 611;
3381
- this.match(CircuitScriptParser.NEWLINE);
3382
- }
3383
- break;
3384
- case CircuitScriptParser.T__3:
3385
- case CircuitScriptParser.Break:
3386
- case CircuitScriptParser.Branch:
3387
- case CircuitScriptParser.Wire:
3388
- case CircuitScriptParser.Add:
3389
- case CircuitScriptParser.At:
3390
- case CircuitScriptParser.To:
3391
- case CircuitScriptParser.Point:
3392
- case CircuitScriptParser.Join:
3393
- case CircuitScriptParser.Parallel:
3394
- case CircuitScriptParser.Define:
3395
- case CircuitScriptParser.Import:
3396
- case CircuitScriptParser.If:
3397
- case CircuitScriptParser.Frame:
3398
- case CircuitScriptParser.Addition:
3399
- case CircuitScriptParser.Divide:
3400
- case CircuitScriptParser.ID:
3401
- {
3402
- this.state = 612;
3403
- this.expression();
3404
- }
3405
- break;
3406
- default:
3407
- throw new antlr.NoViableAltException(this);
3408
- }
3409
- }
3410
- this.state = 615;
3411
- this.errorHandler.sync(this);
3412
- _la = this.tokenStream.LA(1);
3413
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
3414
- this.state = 617;
3415
- this.match(CircuitScriptParser.DEDENT);
3304
+ this.state = 604;
3305
+ this.expressions_block();
3416
3306
  }
3417
3307
  }
3418
3308
  catch (re) {
@@ -3431,7 +3321,7 @@ export class CircuitScriptParser extends antlr.Parser {
3431
3321
  }
3432
3322
  sempred(localContext, ruleIndex, predIndex) {
3433
3323
  switch (ruleIndex) {
3434
- case 28:
3324
+ case 29:
3435
3325
  return this.data_expr_sempred(localContext, predIndex);
3436
3326
  }
3437
3327
  return true;
@@ -3439,18 +3329,18 @@ export class CircuitScriptParser extends antlr.Parser {
3439
3329
  data_expr_sempred(localContext, predIndex) {
3440
3330
  switch (predIndex) {
3441
3331
  case 0:
3442
- return this.precpred(this.context, 7);
3332
+ return this.precpred(this.context, 8);
3443
3333
  case 1:
3444
- return this.precpred(this.context, 6);
3334
+ return this.precpred(this.context, 7);
3445
3335
  case 2:
3446
- return this.precpred(this.context, 5);
3336
+ return this.precpred(this.context, 6);
3447
3337
  case 3:
3448
- return this.precpred(this.context, 4);
3338
+ return this.precpred(this.context, 5);
3449
3339
  }
3450
3340
  return true;
3451
3341
  }
3452
3342
  static _serializedATN = [
3453
- 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,
3343
+ 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,
3454
3344
  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,
3455
3345
  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,
3456
3346
  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,
@@ -3458,227 +3348,220 @@ export class CircuitScriptParser extends antlr.Parser {
3458
3348
  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,
3459
3349
  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,
3460
3350
  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,
3461
- 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,
3462
- 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,
3463
- 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,
3464
- 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,
3465
- 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,
3466
- 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,
3467
- 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,
3468
- 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,
3469
- 13, 1, 13, 5, 13, 214, 8, 13, 10, 13, 12, 13, 217, 9, 13, 1, 13, 3, 13, 220, 8, 13, 1,
3470
- 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 5, 14, 228, 8, 14, 10, 14, 12, 14, 231, 9, 14, 1,
3471
- 14, 1, 14, 1, 14, 1, 14, 1, 14, 4, 14, 238, 8, 14, 11, 14, 12, 14, 239, 1, 14, 1, 14, 1,
3472
- 15, 1, 15, 1, 15, 1, 15, 1, 15, 5, 15, 249, 8, 15, 10, 15, 12, 15, 252, 9, 15, 1, 16, 1,
3473
- 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 4, 17, 262, 8, 17, 11, 17, 12, 17, 263, 1,
3474
- 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,
3475
- 1, 20, 1, 20, 3, 20, 280, 8, 20, 1, 21, 1, 21, 1, 21, 1, 21, 4, 21, 286, 8, 21, 11, 21,
3476
- 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,
3477
- 1, 24, 1, 25, 1, 25, 1, 25, 5, 25, 305, 8, 25, 10, 25, 12, 25, 308, 9, 25, 1, 25, 1, 25,
3478
- 5, 25, 312, 8, 25, 10, 25, 12, 25, 315, 9, 25, 1, 25, 1, 25, 1, 25, 5, 25, 320, 8, 25,
3479
- 10, 25, 12, 25, 323, 9, 25, 3, 25, 325, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27,
3480
- 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,
3481
- 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,
3482
- 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,
3483
- 12, 28, 369, 9, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 31, 3, 31, 376, 8, 31, 1, 31, 1, 31,
3484
- 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,
3485
- 32, 1, 32, 1, 32, 4, 32, 394, 8, 32, 11, 32, 12, 32, 395, 1, 32, 1, 32, 1, 33, 1, 33, 3,
3486
- 33, 402, 8, 33, 1, 34, 1, 34, 1, 34, 5, 34, 407, 8, 34, 10, 34, 12, 34, 410, 9, 34, 1,
3487
- 34, 1, 34, 1, 34, 1, 34, 5, 34, 416, 8, 34, 10, 34, 12, 34, 419, 9, 34, 1, 34, 1, 34, 1,
3488
- 34, 1, 34, 1, 34, 1, 34, 1, 34, 5, 34, 428, 8, 34, 10, 34, 12, 34, 431, 9, 34, 3, 34, 433,
3489
- 8, 34, 1, 35, 1, 35, 1, 35, 5, 35, 438, 8, 35, 10, 35, 12, 35, 441, 9, 35, 1, 36, 1, 36,
3490
- 3, 36, 445, 8, 36, 1, 36, 1, 36, 1, 36, 3, 36, 450, 8, 36, 1, 37, 3, 37, 453, 8, 37, 1,
3491
- 37, 1, 37, 4, 37, 457, 8, 37, 11, 37, 12, 37, 458, 1, 38, 3, 38, 462, 8, 38, 1, 38, 1,
3492
- 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,
3493
- 40, 4, 40, 478, 8, 40, 11, 40, 12, 40, 479, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1,
3494
- 41, 1, 41, 1, 41, 4, 41, 491, 8, 41, 11, 41, 12, 41, 492, 1, 41, 1, 41, 1, 42, 1, 42, 1,
3495
- 42, 1, 42, 4, 42, 501, 8, 42, 11, 42, 12, 42, 502, 1, 42, 1, 42, 1, 43, 1, 43, 3, 43, 509,
3496
- 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,
3497
- 1, 44, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 5, 46, 529, 8, 46, 10, 46, 12, 46, 532,
3498
- 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,
3499
- 48, 1, 48, 3, 48, 546, 8, 48, 1, 49, 1, 49, 5, 49, 550, 8, 49, 10, 49, 12, 49, 553, 9,
3500
- 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,
3501
- 52, 567, 8, 52, 11, 52, 12, 52, 568, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1,
3502
- 53, 1, 53, 4, 53, 580, 8, 53, 11, 53, 12, 53, 581, 1, 53, 1, 53, 5, 53, 586, 8, 53, 10,
3503
- 53, 12, 53, 589, 9, 53, 1, 53, 3, 53, 592, 8, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1,
3504
- 54, 1, 54, 1, 54, 4, 54, 602, 8, 54, 11, 54, 12, 54, 603, 1, 54, 1, 54, 1, 55, 1, 55, 1,
3505
- 55, 1, 55, 1, 55, 1, 55, 4, 55, 614, 8, 55, 11, 55, 12, 55, 615, 1, 55, 1, 55, 1, 55, 0,
3506
- 1, 56, 56, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40,
3507
- 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84,
3508
- 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 0, 12, 2, 0, 9, 9, 18, 20,
3509
- 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,
3510
- 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,
3511
- 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,
3512
- 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,
3513
- 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,
3514
- 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,
3515
- 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,
3516
- 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,
3517
- 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,
3518
- 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,
3519
- 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,
3520
- 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,
3521
- 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,
3522
- 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,
3523
- 0, 0, 102, 557, 1, 0, 0, 0, 104, 560, 1, 0, 0, 0, 106, 572, 1, 0, 0, 0, 108, 593, 1, 0,
3524
- 0, 0, 110, 607, 1, 0, 0, 0, 112, 115, 3, 2, 1, 0, 113, 115, 5, 52, 0, 0, 114, 112, 1, 0,
3525
- 0, 0, 114, 113, 1, 0, 0, 0, 115, 116, 1, 0, 0, 0, 116, 114, 1, 0, 0, 0, 116, 117, 1, 0,
3526
- 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,
3527
- 0, 121, 139, 3, 26, 13, 0, 122, 139, 3, 24, 12, 0, 123, 139, 3, 46, 23, 0, 124, 139,
3528
- 3, 52, 26, 0, 125, 139, 3, 8, 4, 0, 126, 139, 3, 54, 27, 0, 127, 139, 3, 44, 22, 0, 128,
3529
- 139, 3, 64, 32, 0, 129, 139, 3, 74, 37, 0, 130, 139, 3, 98, 49, 0, 131, 139, 3, 102,
3530
- 51, 0, 132, 139, 3, 104, 52, 0, 133, 139, 3, 70, 35, 0, 134, 139, 3, 34, 17, 0, 135,
3531
- 139, 3, 4, 2, 0, 136, 139, 3, 100, 50, 0, 137, 139, 3, 106, 53, 0, 138, 120, 1, 0, 0,
3532
- 0, 138, 121, 1, 0, 0, 0, 138, 122, 1, 0, 0, 0, 138, 123, 1, 0, 0, 0, 138, 124, 1, 0, 0,
3533
- 0, 138, 125, 1, 0, 0, 0, 138, 126, 1, 0, 0, 0, 138, 127, 1, 0, 0, 0, 138, 128, 1, 0, 0,
3534
- 0, 138, 129, 1, 0, 0, 0, 138, 130, 1, 0, 0, 0, 138, 131, 1, 0, 0, 0, 138, 132, 1, 0, 0,
3535
- 0, 138, 133, 1, 0, 0, 0, 138, 134, 1, 0, 0, 0, 138, 135, 1, 0, 0, 0, 138, 136, 1, 0, 0,
3536
- 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,
3537
- 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,
3538
- 146, 7, 0, 0, 0, 146, 147, 5, 1, 0, 0, 147, 148, 5, 52, 0, 0, 148, 151, 5, 54, 0, 0, 149,
3539
- 152, 5, 52, 0, 0, 150, 152, 3, 2, 1, 0, 151, 149, 1, 0, 0, 0, 151, 150, 1, 0, 0, 0, 152,
3540
- 153, 1, 0, 0, 0, 153, 151, 1, 0, 0, 0, 153, 154, 1, 0, 0, 0, 154, 155, 1, 0, 0, 0, 155,
3541
- 156, 5, 55, 0, 0, 156, 7, 1, 0, 0, 0, 157, 158, 3, 70, 35, 0, 158, 159, 5, 1, 0, 0, 159,
3542
- 160, 5, 52, 0, 0, 160, 163, 5, 54, 0, 0, 161, 164, 5, 52, 0, 0, 162, 164, 3, 10, 5, 0,
3543
- 163, 161, 1, 0, 0, 0, 163, 162, 1, 0, 0, 0, 164, 165, 1, 0, 0, 0, 165, 163, 1, 0, 0, 0,
3544
- 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,
3545
- 170, 7, 1, 0, 0, 170, 171, 5, 1, 0, 0, 171, 172, 3, 62, 31, 0, 172, 11, 1, 0, 0, 0, 173,
3546
- 174, 5, 14, 0, 0, 174, 175, 7, 2, 0, 0, 175, 13, 1, 0, 0, 0, 176, 177, 5, 44, 0, 0, 177,
3547
- 180, 5, 1, 0, 0, 178, 181, 3, 62, 31, 0, 179, 181, 5, 44, 0, 0, 180, 178, 1, 0, 0, 0, 180,
3548
- 179, 1, 0, 0, 0, 181, 15, 1, 0, 0, 0, 182, 185, 3, 56, 28, 0, 183, 185, 3, 46, 23, 0, 184,
3549
- 182, 1, 0, 0, 0, 184, 183, 1, 0, 0, 0, 185, 189, 1, 0, 0, 0, 186, 188, 3, 14, 7, 0, 187,
3550
- 186, 1, 0, 0, 0, 188, 191, 1, 0, 0, 0, 189, 187, 1, 0, 0, 0, 189, 190, 1, 0, 0, 0, 190,
3551
- 193, 1, 0, 0, 0, 191, 189, 1, 0, 0, 0, 192, 194, 3, 12, 6, 0, 193, 192, 1, 0, 0, 0, 193,
3552
- 194, 1, 0, 0, 0, 194, 17, 1, 0, 0, 0, 195, 196, 5, 15, 0, 0, 196, 197, 3, 16, 8, 0, 197,
3553
- 19, 1, 0, 0, 0, 198, 201, 3, 16, 8, 0, 199, 201, 3, 12, 6, 0, 200, 198, 1, 0, 0, 0, 200,
3554
- 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,
3555
- 5, 16, 0, 0, 205, 208, 3, 20, 10, 0, 206, 208, 5, 18, 0, 0, 207, 205, 1, 0, 0, 0, 207,
3556
- 206, 1, 0, 0, 0, 208, 25, 1, 0, 0, 0, 209, 219, 5, 17, 0, 0, 210, 215, 3, 20, 10, 0, 211,
3557
- 212, 5, 2, 0, 0, 212, 214, 3, 20, 10, 0, 213, 211, 1, 0, 0, 0, 214, 217, 1, 0, 0, 0, 215,
3558
- 213, 1, 0, 0, 0, 215, 216, 1, 0, 0, 0, 216, 220, 1, 0, 0, 0, 217, 215, 1, 0, 0, 0, 218,
3559
- 220, 5, 18, 0, 0, 219, 210, 1, 0, 0, 0, 219, 218, 1, 0, 0, 0, 220, 27, 1, 0, 0, 0, 221,
3560
- 222, 5, 16, 0, 0, 222, 223, 3, 20, 10, 0, 223, 224, 5, 17, 0, 0, 224, 229, 3, 20, 10,
3561
- 0, 225, 226, 5, 2, 0, 0, 226, 228, 3, 20, 10, 0, 227, 225, 1, 0, 0, 0, 228, 231, 1, 0,
3562
- 0, 0, 229, 227, 1, 0, 0, 0, 229, 230, 1, 0, 0, 0, 230, 232, 1, 0, 0, 0, 231, 229, 1, 0,
3563
- 0, 0, 232, 233, 5, 1, 0, 0, 233, 234, 5, 52, 0, 0, 234, 237, 5, 54, 0, 0, 235, 238, 5,
3564
- 52, 0, 0, 236, 238, 3, 30, 15, 0, 237, 235, 1, 0, 0, 0, 237, 236, 1, 0, 0, 0, 238, 239,
3565
- 1, 0, 0, 0, 239, 237, 1, 0, 0, 0, 239, 240, 1, 0, 0, 0, 240, 241, 1, 0, 0, 0, 241, 242,
3566
- 5, 55, 0, 0, 242, 29, 1, 0, 0, 0, 243, 244, 3, 22, 11, 0, 244, 245, 5, 1, 0, 0, 245, 250,
3567
- 3, 32, 16, 0, 246, 247, 5, 2, 0, 0, 247, 249, 3, 32, 16, 0, 248, 246, 1, 0, 0, 0, 249,
3568
- 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,
3569
- 1, 0, 0, 0, 253, 254, 7, 3, 0, 0, 254, 33, 1, 0, 0, 0, 255, 256, 3, 24, 12, 0, 256, 257,
3570
- 5, 1, 0, 0, 257, 258, 5, 52, 0, 0, 258, 261, 5, 54, 0, 0, 259, 262, 5, 52, 0, 0, 260, 262,
3571
- 3, 36, 18, 0, 261, 259, 1, 0, 0, 0, 261, 260, 1, 0, 0, 0, 262, 263, 1, 0, 0, 0, 263, 261,
3572
- 1, 0, 0, 0, 263, 264, 1, 0, 0, 0, 264, 265, 1, 0, 0, 0, 265, 266, 5, 55, 0, 0, 266, 35,
3573
- 1, 0, 0, 0, 267, 270, 3, 2, 1, 0, 268, 270, 3, 38, 19, 0, 269, 267, 1, 0, 0, 0, 269, 268,
3574
- 1, 0, 0, 0, 270, 37, 1, 0, 0, 0, 271, 272, 3, 22, 11, 0, 272, 275, 5, 1, 0, 0, 273, 276,
3575
- 3, 40, 20, 0, 274, 276, 3, 42, 21, 0, 275, 273, 1, 0, 0, 0, 275, 274, 1, 0, 0, 0, 276,
3576
- 39, 1, 0, 0, 0, 277, 280, 3, 2, 1, 0, 278, 280, 5, 42, 0, 0, 279, 277, 1, 0, 0, 0, 279,
3577
- 278, 1, 0, 0, 0, 280, 41, 1, 0, 0, 0, 281, 282, 5, 52, 0, 0, 282, 285, 5, 54, 0, 0, 283,
3578
- 286, 5, 52, 0, 0, 284, 286, 3, 2, 1, 0, 285, 283, 1, 0, 0, 0, 285, 284, 1, 0, 0, 0, 286,
3579
- 287, 1, 0, 0, 0, 287, 285, 1, 0, 0, 0, 287, 288, 1, 0, 0, 0, 288, 289, 1, 0, 0, 0, 289,
3580
- 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,
3581
- 3, 70, 35, 0, 294, 295, 5, 3, 0, 0, 295, 296, 3, 56, 28, 0, 296, 47, 1, 0, 0, 0, 297, 298,
3582
- 5, 44, 0, 0, 298, 299, 5, 3, 0, 0, 299, 300, 3, 56, 28, 0, 300, 49, 1, 0, 0, 0, 301, 306,
3583
- 3, 56, 28, 0, 302, 303, 5, 2, 0, 0, 303, 305, 3, 56, 28, 0, 304, 302, 1, 0, 0, 0, 305,
3584
- 308, 1, 0, 0, 0, 306, 304, 1, 0, 0, 0, 306, 307, 1, 0, 0, 0, 307, 313, 1, 0, 0, 0, 308,
3585
- 306, 1, 0, 0, 0, 309, 310, 5, 2, 0, 0, 310, 312, 3, 48, 24, 0, 311, 309, 1, 0, 0, 0, 312,
3586
- 315, 1, 0, 0, 0, 313, 311, 1, 0, 0, 0, 313, 314, 1, 0, 0, 0, 314, 325, 1, 0, 0, 0, 315,
3587
- 313, 1, 0, 0, 0, 316, 321, 3, 48, 24, 0, 317, 318, 5, 2, 0, 0, 318, 320, 3, 48, 24, 0,
3588
- 319, 317, 1, 0, 0, 0, 320, 323, 1, 0, 0, 0, 321, 319, 1, 0, 0, 0, 321, 322, 1, 0, 0, 0,
3589
- 322, 325, 1, 0, 0, 0, 323, 321, 1, 0, 0, 0, 324, 301, 1, 0, 0, 0, 324, 316, 1, 0, 0, 0,
3590
- 325, 51, 1, 0, 0, 0, 326, 327, 3, 70, 35, 0, 327, 328, 5, 3, 0, 0, 328, 329, 3, 56, 28,
3591
- 0, 329, 53, 1, 0, 0, 0, 330, 331, 5, 4, 0, 0, 331, 332, 5, 44, 0, 0, 332, 333, 5, 3, 0,
3592
- 0, 333, 334, 3, 56, 28, 0, 334, 55, 1, 0, 0, 0, 335, 336, 6, 28, -1, 0, 336, 337, 5, 40,
3593
- 0, 0, 337, 338, 3, 56, 28, 0, 338, 339, 5, 41, 0, 0, 339, 351, 1, 0, 0, 0, 340, 343, 3,
3594
- 62, 31, 0, 341, 343, 3, 70, 35, 0, 342, 340, 1, 0, 0, 0, 342, 341, 1, 0, 0, 0, 343, 351,
3595
- 1, 0, 0, 0, 344, 345, 3, 60, 30, 0, 345, 346, 3, 56, 28, 8, 346, 351, 1, 0, 0, 0, 347,
3596
- 351, 3, 80, 40, 0, 348, 351, 3, 82, 41, 0, 349, 351, 3, 74, 37, 0, 350, 335, 1, 0, 0,
3597
- 0, 350, 342, 1, 0, 0, 0, 350, 344, 1, 0, 0, 0, 350, 347, 1, 0, 0, 0, 350, 348, 1, 0, 0,
3598
- 0, 350, 349, 1, 0, 0, 0, 351, 367, 1, 0, 0, 0, 352, 353, 10, 7, 0, 0, 353, 354, 7, 4, 0,
3599
- 0, 354, 366, 3, 56, 28, 8, 355, 356, 10, 6, 0, 0, 356, 357, 7, 5, 0, 0, 357, 366, 3, 56,
3600
- 28, 7, 358, 359, 10, 5, 0, 0, 359, 360, 3, 58, 29, 0, 360, 361, 3, 56, 28, 6, 361, 366,
3601
- 1, 0, 0, 0, 362, 363, 10, 4, 0, 0, 363, 364, 7, 6, 0, 0, 364, 366, 3, 56, 28, 5, 365, 352,
3602
- 1, 0, 0, 0, 365, 355, 1, 0, 0, 0, 365, 358, 1, 0, 0, 0, 365, 362, 1, 0, 0, 0, 366, 369,
3603
- 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,
3604
- 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,
3605
- 0, 0, 374, 376, 5, 37, 0, 0, 375, 374, 1, 0, 0, 0, 375, 376, 1, 0, 0, 0, 376, 377, 1, 0,
3606
- 0, 0, 377, 380, 7, 9, 0, 0, 378, 380, 3, 94, 47, 0, 379, 375, 1, 0, 0, 0, 379, 378, 1,
3607
- 0, 0, 0, 380, 63, 1, 0, 0, 0, 381, 382, 5, 22, 0, 0, 382, 383, 5, 44, 0, 0, 383, 385, 5,
3608
- 40, 0, 0, 384, 386, 3, 68, 34, 0, 385, 384, 1, 0, 0, 0, 385, 386, 1, 0, 0, 0, 386, 387,
3609
- 1, 0, 0, 0, 387, 388, 5, 41, 0, 0, 388, 389, 5, 1, 0, 0, 389, 390, 5, 52, 0, 0, 390, 393,
3610
- 5, 54, 0, 0, 391, 394, 5, 52, 0, 0, 392, 394, 3, 66, 33, 0, 393, 391, 1, 0, 0, 0, 393,
3611
- 392, 1, 0, 0, 0, 394, 395, 1, 0, 0, 0, 395, 393, 1, 0, 0, 0, 395, 396, 1, 0, 0, 0, 396,
3612
- 397, 1, 0, 0, 0, 397, 398, 5, 55, 0, 0, 398, 65, 1, 0, 0, 0, 399, 402, 3, 2, 1, 0, 400,
3613
- 402, 3, 78, 39, 0, 401, 399, 1, 0, 0, 0, 401, 400, 1, 0, 0, 0, 402, 67, 1, 0, 0, 0, 403,
3614
- 408, 5, 44, 0, 0, 404, 405, 5, 2, 0, 0, 405, 407, 5, 44, 0, 0, 406, 404, 1, 0, 0, 0, 407,
3615
- 410, 1, 0, 0, 0, 408, 406, 1, 0, 0, 0, 408, 409, 1, 0, 0, 0, 409, 417, 1, 0, 0, 0, 410,
3616
- 408, 1, 0, 0, 0, 411, 412, 5, 2, 0, 0, 412, 413, 5, 44, 0, 0, 413, 414, 5, 3, 0, 0, 414,
3617
- 416, 3, 62, 31, 0, 415, 411, 1, 0, 0, 0, 416, 419, 1, 0, 0, 0, 417, 415, 1, 0, 0, 0, 417,
3618
- 418, 1, 0, 0, 0, 418, 433, 1, 0, 0, 0, 419, 417, 1, 0, 0, 0, 420, 421, 5, 44, 0, 0, 421,
3619
- 422, 5, 3, 0, 0, 422, 429, 3, 62, 31, 0, 423, 424, 5, 2, 0, 0, 424, 425, 5, 44, 0, 0, 425,
3620
- 426, 5, 3, 0, 0, 426, 428, 3, 62, 31, 0, 427, 423, 1, 0, 0, 0, 428, 431, 1, 0, 0, 0, 429,
3621
- 427, 1, 0, 0, 0, 429, 430, 1, 0, 0, 0, 430, 433, 1, 0, 0, 0, 431, 429, 1, 0, 0, 0, 432,
3622
- 403, 1, 0, 0, 0, 432, 420, 1, 0, 0, 0, 433, 69, 1, 0, 0, 0, 434, 439, 5, 44, 0, 0, 435,
3623
- 436, 5, 5, 0, 0, 436, 438, 5, 44, 0, 0, 437, 435, 1, 0, 0, 0, 438, 441, 1, 0, 0, 0, 439,
3624
- 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,
3625
- 5, 40, 0, 0, 443, 445, 3, 50, 25, 0, 444, 443, 1, 0, 0, 0, 444, 445, 1, 0, 0, 0, 445, 446,
3626
- 1, 0, 0, 0, 446, 450, 5, 41, 0, 0, 447, 448, 5, 5, 0, 0, 448, 450, 5, 44, 0, 0, 449, 442,
3627
- 1, 0, 0, 0, 449, 447, 1, 0, 0, 0, 450, 73, 1, 0, 0, 0, 451, 453, 3, 76, 38, 0, 452, 451,
3628
- 1, 0, 0, 0, 452, 453, 1, 0, 0, 0, 453, 454, 1, 0, 0, 0, 454, 456, 5, 44, 0, 0, 455, 457,
3629
- 3, 72, 36, 0, 456, 455, 1, 0, 0, 0, 457, 458, 1, 0, 0, 0, 458, 456, 1, 0, 0, 0, 458, 459,
3630
- 1, 0, 0, 0, 459, 75, 1, 0, 0, 0, 460, 462, 5, 36, 0, 0, 461, 460, 1, 0, 0, 0, 461, 462,
3631
- 1, 0, 0, 0, 462, 463, 1, 0, 0, 0, 463, 465, 5, 38, 0, 0, 464, 466, 3, 56, 28, 0, 465, 464,
3632
- 1, 0, 0, 0, 465, 466, 1, 0, 0, 0, 466, 77, 1, 0, 0, 0, 467, 468, 5, 21, 0, 0, 468, 469,
3633
- 3, 56, 28, 0, 469, 79, 1, 0, 0, 0, 470, 471, 5, 10, 0, 0, 471, 472, 5, 11, 0, 0, 472, 473,
3634
- 5, 1, 0, 0, 473, 474, 5, 52, 0, 0, 474, 477, 5, 54, 0, 0, 475, 478, 5, 52, 0, 0, 476, 478,
3635
- 3, 88, 44, 0, 477, 475, 1, 0, 0, 0, 477, 476, 1, 0, 0, 0, 478, 479, 1, 0, 0, 0, 479, 477,
3636
- 1, 0, 0, 0, 479, 480, 1, 0, 0, 0, 480, 481, 1, 0, 0, 0, 481, 482, 5, 55, 0, 0, 482, 81,
3637
- 1, 0, 0, 0, 483, 484, 5, 10, 0, 0, 484, 485, 5, 12, 0, 0, 485, 486, 5, 1, 0, 0, 486, 487,
3638
- 5, 52, 0, 0, 487, 490, 5, 54, 0, 0, 488, 491, 5, 52, 0, 0, 489, 491, 3, 86, 43, 0, 490,
3639
- 488, 1, 0, 0, 0, 490, 489, 1, 0, 0, 0, 491, 492, 1, 0, 0, 0, 492, 490, 1, 0, 0, 0, 492,
3640
- 493, 1, 0, 0, 0, 493, 494, 1, 0, 0, 0, 494, 495, 5, 55, 0, 0, 495, 83, 1, 0, 0, 0, 496,
3641
- 497, 5, 52, 0, 0, 497, 500, 5, 54, 0, 0, 498, 501, 5, 52, 0, 0, 499, 501, 3, 88, 44, 0,
3642
- 500, 498, 1, 0, 0, 0, 500, 499, 1, 0, 0, 0, 501, 502, 1, 0, 0, 0, 502, 500, 1, 0, 0, 0,
3643
- 502, 503, 1, 0, 0, 0, 503, 504, 1, 0, 0, 0, 504, 505, 5, 55, 0, 0, 505, 85, 1, 0, 0, 0,
3644
- 506, 508, 7, 10, 0, 0, 507, 509, 5, 1, 0, 0, 508, 507, 1, 0, 0, 0, 508, 509, 1, 0, 0, 0,
3645
- 509, 516, 1, 0, 0, 0, 510, 517, 3, 50, 25, 0, 511, 512, 5, 40, 0, 0, 512, 513, 3, 50,
3646
- 25, 0, 513, 514, 5, 41, 0, 0, 514, 517, 1, 0, 0, 0, 515, 517, 3, 84, 42, 0, 516, 510,
3647
- 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,
3648
- 90, 45, 0, 519, 520, 5, 1, 0, 0, 520, 521, 3, 92, 46, 0, 521, 89, 1, 0, 0, 0, 522, 523,
3649
- 7, 11, 0, 0, 523, 91, 1, 0, 0, 0, 524, 534, 3, 84, 42, 0, 525, 530, 3, 56, 28, 0, 526,
3650
- 527, 5, 2, 0, 0, 527, 529, 3, 56, 28, 0, 528, 526, 1, 0, 0, 0, 529, 532, 1, 0, 0, 0, 530,
3651
- 528, 1, 0, 0, 0, 530, 531, 1, 0, 0, 0, 531, 534, 1, 0, 0, 0, 532, 530, 1, 0, 0, 0, 533,
3652
- 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,
3653
- 5, 45, 0, 0, 537, 538, 5, 7, 0, 0, 538, 95, 1, 0, 0, 0, 539, 542, 5, 44, 0, 0, 540, 543,
3654
- 5, 45, 0, 0, 541, 543, 3, 56, 28, 0, 542, 540, 1, 0, 0, 0, 542, 541, 1, 0, 0, 0, 543, 546,
3655
- 1, 0, 0, 0, 544, 546, 5, 44, 0, 0, 545, 539, 1, 0, 0, 0, 545, 544, 1, 0, 0, 0, 546, 97,
3656
- 1, 0, 0, 0, 547, 551, 5, 13, 0, 0, 548, 550, 3, 96, 48, 0, 549, 548, 1, 0, 0, 0, 550, 553,
3657
- 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,
3658
- 0, 0, 0, 554, 555, 5, 18, 0, 0, 555, 556, 5, 44, 0, 0, 556, 101, 1, 0, 0, 0, 557, 558,
3659
- 5, 23, 0, 0, 558, 559, 5, 44, 0, 0, 559, 103, 1, 0, 0, 0, 560, 561, 5, 27, 0, 0, 561, 562,
3660
- 5, 1, 0, 0, 562, 563, 5, 52, 0, 0, 563, 566, 5, 54, 0, 0, 564, 567, 5, 52, 0, 0, 565, 567,
3661
- 3, 2, 1, 0, 566, 564, 1, 0, 0, 0, 566, 565, 1, 0, 0, 0, 567, 568, 1, 0, 0, 0, 568, 566,
3662
- 1, 0, 0, 0, 568, 569, 1, 0, 0, 0, 569, 570, 1, 0, 0, 0, 570, 571, 5, 55, 0, 0, 571, 105,
3663
- 1, 0, 0, 0, 572, 573, 5, 24, 0, 0, 573, 574, 3, 56, 28, 0, 574, 575, 5, 1, 0, 0, 575, 576,
3664
- 5, 52, 0, 0, 576, 579, 5, 54, 0, 0, 577, 580, 5, 52, 0, 0, 578, 580, 3, 2, 1, 0, 579, 577,
3665
- 1, 0, 0, 0, 579, 578, 1, 0, 0, 0, 580, 581, 1, 0, 0, 0, 581, 579, 1, 0, 0, 0, 581, 582,
3666
- 1, 0, 0, 0, 582, 583, 1, 0, 0, 0, 583, 587, 5, 55, 0, 0, 584, 586, 3, 108, 54, 0, 585,
3667
- 584, 1, 0, 0, 0, 586, 589, 1, 0, 0, 0, 587, 585, 1, 0, 0, 0, 587, 588, 1, 0, 0, 0, 588,
3668
- 591, 1, 0, 0, 0, 589, 587, 1, 0, 0, 0, 590, 592, 3, 110, 55, 0, 591, 590, 1, 0, 0, 0, 591,
3669
- 592, 1, 0, 0, 0, 592, 107, 1, 0, 0, 0, 593, 594, 5, 25, 0, 0, 594, 595, 5, 24, 0, 0, 595,
3670
- 596, 3, 56, 28, 0, 596, 597, 5, 1, 0, 0, 597, 598, 5, 52, 0, 0, 598, 601, 5, 54, 0, 0,
3671
- 599, 602, 5, 52, 0, 0, 600, 602, 3, 2, 1, 0, 601, 599, 1, 0, 0, 0, 601, 600, 1, 0, 0, 0,
3672
- 602, 603, 1, 0, 0, 0, 603, 601, 1, 0, 0, 0, 603, 604, 1, 0, 0, 0, 604, 605, 1, 0, 0, 0,
3673
- 605, 606, 5, 55, 0, 0, 606, 109, 1, 0, 0, 0, 607, 608, 5, 25, 0, 0, 608, 609, 5, 1, 0,
3674
- 0, 609, 610, 5, 52, 0, 0, 610, 613, 5, 54, 0, 0, 611, 614, 5, 52, 0, 0, 612, 614, 3, 2,
3675
- 1, 0, 613, 611, 1, 0, 0, 0, 613, 612, 1, 0, 0, 0, 614, 615, 1, 0, 0, 0, 615, 613, 1, 0,
3676
- 0, 0, 615, 616, 1, 0, 0, 0, 616, 617, 1, 0, 0, 0, 617, 618, 5, 55, 0, 0, 618, 111, 1, 0,
3677
- 0, 0, 75, 114, 116, 138, 143, 151, 153, 163, 165, 180, 184, 189, 193, 200, 207, 215,
3678
- 219, 229, 237, 239, 250, 261, 263, 269, 275, 279, 285, 287, 306, 313, 321, 324,
3679
- 342, 350, 365, 367, 375, 379, 385, 393, 395, 401, 408, 417, 429, 432, 439, 444,
3680
- 449, 452, 458, 461, 465, 477, 479, 490, 492, 500, 502, 508, 516, 530, 533, 542,
3681
- 545, 551, 566, 568, 579, 581, 587, 591, 601, 603, 613, 615
3351
+ 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,
3352
+ 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,
3353
+ 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,
3354
+ 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,
3355
+ 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,
3356
+ 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,
3357
+ 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,
3358
+ 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,
3359
+ 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,
3360
+ 14, 12, 14, 225, 9, 14, 1, 14, 3, 14, 228, 8, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1,
3361
+ 15, 5, 15, 236, 8, 15, 10, 15, 12, 15, 239, 9, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 4,
3362
+ 15, 246, 8, 15, 11, 15, 12, 15, 247, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 5,
3363
+ 16, 257, 8, 16, 10, 16, 12, 16, 260, 9, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1,
3364
+ 18, 1, 18, 4, 18, 270, 8, 18, 11, 18, 12, 18, 271, 1, 18, 1, 18, 1, 19, 1, 19, 3, 19, 278,
3365
+ 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,
3366
+ 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,
3367
+ 26, 1, 26, 5, 26, 305, 8, 26, 10, 26, 12, 26, 308, 9, 26, 1, 26, 1, 26, 5, 26, 312, 8,
3368
+ 26, 10, 26, 12, 26, 315, 9, 26, 1, 26, 1, 26, 1, 26, 5, 26, 320, 8, 26, 10, 26, 12, 26,
3369
+ 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,
3370
+ 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,
3371
+ 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,
3372
+ 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 5, 29, 367, 8, 29, 10, 29, 12, 29,
3373
+ 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,
3374
+ 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,
3375
+ 1, 33, 4, 33, 395, 8, 33, 11, 33, 12, 33, 396, 1, 33, 1, 33, 1, 34, 1, 34, 3, 34, 403,
3376
+ 8, 34, 1, 35, 1, 35, 1, 35, 5, 35, 408, 8, 35, 10, 35, 12, 35, 411, 9, 35, 1, 35, 1, 35,
3377
+ 1, 35, 1, 35, 5, 35, 417, 8, 35, 10, 35, 12, 35, 420, 9, 35, 1, 35, 1, 35, 1, 35, 1, 35,
3378
+ 1, 35, 1, 35, 1, 35, 5, 35, 429, 8, 35, 10, 35, 12, 35, 432, 9, 35, 3, 35, 434, 8, 35,
3379
+ 1, 36, 1, 36, 1, 36, 5, 36, 439, 8, 36, 10, 36, 12, 36, 442, 9, 36, 1, 37, 1, 37, 3, 37,
3380
+ 446, 8, 37, 1, 37, 1, 37, 1, 37, 3, 37, 451, 8, 37, 1, 38, 3, 38, 454, 8, 38, 1, 38, 1,
3381
+ 38, 4, 38, 458, 8, 38, 11, 38, 12, 38, 459, 1, 39, 3, 39, 463, 8, 39, 1, 39, 1, 39, 3,
3382
+ 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,
3383
+ 42, 1, 42, 1, 42, 1, 42, 4, 42, 483, 8, 42, 11, 42, 12, 42, 484, 1, 42, 1, 42, 1, 43, 1,
3384
+ 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 4, 43, 496, 8, 43, 11, 43, 12, 43, 497, 1, 43, 1,
3385
+ 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,
3386
+ 44, 511, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 4, 45, 520, 8, 45, 11, 45, 12, 45, 521,
3387
+ 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,
3388
+ 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,
3389
+ 5, 49, 548, 8, 49, 10, 49, 12, 49, 551, 9, 49, 3, 49, 553, 8, 49, 1, 50, 1, 50, 1, 50,
3390
+ 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,
3391
+ 52, 569, 8, 52, 10, 52, 12, 52, 572, 9, 52, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1,
3392
+ 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,
3393
+ 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,
3394
+ 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,
3395
+ 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68,
3396
+ 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108,
3397
+ 110, 112, 114, 116, 0, 12, 2, 0, 9, 9, 19, 21, 1, 0, 45, 46, 2, 0, 46, 46, 49, 49, 2, 0,
3398
+ 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,
3399
+ 38, 2, 0, 44, 44, 46, 50, 2, 0, 15, 15, 45, 45, 2, 0, 45, 46, 49, 49, 639, 0, 120, 1, 0,
3400
+ 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,
3401
+ 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,
3402
+ 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,
3403
+ 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,
3404
+ 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,
3405
+ 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,
3406
+ 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,
3407
+ 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,
3408
+ 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,
3409
+ 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,
3410
+ 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,
3411
+ 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,
3412
+ 0, 106, 573, 1, 0, 0, 0, 108, 576, 1, 0, 0, 0, 110, 579, 1, 0, 0, 0, 112, 583, 1, 0, 0,
3413
+ 0, 114, 596, 1, 0, 0, 0, 116, 602, 1, 0, 0, 0, 118, 121, 3, 2, 1, 0, 119, 121, 5, 53, 0,
3414
+ 0, 120, 118, 1, 0, 0, 0, 120, 119, 1, 0, 0, 0, 121, 122, 1, 0, 0, 0, 122, 120, 1, 0, 0,
3415
+ 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,
3416
+ 126, 145, 3, 20, 10, 0, 127, 145, 3, 28, 14, 0, 128, 145, 3, 26, 13, 0, 129, 145, 3,
3417
+ 48, 24, 0, 130, 145, 3, 54, 27, 0, 131, 145, 3, 10, 5, 0, 132, 145, 3, 56, 28, 0, 133,
3418
+ 145, 3, 46, 23, 0, 134, 145, 3, 66, 33, 0, 135, 145, 3, 76, 38, 0, 136, 145, 3, 104,
3419
+ 52, 0, 137, 145, 3, 108, 54, 0, 138, 145, 3, 110, 55, 0, 139, 145, 3, 72, 36, 0, 140,
3420
+ 145, 3, 36, 18, 0, 141, 145, 3, 6, 3, 0, 142, 145, 3, 106, 53, 0, 143, 145, 3, 112, 56,
3421
+ 0, 144, 126, 1, 0, 0, 0, 144, 127, 1, 0, 0, 0, 144, 128, 1, 0, 0, 0, 144, 129, 1, 0, 0,
3422
+ 0, 144, 130, 1, 0, 0, 0, 144, 131, 1, 0, 0, 0, 144, 132, 1, 0, 0, 0, 144, 133, 1, 0, 0,
3423
+ 0, 144, 134, 1, 0, 0, 0, 144, 135, 1, 0, 0, 0, 144, 136, 1, 0, 0, 0, 144, 137, 1, 0, 0,
3424
+ 0, 144, 138, 1, 0, 0, 0, 144, 139, 1, 0, 0, 0, 144, 140, 1, 0, 0, 0, 144, 141, 1, 0, 0,
3425
+ 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,
3426
+ 147, 150, 5, 55, 0, 0, 148, 151, 5, 53, 0, 0, 149, 151, 3, 2, 1, 0, 150, 148, 1, 0, 0,
3427
+ 0, 150, 149, 1, 0, 0, 0, 151, 152, 1, 0, 0, 0, 152, 150, 1, 0, 0, 0, 152, 153, 1, 0, 0,
3428
+ 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,
3429
+ 157, 156, 1, 0, 0, 0, 158, 159, 1, 0, 0, 0, 159, 157, 1, 0, 0, 0, 159, 160, 1, 0, 0, 0,
3430
+ 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,
3431
+ 9, 1, 0, 0, 0, 165, 166, 3, 72, 36, 0, 166, 167, 5, 1, 0, 0, 167, 168, 5, 53, 0, 0, 168,
3432
+ 171, 5, 55, 0, 0, 169, 172, 5, 53, 0, 0, 170, 172, 3, 12, 6, 0, 171, 169, 1, 0, 0, 0, 171,
3433
+ 170, 1, 0, 0, 0, 172, 173, 1, 0, 0, 0, 173, 171, 1, 0, 0, 0, 173, 174, 1, 0, 0, 0, 174,
3434
+ 175, 1, 0, 0, 0, 175, 176, 5, 56, 0, 0, 176, 11, 1, 0, 0, 0, 177, 178, 7, 1, 0, 0, 178,
3435
+ 179, 5, 1, 0, 0, 179, 180, 3, 64, 32, 0, 180, 13, 1, 0, 0, 0, 181, 182, 5, 15, 0, 0, 182,
3436
+ 183, 7, 2, 0, 0, 183, 15, 1, 0, 0, 0, 184, 185, 5, 45, 0, 0, 185, 188, 5, 1, 0, 0, 186,
3437
+ 189, 3, 64, 32, 0, 187, 189, 5, 45, 0, 0, 188, 186, 1, 0, 0, 0, 188, 187, 1, 0, 0, 0, 189,
3438
+ 17, 1, 0, 0, 0, 190, 193, 3, 58, 29, 0, 191, 193, 3, 48, 24, 0, 192, 190, 1, 0, 0, 0, 192,
3439
+ 191, 1, 0, 0, 0, 193, 197, 1, 0, 0, 0, 194, 196, 3, 16, 8, 0, 195, 194, 1, 0, 0, 0, 196,
3440
+ 199, 1, 0, 0, 0, 197, 195, 1, 0, 0, 0, 197, 198, 1, 0, 0, 0, 198, 201, 1, 0, 0, 0, 199,
3441
+ 197, 1, 0, 0, 0, 200, 202, 3, 14, 7, 0, 201, 200, 1, 0, 0, 0, 201, 202, 1, 0, 0, 0, 202,
3442
+ 19, 1, 0, 0, 0, 203, 204, 5, 16, 0, 0, 204, 205, 3, 18, 9, 0, 205, 21, 1, 0, 0, 0, 206,
3443
+ 209, 3, 18, 9, 0, 207, 209, 3, 14, 7, 0, 208, 206, 1, 0, 0, 0, 208, 207, 1, 0, 0, 0, 209,
3444
+ 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,
3445
+ 3, 22, 11, 0, 214, 216, 5, 19, 0, 0, 215, 213, 1, 0, 0, 0, 215, 214, 1, 0, 0, 0, 216, 27,
3446
+ 1, 0, 0, 0, 217, 227, 5, 18, 0, 0, 218, 223, 3, 22, 11, 0, 219, 220, 5, 2, 0, 0, 220, 222,
3447
+ 3, 22, 11, 0, 221, 219, 1, 0, 0, 0, 222, 225, 1, 0, 0, 0, 223, 221, 1, 0, 0, 0, 223, 224,
3448
+ 1, 0, 0, 0, 224, 228, 1, 0, 0, 0, 225, 223, 1, 0, 0, 0, 226, 228, 5, 19, 0, 0, 227, 218,
3449
+ 1, 0, 0, 0, 227, 226, 1, 0, 0, 0, 228, 29, 1, 0, 0, 0, 229, 230, 5, 17, 0, 0, 230, 231,
3450
+ 3, 22, 11, 0, 231, 232, 5, 18, 0, 0, 232, 237, 3, 22, 11, 0, 233, 234, 5, 2, 0, 0, 234,
3451
+ 236, 3, 22, 11, 0, 235, 233, 1, 0, 0, 0, 236, 239, 1, 0, 0, 0, 237, 235, 1, 0, 0, 0, 237,
3452
+ 238, 1, 0, 0, 0, 238, 240, 1, 0, 0, 0, 239, 237, 1, 0, 0, 0, 240, 241, 5, 1, 0, 0, 241,
3453
+ 242, 5, 53, 0, 0, 242, 245, 5, 55, 0, 0, 243, 246, 5, 53, 0, 0, 244, 246, 3, 32, 16, 0,
3454
+ 245, 243, 1, 0, 0, 0, 245, 244, 1, 0, 0, 0, 246, 247, 1, 0, 0, 0, 247, 245, 1, 0, 0, 0,
3455
+ 247, 248, 1, 0, 0, 0, 248, 249, 1, 0, 0, 0, 249, 250, 5, 56, 0, 0, 250, 31, 1, 0, 0, 0,
3456
+ 251, 252, 3, 24, 12, 0, 252, 253, 5, 1, 0, 0, 253, 258, 3, 34, 17, 0, 254, 255, 5, 2,
3457
+ 0, 0, 255, 257, 3, 34, 17, 0, 256, 254, 1, 0, 0, 0, 257, 260, 1, 0, 0, 0, 258, 256, 1,
3458
+ 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,
3459
+ 0, 0, 262, 35, 1, 0, 0, 0, 263, 264, 3, 26, 13, 0, 264, 265, 5, 1, 0, 0, 265, 266, 5, 53,
3460
+ 0, 0, 266, 269, 5, 55, 0, 0, 267, 270, 5, 53, 0, 0, 268, 270, 3, 38, 19, 0, 269, 267,
3461
+ 1, 0, 0, 0, 269, 268, 1, 0, 0, 0, 270, 271, 1, 0, 0, 0, 271, 269, 1, 0, 0, 0, 271, 272,
3462
+ 1, 0, 0, 0, 272, 273, 1, 0, 0, 0, 273, 274, 5, 56, 0, 0, 274, 37, 1, 0, 0, 0, 275, 278,
3463
+ 3, 2, 1, 0, 276, 278, 3, 40, 20, 0, 277, 275, 1, 0, 0, 0, 277, 276, 1, 0, 0, 0, 278, 39,
3464
+ 1, 0, 0, 0, 279, 280, 3, 24, 12, 0, 280, 283, 5, 1, 0, 0, 281, 284, 3, 42, 21, 0, 282,
3465
+ 284, 3, 44, 22, 0, 283, 281, 1, 0, 0, 0, 283, 282, 1, 0, 0, 0, 284, 41, 1, 0, 0, 0, 285,
3466
+ 288, 3, 2, 1, 0, 286, 288, 5, 43, 0, 0, 287, 285, 1, 0, 0, 0, 287, 286, 1, 0, 0, 0, 288,
3467
+ 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,
3468
+ 1, 0, 0, 0, 293, 294, 3, 72, 36, 0, 294, 295, 5, 3, 0, 0, 295, 296, 3, 58, 29, 0, 296,
3469
+ 49, 1, 0, 0, 0, 297, 298, 5, 45, 0, 0, 298, 299, 5, 3, 0, 0, 299, 300, 3, 58, 29, 0, 300,
3470
+ 51, 1, 0, 0, 0, 301, 306, 3, 58, 29, 0, 302, 303, 5, 2, 0, 0, 303, 305, 3, 58, 29, 0, 304,
3471
+ 302, 1, 0, 0, 0, 305, 308, 1, 0, 0, 0, 306, 304, 1, 0, 0, 0, 306, 307, 1, 0, 0, 0, 307,
3472
+ 313, 1, 0, 0, 0, 308, 306, 1, 0, 0, 0, 309, 310, 5, 2, 0, 0, 310, 312, 3, 50, 25, 0, 311,
3473
+ 309, 1, 0, 0, 0, 312, 315, 1, 0, 0, 0, 313, 311, 1, 0, 0, 0, 313, 314, 1, 0, 0, 0, 314,
3474
+ 325, 1, 0, 0, 0, 315, 313, 1, 0, 0, 0, 316, 321, 3, 50, 25, 0, 317, 318, 5, 2, 0, 0, 318,
3475
+ 320, 3, 50, 25, 0, 319, 317, 1, 0, 0, 0, 320, 323, 1, 0, 0, 0, 321, 319, 1, 0, 0, 0, 321,
3476
+ 322, 1, 0, 0, 0, 322, 325, 1, 0, 0, 0, 323, 321, 1, 0, 0, 0, 324, 301, 1, 0, 0, 0, 324,
3477
+ 316, 1, 0, 0, 0, 325, 53, 1, 0, 0, 0, 326, 327, 3, 72, 36, 0, 327, 328, 5, 3, 0, 0, 328,
3478
+ 329, 3, 58, 29, 0, 329, 55, 1, 0, 0, 0, 330, 331, 5, 4, 0, 0, 331, 332, 5, 45, 0, 0, 332,
3479
+ 333, 5, 3, 0, 0, 333, 334, 3, 58, 29, 0, 334, 57, 1, 0, 0, 0, 335, 336, 6, 29, -1, 0, 336,
3480
+ 337, 5, 41, 0, 0, 337, 338, 3, 58, 29, 0, 338, 339, 5, 42, 0, 0, 339, 352, 1, 0, 0, 0,
3481
+ 340, 343, 3, 64, 32, 0, 341, 343, 3, 72, 36, 0, 342, 340, 1, 0, 0, 0, 342, 341, 1, 0,
3482
+ 0, 0, 343, 352, 1, 0, 0, 0, 344, 345, 3, 62, 31, 0, 345, 346, 3, 58, 29, 9, 346, 352,
3483
+ 1, 0, 0, 0, 347, 352, 3, 84, 42, 0, 348, 352, 3, 86, 43, 0, 349, 352, 3, 88, 44, 0, 350,
3484
+ 352, 3, 76, 38, 0, 351, 335, 1, 0, 0, 0, 351, 342, 1, 0, 0, 0, 351, 344, 1, 0, 0, 0, 351,
3485
+ 347, 1, 0, 0, 0, 351, 348, 1, 0, 0, 0, 351, 349, 1, 0, 0, 0, 351, 350, 1, 0, 0, 0, 352,
3486
+ 368, 1, 0, 0, 0, 353, 354, 10, 8, 0, 0, 354, 355, 7, 4, 0, 0, 355, 367, 3, 58, 29, 9, 356,
3487
+ 357, 10, 7, 0, 0, 357, 358, 7, 5, 0, 0, 358, 367, 3, 58, 29, 8, 359, 360, 10, 6, 0, 0,
3488
+ 360, 361, 3, 60, 30, 0, 361, 362, 3, 58, 29, 7, 362, 367, 1, 0, 0, 0, 363, 364, 10, 5,
3489
+ 0, 0, 364, 365, 7, 6, 0, 0, 365, 367, 3, 58, 29, 6, 366, 353, 1, 0, 0, 0, 366, 356, 1,
3490
+ 0, 0, 0, 366, 359, 1, 0, 0, 0, 366, 363, 1, 0, 0, 0, 367, 370, 1, 0, 0, 0, 368, 366, 1,
3491
+ 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,
3492
+ 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,
3493
+ 0, 376, 375, 1, 0, 0, 0, 376, 377, 1, 0, 0, 0, 377, 378, 1, 0, 0, 0, 378, 381, 7, 9, 0,
3494
+ 0, 379, 381, 3, 100, 50, 0, 380, 376, 1, 0, 0, 0, 380, 379, 1, 0, 0, 0, 381, 65, 1, 0,
3495
+ 0, 0, 382, 383, 5, 23, 0, 0, 383, 384, 5, 45, 0, 0, 384, 386, 5, 41, 0, 0, 385, 387, 3,
3496
+ 70, 35, 0, 386, 385, 1, 0, 0, 0, 386, 387, 1, 0, 0, 0, 387, 388, 1, 0, 0, 0, 388, 389,
3497
+ 5, 42, 0, 0, 389, 390, 5, 1, 0, 0, 390, 391, 5, 53, 0, 0, 391, 394, 5, 55, 0, 0, 392, 395,
3498
+ 5, 53, 0, 0, 393, 395, 3, 68, 34, 0, 394, 392, 1, 0, 0, 0, 394, 393, 1, 0, 0, 0, 395, 396,
3499
+ 1, 0, 0, 0, 396, 394, 1, 0, 0, 0, 396, 397, 1, 0, 0, 0, 397, 398, 1, 0, 0, 0, 398, 399,
3500
+ 5, 56, 0, 0, 399, 67, 1, 0, 0, 0, 400, 403, 3, 2, 1, 0, 401, 403, 3, 80, 40, 0, 402, 400,
3501
+ 1, 0, 0, 0, 402, 401, 1, 0, 0, 0, 403, 69, 1, 0, 0, 0, 404, 409, 5, 45, 0, 0, 405, 406,
3502
+ 5, 2, 0, 0, 406, 408, 5, 45, 0, 0, 407, 405, 1, 0, 0, 0, 408, 411, 1, 0, 0, 0, 409, 407,
3503
+ 1, 0, 0, 0, 409, 410, 1, 0, 0, 0, 410, 418, 1, 0, 0, 0, 411, 409, 1, 0, 0, 0, 412, 413,
3504
+ 5, 2, 0, 0, 413, 414, 5, 45, 0, 0, 414, 415, 5, 3, 0, 0, 415, 417, 3, 64, 32, 0, 416, 412,
3505
+ 1, 0, 0, 0, 417, 420, 1, 0, 0, 0, 418, 416, 1, 0, 0, 0, 418, 419, 1, 0, 0, 0, 419, 434,
3506
+ 1, 0, 0, 0, 420, 418, 1, 0, 0, 0, 421, 422, 5, 45, 0, 0, 422, 423, 5, 3, 0, 0, 423, 430,
3507
+ 3, 64, 32, 0, 424, 425, 5, 2, 0, 0, 425, 426, 5, 45, 0, 0, 426, 427, 5, 3, 0, 0, 427, 429,
3508
+ 3, 64, 32, 0, 428, 424, 1, 0, 0, 0, 429, 432, 1, 0, 0, 0, 430, 428, 1, 0, 0, 0, 430, 431,
3509
+ 1, 0, 0, 0, 431, 434, 1, 0, 0, 0, 432, 430, 1, 0, 0, 0, 433, 404, 1, 0, 0, 0, 433, 421,
3510
+ 1, 0, 0, 0, 434, 71, 1, 0, 0, 0, 435, 440, 5, 45, 0, 0, 436, 437, 5, 5, 0, 0, 437, 439,
3511
+ 5, 45, 0, 0, 438, 436, 1, 0, 0, 0, 439, 442, 1, 0, 0, 0, 440, 438, 1, 0, 0, 0, 440, 441,
3512
+ 1, 0, 0, 0, 441, 73, 1, 0, 0, 0, 442, 440, 1, 0, 0, 0, 443, 445, 5, 41, 0, 0, 444, 446,
3513
+ 3, 52, 26, 0, 445, 444, 1, 0, 0, 0, 445, 446, 1, 0, 0, 0, 446, 447, 1, 0, 0, 0, 447, 451,
3514
+ 5, 42, 0, 0, 448, 449, 5, 5, 0, 0, 449, 451, 5, 45, 0, 0, 450, 443, 1, 0, 0, 0, 450, 448,
3515
+ 1, 0, 0, 0, 451, 75, 1, 0, 0, 0, 452, 454, 3, 78, 39, 0, 453, 452, 1, 0, 0, 0, 453, 454,
3516
+ 1, 0, 0, 0, 454, 455, 1, 0, 0, 0, 455, 457, 5, 45, 0, 0, 456, 458, 3, 74, 37, 0, 457, 456,
3517
+ 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,
3518
+ 0, 0, 0, 461, 463, 5, 37, 0, 0, 462, 461, 1, 0, 0, 0, 462, 463, 1, 0, 0, 0, 463, 464, 1,
3519
+ 0, 0, 0, 464, 466, 5, 39, 0, 0, 465, 467, 3, 58, 29, 0, 466, 465, 1, 0, 0, 0, 466, 467,
3520
+ 1, 0, 0, 0, 467, 79, 1, 0, 0, 0, 468, 469, 5, 22, 0, 0, 469, 470, 3, 58, 29, 0, 470, 81,
3521
+ 1, 0, 0, 0, 471, 472, 3, 96, 48, 0, 472, 473, 5, 1, 0, 0, 473, 474, 3, 4, 2, 0, 474, 83,
3522
+ 1, 0, 0, 0, 475, 476, 5, 10, 0, 0, 476, 477, 5, 11, 0, 0, 477, 478, 5, 1, 0, 0, 478, 479,
3523
+ 5, 53, 0, 0, 479, 482, 5, 55, 0, 0, 480, 483, 5, 53, 0, 0, 481, 483, 3, 94, 47, 0, 482,
3524
+ 480, 1, 0, 0, 0, 482, 481, 1, 0, 0, 0, 483, 484, 1, 0, 0, 0, 484, 482, 1, 0, 0, 0, 484,
3525
+ 485, 1, 0, 0, 0, 485, 486, 1, 0, 0, 0, 486, 487, 5, 56, 0, 0, 487, 85, 1, 0, 0, 0, 488,
3526
+ 489, 5, 10, 0, 0, 489, 490, 5, 12, 0, 0, 490, 491, 5, 1, 0, 0, 491, 492, 5, 53, 0, 0, 492,
3527
+ 495, 5, 55, 0, 0, 493, 496, 5, 53, 0, 0, 494, 496, 3, 92, 46, 0, 495, 493, 1, 0, 0, 0,
3528
+ 495, 494, 1, 0, 0, 0, 496, 497, 1, 0, 0, 0, 497, 495, 1, 0, 0, 0, 497, 498, 1, 0, 0, 0,
3529
+ 498, 499, 1, 0, 0, 0, 499, 500, 5, 56, 0, 0, 500, 87, 1, 0, 0, 0, 501, 502, 5, 10, 0, 0,
3530
+ 502, 503, 5, 13, 0, 0, 503, 504, 5, 1, 0, 0, 504, 505, 5, 53, 0, 0, 505, 509, 5, 55, 0,
3531
+ 0, 506, 510, 5, 53, 0, 0, 507, 510, 3, 94, 47, 0, 508, 510, 3, 82, 41, 0, 509, 506, 1,
3532
+ 0, 0, 0, 509, 507, 1, 0, 0, 0, 509, 508, 1, 0, 0, 0, 510, 511, 1, 0, 0, 0, 511, 509, 1,
3533
+ 0, 0, 0, 511, 512, 1, 0, 0, 0, 512, 513, 1, 0, 0, 0, 513, 514, 5, 56, 0, 0, 514, 89, 1,
3534
+ 0, 0, 0, 515, 516, 5, 53, 0, 0, 516, 519, 5, 55, 0, 0, 517, 520, 5, 53, 0, 0, 518, 520,
3535
+ 3, 94, 47, 0, 519, 517, 1, 0, 0, 0, 519, 518, 1, 0, 0, 0, 520, 521, 1, 0, 0, 0, 521, 519,
3536
+ 1, 0, 0, 0, 521, 522, 1, 0, 0, 0, 522, 523, 1, 0, 0, 0, 523, 524, 5, 56, 0, 0, 524, 91,
3537
+ 1, 0, 0, 0, 525, 527, 7, 10, 0, 0, 526, 528, 5, 1, 0, 0, 527, 526, 1, 0, 0, 0, 527, 528,
3538
+ 1, 0, 0, 0, 528, 535, 1, 0, 0, 0, 529, 536, 3, 52, 26, 0, 530, 531, 5, 41, 0, 0, 531, 532,
3539
+ 3, 52, 26, 0, 532, 533, 5, 42, 0, 0, 533, 536, 1, 0, 0, 0, 534, 536, 3, 90, 45, 0, 535,
3540
+ 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,
3541
+ 3, 96, 48, 0, 538, 539, 5, 1, 0, 0, 539, 540, 3, 98, 49, 0, 540, 95, 1, 0, 0, 0, 541, 542,
3542
+ 7, 11, 0, 0, 542, 97, 1, 0, 0, 0, 543, 553, 3, 90, 45, 0, 544, 549, 3, 58, 29, 0, 545,
3543
+ 546, 5, 2, 0, 0, 546, 548, 3, 58, 29, 0, 547, 545, 1, 0, 0, 0, 548, 551, 1, 0, 0, 0, 549,
3544
+ 547, 1, 0, 0, 0, 549, 550, 1, 0, 0, 0, 550, 553, 1, 0, 0, 0, 551, 549, 1, 0, 0, 0, 552,
3545
+ 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,
3546
+ 5, 46, 0, 0, 556, 557, 5, 7, 0, 0, 557, 101, 1, 0, 0, 0, 558, 561, 5, 45, 0, 0, 559, 562,
3547
+ 5, 46, 0, 0, 560, 562, 3, 58, 29, 0, 561, 559, 1, 0, 0, 0, 561, 560, 1, 0, 0, 0, 562, 565,
3548
+ 1, 0, 0, 0, 563, 565, 5, 45, 0, 0, 564, 558, 1, 0, 0, 0, 564, 563, 1, 0, 0, 0, 565, 103,
3549
+ 1, 0, 0, 0, 566, 570, 5, 14, 0, 0, 567, 569, 3, 102, 51, 0, 568, 567, 1, 0, 0, 0, 569,
3550
+ 572, 1, 0, 0, 0, 570, 568, 1, 0, 0, 0, 570, 571, 1, 0, 0, 0, 571, 105, 1, 0, 0, 0, 572,
3551
+ 570, 1, 0, 0, 0, 573, 574, 5, 19, 0, 0, 574, 575, 5, 45, 0, 0, 575, 107, 1, 0, 0, 0, 576,
3552
+ 577, 5, 24, 0, 0, 577, 578, 5, 45, 0, 0, 578, 109, 1, 0, 0, 0, 579, 580, 5, 28, 0, 0, 580,
3553
+ 581, 5, 1, 0, 0, 581, 582, 3, 4, 2, 0, 582, 111, 1, 0, 0, 0, 583, 584, 5, 25, 0, 0, 584,
3554
+ 585, 3, 58, 29, 0, 585, 586, 5, 1, 0, 0, 586, 590, 3, 4, 2, 0, 587, 589, 3, 114, 57, 0,
3555
+ 588, 587, 1, 0, 0, 0, 589, 592, 1, 0, 0, 0, 590, 588, 1, 0, 0, 0, 590, 591, 1, 0, 0, 0,
3556
+ 591, 594, 1, 0, 0, 0, 592, 590, 1, 0, 0, 0, 593, 595, 3, 116, 58, 0, 594, 593, 1, 0, 0,
3557
+ 0, 594, 595, 1, 0, 0, 0, 595, 113, 1, 0, 0, 0, 596, 597, 5, 26, 0, 0, 597, 598, 5, 25,
3558
+ 0, 0, 598, 599, 3, 58, 29, 0, 599, 600, 5, 1, 0, 0, 600, 601, 3, 4, 2, 0, 601, 115, 1,
3559
+ 0, 0, 0, 602, 603, 5, 26, 0, 0, 603, 604, 5, 1, 0, 0, 604, 605, 3, 4, 2, 0, 605, 117, 1,
3560
+ 0, 0, 0, 67, 120, 122, 144, 150, 152, 159, 171, 173, 188, 192, 197, 201, 208, 215,
3561
+ 223, 227, 237, 245, 247, 258, 269, 271, 277, 283, 287, 306, 313, 321, 324, 342,
3562
+ 351, 366, 368, 376, 380, 386, 394, 396, 402, 409, 418, 430, 433, 440, 445, 450,
3563
+ 453, 459, 462, 466, 482, 484, 495, 497, 509, 511, 519, 521, 527, 535, 549, 552,
3564
+ 561, 564, 570, 590, 594
3682
3565
  ];
3683
3566
  static __ATN;
3684
3567
  static get _ATN() {
@@ -3796,6 +3679,42 @@ export class ExpressionContext extends antlr.ParserRuleContext {
3796
3679
  }
3797
3680
  }
3798
3681
  }
3682
+ export class Expressions_blockContext extends antlr.ParserRuleContext {
3683
+ constructor(parent, invokingState) {
3684
+ super(parent, invokingState);
3685
+ }
3686
+ NEWLINE(i) {
3687
+ if (i === undefined) {
3688
+ return this.getTokens(CircuitScriptParser.NEWLINE);
3689
+ }
3690
+ else {
3691
+ return this.getToken(CircuitScriptParser.NEWLINE, i);
3692
+ }
3693
+ }
3694
+ INDENT() {
3695
+ return this.getToken(CircuitScriptParser.INDENT, 0);
3696
+ }
3697
+ DEDENT() {
3698
+ return this.getToken(CircuitScriptParser.DEDENT, 0);
3699
+ }
3700
+ expression(i) {
3701
+ if (i === undefined) {
3702
+ return this.getRuleContexts(ExpressionContext);
3703
+ }
3704
+ return this.getRuleContext(i, ExpressionContext);
3705
+ }
3706
+ get ruleIndex() {
3707
+ return CircuitScriptParser.RULE_expressions_block;
3708
+ }
3709
+ accept(visitor) {
3710
+ if (visitor.visitExpressions_block) {
3711
+ return visitor.visitExpressions_block(this);
3712
+ }
3713
+ else {
3714
+ return visitor.visitChildren(this);
3715
+ }
3716
+ }
3717
+ }
3799
3718
  export class Path_blocksContext extends antlr.ParserRuleContext {
3800
3719
  constructor(parent, invokingState) {
3801
3720
  super(parent, invokingState);
@@ -3822,19 +3741,8 @@ export class Path_block_innerContext extends antlr.ParserRuleContext {
3822
3741
  constructor(parent, invokingState) {
3823
3742
  super(parent, invokingState);
3824
3743
  }
3825
- NEWLINE(i) {
3826
- if (i === undefined) {
3827
- return this.getTokens(CircuitScriptParser.NEWLINE);
3828
- }
3829
- else {
3830
- return this.getToken(CircuitScriptParser.NEWLINE, i);
3831
- }
3832
- }
3833
- INDENT() {
3834
- return this.getToken(CircuitScriptParser.INDENT, 0);
3835
- }
3836
- DEDENT() {
3837
- return this.getToken(CircuitScriptParser.DEDENT, 0);
3744
+ expressions_block() {
3745
+ return this.getRuleContext(0, Expressions_blockContext);
3838
3746
  }
3839
3747
  Branch() {
3840
3748
  return this.getToken(CircuitScriptParser.Branch, 0);
@@ -3848,12 +3756,6 @@ export class Path_block_innerContext extends antlr.ParserRuleContext {
3848
3756
  Point() {
3849
3757
  return this.getToken(CircuitScriptParser.Point, 0);
3850
3758
  }
3851
- expression(i) {
3852
- if (i === undefined) {
3853
- return this.getRuleContexts(ExpressionContext);
3854
- }
3855
- return this.getRuleContext(i, ExpressionContext);
3856
- }
3857
3759
  get ruleIndex() {
3858
3760
  return CircuitScriptParser.RULE_path_block_inner;
3859
3761
  }
@@ -4339,25 +4241,8 @@ export class At_block_pin_expression_complexContext extends antlr.ParserRuleCont
4339
4241
  constructor(parent, invokingState) {
4340
4242
  super(parent, invokingState);
4341
4243
  }
4342
- NEWLINE(i) {
4343
- if (i === undefined) {
4344
- return this.getTokens(CircuitScriptParser.NEWLINE);
4345
- }
4346
- else {
4347
- return this.getToken(CircuitScriptParser.NEWLINE, i);
4348
- }
4349
- }
4350
- INDENT() {
4351
- return this.getToken(CircuitScriptParser.INDENT, 0);
4352
- }
4353
- DEDENT() {
4354
- return this.getToken(CircuitScriptParser.DEDENT, 0);
4355
- }
4356
- expression(i) {
4357
- if (i === undefined) {
4358
- return this.getRuleContexts(ExpressionContext);
4359
- }
4360
- return this.getRuleContext(i, ExpressionContext);
4244
+ expressions_block() {
4245
+ return this.getRuleContext(0, Expressions_blockContext);
4361
4246
  }
4362
4247
  get ruleIndex() {
4363
4248
  return CircuitScriptParser.RULE_at_block_pin_expression_complex;
@@ -4623,6 +4508,9 @@ export class DataExprContext extends Data_exprContext {
4623
4508
  create_graphic_expr() {
4624
4509
  return this.getRuleContext(0, Create_graphic_exprContext);
4625
4510
  }
4511
+ create_module_expr() {
4512
+ return this.getRuleContext(0, Create_module_exprContext);
4513
+ }
4626
4514
  accept(visitor) {
4627
4515
  if (visitor.visitDataExpr) {
4628
4516
  return visitor.visitDataExpr(this);
@@ -5044,6 +4932,28 @@ export class Function_return_exprContext extends antlr.ParserRuleContext {
5044
4932
  }
5045
4933
  }
5046
4934
  }
4935
+ export class Property_block_exprContext extends antlr.ParserRuleContext {
4936
+ constructor(parent, invokingState) {
4937
+ super(parent, invokingState);
4938
+ }
4939
+ property_key_expr() {
4940
+ return this.getRuleContext(0, Property_key_exprContext);
4941
+ }
4942
+ expressions_block() {
4943
+ return this.getRuleContext(0, Expressions_blockContext);
4944
+ }
4945
+ get ruleIndex() {
4946
+ return CircuitScriptParser.RULE_property_block_expr;
4947
+ }
4948
+ accept(visitor) {
4949
+ if (visitor.visitProperty_block_expr) {
4950
+ return visitor.visitProperty_block_expr(this);
4951
+ }
4952
+ else {
4953
+ return visitor.visitChildren(this);
4954
+ }
4955
+ }
4956
+ }
5047
4957
  export class Create_component_exprContext extends antlr.ParserRuleContext {
5048
4958
  constructor(parent, invokingState) {
5049
4959
  super(parent, invokingState);
@@ -5128,6 +5038,54 @@ export class Create_graphic_exprContext extends antlr.ParserRuleContext {
5128
5038
  }
5129
5039
  }
5130
5040
  }
5041
+ export class Create_module_exprContext extends antlr.ParserRuleContext {
5042
+ constructor(parent, invokingState) {
5043
+ super(parent, invokingState);
5044
+ }
5045
+ Create() {
5046
+ return this.getToken(CircuitScriptParser.Create, 0);
5047
+ }
5048
+ Module() {
5049
+ return this.getToken(CircuitScriptParser.Module, 0);
5050
+ }
5051
+ NEWLINE(i) {
5052
+ if (i === undefined) {
5053
+ return this.getTokens(CircuitScriptParser.NEWLINE);
5054
+ }
5055
+ else {
5056
+ return this.getToken(CircuitScriptParser.NEWLINE, i);
5057
+ }
5058
+ }
5059
+ INDENT() {
5060
+ return this.getToken(CircuitScriptParser.INDENT, 0);
5061
+ }
5062
+ DEDENT() {
5063
+ return this.getToken(CircuitScriptParser.DEDENT, 0);
5064
+ }
5065
+ property_expr(i) {
5066
+ if (i === undefined) {
5067
+ return this.getRuleContexts(Property_exprContext);
5068
+ }
5069
+ return this.getRuleContext(i, Property_exprContext);
5070
+ }
5071
+ property_block_expr(i) {
5072
+ if (i === undefined) {
5073
+ return this.getRuleContexts(Property_block_exprContext);
5074
+ }
5075
+ return this.getRuleContext(i, Property_block_exprContext);
5076
+ }
5077
+ get ruleIndex() {
5078
+ return CircuitScriptParser.RULE_create_module_expr;
5079
+ }
5080
+ accept(visitor) {
5081
+ if (visitor.visitCreate_module_expr) {
5082
+ return visitor.visitCreate_module_expr(this);
5083
+ }
5084
+ else {
5085
+ return visitor.visitChildren(this);
5086
+ }
5087
+ }
5088
+ }
5131
5089
  export class Nested_properties_innerContext extends antlr.ParserRuleContext {
5132
5090
  constructor(parent, invokingState) {
5133
5091
  super(parent, invokingState);
@@ -5440,25 +5398,8 @@ export class Frame_exprContext extends antlr.ParserRuleContext {
5440
5398
  Frame() {
5441
5399
  return this.getToken(CircuitScriptParser.Frame, 0);
5442
5400
  }
5443
- NEWLINE(i) {
5444
- if (i === undefined) {
5445
- return this.getTokens(CircuitScriptParser.NEWLINE);
5446
- }
5447
- else {
5448
- return this.getToken(CircuitScriptParser.NEWLINE, i);
5449
- }
5450
- }
5451
- INDENT() {
5452
- return this.getToken(CircuitScriptParser.INDENT, 0);
5453
- }
5454
- DEDENT() {
5455
- return this.getToken(CircuitScriptParser.DEDENT, 0);
5456
- }
5457
- expression(i) {
5458
- if (i === undefined) {
5459
- return this.getRuleContexts(ExpressionContext);
5460
- }
5461
- return this.getRuleContext(i, ExpressionContext);
5401
+ expressions_block() {
5402
+ return this.getRuleContext(0, Expressions_blockContext);
5462
5403
  }
5463
5404
  get ruleIndex() {
5464
5405
  return CircuitScriptParser.RULE_frame_expr;
@@ -5482,25 +5423,8 @@ export class If_exprContext extends antlr.ParserRuleContext {
5482
5423
  data_expr() {
5483
5424
  return this.getRuleContext(0, Data_exprContext);
5484
5425
  }
5485
- NEWLINE(i) {
5486
- if (i === undefined) {
5487
- return this.getTokens(CircuitScriptParser.NEWLINE);
5488
- }
5489
- else {
5490
- return this.getToken(CircuitScriptParser.NEWLINE, i);
5491
- }
5492
- }
5493
- INDENT() {
5494
- return this.getToken(CircuitScriptParser.INDENT, 0);
5495
- }
5496
- DEDENT() {
5497
- return this.getToken(CircuitScriptParser.DEDENT, 0);
5498
- }
5499
- expression(i) {
5500
- if (i === undefined) {
5501
- return this.getRuleContexts(ExpressionContext);
5502
- }
5503
- return this.getRuleContext(i, ExpressionContext);
5426
+ expressions_block() {
5427
+ return this.getRuleContext(0, Expressions_blockContext);
5504
5428
  }
5505
5429
  if_inner_expr(i) {
5506
5430
  if (i === undefined) {
@@ -5536,25 +5460,8 @@ export class If_inner_exprContext extends antlr.ParserRuleContext {
5536
5460
  data_expr() {
5537
5461
  return this.getRuleContext(0, Data_exprContext);
5538
5462
  }
5539
- NEWLINE(i) {
5540
- if (i === undefined) {
5541
- return this.getTokens(CircuitScriptParser.NEWLINE);
5542
- }
5543
- else {
5544
- return this.getToken(CircuitScriptParser.NEWLINE, i);
5545
- }
5546
- }
5547
- INDENT() {
5548
- return this.getToken(CircuitScriptParser.INDENT, 0);
5549
- }
5550
- DEDENT() {
5551
- return this.getToken(CircuitScriptParser.DEDENT, 0);
5552
- }
5553
- expression(i) {
5554
- if (i === undefined) {
5555
- return this.getRuleContexts(ExpressionContext);
5556
- }
5557
- return this.getRuleContext(i, ExpressionContext);
5463
+ expressions_block() {
5464
+ return this.getRuleContext(0, Expressions_blockContext);
5558
5465
  }
5559
5466
  get ruleIndex() {
5560
5467
  return CircuitScriptParser.RULE_if_inner_expr;
@@ -5575,25 +5482,8 @@ export class Else_exprContext extends antlr.ParserRuleContext {
5575
5482
  Else() {
5576
5483
  return this.getToken(CircuitScriptParser.Else, 0);
5577
5484
  }
5578
- NEWLINE(i) {
5579
- if (i === undefined) {
5580
- return this.getTokens(CircuitScriptParser.NEWLINE);
5581
- }
5582
- else {
5583
- return this.getToken(CircuitScriptParser.NEWLINE, i);
5584
- }
5585
- }
5586
- INDENT() {
5587
- return this.getToken(CircuitScriptParser.INDENT, 0);
5588
- }
5589
- DEDENT() {
5590
- return this.getToken(CircuitScriptParser.DEDENT, 0);
5591
- }
5592
- expression(i) {
5593
- if (i === undefined) {
5594
- return this.getRuleContexts(ExpressionContext);
5595
- }
5596
- return this.getRuleContext(i, ExpressionContext);
5485
+ expressions_block() {
5486
+ return this.getRuleContext(0, Expressions_blockContext);
5597
5487
  }
5598
5488
  get ruleIndex() {
5599
5489
  return CircuitScriptParser.RULE_else_expr;