circuitscript 0.0.38 → 0.1.2

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 (66) hide show
  1. package/dist/cjs/BaseVisitor.js +69 -46
  2. package/dist/cjs/SymbolValidatorVisitor.js +1 -1
  3. package/dist/cjs/antlr/CircuitScriptLexer.js +80 -80
  4. package/dist/cjs/antlr/CircuitScriptParser.js +580 -613
  5. package/dist/cjs/builtinMethods.js +32 -10
  6. package/dist/cjs/draw_symbols.js +375 -233
  7. package/dist/cjs/execute.js +142 -131
  8. package/dist/cjs/export.js +2 -4
  9. package/dist/cjs/geometry.js +52 -19
  10. package/dist/cjs/globals.js +14 -9
  11. package/dist/cjs/helpers.js +16 -3
  12. package/dist/cjs/layout.js +143 -151
  13. package/dist/cjs/logger.js +8 -1
  14. package/dist/cjs/objects/ClassComponent.js +22 -22
  15. package/dist/cjs/objects/ExecutionScope.js +10 -4
  16. package/dist/cjs/objects/Frame.js +4 -1
  17. package/dist/cjs/objects/ParamDefinition.js +120 -4
  18. package/dist/cjs/objects/PinDefinition.js +1 -4
  19. package/dist/cjs/objects/types.js +41 -0
  20. package/dist/cjs/render.js +41 -110
  21. package/dist/cjs/sizing.js +33 -7
  22. package/dist/cjs/utils.js +92 -2
  23. package/dist/cjs/visitor.js +279 -284
  24. package/dist/esm/BaseVisitor.mjs +70 -47
  25. package/dist/esm/SymbolValidatorVisitor.mjs +1 -1
  26. package/dist/esm/antlr/CircuitScriptLexer.mjs +80 -80
  27. package/dist/esm/antlr/CircuitScriptParser.mjs +580 -613
  28. package/dist/esm/builtinMethods.mjs +29 -10
  29. package/dist/esm/draw_symbols.mjs +381 -238
  30. package/dist/esm/execute.mjs +144 -133
  31. package/dist/esm/export.mjs +2 -4
  32. package/dist/esm/geometry.mjs +52 -19
  33. package/dist/esm/globals.mjs +13 -8
  34. package/dist/esm/helpers.mjs +17 -4
  35. package/dist/esm/layout.mjs +144 -153
  36. package/dist/esm/logger.mjs +8 -1
  37. package/dist/esm/objects/ClassComponent.mjs +21 -26
  38. package/dist/esm/objects/ExecutionScope.mjs +10 -4
  39. package/dist/esm/objects/Frame.mjs +4 -1
  40. package/dist/esm/objects/ParamDefinition.mjs +119 -3
  41. package/dist/esm/objects/PinDefinition.mjs +0 -2
  42. package/dist/esm/objects/types.mjs +42 -0
  43. package/dist/esm/render.mjs +44 -113
  44. package/dist/esm/sizing.mjs +34 -8
  45. package/dist/esm/utils.mjs +86 -1
  46. package/dist/esm/visitor.mjs +281 -286
  47. package/dist/types/BaseVisitor.d.ts +3 -2
  48. package/dist/types/antlr/CircuitScriptParser.d.ts +5 -3
  49. package/dist/types/draw_symbols.d.ts +81 -49
  50. package/dist/types/execute.d.ts +16 -11
  51. package/dist/types/geometry.d.ts +31 -19
  52. package/dist/types/globals.d.ts +15 -10
  53. package/dist/types/helpers.d.ts +2 -1
  54. package/dist/types/layout.d.ts +22 -21
  55. package/dist/types/logger.d.ts +1 -1
  56. package/dist/types/objects/ClassComponent.d.ts +19 -16
  57. package/dist/types/objects/ExecutionScope.d.ts +2 -1
  58. package/dist/types/objects/Frame.d.ts +5 -3
  59. package/dist/types/objects/ParamDefinition.d.ts +31 -2
  60. package/dist/types/objects/PinDefinition.d.ts +0 -2
  61. package/dist/types/objects/types.d.ts +7 -2
  62. package/dist/types/render.d.ts +2 -1
  63. package/dist/types/utils.d.ts +9 -1
  64. package/dist/types/visitor.d.ts +5 -5
  65. package/libs/lib.cst +102 -32
  66. package/package.json +7 -3
@@ -722,7 +722,7 @@ class CircuitScriptParser extends antlr.Parser {
722
722
  let localContext = new Component_select_exprContext(this.context, this.state);
723
723
  this.enterRule(localContext, 22, CircuitScriptParser.RULE_component_select_expr);
724
724
  try {
725
- this.state = 222;
725
+ this.state = 223;
726
726
  this.errorHandler.sync(this);
727
727
  switch (this.tokenStream.LA(1)) {
728
728
  case CircuitScriptParser.T__5:
@@ -752,6 +752,13 @@ class CircuitScriptParser extends antlr.Parser {
752
752
  this.pin_select_expr();
753
753
  }
754
754
  break;
755
+ case CircuitScriptParser.Point:
756
+ this.enterOuterAlt(localContext, 3);
757
+ {
758
+ this.state = 222;
759
+ this.match(CircuitScriptParser.Point);
760
+ }
761
+ break;
755
762
  default:
756
763
  throw new antlr.NoViableAltException(this);
757
764
  }
@@ -777,7 +784,7 @@ class CircuitScriptParser extends antlr.Parser {
777
784
  try {
778
785
  this.enterOuterAlt(localContext, 1);
779
786
  {
780
- this.state = 224;
787
+ this.state = 225;
781
788
  _la = this.tokenStream.LA(1);
782
789
  if (!(_la === 57 || _la === 60)) {
783
790
  this.errorHandler.recoverInline(this);
@@ -808,40 +815,10 @@ class CircuitScriptParser extends antlr.Parser {
808
815
  try {
809
816
  this.enterOuterAlt(localContext, 1);
810
817
  {
811
- this.state = 226;
818
+ this.state = 227;
812
819
  this.match(CircuitScriptParser.At);
813
- this.state = 229;
814
- this.errorHandler.sync(this);
815
- switch (this.tokenStream.LA(1)) {
816
- case CircuitScriptParser.T__5:
817
- case CircuitScriptParser.Create:
818
- case CircuitScriptParser.Pin:
819
- case CircuitScriptParser.Not:
820
- case CircuitScriptParser.Addition:
821
- case CircuitScriptParser.Minus:
822
- case CircuitScriptParser.Divide:
823
- case CircuitScriptParser.OPEN_PAREN:
824
- case CircuitScriptParser.BOOLEAN_VALUE:
825
- case CircuitScriptParser.ID:
826
- case CircuitScriptParser.INTEGER_VALUE:
827
- case CircuitScriptParser.DECIMAL_VALUE:
828
- case CircuitScriptParser.NUMERIC_VALUE:
829
- case CircuitScriptParser.STRING_VALUE:
830
- case CircuitScriptParser.PERCENTAGE_VALUE:
831
- {
832
- this.state = 227;
833
- this.component_select_expr();
834
- }
835
- break;
836
- case CircuitScriptParser.Point:
837
- {
838
- this.state = 228;
839
- this.match(CircuitScriptParser.Point);
840
- }
841
- break;
842
- default:
843
- throw new antlr.NoViableAltException(this);
844
- }
820
+ this.state = 228;
821
+ this.component_select_expr();
845
822
  }
846
823
  }
847
824
  catch (re) {
@@ -865,57 +842,27 @@ class CircuitScriptParser extends antlr.Parser {
865
842
  try {
866
843
  this.enterOuterAlt(localContext, 1);
867
844
  {
868
- this.state = 231;
845
+ this.state = 230;
869
846
  this.match(CircuitScriptParser.To);
870
- this.state = 241;
871
- this.errorHandler.sync(this);
872
- switch (this.tokenStream.LA(1)) {
873
- case CircuitScriptParser.T__5:
874
- case CircuitScriptParser.Create:
875
- case CircuitScriptParser.Pin:
876
- case CircuitScriptParser.Not:
877
- case CircuitScriptParser.Addition:
878
- case CircuitScriptParser.Minus:
879
- case CircuitScriptParser.Divide:
880
- case CircuitScriptParser.OPEN_PAREN:
881
- case CircuitScriptParser.BOOLEAN_VALUE:
882
- case CircuitScriptParser.ID:
883
- case CircuitScriptParser.INTEGER_VALUE:
884
- case CircuitScriptParser.DECIMAL_VALUE:
885
- case CircuitScriptParser.NUMERIC_VALUE:
886
- case CircuitScriptParser.STRING_VALUE:
887
- case CircuitScriptParser.PERCENTAGE_VALUE:
847
+ {
848
+ this.state = 231;
849
+ this.component_select_expr();
850
+ this.state = 236;
851
+ this.errorHandler.sync(this);
852
+ _la = this.tokenStream.LA(1);
853
+ while (_la === 2) {
888
854
  {
889
855
  {
890
856
  this.state = 232;
857
+ this.match(CircuitScriptParser.T__1);
858
+ this.state = 233;
891
859
  this.component_select_expr();
892
- this.state = 237;
893
- this.errorHandler.sync(this);
894
- _la = this.tokenStream.LA(1);
895
- while (_la === 2) {
896
- {
897
- {
898
- this.state = 233;
899
- this.match(CircuitScriptParser.T__1);
900
- this.state = 234;
901
- this.component_select_expr();
902
- }
903
- }
904
- this.state = 239;
905
- this.errorHandler.sync(this);
906
- _la = this.tokenStream.LA(1);
907
- }
908
860
  }
909
861
  }
910
- break;
911
- case CircuitScriptParser.Point:
912
- {
913
- this.state = 240;
914
- this.match(CircuitScriptParser.Point);
915
- }
916
- break;
917
- default:
918
- throw new antlr.NoViableAltException(this);
862
+ this.state = 238;
863
+ this.errorHandler.sync(this);
864
+ _la = this.tokenStream.LA(1);
865
+ }
919
866
  }
920
867
  }
921
868
  }
@@ -940,54 +887,54 @@ class CircuitScriptParser extends antlr.Parser {
940
887
  try {
941
888
  this.enterOuterAlt(localContext, 1);
942
889
  {
943
- this.state = 243;
890
+ this.state = 239;
944
891
  this.match(CircuitScriptParser.At);
945
- this.state = 244;
892
+ this.state = 240;
946
893
  this.component_select_expr();
947
- this.state = 245;
894
+ this.state = 241;
948
895
  this.match(CircuitScriptParser.To);
949
- this.state = 246;
896
+ this.state = 242;
950
897
  this.component_select_expr();
951
- this.state = 251;
898
+ this.state = 247;
952
899
  this.errorHandler.sync(this);
953
900
  _la = this.tokenStream.LA(1);
954
901
  while (_la === 2) {
955
902
  {
956
903
  {
957
- this.state = 247;
904
+ this.state = 243;
958
905
  this.match(CircuitScriptParser.T__1);
959
- this.state = 248;
906
+ this.state = 244;
960
907
  this.component_select_expr();
961
908
  }
962
909
  }
963
- this.state = 253;
910
+ this.state = 249;
964
911
  this.errorHandler.sync(this);
965
912
  _la = this.tokenStream.LA(1);
966
913
  }
967
- this.state = 254;
914
+ this.state = 250;
968
915
  this.match(CircuitScriptParser.T__0);
969
- this.state = 255;
916
+ this.state = 251;
970
917
  this.match(CircuitScriptParser.NEWLINE);
971
- this.state = 256;
918
+ this.state = 252;
972
919
  this.match(CircuitScriptParser.INDENT);
973
- this.state = 259;
920
+ this.state = 255;
974
921
  this.errorHandler.sync(this);
975
922
  _la = this.tokenStream.LA(1);
976
923
  do {
977
924
  {
978
- this.state = 259;
925
+ this.state = 255;
979
926
  this.errorHandler.sync(this);
980
927
  switch (this.tokenStream.LA(1)) {
981
928
  case CircuitScriptParser.NEWLINE:
982
929
  {
983
- this.state = 257;
930
+ this.state = 253;
984
931
  this.match(CircuitScriptParser.NEWLINE);
985
932
  }
986
933
  break;
987
934
  case CircuitScriptParser.INTEGER_VALUE:
988
935
  case CircuitScriptParser.STRING_VALUE:
989
936
  {
990
- this.state = 258;
937
+ this.state = 254;
991
938
  this.at_to_multiple_line_expr();
992
939
  }
993
940
  break;
@@ -995,11 +942,11 @@ class CircuitScriptParser extends antlr.Parser {
995
942
  throw new antlr.NoViableAltException(this);
996
943
  }
997
944
  }
998
- this.state = 261;
945
+ this.state = 257;
999
946
  this.errorHandler.sync(this);
1000
947
  _la = this.tokenStream.LA(1);
1001
948
  } while (((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 137) !== 0));
1002
- this.state = 263;
949
+ this.state = 259;
1003
950
  this.match(CircuitScriptParser.DEDENT);
1004
951
  }
1005
952
  }
@@ -1024,25 +971,25 @@ class CircuitScriptParser extends antlr.Parser {
1024
971
  try {
1025
972
  this.enterOuterAlt(localContext, 1);
1026
973
  {
1027
- this.state = 265;
974
+ this.state = 261;
1028
975
  this.pin_select_expr2();
1029
- this.state = 266;
976
+ this.state = 262;
1030
977
  this.match(CircuitScriptParser.T__0);
1031
- this.state = 267;
978
+ this.state = 263;
1032
979
  this.at_to_multiple_line_expr_to_pin();
1033
- this.state = 272;
980
+ this.state = 268;
1034
981
  this.errorHandler.sync(this);
1035
982
  _la = this.tokenStream.LA(1);
1036
983
  while (_la === 2) {
1037
984
  {
1038
985
  {
1039
- this.state = 268;
986
+ this.state = 264;
1040
987
  this.match(CircuitScriptParser.T__1);
1041
- this.state = 269;
988
+ this.state = 265;
1042
989
  this.at_to_multiple_line_expr_to_pin();
1043
990
  }
1044
991
  }
1045
- this.state = 274;
992
+ this.state = 270;
1046
993
  this.errorHandler.sync(this);
1047
994
  _la = this.tokenStream.LA(1);
1048
995
  }
@@ -1069,7 +1016,7 @@ class CircuitScriptParser extends antlr.Parser {
1069
1016
  try {
1070
1017
  this.enterOuterAlt(localContext, 1);
1071
1018
  {
1072
- this.state = 275;
1019
+ this.state = 271;
1073
1020
  _la = this.tokenStream.LA(1);
1074
1021
  if (!(_la === 54 || _la === 57)) {
1075
1022
  this.errorHandler.recoverInline(this);
@@ -1101,25 +1048,25 @@ class CircuitScriptParser extends antlr.Parser {
1101
1048
  try {
1102
1049
  this.enterOuterAlt(localContext, 1);
1103
1050
  {
1104
- this.state = 277;
1051
+ this.state = 273;
1105
1052
  this.at_component_expr();
1106
- this.state = 278;
1053
+ this.state = 274;
1107
1054
  this.match(CircuitScriptParser.T__0);
1108
- this.state = 279;
1055
+ this.state = 275;
1109
1056
  this.match(CircuitScriptParser.NEWLINE);
1110
- this.state = 280;
1057
+ this.state = 276;
1111
1058
  this.match(CircuitScriptParser.INDENT);
1112
- this.state = 283;
1059
+ this.state = 279;
1113
1060
  this.errorHandler.sync(this);
1114
1061
  _la = this.tokenStream.LA(1);
1115
1062
  do {
1116
1063
  {
1117
- this.state = 283;
1064
+ this.state = 279;
1118
1065
  this.errorHandler.sync(this);
1119
1066
  switch (this.tokenStream.LA(1)) {
1120
1067
  case CircuitScriptParser.NEWLINE:
1121
1068
  {
1122
- this.state = 281;
1069
+ this.state = 277;
1123
1070
  this.match(CircuitScriptParser.NEWLINE);
1124
1071
  }
1125
1072
  break;
@@ -1147,7 +1094,7 @@ class CircuitScriptParser extends antlr.Parser {
1147
1094
  case CircuitScriptParser.INTEGER_VALUE:
1148
1095
  case CircuitScriptParser.STRING_VALUE:
1149
1096
  {
1150
- this.state = 282;
1097
+ this.state = 278;
1151
1098
  this.at_block_expressions();
1152
1099
  }
1153
1100
  break;
@@ -1155,11 +1102,11 @@ class CircuitScriptParser extends antlr.Parser {
1155
1102
  throw new antlr.NoViableAltException(this);
1156
1103
  }
1157
1104
  }
1158
- this.state = 285;
1105
+ this.state = 281;
1159
1106
  this.errorHandler.sync(this);
1160
1107
  _la = this.tokenStream.LA(1);
1161
1108
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 867955761) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4505605) !== 0));
1162
- this.state = 287;
1109
+ this.state = 283;
1163
1110
  this.match(CircuitScriptParser.DEDENT);
1164
1111
  }
1165
1112
  }
@@ -1181,7 +1128,7 @@ class CircuitScriptParser extends antlr.Parser {
1181
1128
  let localContext = new At_block_expressionsContext(this.context, this.state);
1182
1129
  this.enterRule(localContext, 38, CircuitScriptParser.RULE_at_block_expressions);
1183
1130
  try {
1184
- this.state = 291;
1131
+ this.state = 287;
1185
1132
  this.errorHandler.sync(this);
1186
1133
  switch (this.tokenStream.LA(1)) {
1187
1134
  case CircuitScriptParser.T__3:
@@ -1207,7 +1154,7 @@ class CircuitScriptParser extends antlr.Parser {
1207
1154
  case CircuitScriptParser.ID:
1208
1155
  this.enterOuterAlt(localContext, 1);
1209
1156
  {
1210
- this.state = 289;
1157
+ this.state = 285;
1211
1158
  this.expression();
1212
1159
  }
1213
1160
  break;
@@ -1215,7 +1162,7 @@ class CircuitScriptParser extends antlr.Parser {
1215
1162
  case CircuitScriptParser.STRING_VALUE:
1216
1163
  this.enterOuterAlt(localContext, 2);
1217
1164
  {
1218
- this.state = 290;
1165
+ this.state = 286;
1219
1166
  this.at_block_pin_expr();
1220
1167
  }
1221
1168
  break;
@@ -1243,11 +1190,11 @@ class CircuitScriptParser extends antlr.Parser {
1243
1190
  try {
1244
1191
  this.enterOuterAlt(localContext, 1);
1245
1192
  {
1246
- this.state = 293;
1193
+ this.state = 289;
1247
1194
  this.pin_select_expr2();
1248
- this.state = 294;
1195
+ this.state = 290;
1249
1196
  this.match(CircuitScriptParser.T__0);
1250
- this.state = 297;
1197
+ this.state = 293;
1251
1198
  this.errorHandler.sync(this);
1252
1199
  switch (this.tokenStream.LA(1)) {
1253
1200
  case CircuitScriptParser.T__3:
@@ -1273,13 +1220,13 @@ class CircuitScriptParser extends antlr.Parser {
1273
1220
  case CircuitScriptParser.NOT_CONNECTED:
1274
1221
  case CircuitScriptParser.ID:
1275
1222
  {
1276
- this.state = 295;
1223
+ this.state = 291;
1277
1224
  this.at_block_pin_expression_simple();
1278
1225
  }
1279
1226
  break;
1280
1227
  case CircuitScriptParser.NEWLINE:
1281
1228
  {
1282
- this.state = 296;
1229
+ this.state = 292;
1283
1230
  this.at_block_pin_expression_complex();
1284
1231
  }
1285
1232
  break;
@@ -1308,7 +1255,7 @@ class CircuitScriptParser extends antlr.Parser {
1308
1255
  try {
1309
1256
  this.enterOuterAlt(localContext, 1);
1310
1257
  {
1311
- this.state = 301;
1258
+ this.state = 297;
1312
1259
  this.errorHandler.sync(this);
1313
1260
  switch (this.tokenStream.LA(1)) {
1314
1261
  case CircuitScriptParser.T__3:
@@ -1333,13 +1280,13 @@ class CircuitScriptParser extends antlr.Parser {
1333
1280
  case CircuitScriptParser.Divide:
1334
1281
  case CircuitScriptParser.ID:
1335
1282
  {
1336
- this.state = 299;
1283
+ this.state = 295;
1337
1284
  this.expression();
1338
1285
  }
1339
1286
  break;
1340
1287
  case CircuitScriptParser.NOT_CONNECTED:
1341
1288
  {
1342
- this.state = 300;
1289
+ this.state = 296;
1343
1290
  this.match(CircuitScriptParser.NOT_CONNECTED);
1344
1291
  }
1345
1292
  break;
@@ -1368,7 +1315,7 @@ class CircuitScriptParser extends antlr.Parser {
1368
1315
  try {
1369
1316
  this.enterOuterAlt(localContext, 1);
1370
1317
  {
1371
- this.state = 303;
1318
+ this.state = 299;
1372
1319
  this.expressions_block();
1373
1320
  }
1374
1321
  }
@@ -1392,7 +1339,7 @@ class CircuitScriptParser extends antlr.Parser {
1392
1339
  try {
1393
1340
  this.enterOuterAlt(localContext, 1);
1394
1341
  {
1395
- this.state = 305;
1342
+ this.state = 301;
1396
1343
  this.match(CircuitScriptParser.Break);
1397
1344
  }
1398
1345
  }
@@ -1416,7 +1363,7 @@ class CircuitScriptParser extends antlr.Parser {
1416
1363
  try {
1417
1364
  this.enterOuterAlt(localContext, 1);
1418
1365
  {
1419
- this.state = 307;
1366
+ this.state = 303;
1420
1367
  this.match(CircuitScriptParser.Continue);
1421
1368
  }
1422
1369
  }
@@ -1440,11 +1387,11 @@ class CircuitScriptParser extends antlr.Parser {
1440
1387
  try {
1441
1388
  this.enterOuterAlt(localContext, 1);
1442
1389
  {
1443
- this.state = 309;
1390
+ this.state = 305;
1444
1391
  this.atom_expr();
1445
- this.state = 310;
1392
+ this.state = 306;
1446
1393
  this.match(CircuitScriptParser.T__2);
1447
- this.state = 311;
1394
+ this.state = 307;
1448
1395
  this.data_expr(0);
1449
1396
  }
1450
1397
  }
@@ -1469,9 +1416,9 @@ class CircuitScriptParser extends antlr.Parser {
1469
1416
  try {
1470
1417
  this.enterOuterAlt(localContext, 1);
1471
1418
  {
1472
- this.state = 313;
1419
+ this.state = 309;
1473
1420
  this.atom_expr();
1474
- this.state = 314;
1421
+ this.state = 310;
1475
1422
  _la = this.tokenStream.LA(1);
1476
1423
  if (!(((((_la - 47)) & ~0x1F) === 0 && ((1 << (_la - 47)) & 31) !== 0))) {
1477
1424
  this.errorHandler.recoverInline(this);
@@ -1480,7 +1427,7 @@ class CircuitScriptParser extends antlr.Parser {
1480
1427
  this.errorHandler.reportMatch(this);
1481
1428
  this.consume();
1482
1429
  }
1483
- this.state = 315;
1430
+ this.state = 311;
1484
1431
  this.data_expr(0);
1485
1432
  }
1486
1433
  }
@@ -1504,11 +1451,11 @@ class CircuitScriptParser extends antlr.Parser {
1504
1451
  try {
1505
1452
  this.enterOuterAlt(localContext, 1);
1506
1453
  {
1507
- this.state = 317;
1454
+ this.state = 313;
1508
1455
  this.match(CircuitScriptParser.ID);
1509
- this.state = 318;
1456
+ this.state = 314;
1510
1457
  this.match(CircuitScriptParser.T__2);
1511
- this.state = 319;
1458
+ this.state = 315;
1512
1459
  this.data_expr(0);
1513
1460
  }
1514
1461
  }
@@ -1532,46 +1479,46 @@ class CircuitScriptParser extends antlr.Parser {
1532
1479
  let _la;
1533
1480
  try {
1534
1481
  let alternative;
1535
- this.state = 344;
1482
+ this.state = 340;
1536
1483
  this.errorHandler.sync(this);
1537
- switch (this.interpreter.adaptivePredict(this.tokenStream, 28, this.context)) {
1484
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 26, this.context)) {
1538
1485
  case 1:
1539
1486
  this.enterOuterAlt(localContext, 1);
1540
1487
  {
1541
1488
  {
1542
- this.state = 321;
1489
+ this.state = 317;
1543
1490
  this.data_expr(0);
1544
- this.state = 326;
1491
+ this.state = 322;
1545
1492
  this.errorHandler.sync(this);
1546
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 25, this.context);
1493
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 23, this.context);
1547
1494
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1548
1495
  if (alternative === 1) {
1549
1496
  {
1550
1497
  {
1551
- this.state = 322;
1498
+ this.state = 318;
1552
1499
  this.match(CircuitScriptParser.T__1);
1553
- this.state = 323;
1500
+ this.state = 319;
1554
1501
  this.data_expr(0);
1555
1502
  }
1556
1503
  }
1557
1504
  }
1558
- this.state = 328;
1505
+ this.state = 324;
1559
1506
  this.errorHandler.sync(this);
1560
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 25, this.context);
1507
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 23, this.context);
1561
1508
  }
1562
- this.state = 333;
1509
+ this.state = 329;
1563
1510
  this.errorHandler.sync(this);
1564
1511
  _la = this.tokenStream.LA(1);
1565
1512
  while (_la === 2) {
1566
1513
  {
1567
1514
  {
1568
- this.state = 329;
1515
+ this.state = 325;
1569
1516
  this.match(CircuitScriptParser.T__1);
1570
- this.state = 330;
1517
+ this.state = 326;
1571
1518
  this.keyword_assignment_expr();
1572
1519
  }
1573
1520
  }
1574
- this.state = 335;
1521
+ this.state = 331;
1575
1522
  this.errorHandler.sync(this);
1576
1523
  _la = this.tokenStream.LA(1);
1577
1524
  }
@@ -1582,21 +1529,21 @@ class CircuitScriptParser extends antlr.Parser {
1582
1529
  this.enterOuterAlt(localContext, 2);
1583
1530
  {
1584
1531
  {
1585
- this.state = 336;
1532
+ this.state = 332;
1586
1533
  this.keyword_assignment_expr();
1587
- this.state = 341;
1534
+ this.state = 337;
1588
1535
  this.errorHandler.sync(this);
1589
1536
  _la = this.tokenStream.LA(1);
1590
1537
  while (_la === 2) {
1591
1538
  {
1592
1539
  {
1593
- this.state = 337;
1540
+ this.state = 333;
1594
1541
  this.match(CircuitScriptParser.T__1);
1595
- this.state = 338;
1542
+ this.state = 334;
1596
1543
  this.keyword_assignment_expr();
1597
1544
  }
1598
1545
  }
1599
- this.state = 343;
1546
+ this.state = 339;
1600
1547
  this.errorHandler.sync(this);
1601
1548
  _la = this.tokenStream.LA(1);
1602
1549
  }
@@ -1625,11 +1572,11 @@ class CircuitScriptParser extends antlr.Parser {
1625
1572
  try {
1626
1573
  this.enterOuterAlt(localContext, 1);
1627
1574
  {
1628
- this.state = 346;
1575
+ this.state = 342;
1629
1576
  this.atom_expr();
1630
- this.state = 347;
1577
+ this.state = 343;
1631
1578
  this.match(CircuitScriptParser.T__2);
1632
- this.state = 348;
1579
+ this.state = 344;
1633
1580
  this.data_expr(0);
1634
1581
  }
1635
1582
  }
@@ -1653,13 +1600,13 @@ class CircuitScriptParser extends antlr.Parser {
1653
1600
  try {
1654
1601
  this.enterOuterAlt(localContext, 1);
1655
1602
  {
1656
- this.state = 350;
1603
+ this.state = 346;
1657
1604
  this.match(CircuitScriptParser.T__3);
1658
- this.state = 351;
1605
+ this.state = 347;
1659
1606
  this.match(CircuitScriptParser.ID);
1660
- this.state = 352;
1607
+ this.state = 348;
1661
1608
  this.match(CircuitScriptParser.T__2);
1662
- this.state = 353;
1609
+ this.state = 349;
1663
1610
  this.data_expr(0);
1664
1611
  }
1665
1612
  }
@@ -1692,19 +1639,19 @@ class CircuitScriptParser extends antlr.Parser {
1692
1639
  let alternative;
1693
1640
  this.enterOuterAlt(localContext, 1);
1694
1641
  {
1695
- this.state = 372;
1642
+ this.state = 368;
1696
1643
  this.errorHandler.sync(this);
1697
- switch (this.interpreter.adaptivePredict(this.tokenStream, 30, this.context)) {
1644
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 28, this.context)) {
1698
1645
  case 1:
1699
1646
  {
1700
1647
  localContext = new RoundedBracketsExprContext(localContext);
1701
1648
  this.context = localContext;
1702
1649
  previousContext = localContext;
1703
- this.state = 356;
1650
+ this.state = 352;
1704
1651
  this.match(CircuitScriptParser.OPEN_PAREN);
1705
- this.state = 357;
1652
+ this.state = 353;
1706
1653
  this.data_expr(0);
1707
- this.state = 358;
1654
+ this.state = 354;
1708
1655
  this.match(CircuitScriptParser.CLOSE_PAREN);
1709
1656
  }
1710
1657
  break;
@@ -1713,7 +1660,7 @@ class CircuitScriptParser extends antlr.Parser {
1713
1660
  localContext = new ValueAtomExprContext(localContext);
1714
1661
  this.context = localContext;
1715
1662
  previousContext = localContext;
1716
- this.state = 362;
1663
+ this.state = 358;
1717
1664
  this.errorHandler.sync(this);
1718
1665
  switch (this.tokenStream.LA(1)) {
1719
1666
  case CircuitScriptParser.Minus:
@@ -1724,13 +1671,13 @@ class CircuitScriptParser extends antlr.Parser {
1724
1671
  case CircuitScriptParser.STRING_VALUE:
1725
1672
  case CircuitScriptParser.PERCENTAGE_VALUE:
1726
1673
  {
1727
- this.state = 360;
1674
+ this.state = 356;
1728
1675
  this.value_expr();
1729
1676
  }
1730
1677
  break;
1731
1678
  case CircuitScriptParser.ID:
1732
1679
  {
1733
- this.state = 361;
1680
+ this.state = 357;
1734
1681
  this.atom_expr();
1735
1682
  }
1736
1683
  break;
@@ -1744,9 +1691,9 @@ class CircuitScriptParser extends antlr.Parser {
1744
1691
  localContext = new UnaryOperatorExprContext(localContext);
1745
1692
  this.context = localContext;
1746
1693
  previousContext = localContext;
1747
- this.state = 364;
1694
+ this.state = 360;
1748
1695
  this.unary_operator();
1749
- this.state = 365;
1696
+ this.state = 361;
1750
1697
  this.data_expr(10);
1751
1698
  }
1752
1699
  break;
@@ -1755,7 +1702,7 @@ class CircuitScriptParser extends antlr.Parser {
1755
1702
  localContext = new DataExprContext(localContext);
1756
1703
  this.context = localContext;
1757
1704
  previousContext = localContext;
1758
- this.state = 367;
1705
+ this.state = 363;
1759
1706
  this.create_component_expr();
1760
1707
  }
1761
1708
  break;
@@ -1764,7 +1711,7 @@ class CircuitScriptParser extends antlr.Parser {
1764
1711
  localContext = new DataExprContext(localContext);
1765
1712
  this.context = localContext;
1766
1713
  previousContext = localContext;
1767
- this.state = 368;
1714
+ this.state = 364;
1768
1715
  this.create_graphic_expr();
1769
1716
  }
1770
1717
  break;
@@ -1773,7 +1720,7 @@ class CircuitScriptParser extends antlr.Parser {
1773
1720
  localContext = new DataExprContext(localContext);
1774
1721
  this.context = localContext;
1775
1722
  previousContext = localContext;
1776
- this.state = 369;
1723
+ this.state = 365;
1777
1724
  this.create_module_expr();
1778
1725
  }
1779
1726
  break;
@@ -1782,7 +1729,7 @@ class CircuitScriptParser extends antlr.Parser {
1782
1729
  localContext = new FunctionCallExprContext(localContext);
1783
1730
  this.context = localContext;
1784
1731
  previousContext = localContext;
1785
- this.state = 370;
1732
+ this.state = 366;
1786
1733
  this.function_call_expr();
1787
1734
  }
1788
1735
  break;
@@ -1791,15 +1738,15 @@ class CircuitScriptParser extends antlr.Parser {
1791
1738
  localContext = new ArrayExprContext(localContext);
1792
1739
  this.context = localContext;
1793
1740
  previousContext = localContext;
1794
- this.state = 371;
1741
+ this.state = 367;
1795
1742
  this.array_expr();
1796
1743
  }
1797
1744
  break;
1798
1745
  }
1799
1746
  this.context.stop = this.tokenStream.LT(-1);
1800
- this.state = 389;
1747
+ this.state = 385;
1801
1748
  this.errorHandler.sync(this);
1802
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 32, this.context);
1749
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 30, this.context);
1803
1750
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1804
1751
  if (alternative === 1) {
1805
1752
  if (this.parseListeners != null) {
@@ -1807,18 +1754,18 @@ class CircuitScriptParser extends antlr.Parser {
1807
1754
  }
1808
1755
  previousContext = localContext;
1809
1756
  {
1810
- this.state = 387;
1757
+ this.state = 383;
1811
1758
  this.errorHandler.sync(this);
1812
- switch (this.interpreter.adaptivePredict(this.tokenStream, 31, this.context)) {
1759
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 29, this.context)) {
1813
1760
  case 1:
1814
1761
  {
1815
1762
  localContext = new MultiplyExprContext(new Data_exprContext(parentContext, parentState));
1816
1763
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1817
- this.state = 374;
1764
+ this.state = 370;
1818
1765
  if (!(this.precpred(this.context, 9))) {
1819
1766
  throw this.createFailedPredicateException("this.precpred(this.context, 9)");
1820
1767
  }
1821
- this.state = 375;
1768
+ this.state = 371;
1822
1769
  _la = this.tokenStream.LA(1);
1823
1770
  if (!(((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 7) !== 0))) {
1824
1771
  this.errorHandler.recoverInline(this);
@@ -1827,7 +1774,7 @@ class CircuitScriptParser extends antlr.Parser {
1827
1774
  this.errorHandler.reportMatch(this);
1828
1775
  this.consume();
1829
1776
  }
1830
- this.state = 376;
1777
+ this.state = 372;
1831
1778
  this.data_expr(10);
1832
1779
  }
1833
1780
  break;
@@ -1835,11 +1782,11 @@ class CircuitScriptParser extends antlr.Parser {
1835
1782
  {
1836
1783
  localContext = new AdditionExprContext(new Data_exprContext(parentContext, parentState));
1837
1784
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1838
- this.state = 377;
1785
+ this.state = 373;
1839
1786
  if (!(this.precpred(this.context, 8))) {
1840
1787
  throw this.createFailedPredicateException("this.precpred(this.context, 8)");
1841
1788
  }
1842
- this.state = 378;
1789
+ this.state = 374;
1843
1790
  _la = this.tokenStream.LA(1);
1844
1791
  if (!(_la === 42 || _la === 43)) {
1845
1792
  this.errorHandler.recoverInline(this);
@@ -1848,7 +1795,7 @@ class CircuitScriptParser extends antlr.Parser {
1848
1795
  this.errorHandler.reportMatch(this);
1849
1796
  this.consume();
1850
1797
  }
1851
- this.state = 379;
1798
+ this.state = 375;
1852
1799
  this.data_expr(9);
1853
1800
  }
1854
1801
  break;
@@ -1856,13 +1803,13 @@ class CircuitScriptParser extends antlr.Parser {
1856
1803
  {
1857
1804
  localContext = new BinaryOperatorExprContext(new Data_exprContext(parentContext, parentState));
1858
1805
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1859
- this.state = 380;
1806
+ this.state = 376;
1860
1807
  if (!(this.precpred(this.context, 7))) {
1861
1808
  throw this.createFailedPredicateException("this.precpred(this.context, 7)");
1862
1809
  }
1863
- this.state = 381;
1810
+ this.state = 377;
1864
1811
  this.binary_operator();
1865
- this.state = 382;
1812
+ this.state = 378;
1866
1813
  this.data_expr(8);
1867
1814
  }
1868
1815
  break;
@@ -1870,11 +1817,11 @@ class CircuitScriptParser extends antlr.Parser {
1870
1817
  {
1871
1818
  localContext = new LogicalOperatorExprContext(new Data_exprContext(parentContext, parentState));
1872
1819
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1873
- this.state = 384;
1820
+ this.state = 380;
1874
1821
  if (!(this.precpred(this.context, 6))) {
1875
1822
  throw this.createFailedPredicateException("this.precpred(this.context, 6)");
1876
1823
  }
1877
- this.state = 385;
1824
+ this.state = 381;
1878
1825
  _la = this.tokenStream.LA(1);
1879
1826
  if (!(_la === 40 || _la === 41)) {
1880
1827
  this.errorHandler.recoverInline(this);
@@ -1883,16 +1830,16 @@ class CircuitScriptParser extends antlr.Parser {
1883
1830
  this.errorHandler.reportMatch(this);
1884
1831
  this.consume();
1885
1832
  }
1886
- this.state = 386;
1833
+ this.state = 382;
1887
1834
  this.data_expr(7);
1888
1835
  }
1889
1836
  break;
1890
1837
  }
1891
1838
  }
1892
1839
  }
1893
- this.state = 391;
1840
+ this.state = 387;
1894
1841
  this.errorHandler.sync(this);
1895
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 32, this.context);
1842
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 30, this.context);
1896
1843
  }
1897
1844
  }
1898
1845
  }
@@ -1917,7 +1864,7 @@ class CircuitScriptParser extends antlr.Parser {
1917
1864
  try {
1918
1865
  this.enterOuterAlt(localContext, 1);
1919
1866
  {
1920
- this.state = 392;
1867
+ this.state = 388;
1921
1868
  _la = this.tokenStream.LA(1);
1922
1869
  if (!(((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 63) !== 0))) {
1923
1870
  this.errorHandler.recoverInline(this);
@@ -1949,7 +1896,7 @@ class CircuitScriptParser extends antlr.Parser {
1949
1896
  try {
1950
1897
  this.enterOuterAlt(localContext, 1);
1951
1898
  {
1952
- this.state = 394;
1899
+ this.state = 390;
1953
1900
  _la = this.tokenStream.LA(1);
1954
1901
  if (!(_la === 31 || _la === 43)) {
1955
1902
  this.errorHandler.recoverInline(this);
@@ -1982,16 +1929,16 @@ class CircuitScriptParser extends antlr.Parser {
1982
1929
  this.enterOuterAlt(localContext, 1);
1983
1930
  {
1984
1931
  {
1985
- this.state = 397;
1932
+ this.state = 393;
1986
1933
  this.errorHandler.sync(this);
1987
1934
  _la = this.tokenStream.LA(1);
1988
1935
  if (_la === 43) {
1989
1936
  {
1990
- this.state = 396;
1937
+ this.state = 392;
1991
1938
  this.match(CircuitScriptParser.Minus);
1992
1939
  }
1993
1940
  }
1994
- this.state = 399;
1941
+ this.state = 395;
1995
1942
  _la = this.tokenStream.LA(1);
1996
1943
  if (!(((((_la - 55)) & ~0x1F) === 0 && ((1 << (_la - 55)) & 125) !== 0))) {
1997
1944
  this.errorHandler.recoverInline(this);
@@ -2024,40 +1971,40 @@ class CircuitScriptParser extends antlr.Parser {
2024
1971
  try {
2025
1972
  this.enterOuterAlt(localContext, 1);
2026
1973
  {
2027
- this.state = 401;
1974
+ this.state = 397;
2028
1975
  this.match(CircuitScriptParser.Define);
2029
- this.state = 402;
1976
+ this.state = 398;
2030
1977
  this.match(CircuitScriptParser.ID);
2031
- this.state = 403;
1978
+ this.state = 399;
2032
1979
  this.match(CircuitScriptParser.OPEN_PAREN);
2033
- this.state = 405;
1980
+ this.state = 401;
2034
1981
  this.errorHandler.sync(this);
2035
1982
  _la = this.tokenStream.LA(1);
2036
1983
  if (_la === 56) {
2037
1984
  {
2038
- this.state = 404;
1985
+ this.state = 400;
2039
1986
  this.function_args_expr();
2040
1987
  }
2041
1988
  }
2042
- this.state = 407;
1989
+ this.state = 403;
2043
1990
  this.match(CircuitScriptParser.CLOSE_PAREN);
2044
- this.state = 408;
1991
+ this.state = 404;
2045
1992
  this.match(CircuitScriptParser.T__0);
2046
- this.state = 409;
1993
+ this.state = 405;
2047
1994
  this.match(CircuitScriptParser.NEWLINE);
2048
- this.state = 410;
1995
+ this.state = 406;
2049
1996
  this.match(CircuitScriptParser.INDENT);
2050
- this.state = 413;
1997
+ this.state = 409;
2051
1998
  this.errorHandler.sync(this);
2052
1999
  _la = this.tokenStream.LA(1);
2053
2000
  do {
2054
2001
  {
2055
- this.state = 413;
2002
+ this.state = 409;
2056
2003
  this.errorHandler.sync(this);
2057
2004
  switch (this.tokenStream.LA(1)) {
2058
2005
  case CircuitScriptParser.NEWLINE:
2059
2006
  {
2060
- this.state = 411;
2007
+ this.state = 407;
2061
2008
  this.match(CircuitScriptParser.NEWLINE);
2062
2009
  }
2063
2010
  break;
@@ -2084,7 +2031,7 @@ class CircuitScriptParser extends antlr.Parser {
2084
2031
  case CircuitScriptParser.Divide:
2085
2032
  case CircuitScriptParser.ID:
2086
2033
  {
2087
- this.state = 412;
2034
+ this.state = 408;
2088
2035
  this.function_expr();
2089
2036
  }
2090
2037
  break;
@@ -2092,11 +2039,11 @@ class CircuitScriptParser extends antlr.Parser {
2092
2039
  throw new antlr.NoViableAltException(this);
2093
2040
  }
2094
2041
  }
2095
- this.state = 415;
2042
+ this.state = 411;
2096
2043
  this.errorHandler.sync(this);
2097
2044
  _la = this.tokenStream.LA(1);
2098
2045
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 868217905) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4210693) !== 0));
2099
- this.state = 417;
2046
+ this.state = 413;
2100
2047
  this.match(CircuitScriptParser.DEDENT);
2101
2048
  }
2102
2049
  }
@@ -2118,7 +2065,7 @@ class CircuitScriptParser extends antlr.Parser {
2118
2065
  let localContext = new Function_exprContext(this.context, this.state);
2119
2066
  this.enterRule(localContext, 72, CircuitScriptParser.RULE_function_expr);
2120
2067
  try {
2121
- this.state = 421;
2068
+ this.state = 417;
2122
2069
  this.errorHandler.sync(this);
2123
2070
  switch (this.tokenStream.LA(1)) {
2124
2071
  case CircuitScriptParser.T__3:
@@ -2144,14 +2091,14 @@ class CircuitScriptParser extends antlr.Parser {
2144
2091
  case CircuitScriptParser.ID:
2145
2092
  this.enterOuterAlt(localContext, 1);
2146
2093
  {
2147
- this.state = 419;
2094
+ this.state = 415;
2148
2095
  this.expression();
2149
2096
  }
2150
2097
  break;
2151
2098
  case CircuitScriptParser.Return:
2152
2099
  this.enterOuterAlt(localContext, 2);
2153
2100
  {
2154
- this.state = 420;
2101
+ this.state = 416;
2155
2102
  this.function_return_expr();
2156
2103
  }
2157
2104
  break;
@@ -2179,49 +2126,49 @@ class CircuitScriptParser extends antlr.Parser {
2179
2126
  let _la;
2180
2127
  try {
2181
2128
  let alternative;
2182
- this.state = 452;
2129
+ this.state = 448;
2183
2130
  this.errorHandler.sync(this);
2184
- switch (this.interpreter.adaptivePredict(this.tokenStream, 41, this.context)) {
2131
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 39, this.context)) {
2185
2132
  case 1:
2186
2133
  this.enterOuterAlt(localContext, 1);
2187
2134
  {
2188
- this.state = 423;
2135
+ this.state = 419;
2189
2136
  this.match(CircuitScriptParser.ID);
2190
- this.state = 428;
2137
+ this.state = 424;
2191
2138
  this.errorHandler.sync(this);
2192
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 38, this.context);
2139
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 36, this.context);
2193
2140
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2194
2141
  if (alternative === 1) {
2195
2142
  {
2196
2143
  {
2197
- this.state = 424;
2144
+ this.state = 420;
2198
2145
  this.match(CircuitScriptParser.T__1);
2199
- this.state = 425;
2146
+ this.state = 421;
2200
2147
  this.match(CircuitScriptParser.ID);
2201
2148
  }
2202
2149
  }
2203
2150
  }
2204
- this.state = 430;
2151
+ this.state = 426;
2205
2152
  this.errorHandler.sync(this);
2206
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 38, this.context);
2153
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 36, this.context);
2207
2154
  }
2208
- this.state = 437;
2155
+ this.state = 433;
2209
2156
  this.errorHandler.sync(this);
2210
2157
  _la = this.tokenStream.LA(1);
2211
2158
  while (_la === 2) {
2212
2159
  {
2213
2160
  {
2214
- this.state = 431;
2161
+ this.state = 427;
2215
2162
  this.match(CircuitScriptParser.T__1);
2216
- this.state = 432;
2163
+ this.state = 428;
2217
2164
  this.match(CircuitScriptParser.ID);
2218
- this.state = 433;
2165
+ this.state = 429;
2219
2166
  this.match(CircuitScriptParser.T__2);
2220
- this.state = 434;
2167
+ this.state = 430;
2221
2168
  this.value_expr();
2222
2169
  }
2223
2170
  }
2224
- this.state = 439;
2171
+ this.state = 435;
2225
2172
  this.errorHandler.sync(this);
2226
2173
  _la = this.tokenStream.LA(1);
2227
2174
  }
@@ -2230,29 +2177,29 @@ class CircuitScriptParser extends antlr.Parser {
2230
2177
  case 2:
2231
2178
  this.enterOuterAlt(localContext, 2);
2232
2179
  {
2233
- this.state = 440;
2180
+ this.state = 436;
2234
2181
  this.match(CircuitScriptParser.ID);
2235
- this.state = 441;
2182
+ this.state = 437;
2236
2183
  this.match(CircuitScriptParser.T__2);
2237
- this.state = 442;
2184
+ this.state = 438;
2238
2185
  this.value_expr();
2239
- this.state = 449;
2186
+ this.state = 445;
2240
2187
  this.errorHandler.sync(this);
2241
2188
  _la = this.tokenStream.LA(1);
2242
2189
  while (_la === 2) {
2243
2190
  {
2244
2191
  {
2245
- this.state = 443;
2192
+ this.state = 439;
2246
2193
  this.match(CircuitScriptParser.T__1);
2247
- this.state = 444;
2194
+ this.state = 440;
2248
2195
  this.match(CircuitScriptParser.ID);
2249
- this.state = 445;
2196
+ this.state = 441;
2250
2197
  this.match(CircuitScriptParser.T__2);
2251
- this.state = 446;
2198
+ this.state = 442;
2252
2199
  this.value_expr();
2253
2200
  }
2254
2201
  }
2255
- this.state = 451;
2202
+ this.state = 447;
2256
2203
  this.errorHandler.sync(this);
2257
2204
  _la = this.tokenStream.LA(1);
2258
2205
  }
@@ -2281,25 +2228,25 @@ class CircuitScriptParser extends antlr.Parser {
2281
2228
  let alternative;
2282
2229
  this.enterOuterAlt(localContext, 1);
2283
2230
  {
2284
- this.state = 454;
2231
+ this.state = 450;
2285
2232
  this.match(CircuitScriptParser.ID);
2286
- this.state = 459;
2233
+ this.state = 455;
2287
2234
  this.errorHandler.sync(this);
2288
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 42, this.context);
2235
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 40, this.context);
2289
2236
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2290
2237
  if (alternative === 1) {
2291
2238
  {
2292
2239
  {
2293
- this.state = 455;
2240
+ this.state = 451;
2294
2241
  this.match(CircuitScriptParser.T__4);
2295
- this.state = 456;
2242
+ this.state = 452;
2296
2243
  this.match(CircuitScriptParser.ID);
2297
2244
  }
2298
2245
  }
2299
2246
  }
2300
- this.state = 461;
2247
+ this.state = 457;
2301
2248
  this.errorHandler.sync(this);
2302
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 42, this.context);
2249
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 40, this.context);
2303
2250
  }
2304
2251
  }
2305
2252
  }
@@ -2322,33 +2269,33 @@ class CircuitScriptParser extends antlr.Parser {
2322
2269
  this.enterRule(localContext, 78, CircuitScriptParser.RULE_trailer_expr);
2323
2270
  let _la;
2324
2271
  try {
2325
- this.state = 469;
2272
+ this.state = 465;
2326
2273
  this.errorHandler.sync(this);
2327
2274
  switch (this.tokenStream.LA(1)) {
2328
2275
  case CircuitScriptParser.OPEN_PAREN:
2329
2276
  this.enterOuterAlt(localContext, 1);
2330
2277
  {
2331
- this.state = 462;
2278
+ this.state = 458;
2332
2279
  this.match(CircuitScriptParser.OPEN_PAREN);
2333
- this.state = 464;
2280
+ this.state = 460;
2334
2281
  this.errorHandler.sync(this);
2335
2282
  _la = this.tokenStream.LA(1);
2336
2283
  if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484736) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 1041415) !== 0)) {
2337
2284
  {
2338
- this.state = 463;
2285
+ this.state = 459;
2339
2286
  this.parameters();
2340
2287
  }
2341
2288
  }
2342
- this.state = 466;
2289
+ this.state = 462;
2343
2290
  this.match(CircuitScriptParser.CLOSE_PAREN);
2344
2291
  }
2345
2292
  break;
2346
2293
  case CircuitScriptParser.T__4:
2347
2294
  this.enterOuterAlt(localContext, 2);
2348
2295
  {
2349
- this.state = 467;
2296
+ this.state = 463;
2350
2297
  this.match(CircuitScriptParser.T__4);
2351
- this.state = 468;
2298
+ this.state = 464;
2352
2299
  this.match(CircuitScriptParser.ID);
2353
2300
  }
2354
2301
  break;
@@ -2378,18 +2325,18 @@ class CircuitScriptParser extends antlr.Parser {
2378
2325
  let alternative;
2379
2326
  this.enterOuterAlt(localContext, 1);
2380
2327
  {
2381
- this.state = 472;
2328
+ this.state = 468;
2382
2329
  this.errorHandler.sync(this);
2383
2330
  _la = this.tokenStream.LA(1);
2384
2331
  if (_la === 42 || _la === 44) {
2385
2332
  {
2386
- this.state = 471;
2333
+ this.state = 467;
2387
2334
  this.net_namespace_expr();
2388
2335
  }
2389
2336
  }
2390
- this.state = 474;
2337
+ this.state = 470;
2391
2338
  this.match(CircuitScriptParser.ID);
2392
- this.state = 476;
2339
+ this.state = 472;
2393
2340
  this.errorHandler.sync(this);
2394
2341
  alternative = 1;
2395
2342
  do {
@@ -2397,7 +2344,7 @@ class CircuitScriptParser extends antlr.Parser {
2397
2344
  case 1:
2398
2345
  {
2399
2346
  {
2400
- this.state = 475;
2347
+ this.state = 471;
2401
2348
  this.trailer_expr();
2402
2349
  }
2403
2350
  }
@@ -2405,9 +2352,9 @@ class CircuitScriptParser extends antlr.Parser {
2405
2352
  default:
2406
2353
  throw new antlr.NoViableAltException(this);
2407
2354
  }
2408
- this.state = 478;
2355
+ this.state = 474;
2409
2356
  this.errorHandler.sync(this);
2410
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 46, this.context);
2357
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 44, this.context);
2411
2358
  } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
2412
2359
  }
2413
2360
  }
@@ -2432,23 +2379,23 @@ class CircuitScriptParser extends antlr.Parser {
2432
2379
  try {
2433
2380
  this.enterOuterAlt(localContext, 1);
2434
2381
  {
2435
- this.state = 481;
2382
+ this.state = 477;
2436
2383
  this.errorHandler.sync(this);
2437
2384
  _la = this.tokenStream.LA(1);
2438
2385
  if (_la === 42) {
2439
2386
  {
2440
- this.state = 480;
2387
+ this.state = 476;
2441
2388
  this.match(CircuitScriptParser.Addition);
2442
2389
  }
2443
2390
  }
2444
- this.state = 483;
2391
+ this.state = 479;
2445
2392
  this.match(CircuitScriptParser.Divide);
2446
- this.state = 485;
2393
+ this.state = 481;
2447
2394
  this.errorHandler.sync(this);
2448
- switch (this.interpreter.adaptivePredict(this.tokenStream, 48, this.context)) {
2395
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 46, this.context)) {
2449
2396
  case 1:
2450
2397
  {
2451
- this.state = 484;
2398
+ this.state = 480;
2452
2399
  this.data_expr(0);
2453
2400
  }
2454
2401
  break;
@@ -2475,9 +2422,9 @@ class CircuitScriptParser extends antlr.Parser {
2475
2422
  try {
2476
2423
  this.enterOuterAlt(localContext, 1);
2477
2424
  {
2478
- this.state = 487;
2425
+ this.state = 483;
2479
2426
  this.match(CircuitScriptParser.Return);
2480
- this.state = 488;
2427
+ this.state = 484;
2481
2428
  this.data_expr(0);
2482
2429
  }
2483
2430
  }
@@ -2501,11 +2448,11 @@ class CircuitScriptParser extends antlr.Parser {
2501
2448
  try {
2502
2449
  this.enterOuterAlt(localContext, 1);
2503
2450
  {
2504
- this.state = 490;
2451
+ this.state = 486;
2505
2452
  this.property_key_expr();
2506
- this.state = 491;
2453
+ this.state = 487;
2507
2454
  this.match(CircuitScriptParser.T__0);
2508
- this.state = 492;
2455
+ this.state = 488;
2509
2456
  this.expressions_block();
2510
2457
  }
2511
2458
  }
@@ -2530,27 +2477,27 @@ class CircuitScriptParser extends antlr.Parser {
2530
2477
  try {
2531
2478
  this.enterOuterAlt(localContext, 1);
2532
2479
  {
2533
- this.state = 494;
2480
+ this.state = 490;
2534
2481
  this.match(CircuitScriptParser.Create);
2535
- this.state = 495;
2482
+ this.state = 491;
2536
2483
  this.match(CircuitScriptParser.Component);
2537
- this.state = 496;
2484
+ this.state = 492;
2538
2485
  this.match(CircuitScriptParser.T__0);
2539
- this.state = 497;
2486
+ this.state = 493;
2540
2487
  this.match(CircuitScriptParser.NEWLINE);
2541
- this.state = 498;
2488
+ this.state = 494;
2542
2489
  this.match(CircuitScriptParser.INDENT);
2543
- this.state = 501;
2490
+ this.state = 497;
2544
2491
  this.errorHandler.sync(this);
2545
2492
  _la = this.tokenStream.LA(1);
2546
2493
  do {
2547
2494
  {
2548
- this.state = 501;
2495
+ this.state = 497;
2549
2496
  this.errorHandler.sync(this);
2550
2497
  switch (this.tokenStream.LA(1)) {
2551
2498
  case CircuitScriptParser.NEWLINE:
2552
2499
  {
2553
- this.state = 499;
2500
+ this.state = 495;
2554
2501
  this.match(CircuitScriptParser.NEWLINE);
2555
2502
  }
2556
2503
  break;
@@ -2558,7 +2505,7 @@ class CircuitScriptParser extends antlr.Parser {
2558
2505
  case CircuitScriptParser.INTEGER_VALUE:
2559
2506
  case CircuitScriptParser.STRING_VALUE:
2560
2507
  {
2561
- this.state = 500;
2508
+ this.state = 496;
2562
2509
  this.property_expr();
2563
2510
  }
2564
2511
  break;
@@ -2566,11 +2513,11 @@ class CircuitScriptParser extends antlr.Parser {
2566
2513
  throw new antlr.NoViableAltException(this);
2567
2514
  }
2568
2515
  }
2569
- this.state = 503;
2516
+ this.state = 499;
2570
2517
  this.errorHandler.sync(this);
2571
2518
  _la = this.tokenStream.LA(1);
2572
2519
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2573
- this.state = 505;
2520
+ this.state = 501;
2574
2521
  this.match(CircuitScriptParser.DEDENT);
2575
2522
  }
2576
2523
  }
@@ -2595,21 +2542,21 @@ class CircuitScriptParser extends antlr.Parser {
2595
2542
  try {
2596
2543
  this.enterOuterAlt(localContext, 1);
2597
2544
  {
2598
- this.state = 507;
2545
+ this.state = 503;
2599
2546
  this.match(CircuitScriptParser.NEWLINE);
2600
- this.state = 508;
2547
+ this.state = 504;
2601
2548
  this.match(CircuitScriptParser.INDENT);
2602
- this.state = 511;
2549
+ this.state = 507;
2603
2550
  this.errorHandler.sync(this);
2604
2551
  _la = this.tokenStream.LA(1);
2605
2552
  do {
2606
2553
  {
2607
- this.state = 511;
2554
+ this.state = 507;
2608
2555
  this.errorHandler.sync(this);
2609
2556
  switch (this.tokenStream.LA(1)) {
2610
2557
  case CircuitScriptParser.NEWLINE:
2611
2558
  {
2612
- this.state = 509;
2559
+ this.state = 505;
2613
2560
  this.match(CircuitScriptParser.NEWLINE);
2614
2561
  }
2615
2562
  break;
@@ -2617,7 +2564,7 @@ class CircuitScriptParser extends antlr.Parser {
2617
2564
  case CircuitScriptParser.For:
2618
2565
  case CircuitScriptParser.ID:
2619
2566
  {
2620
- this.state = 510;
2567
+ this.state = 506;
2621
2568
  this.graphic_expr();
2622
2569
  }
2623
2570
  break;
@@ -2625,11 +2572,11 @@ class CircuitScriptParser extends antlr.Parser {
2625
2572
  throw new antlr.NoViableAltException(this);
2626
2573
  }
2627
2574
  }
2628
- this.state = 513;
2575
+ this.state = 509;
2629
2576
  this.errorHandler.sync(this);
2630
2577
  _la = this.tokenStream.LA(1);
2631
2578
  } while (_la === 15 || _la === 25 || _la === 56 || _la === 64);
2632
- this.state = 515;
2579
+ this.state = 511;
2633
2580
  this.match(CircuitScriptParser.DEDENT);
2634
2581
  }
2635
2582
  }
@@ -2650,16 +2597,30 @@ class CircuitScriptParser extends antlr.Parser {
2650
2597
  create_graphic_expr() {
2651
2598
  let localContext = new Create_graphic_exprContext(this.context, this.state);
2652
2599
  this.enterRule(localContext, 92, CircuitScriptParser.RULE_create_graphic_expr);
2600
+ let _la;
2653
2601
  try {
2654
2602
  this.enterOuterAlt(localContext, 1);
2655
2603
  {
2656
- this.state = 517;
2604
+ this.state = 513;
2657
2605
  this.match(CircuitScriptParser.Create);
2658
- this.state = 518;
2606
+ this.state = 514;
2659
2607
  this.match(CircuitScriptParser.Graphic);
2660
- this.state = 519;
2661
- this.match(CircuitScriptParser.T__0);
2608
+ this.state = 518;
2609
+ this.errorHandler.sync(this);
2610
+ _la = this.tokenStream.LA(1);
2611
+ if (_la === 52) {
2612
+ {
2613
+ this.state = 515;
2614
+ this.match(CircuitScriptParser.OPEN_PAREN);
2615
+ this.state = 516;
2616
+ this.match(CircuitScriptParser.ID);
2617
+ this.state = 517;
2618
+ this.match(CircuitScriptParser.CLOSE_PAREN);
2619
+ }
2620
+ }
2662
2621
  this.state = 520;
2622
+ this.match(CircuitScriptParser.T__0);
2623
+ this.state = 521;
2663
2624
  this.graphic_expressions_block();
2664
2625
  }
2665
2626
  }
@@ -2684,49 +2645,49 @@ class CircuitScriptParser extends antlr.Parser {
2684
2645
  try {
2685
2646
  this.enterOuterAlt(localContext, 1);
2686
2647
  {
2687
- this.state = 522;
2688
- this.match(CircuitScriptParser.Create);
2689
2648
  this.state = 523;
2690
- this.match(CircuitScriptParser.Module);
2649
+ this.match(CircuitScriptParser.Create);
2691
2650
  this.state = 524;
2692
- this.match(CircuitScriptParser.T__0);
2651
+ this.match(CircuitScriptParser.Module);
2693
2652
  this.state = 525;
2694
- this.match(CircuitScriptParser.NEWLINE);
2653
+ this.match(CircuitScriptParser.T__0);
2695
2654
  this.state = 526;
2655
+ this.match(CircuitScriptParser.NEWLINE);
2656
+ this.state = 527;
2696
2657
  this.match(CircuitScriptParser.INDENT);
2697
- this.state = 530;
2658
+ this.state = 531;
2698
2659
  this.errorHandler.sync(this);
2699
2660
  _la = this.tokenStream.LA(1);
2700
2661
  do {
2701
2662
  {
2702
- this.state = 530;
2663
+ this.state = 531;
2703
2664
  this.errorHandler.sync(this);
2704
- switch (this.interpreter.adaptivePredict(this.tokenStream, 53, this.context)) {
2665
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 52, this.context)) {
2705
2666
  case 1:
2706
2667
  {
2707
- this.state = 527;
2668
+ this.state = 528;
2708
2669
  this.match(CircuitScriptParser.NEWLINE);
2709
2670
  }
2710
2671
  break;
2711
2672
  case 2:
2712
2673
  {
2713
- this.state = 528;
2674
+ this.state = 529;
2714
2675
  this.property_expr();
2715
2676
  }
2716
2677
  break;
2717
2678
  case 3:
2718
2679
  {
2719
- this.state = 529;
2680
+ this.state = 530;
2720
2681
  this.property_block_expr();
2721
2682
  }
2722
2683
  break;
2723
2684
  }
2724
2685
  }
2725
- this.state = 532;
2686
+ this.state = 533;
2726
2687
  this.errorHandler.sync(this);
2727
2688
  _la = this.tokenStream.LA(1);
2728
2689
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2729
- this.state = 534;
2690
+ this.state = 535;
2730
2691
  this.match(CircuitScriptParser.DEDENT);
2731
2692
  }
2732
2693
  }
@@ -2752,21 +2713,21 @@ class CircuitScriptParser extends antlr.Parser {
2752
2713
  this.enterOuterAlt(localContext, 1);
2753
2714
  {
2754
2715
  {
2755
- this.state = 536;
2756
- this.match(CircuitScriptParser.NEWLINE);
2757
2716
  this.state = 537;
2717
+ this.match(CircuitScriptParser.NEWLINE);
2718
+ this.state = 538;
2758
2719
  this.match(CircuitScriptParser.INDENT);
2759
- this.state = 540;
2720
+ this.state = 541;
2760
2721
  this.errorHandler.sync(this);
2761
2722
  _la = this.tokenStream.LA(1);
2762
2723
  do {
2763
2724
  {
2764
- this.state = 540;
2725
+ this.state = 541;
2765
2726
  this.errorHandler.sync(this);
2766
2727
  switch (this.tokenStream.LA(1)) {
2767
2728
  case CircuitScriptParser.NEWLINE:
2768
2729
  {
2769
- this.state = 538;
2730
+ this.state = 539;
2770
2731
  this.match(CircuitScriptParser.NEWLINE);
2771
2732
  }
2772
2733
  break;
@@ -2774,7 +2735,7 @@ class CircuitScriptParser extends antlr.Parser {
2774
2735
  case CircuitScriptParser.INTEGER_VALUE:
2775
2736
  case CircuitScriptParser.STRING_VALUE:
2776
2737
  {
2777
- this.state = 539;
2738
+ this.state = 540;
2778
2739
  this.property_expr();
2779
2740
  }
2780
2741
  break;
@@ -2782,11 +2743,11 @@ class CircuitScriptParser extends antlr.Parser {
2782
2743
  throw new antlr.NoViableAltException(this);
2783
2744
  }
2784
2745
  }
2785
- this.state = 542;
2746
+ this.state = 543;
2786
2747
  this.errorHandler.sync(this);
2787
2748
  _la = this.tokenStream.LA(1);
2788
2749
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2789
- this.state = 544;
2750
+ this.state = 545;
2790
2751
  this.match(CircuitScriptParser.DEDENT);
2791
2752
  }
2792
2753
  }
@@ -2810,7 +2771,7 @@ class CircuitScriptParser extends antlr.Parser {
2810
2771
  this.enterRule(localContext, 98, CircuitScriptParser.RULE_graphic_expr);
2811
2772
  let _la;
2812
2773
  try {
2813
- this.state = 572;
2774
+ this.state = 573;
2814
2775
  this.errorHandler.sync(this);
2815
2776
  switch (this.tokenStream.LA(1)) {
2816
2777
  case CircuitScriptParser.Pin:
@@ -2818,7 +2779,7 @@ class CircuitScriptParser extends antlr.Parser {
2818
2779
  localContext = new GraphicCommandExprContext(localContext);
2819
2780
  this.enterOuterAlt(localContext, 1);
2820
2781
  {
2821
- this.state = 546;
2782
+ this.state = 547;
2822
2783
  localContext._command = this.tokenStream.LT(1);
2823
2784
  _la = this.tokenStream.LA(1);
2824
2785
  if (!(_la === 15 || _la === 56)) {
@@ -2828,37 +2789,37 @@ class CircuitScriptParser extends antlr.Parser {
2828
2789
  this.errorHandler.reportMatch(this);
2829
2790
  this.consume();
2830
2791
  }
2831
- this.state = 548;
2792
+ this.state = 549;
2832
2793
  this.errorHandler.sync(this);
2833
2794
  _la = this.tokenStream.LA(1);
2834
2795
  if (_la === 1) {
2835
2796
  {
2836
- this.state = 547;
2797
+ this.state = 548;
2837
2798
  this.match(CircuitScriptParser.T__0);
2838
2799
  }
2839
2800
  }
2840
- this.state = 556;
2801
+ this.state = 557;
2841
2802
  this.errorHandler.sync(this);
2842
- switch (this.interpreter.adaptivePredict(this.tokenStream, 58, this.context)) {
2803
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 57, this.context)) {
2843
2804
  case 1:
2844
2805
  {
2845
- this.state = 550;
2806
+ this.state = 551;
2846
2807
  this.parameters();
2847
2808
  }
2848
2809
  break;
2849
2810
  case 2:
2850
2811
  {
2851
- this.state = 551;
2852
- this.match(CircuitScriptParser.OPEN_PAREN);
2853
2812
  this.state = 552;
2854
- this.parameters();
2813
+ this.match(CircuitScriptParser.OPEN_PAREN);
2855
2814
  this.state = 553;
2815
+ this.parameters();
2816
+ this.state = 554;
2856
2817
  this.match(CircuitScriptParser.CLOSE_PAREN);
2857
2818
  }
2858
2819
  break;
2859
2820
  case 3:
2860
2821
  {
2861
- this.state = 555;
2822
+ this.state = 556;
2862
2823
  this.nested_properties_inner();
2863
2824
  }
2864
2825
  break;
@@ -2869,33 +2830,33 @@ class CircuitScriptParser extends antlr.Parser {
2869
2830
  localContext = new GraphicForExprContext(localContext);
2870
2831
  this.enterOuterAlt(localContext, 2);
2871
2832
  {
2872
- this.state = 558;
2873
- this.match(CircuitScriptParser.For);
2874
2833
  this.state = 559;
2834
+ this.match(CircuitScriptParser.For);
2835
+ this.state = 560;
2875
2836
  this.match(CircuitScriptParser.ID);
2876
- this.state = 564;
2837
+ this.state = 565;
2877
2838
  this.errorHandler.sync(this);
2878
2839
  _la = this.tokenStream.LA(1);
2879
2840
  while (_la === 2) {
2880
2841
  {
2881
2842
  {
2882
- this.state = 560;
2883
- this.match(CircuitScriptParser.T__1);
2884
2843
  this.state = 561;
2844
+ this.match(CircuitScriptParser.T__1);
2845
+ this.state = 562;
2885
2846
  this.match(CircuitScriptParser.ID);
2886
2847
  }
2887
2848
  }
2888
- this.state = 566;
2849
+ this.state = 567;
2889
2850
  this.errorHandler.sync(this);
2890
2851
  _la = this.tokenStream.LA(1);
2891
2852
  }
2892
- this.state = 567;
2893
- this.match(CircuitScriptParser.In);
2894
2853
  this.state = 568;
2895
- this.data_expr(0);
2854
+ this.match(CircuitScriptParser.In);
2896
2855
  this.state = 569;
2897
- this.match(CircuitScriptParser.T__0);
2856
+ this.data_expr(0);
2898
2857
  this.state = 570;
2858
+ this.match(CircuitScriptParser.T__0);
2859
+ this.state = 571;
2899
2860
  this.graphic_expressions_block();
2900
2861
  }
2901
2862
  break;
@@ -2923,11 +2884,11 @@ class CircuitScriptParser extends antlr.Parser {
2923
2884
  try {
2924
2885
  this.enterOuterAlt(localContext, 1);
2925
2886
  {
2926
- this.state = 574;
2927
- this.property_key_expr();
2928
2887
  this.state = 575;
2929
- this.match(CircuitScriptParser.T__0);
2888
+ this.property_key_expr();
2930
2889
  this.state = 576;
2890
+ this.match(CircuitScriptParser.T__0);
2891
+ this.state = 577;
2931
2892
  this.property_value_expr();
2932
2893
  }
2933
2894
  }
@@ -2952,7 +2913,7 @@ class CircuitScriptParser extends antlr.Parser {
2952
2913
  try {
2953
2914
  this.enterOuterAlt(localContext, 1);
2954
2915
  {
2955
- this.state = 578;
2916
+ this.state = 579;
2956
2917
  _la = this.tokenStream.LA(1);
2957
2918
  if (!(((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 19) !== 0))) {
2958
2919
  this.errorHandler.recoverInline(this);
@@ -2982,14 +2943,14 @@ class CircuitScriptParser extends antlr.Parser {
2982
2943
  this.enterRule(localContext, 104, CircuitScriptParser.RULE_property_value_expr);
2983
2944
  let _la;
2984
2945
  try {
2985
- this.state = 589;
2946
+ this.state = 590;
2986
2947
  this.errorHandler.sync(this);
2987
2948
  switch (this.tokenStream.LA(1)) {
2988
2949
  case CircuitScriptParser.NEWLINE:
2989
2950
  localContext = new Nested_propertiesContext(localContext);
2990
2951
  this.enterOuterAlt(localContext, 1);
2991
2952
  {
2992
- this.state = 580;
2953
+ this.state = 581;
2993
2954
  this.nested_properties_inner();
2994
2955
  }
2995
2956
  break;
@@ -3010,21 +2971,21 @@ class CircuitScriptParser extends antlr.Parser {
3010
2971
  localContext = new Single_line_propertyContext(localContext);
3011
2972
  this.enterOuterAlt(localContext, 2);
3012
2973
  {
3013
- this.state = 581;
2974
+ this.state = 582;
3014
2975
  this.data_expr(0);
3015
- this.state = 586;
2976
+ this.state = 587;
3016
2977
  this.errorHandler.sync(this);
3017
2978
  _la = this.tokenStream.LA(1);
3018
2979
  while (_la === 2) {
3019
2980
  {
3020
2981
  {
3021
- this.state = 582;
3022
- this.match(CircuitScriptParser.T__1);
3023
2982
  this.state = 583;
2983
+ this.match(CircuitScriptParser.T__1);
2984
+ this.state = 584;
3024
2985
  this.data_expr(0);
3025
2986
  }
3026
2987
  }
3027
- this.state = 588;
2988
+ this.state = 589;
3028
2989
  this.errorHandler.sync(this);
3029
2990
  _la = this.tokenStream.LA(1);
3030
2991
  }
@@ -3052,27 +3013,27 @@ class CircuitScriptParser extends antlr.Parser {
3052
3013
  let localContext = new Wire_atom_exprContext(this.context, this.state);
3053
3014
  this.enterRule(localContext, 106, CircuitScriptParser.RULE_wire_atom_expr);
3054
3015
  try {
3055
- this.state = 597;
3016
+ this.state = 598;
3056
3017
  this.errorHandler.sync(this);
3057
- switch (this.interpreter.adaptivePredict(this.tokenStream, 64, this.context)) {
3018
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 63, this.context)) {
3058
3019
  case 1:
3059
3020
  localContext = new Wire_expr_direction_valueContext(localContext);
3060
3021
  this.enterOuterAlt(localContext, 1);
3061
3022
  {
3062
- this.state = 591;
3023
+ this.state = 592;
3063
3024
  this.match(CircuitScriptParser.ID);
3064
- this.state = 594;
3025
+ this.state = 595;
3065
3026
  this.errorHandler.sync(this);
3066
- switch (this.interpreter.adaptivePredict(this.tokenStream, 63, this.context)) {
3027
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 62, this.context)) {
3067
3028
  case 1:
3068
3029
  {
3069
- this.state = 592;
3030
+ this.state = 593;
3070
3031
  this.match(CircuitScriptParser.INTEGER_VALUE);
3071
3032
  }
3072
3033
  break;
3073
3034
  case 2:
3074
3035
  {
3075
- this.state = 593;
3036
+ this.state = 594;
3076
3037
  this.data_expr(0);
3077
3038
  }
3078
3039
  break;
@@ -3083,7 +3044,7 @@ class CircuitScriptParser extends antlr.Parser {
3083
3044
  localContext = new Wire_expr_direction_onlyContext(localContext);
3084
3045
  this.enterOuterAlt(localContext, 2);
3085
3046
  {
3086
- this.state = 596;
3047
+ this.state = 597;
3087
3048
  this.match(CircuitScriptParser.ID);
3088
3049
  }
3089
3050
  break;
@@ -3110,23 +3071,23 @@ class CircuitScriptParser extends antlr.Parser {
3110
3071
  let alternative;
3111
3072
  this.enterOuterAlt(localContext, 1);
3112
3073
  {
3113
- this.state = 599;
3074
+ this.state = 600;
3114
3075
  this.match(CircuitScriptParser.Wire);
3115
- this.state = 603;
3076
+ this.state = 604;
3116
3077
  this.errorHandler.sync(this);
3117
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 65, this.context);
3078
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 64, this.context);
3118
3079
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3119
3080
  if (alternative === 1) {
3120
3081
  {
3121
3082
  {
3122
- this.state = 600;
3083
+ this.state = 601;
3123
3084
  this.wire_atom_expr();
3124
3085
  }
3125
3086
  }
3126
3087
  }
3127
- this.state = 605;
3088
+ this.state = 606;
3128
3089
  this.errorHandler.sync(this);
3129
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 65, this.context);
3090
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 64, this.context);
3130
3091
  }
3131
3092
  }
3132
3093
  }
@@ -3151,39 +3112,39 @@ class CircuitScriptParser extends antlr.Parser {
3151
3112
  try {
3152
3113
  this.enterOuterAlt(localContext, 1);
3153
3114
  {
3154
- this.state = 606;
3115
+ this.state = 607;
3155
3116
  this.match(CircuitScriptParser.T__5);
3156
- this.state = 617;
3117
+ this.state = 618;
3157
3118
  this.errorHandler.sync(this);
3158
3119
  _la = this.tokenStream.LA(1);
3159
3120
  while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484736) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 1041415) !== 0)) {
3160
3121
  {
3161
3122
  {
3162
- this.state = 607;
3123
+ this.state = 608;
3163
3124
  this.data_expr(0);
3164
- this.state = 612;
3125
+ this.state = 613;
3165
3126
  this.errorHandler.sync(this);
3166
3127
  _la = this.tokenStream.LA(1);
3167
3128
  while (_la === 2) {
3168
3129
  {
3169
3130
  {
3170
- this.state = 608;
3171
- this.match(CircuitScriptParser.T__1);
3172
3131
  this.state = 609;
3132
+ this.match(CircuitScriptParser.T__1);
3133
+ this.state = 610;
3173
3134
  this.data_expr(0);
3174
3135
  }
3175
3136
  }
3176
- this.state = 614;
3137
+ this.state = 615;
3177
3138
  this.errorHandler.sync(this);
3178
3139
  _la = this.tokenStream.LA(1);
3179
3140
  }
3180
3141
  }
3181
3142
  }
3182
- this.state = 619;
3143
+ this.state = 620;
3183
3144
  this.errorHandler.sync(this);
3184
3145
  _la = this.tokenStream.LA(1);
3185
3146
  }
3186
- this.state = 620;
3147
+ this.state = 621;
3187
3148
  this.match(CircuitScriptParser.T__6);
3188
3149
  }
3189
3150
  }
@@ -3207,9 +3168,9 @@ class CircuitScriptParser extends antlr.Parser {
3207
3168
  try {
3208
3169
  this.enterOuterAlt(localContext, 1);
3209
3170
  {
3210
- this.state = 622;
3211
- this.match(CircuitScriptParser.Point);
3212
3171
  this.state = 623;
3172
+ this.match(CircuitScriptParser.Point);
3173
+ this.state = 624;
3213
3174
  this.match(CircuitScriptParser.ID);
3214
3175
  }
3215
3176
  }
@@ -3233,9 +3194,9 @@ class CircuitScriptParser extends antlr.Parser {
3233
3194
  try {
3234
3195
  this.enterOuterAlt(localContext, 1);
3235
3196
  {
3236
- this.state = 625;
3237
- this.match(CircuitScriptParser.Import);
3238
3197
  this.state = 626;
3198
+ this.match(CircuitScriptParser.Import);
3199
+ this.state = 627;
3239
3200
  this.match(CircuitScriptParser.ID);
3240
3201
  }
3241
3202
  }
@@ -3260,7 +3221,7 @@ class CircuitScriptParser extends antlr.Parser {
3260
3221
  try {
3261
3222
  this.enterOuterAlt(localContext, 1);
3262
3223
  {
3263
- this.state = 628;
3224
+ this.state = 629;
3264
3225
  _la = this.tokenStream.LA(1);
3265
3226
  if (!(_la === 32 || _la === 33)) {
3266
3227
  this.errorHandler.recoverInline(this);
@@ -3269,9 +3230,9 @@ class CircuitScriptParser extends antlr.Parser {
3269
3230
  this.errorHandler.reportMatch(this);
3270
3231
  this.consume();
3271
3232
  }
3272
- this.state = 629;
3273
- this.match(CircuitScriptParser.T__0);
3274
3233
  this.state = 630;
3234
+ this.match(CircuitScriptParser.T__0);
3235
+ this.state = 631;
3275
3236
  this.expressions_block();
3276
3237
  }
3277
3238
  }
@@ -3297,36 +3258,36 @@ class CircuitScriptParser extends antlr.Parser {
3297
3258
  let alternative;
3298
3259
  this.enterOuterAlt(localContext, 1);
3299
3260
  {
3300
- this.state = 632;
3301
- this.match(CircuitScriptParser.If);
3302
3261
  this.state = 633;
3303
- this.data_expr(0);
3262
+ this.match(CircuitScriptParser.If);
3304
3263
  this.state = 634;
3305
- this.match(CircuitScriptParser.T__0);
3264
+ this.data_expr(0);
3306
3265
  this.state = 635;
3266
+ this.match(CircuitScriptParser.T__0);
3267
+ this.state = 636;
3307
3268
  this.expressions_block();
3308
- this.state = 639;
3269
+ this.state = 640;
3309
3270
  this.errorHandler.sync(this);
3310
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 68, this.context);
3271
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 67, this.context);
3311
3272
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3312
3273
  if (alternative === 1) {
3313
3274
  {
3314
3275
  {
3315
- this.state = 636;
3276
+ this.state = 637;
3316
3277
  this.if_inner_expr();
3317
3278
  }
3318
3279
  }
3319
3280
  }
3320
- this.state = 641;
3281
+ this.state = 642;
3321
3282
  this.errorHandler.sync(this);
3322
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 68, this.context);
3283
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 67, this.context);
3323
3284
  }
3324
- this.state = 643;
3285
+ this.state = 644;
3325
3286
  this.errorHandler.sync(this);
3326
3287
  _la = this.tokenStream.LA(1);
3327
3288
  if (_la === 30) {
3328
3289
  {
3329
- this.state = 642;
3290
+ this.state = 643;
3330
3291
  this.else_expr();
3331
3292
  }
3332
3293
  }
@@ -3352,15 +3313,15 @@ class CircuitScriptParser extends antlr.Parser {
3352
3313
  try {
3353
3314
  this.enterOuterAlt(localContext, 1);
3354
3315
  {
3355
- this.state = 645;
3356
- this.match(CircuitScriptParser.Else);
3357
3316
  this.state = 646;
3358
- this.match(CircuitScriptParser.If);
3317
+ this.match(CircuitScriptParser.Else);
3359
3318
  this.state = 647;
3360
- this.data_expr(0);
3319
+ this.match(CircuitScriptParser.If);
3361
3320
  this.state = 648;
3362
- this.match(CircuitScriptParser.T__0);
3321
+ this.data_expr(0);
3363
3322
  this.state = 649;
3323
+ this.match(CircuitScriptParser.T__0);
3324
+ this.state = 650;
3364
3325
  this.expressions_block();
3365
3326
  }
3366
3327
  }
@@ -3384,11 +3345,11 @@ class CircuitScriptParser extends antlr.Parser {
3384
3345
  try {
3385
3346
  this.enterOuterAlt(localContext, 1);
3386
3347
  {
3387
- this.state = 651;
3388
- this.match(CircuitScriptParser.Else);
3389
3348
  this.state = 652;
3390
- this.match(CircuitScriptParser.T__0);
3349
+ this.match(CircuitScriptParser.Else);
3391
3350
  this.state = 653;
3351
+ this.match(CircuitScriptParser.T__0);
3352
+ this.state = 654;
3392
3353
  this.expressions_block();
3393
3354
  }
3394
3355
  }
@@ -3412,13 +3373,13 @@ class CircuitScriptParser extends antlr.Parser {
3412
3373
  try {
3413
3374
  this.enterOuterAlt(localContext, 1);
3414
3375
  {
3415
- this.state = 655;
3416
- this.match(CircuitScriptParser.While);
3417
3376
  this.state = 656;
3418
- this.data_expr(0);
3377
+ this.match(CircuitScriptParser.While);
3419
3378
  this.state = 657;
3420
- this.match(CircuitScriptParser.T__0);
3379
+ this.data_expr(0);
3421
3380
  this.state = 658;
3381
+ this.match(CircuitScriptParser.T__0);
3382
+ this.state = 659;
3422
3383
  this.expressions_block();
3423
3384
  }
3424
3385
  }
@@ -3443,33 +3404,33 @@ class CircuitScriptParser extends antlr.Parser {
3443
3404
  try {
3444
3405
  this.enterOuterAlt(localContext, 1);
3445
3406
  {
3446
- this.state = 660;
3447
- this.match(CircuitScriptParser.For);
3448
3407
  this.state = 661;
3408
+ this.match(CircuitScriptParser.For);
3409
+ this.state = 662;
3449
3410
  this.match(CircuitScriptParser.ID);
3450
- this.state = 666;
3411
+ this.state = 667;
3451
3412
  this.errorHandler.sync(this);
3452
3413
  _la = this.tokenStream.LA(1);
3453
3414
  while (_la === 2) {
3454
3415
  {
3455
3416
  {
3456
- this.state = 662;
3457
- this.match(CircuitScriptParser.T__1);
3458
3417
  this.state = 663;
3418
+ this.match(CircuitScriptParser.T__1);
3419
+ this.state = 664;
3459
3420
  this.match(CircuitScriptParser.ID);
3460
3421
  }
3461
3422
  }
3462
- this.state = 668;
3423
+ this.state = 669;
3463
3424
  this.errorHandler.sync(this);
3464
3425
  _la = this.tokenStream.LA(1);
3465
3426
  }
3466
- this.state = 669;
3467
- this.match(CircuitScriptParser.In);
3468
3427
  this.state = 670;
3469
- this.data_expr(0);
3428
+ this.match(CircuitScriptParser.In);
3470
3429
  this.state = 671;
3471
- this.match(CircuitScriptParser.T__0);
3430
+ this.data_expr(0);
3472
3431
  this.state = 672;
3432
+ this.match(CircuitScriptParser.T__0);
3433
+ this.state = 673;
3473
3434
  this.expressions_block();
3474
3435
  }
3475
3436
  }
@@ -3693,7 +3654,7 @@ CircuitScriptParser.ruleNames = [
3693
3654
  "for_expr",
3694
3655
  ];
3695
3656
  CircuitScriptParser._serializedATN = [
3696
- 4, 1, 67, 675, 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,
3657
+ 4, 1, 67, 676, 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,
3697
3658
  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,
3698
3659
  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,
3699
3660
  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,
@@ -3709,69 +3670,69 @@ CircuitScriptParser._serializedATN = [
3709
3670
  12, 3, 173, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 4, 5, 186, 8, 5, 11,
3710
3671
  5, 12, 5, 187, 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,
3711
3672
  8, 203, 8, 8, 1, 9, 1, 9, 3, 9, 207, 8, 9, 1, 9, 5, 9, 210, 8, 9, 10, 9, 12, 9, 213, 9, 9,
3712
- 1, 9, 3, 9, 216, 8, 9, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 3, 11, 223, 8, 11, 1, 12, 1, 12,
3713
- 1, 13, 1, 13, 1, 13, 3, 13, 230, 8, 13, 1, 14, 1, 14, 1, 14, 1, 14, 5, 14, 236, 8, 14, 10,
3714
- 14, 12, 14, 239, 9, 14, 1, 14, 3, 14, 242, 8, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1,
3715
- 15, 5, 15, 250, 8, 15, 10, 15, 12, 15, 253, 9, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 4,
3716
- 15, 260, 8, 15, 11, 15, 12, 15, 261, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 5,
3717
- 16, 271, 8, 16, 10, 16, 12, 16, 274, 9, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1,
3718
- 18, 1, 18, 4, 18, 284, 8, 18, 11, 18, 12, 18, 285, 1, 18, 1, 18, 1, 19, 1, 19, 3, 19, 292,
3719
- 8, 19, 1, 20, 1, 20, 1, 20, 1, 20, 3, 20, 298, 8, 20, 1, 21, 1, 21, 3, 21, 302, 8, 21, 1,
3720
- 22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1,
3721
- 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 5, 28, 325, 8, 28, 10, 28, 12, 28,
3722
- 328, 9, 28, 1, 28, 1, 28, 5, 28, 332, 8, 28, 10, 28, 12, 28, 335, 9, 28, 1, 28, 1, 28,
3723
- 1, 28, 5, 28, 340, 8, 28, 10, 28, 12, 28, 343, 9, 28, 3, 28, 345, 8, 28, 1, 29, 1, 29,
3724
- 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31,
3725
- 1, 31, 3, 31, 363, 8, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31,
3726
- 373, 8, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31,
3727
- 1, 31, 1, 31, 5, 31, 388, 8, 31, 10, 31, 12, 31, 391, 9, 31, 1, 32, 1, 32, 1, 33, 1, 33,
3728
- 1, 34, 3, 34, 398, 8, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 406, 8, 35, 1,
3729
- 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 4, 35, 414, 8, 35, 11, 35, 12, 35, 415, 1, 35, 1,
3730
- 35, 1, 36, 1, 36, 3, 36, 422, 8, 36, 1, 37, 1, 37, 1, 37, 5, 37, 427, 8, 37, 10, 37, 12,
3731
- 37, 430, 9, 37, 1, 37, 1, 37, 1, 37, 1, 37, 5, 37, 436, 8, 37, 10, 37, 12, 37, 439, 9,
3732
- 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 5, 37, 448, 8, 37, 10, 37, 12, 37,
3733
- 451, 9, 37, 3, 37, 453, 8, 37, 1, 38, 1, 38, 1, 38, 5, 38, 458, 8, 38, 10, 38, 12, 38,
3734
- 461, 9, 38, 1, 39, 1, 39, 3, 39, 465, 8, 39, 1, 39, 1, 39, 1, 39, 3, 39, 470, 8, 39, 1,
3735
- 40, 3, 40, 473, 8, 40, 1, 40, 1, 40, 4, 40, 477, 8, 40, 11, 40, 12, 40, 478, 1, 41, 3,
3736
- 41, 482, 8, 41, 1, 41, 1, 41, 3, 41, 486, 8, 41, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43,
3737
- 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 4, 44, 502, 8, 44, 11, 44, 12, 44,
3738
- 503, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 4, 45, 512, 8, 45, 11, 45, 12, 45, 513,
3739
- 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47,
3740
- 1, 47, 1, 47, 4, 47, 531, 8, 47, 11, 47, 12, 47, 532, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48,
3741
- 1, 48, 4, 48, 541, 8, 48, 11, 48, 12, 48, 542, 1, 48, 1, 48, 1, 49, 1, 49, 3, 49, 549,
3742
- 8, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 3, 49, 557, 8, 49, 1, 49, 1, 49, 1, 49,
3743
- 1, 49, 5, 49, 563, 8, 49, 10, 49, 12, 49, 566, 9, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49,
3744
- 3, 49, 573, 8, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52,
3745
- 5, 52, 585, 8, 52, 10, 52, 12, 52, 588, 9, 52, 3, 52, 590, 8, 52, 1, 53, 1, 53, 1, 53,
3746
- 3, 53, 595, 8, 53, 1, 53, 3, 53, 598, 8, 53, 1, 54, 1, 54, 5, 54, 602, 8, 54, 10, 54, 12,
3747
- 54, 605, 9, 54, 1, 55, 1, 55, 1, 55, 1, 55, 5, 55, 611, 8, 55, 10, 55, 12, 55, 614, 9,
3748
- 55, 5, 55, 616, 8, 55, 10, 55, 12, 55, 619, 9, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1,
3749
- 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 5, 59, 638,
3750
- 8, 59, 10, 59, 12, 59, 641, 9, 59, 1, 59, 3, 59, 644, 8, 59, 1, 60, 1, 60, 1, 60, 1, 60,
3673
+ 1, 9, 3, 9, 216, 8, 9, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 3, 11, 224, 8, 11, 1, 12,
3674
+ 1, 12, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 5, 14, 235, 8, 14, 10, 14, 12, 14,
3675
+ 238, 9, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 5, 15, 246, 8, 15, 10, 15, 12, 15,
3676
+ 249, 9, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 4, 15, 256, 8, 15, 11, 15, 12, 15, 257,
3677
+ 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 267, 8, 16, 10, 16, 12, 16, 270,
3678
+ 9, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 4, 18, 280, 8, 18, 11, 18,
3679
+ 12, 18, 281, 1, 18, 1, 18, 1, 19, 1, 19, 3, 19, 288, 8, 19, 1, 20, 1, 20, 1, 20, 1, 20,
3680
+ 3, 20, 294, 8, 20, 1, 21, 1, 21, 3, 21, 298, 8, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24, 1,
3681
+ 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1,
3682
+ 28, 1, 28, 1, 28, 5, 28, 321, 8, 28, 10, 28, 12, 28, 324, 9, 28, 1, 28, 1, 28, 5, 28, 328,
3683
+ 8, 28, 10, 28, 12, 28, 331, 9, 28, 1, 28, 1, 28, 1, 28, 5, 28, 336, 8, 28, 10, 28, 12,
3684
+ 28, 339, 9, 28, 3, 28, 341, 8, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30,
3685
+ 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 359, 8, 31, 1, 31, 1, 31,
3686
+ 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 369, 8, 31, 1, 31, 1, 31, 1, 31, 1, 31,
3687
+ 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 5, 31, 384, 8, 31, 10, 31,
3688
+ 12, 31, 387, 9, 31, 1, 32, 1, 32, 1, 33, 1, 33, 1, 34, 3, 34, 394, 8, 34, 1, 34, 1, 34,
3689
+ 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 402, 8, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35,
3690
+ 4, 35, 410, 8, 35, 11, 35, 12, 35, 411, 1, 35, 1, 35, 1, 36, 1, 36, 3, 36, 418, 8, 36,
3691
+ 1, 37, 1, 37, 1, 37, 5, 37, 423, 8, 37, 10, 37, 12, 37, 426, 9, 37, 1, 37, 1, 37, 1, 37,
3692
+ 1, 37, 5, 37, 432, 8, 37, 10, 37, 12, 37, 435, 9, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37,
3693
+ 1, 37, 1, 37, 5, 37, 444, 8, 37, 10, 37, 12, 37, 447, 9, 37, 3, 37, 449, 8, 37, 1, 38,
3694
+ 1, 38, 1, 38, 5, 38, 454, 8, 38, 10, 38, 12, 38, 457, 9, 38, 1, 39, 1, 39, 3, 39, 461,
3695
+ 8, 39, 1, 39, 1, 39, 1, 39, 3, 39, 466, 8, 39, 1, 40, 3, 40, 469, 8, 40, 1, 40, 1, 40, 4,
3696
+ 40, 473, 8, 40, 11, 40, 12, 40, 474, 1, 41, 3, 41, 478, 8, 41, 1, 41, 1, 41, 3, 41, 482,
3697
+ 8, 41, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44,
3698
+ 1, 44, 1, 44, 4, 44, 498, 8, 44, 11, 44, 12, 44, 499, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45,
3699
+ 1, 45, 4, 45, 508, 8, 45, 11, 45, 12, 45, 509, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46,
3700
+ 1, 46, 3, 46, 519, 8, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47,
3701
+ 1, 47, 1, 47, 4, 47, 532, 8, 47, 11, 47, 12, 47, 533, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48,
3702
+ 1, 48, 4, 48, 542, 8, 48, 11, 48, 12, 48, 543, 1, 48, 1, 48, 1, 49, 1, 49, 3, 49, 550,
3703
+ 8, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 3, 49, 558, 8, 49, 1, 49, 1, 49, 1, 49,
3704
+ 1, 49, 5, 49, 564, 8, 49, 10, 49, 12, 49, 567, 9, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49,
3705
+ 3, 49, 574, 8, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52,
3706
+ 5, 52, 586, 8, 52, 10, 52, 12, 52, 589, 9, 52, 3, 52, 591, 8, 52, 1, 53, 1, 53, 1, 53,
3707
+ 3, 53, 596, 8, 53, 1, 53, 3, 53, 599, 8, 53, 1, 54, 1, 54, 5, 54, 603, 8, 54, 10, 54, 12,
3708
+ 54, 606, 9, 54, 1, 55, 1, 55, 1, 55, 1, 55, 5, 55, 612, 8, 55, 10, 55, 12, 55, 615, 9,
3709
+ 55, 5, 55, 617, 8, 55, 10, 55, 12, 55, 620, 9, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1,
3710
+ 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 5, 59, 639,
3711
+ 8, 59, 10, 59, 12, 59, 642, 9, 59, 1, 59, 3, 59, 645, 8, 59, 1, 60, 1, 60, 1, 60, 1, 60,
3751
3712
  1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63,
3752
- 1, 63, 1, 63, 5, 63, 665, 8, 63, 10, 63, 12, 63, 668, 9, 63, 1, 63, 1, 63, 1, 63, 1, 63,
3713
+ 1, 63, 1, 63, 5, 63, 666, 8, 63, 10, 63, 12, 63, 669, 9, 63, 1, 63, 1, 63, 1, 63, 1, 63,
3753
3714
  1, 63, 1, 63, 0, 1, 62, 64, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32,
3754
3715
  34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76,
3755
3716
  78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114,
3756
3717
  116, 118, 120, 122, 124, 126, 0, 14, 2, 0, 9, 9, 19, 21, 1, 0, 56, 57, 2, 0, 57, 57, 60,
3757
3718
  60, 2, 0, 54, 54, 57, 57, 1, 0, 47, 51, 1, 0, 44, 46, 1, 0, 42, 43, 1, 0, 40, 41, 1, 0, 34,
3758
3719
  39, 2, 0, 31, 31, 43, 43, 2, 0, 55, 55, 57, 61, 2, 0, 15, 15, 56, 56, 2, 0, 56, 57, 60,
3759
- 60, 1, 0, 32, 33, 711, 0, 130, 1, 0, 0, 0, 2, 158, 1, 0, 0, 0, 4, 160, 1, 0, 0, 0, 6, 171,
3720
+ 60, 1, 0, 32, 33, 712, 0, 130, 1, 0, 0, 0, 2, 158, 1, 0, 0, 0, 4, 160, 1, 0, 0, 0, 6, 171,
3760
3721
  1, 0, 0, 0, 8, 175, 1, 0, 0, 0, 10, 179, 1, 0, 0, 0, 12, 191, 1, 0, 0, 0, 14, 195, 1, 0, 0,
3761
- 0, 16, 198, 1, 0, 0, 0, 18, 206, 1, 0, 0, 0, 20, 217, 1, 0, 0, 0, 22, 222, 1, 0, 0, 0, 24,
3762
- 224, 1, 0, 0, 0, 26, 226, 1, 0, 0, 0, 28, 231, 1, 0, 0, 0, 30, 243, 1, 0, 0, 0, 32, 265,
3763
- 1, 0, 0, 0, 34, 275, 1, 0, 0, 0, 36, 277, 1, 0, 0, 0, 38, 291, 1, 0, 0, 0, 40, 293, 1, 0,
3764
- 0, 0, 42, 301, 1, 0, 0, 0, 44, 303, 1, 0, 0, 0, 46, 305, 1, 0, 0, 0, 48, 307, 1, 0, 0, 0,
3765
- 50, 309, 1, 0, 0, 0, 52, 313, 1, 0, 0, 0, 54, 317, 1, 0, 0, 0, 56, 344, 1, 0, 0, 0, 58, 346,
3766
- 1, 0, 0, 0, 60, 350, 1, 0, 0, 0, 62, 372, 1, 0, 0, 0, 64, 392, 1, 0, 0, 0, 66, 394, 1, 0,
3767
- 0, 0, 68, 397, 1, 0, 0, 0, 70, 401, 1, 0, 0, 0, 72, 421, 1, 0, 0, 0, 74, 452, 1, 0, 0, 0,
3768
- 76, 454, 1, 0, 0, 0, 78, 469, 1, 0, 0, 0, 80, 472, 1, 0, 0, 0, 82, 481, 1, 0, 0, 0, 84, 487,
3769
- 1, 0, 0, 0, 86, 490, 1, 0, 0, 0, 88, 494, 1, 0, 0, 0, 90, 507, 1, 0, 0, 0, 92, 517, 1, 0,
3770
- 0, 0, 94, 522, 1, 0, 0, 0, 96, 536, 1, 0, 0, 0, 98, 572, 1, 0, 0, 0, 100, 574, 1, 0, 0, 0,
3771
- 102, 578, 1, 0, 0, 0, 104, 589, 1, 0, 0, 0, 106, 597, 1, 0, 0, 0, 108, 599, 1, 0, 0, 0,
3772
- 110, 606, 1, 0, 0, 0, 112, 622, 1, 0, 0, 0, 114, 625, 1, 0, 0, 0, 116, 628, 1, 0, 0, 0,
3773
- 118, 632, 1, 0, 0, 0, 120, 645, 1, 0, 0, 0, 122, 651, 1, 0, 0, 0, 124, 655, 1, 0, 0, 0,
3774
- 126, 660, 1, 0, 0, 0, 128, 131, 3, 2, 1, 0, 129, 131, 5, 64, 0, 0, 130, 128, 1, 0, 0, 0,
3722
+ 0, 16, 198, 1, 0, 0, 0, 18, 206, 1, 0, 0, 0, 20, 217, 1, 0, 0, 0, 22, 223, 1, 0, 0, 0, 24,
3723
+ 225, 1, 0, 0, 0, 26, 227, 1, 0, 0, 0, 28, 230, 1, 0, 0, 0, 30, 239, 1, 0, 0, 0, 32, 261,
3724
+ 1, 0, 0, 0, 34, 271, 1, 0, 0, 0, 36, 273, 1, 0, 0, 0, 38, 287, 1, 0, 0, 0, 40, 289, 1, 0,
3725
+ 0, 0, 42, 297, 1, 0, 0, 0, 44, 299, 1, 0, 0, 0, 46, 301, 1, 0, 0, 0, 48, 303, 1, 0, 0, 0,
3726
+ 50, 305, 1, 0, 0, 0, 52, 309, 1, 0, 0, 0, 54, 313, 1, 0, 0, 0, 56, 340, 1, 0, 0, 0, 58, 342,
3727
+ 1, 0, 0, 0, 60, 346, 1, 0, 0, 0, 62, 368, 1, 0, 0, 0, 64, 388, 1, 0, 0, 0, 66, 390, 1, 0,
3728
+ 0, 0, 68, 393, 1, 0, 0, 0, 70, 397, 1, 0, 0, 0, 72, 417, 1, 0, 0, 0, 74, 448, 1, 0, 0, 0,
3729
+ 76, 450, 1, 0, 0, 0, 78, 465, 1, 0, 0, 0, 80, 468, 1, 0, 0, 0, 82, 477, 1, 0, 0, 0, 84, 483,
3730
+ 1, 0, 0, 0, 86, 486, 1, 0, 0, 0, 88, 490, 1, 0, 0, 0, 90, 503, 1, 0, 0, 0, 92, 513, 1, 0,
3731
+ 0, 0, 94, 523, 1, 0, 0, 0, 96, 537, 1, 0, 0, 0, 98, 573, 1, 0, 0, 0, 100, 575, 1, 0, 0, 0,
3732
+ 102, 579, 1, 0, 0, 0, 104, 590, 1, 0, 0, 0, 106, 598, 1, 0, 0, 0, 108, 600, 1, 0, 0, 0,
3733
+ 110, 607, 1, 0, 0, 0, 112, 623, 1, 0, 0, 0, 114, 626, 1, 0, 0, 0, 116, 629, 1, 0, 0, 0,
3734
+ 118, 633, 1, 0, 0, 0, 120, 646, 1, 0, 0, 0, 122, 652, 1, 0, 0, 0, 124, 656, 1, 0, 0, 0,
3735
+ 126, 661, 1, 0, 0, 0, 128, 131, 3, 2, 1, 0, 129, 131, 5, 64, 0, 0, 130, 128, 1, 0, 0, 0,
3775
3736
  130, 129, 1, 0, 0, 0, 131, 132, 1, 0, 0, 0, 132, 130, 1, 0, 0, 0, 132, 133, 1, 0, 0, 0,
3776
3737
  133, 134, 1, 0, 0, 0, 134, 135, 5, 0, 0, 1, 135, 1, 1, 0, 0, 0, 136, 159, 3, 20, 10, 0,
3777
3738
  137, 159, 3, 28, 14, 0, 138, 159, 3, 26, 13, 0, 139, 159, 3, 50, 25, 0, 140, 159, 3,
@@ -3802,144 +3763,144 @@ CircuitScriptParser._serializedATN = [
3802
3763
  1, 0, 0, 0, 207, 211, 1, 0, 0, 0, 208, 210, 3, 16, 8, 0, 209, 208, 1, 0, 0, 0, 210, 213,
3803
3764
  1, 0, 0, 0, 211, 209, 1, 0, 0, 0, 211, 212, 1, 0, 0, 0, 212, 215, 1, 0, 0, 0, 213, 211,
3804
3765
  1, 0, 0, 0, 214, 216, 3, 14, 7, 0, 215, 214, 1, 0, 0, 0, 215, 216, 1, 0, 0, 0, 216, 19,
3805
- 1, 0, 0, 0, 217, 218, 5, 16, 0, 0, 218, 219, 3, 18, 9, 0, 219, 21, 1, 0, 0, 0, 220, 223,
3806
- 3, 18, 9, 0, 221, 223, 3, 14, 7, 0, 222, 220, 1, 0, 0, 0, 222, 221, 1, 0, 0, 0, 223, 23,
3807
- 1, 0, 0, 0, 224, 225, 7, 2, 0, 0, 225, 25, 1, 0, 0, 0, 226, 229, 5, 17, 0, 0, 227, 230,
3808
- 3, 22, 11, 0, 228, 230, 5, 19, 0, 0, 229, 227, 1, 0, 0, 0, 229, 228, 1, 0, 0, 0, 230, 27,
3809
- 1, 0, 0, 0, 231, 241, 5, 18, 0, 0, 232, 237, 3, 22, 11, 0, 233, 234, 5, 2, 0, 0, 234, 236,
3810
- 3, 22, 11, 0, 235, 233, 1, 0, 0, 0, 236, 239, 1, 0, 0, 0, 237, 235, 1, 0, 0, 0, 237, 238,
3811
- 1, 0, 0, 0, 238, 242, 1, 0, 0, 0, 239, 237, 1, 0, 0, 0, 240, 242, 5, 19, 0, 0, 241, 232,
3812
- 1, 0, 0, 0, 241, 240, 1, 0, 0, 0, 242, 29, 1, 0, 0, 0, 243, 244, 5, 17, 0, 0, 244, 245,
3813
- 3, 22, 11, 0, 245, 246, 5, 18, 0, 0, 246, 251, 3, 22, 11, 0, 247, 248, 5, 2, 0, 0, 248,
3814
- 250, 3, 22, 11, 0, 249, 247, 1, 0, 0, 0, 250, 253, 1, 0, 0, 0, 251, 249, 1, 0, 0, 0, 251,
3815
- 252, 1, 0, 0, 0, 252, 254, 1, 0, 0, 0, 253, 251, 1, 0, 0, 0, 254, 255, 5, 1, 0, 0, 255,
3816
- 256, 5, 64, 0, 0, 256, 259, 5, 66, 0, 0, 257, 260, 5, 64, 0, 0, 258, 260, 3, 32, 16, 0,
3817
- 259, 257, 1, 0, 0, 0, 259, 258, 1, 0, 0, 0, 260, 261, 1, 0, 0, 0, 261, 259, 1, 0, 0, 0,
3818
- 261, 262, 1, 0, 0, 0, 262, 263, 1, 0, 0, 0, 263, 264, 5, 67, 0, 0, 264, 31, 1, 0, 0, 0,
3819
- 265, 266, 3, 24, 12, 0, 266, 267, 5, 1, 0, 0, 267, 272, 3, 34, 17, 0, 268, 269, 5, 2,
3820
- 0, 0, 269, 271, 3, 34, 17, 0, 270, 268, 1, 0, 0, 0, 271, 274, 1, 0, 0, 0, 272, 270, 1,
3821
- 0, 0, 0, 272, 273, 1, 0, 0, 0, 273, 33, 1, 0, 0, 0, 274, 272, 1, 0, 0, 0, 275, 276, 7, 3,
3822
- 0, 0, 276, 35, 1, 0, 0, 0, 277, 278, 3, 26, 13, 0, 278, 279, 5, 1, 0, 0, 279, 280, 5, 64,
3823
- 0, 0, 280, 283, 5, 66, 0, 0, 281, 284, 5, 64, 0, 0, 282, 284, 3, 38, 19, 0, 283, 281,
3824
- 1, 0, 0, 0, 283, 282, 1, 0, 0, 0, 284, 285, 1, 0, 0, 0, 285, 283, 1, 0, 0, 0, 285, 286,
3825
- 1, 0, 0, 0, 286, 287, 1, 0, 0, 0, 287, 288, 5, 67, 0, 0, 288, 37, 1, 0, 0, 0, 289, 292,
3826
- 3, 2, 1, 0, 290, 292, 3, 40, 20, 0, 291, 289, 1, 0, 0, 0, 291, 290, 1, 0, 0, 0, 292, 39,
3827
- 1, 0, 0, 0, 293, 294, 3, 24, 12, 0, 294, 297, 5, 1, 0, 0, 295, 298, 3, 42, 21, 0, 296,
3828
- 298, 3, 44, 22, 0, 297, 295, 1, 0, 0, 0, 297, 296, 1, 0, 0, 0, 298, 41, 1, 0, 0, 0, 299,
3829
- 302, 3, 2, 1, 0, 300, 302, 5, 54, 0, 0, 301, 299, 1, 0, 0, 0, 301, 300, 1, 0, 0, 0, 302,
3830
- 43, 1, 0, 0, 0, 303, 304, 3, 4, 2, 0, 304, 45, 1, 0, 0, 0, 305, 306, 5, 8, 0, 0, 306, 47,
3831
- 1, 0, 0, 0, 307, 308, 5, 28, 0, 0, 308, 49, 1, 0, 0, 0, 309, 310, 3, 76, 38, 0, 310, 311,
3832
- 5, 3, 0, 0, 311, 312, 3, 62, 31, 0, 312, 51, 1, 0, 0, 0, 313, 314, 3, 76, 38, 0, 314, 315,
3833
- 7, 4, 0, 0, 315, 316, 3, 62, 31, 0, 316, 53, 1, 0, 0, 0, 317, 318, 5, 56, 0, 0, 318, 319,
3834
- 5, 3, 0, 0, 319, 320, 3, 62, 31, 0, 320, 55, 1, 0, 0, 0, 321, 326, 3, 62, 31, 0, 322, 323,
3835
- 5, 2, 0, 0, 323, 325, 3, 62, 31, 0, 324, 322, 1, 0, 0, 0, 325, 328, 1, 0, 0, 0, 326, 324,
3836
- 1, 0, 0, 0, 326, 327, 1, 0, 0, 0, 327, 333, 1, 0, 0, 0, 328, 326, 1, 0, 0, 0, 329, 330,
3837
- 5, 2, 0, 0, 330, 332, 3, 54, 27, 0, 331, 329, 1, 0, 0, 0, 332, 335, 1, 0, 0, 0, 333, 331,
3838
- 1, 0, 0, 0, 333, 334, 1, 0, 0, 0, 334, 345, 1, 0, 0, 0, 335, 333, 1, 0, 0, 0, 336, 341,
3839
- 3, 54, 27, 0, 337, 338, 5, 2, 0, 0, 338, 340, 3, 54, 27, 0, 339, 337, 1, 0, 0, 0, 340,
3840
- 343, 1, 0, 0, 0, 341, 339, 1, 0, 0, 0, 341, 342, 1, 0, 0, 0, 342, 345, 1, 0, 0, 0, 343,
3841
- 341, 1, 0, 0, 0, 344, 321, 1, 0, 0, 0, 344, 336, 1, 0, 0, 0, 345, 57, 1, 0, 0, 0, 346, 347,
3842
- 3, 76, 38, 0, 347, 348, 5, 3, 0, 0, 348, 349, 3, 62, 31, 0, 349, 59, 1, 0, 0, 0, 350, 351,
3843
- 5, 4, 0, 0, 351, 352, 5, 56, 0, 0, 352, 353, 5, 3, 0, 0, 353, 354, 3, 62, 31, 0, 354, 61,
3844
- 1, 0, 0, 0, 355, 356, 6, 31, -1, 0, 356, 357, 5, 52, 0, 0, 357, 358, 3, 62, 31, 0, 358,
3845
- 359, 5, 53, 0, 0, 359, 373, 1, 0, 0, 0, 360, 363, 3, 68, 34, 0, 361, 363, 3, 76, 38, 0,
3846
- 362, 360, 1, 0, 0, 0, 362, 361, 1, 0, 0, 0, 363, 373, 1, 0, 0, 0, 364, 365, 3, 66, 33,
3847
- 0, 365, 366, 3, 62, 31, 10, 366, 373, 1, 0, 0, 0, 367, 373, 3, 88, 44, 0, 368, 373, 3,
3848
- 92, 46, 0, 369, 373, 3, 94, 47, 0, 370, 373, 3, 80, 40, 0, 371, 373, 3, 110, 55, 0, 372,
3849
- 355, 1, 0, 0, 0, 372, 362, 1, 0, 0, 0, 372, 364, 1, 0, 0, 0, 372, 367, 1, 0, 0, 0, 372,
3850
- 368, 1, 0, 0, 0, 372, 369, 1, 0, 0, 0, 372, 370, 1, 0, 0, 0, 372, 371, 1, 0, 0, 0, 373,
3851
- 389, 1, 0, 0, 0, 374, 375, 10, 9, 0, 0, 375, 376, 7, 5, 0, 0, 376, 388, 3, 62, 31, 10,
3852
- 377, 378, 10, 8, 0, 0, 378, 379, 7, 6, 0, 0, 379, 388, 3, 62, 31, 9, 380, 381, 10, 7,
3853
- 0, 0, 381, 382, 3, 64, 32, 0, 382, 383, 3, 62, 31, 8, 383, 388, 1, 0, 0, 0, 384, 385,
3854
- 10, 6, 0, 0, 385, 386, 7, 7, 0, 0, 386, 388, 3, 62, 31, 7, 387, 374, 1, 0, 0, 0, 387, 377,
3855
- 1, 0, 0, 0, 387, 380, 1, 0, 0, 0, 387, 384, 1, 0, 0, 0, 388, 391, 1, 0, 0, 0, 389, 387,
3856
- 1, 0, 0, 0, 389, 390, 1, 0, 0, 0, 390, 63, 1, 0, 0, 0, 391, 389, 1, 0, 0, 0, 392, 393, 7,
3857
- 8, 0, 0, 393, 65, 1, 0, 0, 0, 394, 395, 7, 9, 0, 0, 395, 67, 1, 0, 0, 0, 396, 398, 5, 43,
3858
- 0, 0, 397, 396, 1, 0, 0, 0, 397, 398, 1, 0, 0, 0, 398, 399, 1, 0, 0, 0, 399, 400, 7, 10,
3859
- 0, 0, 400, 69, 1, 0, 0, 0, 401, 402, 5, 23, 0, 0, 402, 403, 5, 56, 0, 0, 403, 405, 5, 52,
3860
- 0, 0, 404, 406, 3, 74, 37, 0, 405, 404, 1, 0, 0, 0, 405, 406, 1, 0, 0, 0, 406, 407, 1,
3861
- 0, 0, 0, 407, 408, 5, 53, 0, 0, 408, 409, 5, 1, 0, 0, 409, 410, 5, 64, 0, 0, 410, 413,
3862
- 5, 66, 0, 0, 411, 414, 5, 64, 0, 0, 412, 414, 3, 72, 36, 0, 413, 411, 1, 0, 0, 0, 413,
3863
- 412, 1, 0, 0, 0, 414, 415, 1, 0, 0, 0, 415, 413, 1, 0, 0, 0, 415, 416, 1, 0, 0, 0, 416,
3864
- 417, 1, 0, 0, 0, 417, 418, 5, 67, 0, 0, 418, 71, 1, 0, 0, 0, 419, 422, 3, 2, 1, 0, 420,
3865
- 422, 3, 84, 42, 0, 421, 419, 1, 0, 0, 0, 421, 420, 1, 0, 0, 0, 422, 73, 1, 0, 0, 0, 423,
3866
- 428, 5, 56, 0, 0, 424, 425, 5, 2, 0, 0, 425, 427, 5, 56, 0, 0, 426, 424, 1, 0, 0, 0, 427,
3867
- 430, 1, 0, 0, 0, 428, 426, 1, 0, 0, 0, 428, 429, 1, 0, 0, 0, 429, 437, 1, 0, 0, 0, 430,
3868
- 428, 1, 0, 0, 0, 431, 432, 5, 2, 0, 0, 432, 433, 5, 56, 0, 0, 433, 434, 5, 3, 0, 0, 434,
3869
- 436, 3, 68, 34, 0, 435, 431, 1, 0, 0, 0, 436, 439, 1, 0, 0, 0, 437, 435, 1, 0, 0, 0, 437,
3870
- 438, 1, 0, 0, 0, 438, 453, 1, 0, 0, 0, 439, 437, 1, 0, 0, 0, 440, 441, 5, 56, 0, 0, 441,
3871
- 442, 5, 3, 0, 0, 442, 449, 3, 68, 34, 0, 443, 444, 5, 2, 0, 0, 444, 445, 5, 56, 0, 0, 445,
3872
- 446, 5, 3, 0, 0, 446, 448, 3, 68, 34, 0, 447, 443, 1, 0, 0, 0, 448, 451, 1, 0, 0, 0, 449,
3873
- 447, 1, 0, 0, 0, 449, 450, 1, 0, 0, 0, 450, 453, 1, 0, 0, 0, 451, 449, 1, 0, 0, 0, 452,
3874
- 423, 1, 0, 0, 0, 452, 440, 1, 0, 0, 0, 453, 75, 1, 0, 0, 0, 454, 459, 5, 56, 0, 0, 455,
3875
- 456, 5, 5, 0, 0, 456, 458, 5, 56, 0, 0, 457, 455, 1, 0, 0, 0, 458, 461, 1, 0, 0, 0, 459,
3876
- 457, 1, 0, 0, 0, 459, 460, 1, 0, 0, 0, 460, 77, 1, 0, 0, 0, 461, 459, 1, 0, 0, 0, 462, 464,
3877
- 5, 52, 0, 0, 463, 465, 3, 56, 28, 0, 464, 463, 1, 0, 0, 0, 464, 465, 1, 0, 0, 0, 465, 466,
3878
- 1, 0, 0, 0, 466, 470, 5, 53, 0, 0, 467, 468, 5, 5, 0, 0, 468, 470, 5, 56, 0, 0, 469, 462,
3879
- 1, 0, 0, 0, 469, 467, 1, 0, 0, 0, 470, 79, 1, 0, 0, 0, 471, 473, 3, 82, 41, 0, 472, 471,
3880
- 1, 0, 0, 0, 472, 473, 1, 0, 0, 0, 473, 474, 1, 0, 0, 0, 474, 476, 5, 56, 0, 0, 475, 477,
3881
- 3, 78, 39, 0, 476, 475, 1, 0, 0, 0, 477, 478, 1, 0, 0, 0, 478, 476, 1, 0, 0, 0, 478, 479,
3882
- 1, 0, 0, 0, 479, 81, 1, 0, 0, 0, 480, 482, 5, 42, 0, 0, 481, 480, 1, 0, 0, 0, 481, 482,
3883
- 1, 0, 0, 0, 482, 483, 1, 0, 0, 0, 483, 485, 5, 44, 0, 0, 484, 486, 3, 62, 31, 0, 485, 484,
3884
- 1, 0, 0, 0, 485, 486, 1, 0, 0, 0, 486, 83, 1, 0, 0, 0, 487, 488, 5, 22, 0, 0, 488, 489,
3885
- 3, 62, 31, 0, 489, 85, 1, 0, 0, 0, 490, 491, 3, 102, 51, 0, 491, 492, 5, 1, 0, 0, 492,
3886
- 493, 3, 4, 2, 0, 493, 87, 1, 0, 0, 0, 494, 495, 5, 10, 0, 0, 495, 496, 5, 11, 0, 0, 496,
3887
- 497, 5, 1, 0, 0, 497, 498, 5, 64, 0, 0, 498, 501, 5, 66, 0, 0, 499, 502, 5, 64, 0, 0, 500,
3888
- 502, 3, 100, 50, 0, 501, 499, 1, 0, 0, 0, 501, 500, 1, 0, 0, 0, 502, 503, 1, 0, 0, 0, 503,
3889
- 501, 1, 0, 0, 0, 503, 504, 1, 0, 0, 0, 504, 505, 1, 0, 0, 0, 505, 506, 5, 67, 0, 0, 506,
3890
- 89, 1, 0, 0, 0, 507, 508, 5, 64, 0, 0, 508, 511, 5, 66, 0, 0, 509, 512, 5, 64, 0, 0, 510,
3891
- 512, 3, 98, 49, 0, 511, 509, 1, 0, 0, 0, 511, 510, 1, 0, 0, 0, 512, 513, 1, 0, 0, 0, 513,
3892
- 511, 1, 0, 0, 0, 513, 514, 1, 0, 0, 0, 514, 515, 1, 0, 0, 0, 515, 516, 5, 67, 0, 0, 516,
3893
- 91, 1, 0, 0, 0, 517, 518, 5, 10, 0, 0, 518, 519, 5, 12, 0, 0, 519, 520, 5, 1, 0, 0, 520,
3894
- 521, 3, 90, 45, 0, 521, 93, 1, 0, 0, 0, 522, 523, 5, 10, 0, 0, 523, 524, 5, 13, 0, 0, 524,
3895
- 525, 5, 1, 0, 0, 525, 526, 5, 64, 0, 0, 526, 530, 5, 66, 0, 0, 527, 531, 5, 64, 0, 0, 528,
3896
- 531, 3, 100, 50, 0, 529, 531, 3, 86, 43, 0, 530, 527, 1, 0, 0, 0, 530, 528, 1, 0, 0, 0,
3897
- 530, 529, 1, 0, 0, 0, 531, 532, 1, 0, 0, 0, 532, 530, 1, 0, 0, 0, 532, 533, 1, 0, 0, 0,
3898
- 533, 534, 1, 0, 0, 0, 534, 535, 5, 67, 0, 0, 535, 95, 1, 0, 0, 0, 536, 537, 5, 64, 0, 0,
3899
- 537, 540, 5, 66, 0, 0, 538, 541, 5, 64, 0, 0, 539, 541, 3, 100, 50, 0, 540, 538, 1, 0,
3900
- 0, 0, 540, 539, 1, 0, 0, 0, 541, 542, 1, 0, 0, 0, 542, 540, 1, 0, 0, 0, 542, 543, 1, 0,
3901
- 0, 0, 543, 544, 1, 0, 0, 0, 544, 545, 5, 67, 0, 0, 545, 97, 1, 0, 0, 0, 546, 548, 7, 11,
3902
- 0, 0, 547, 549, 5, 1, 0, 0, 548, 547, 1, 0, 0, 0, 548, 549, 1, 0, 0, 0, 549, 556, 1, 0,
3903
- 0, 0, 550, 557, 3, 56, 28, 0, 551, 552, 5, 52, 0, 0, 552, 553, 3, 56, 28, 0, 553, 554,
3904
- 5, 53, 0, 0, 554, 557, 1, 0, 0, 0, 555, 557, 3, 96, 48, 0, 556, 550, 1, 0, 0, 0, 556, 551,
3905
- 1, 0, 0, 0, 556, 555, 1, 0, 0, 0, 557, 573, 1, 0, 0, 0, 558, 559, 5, 25, 0, 0, 559, 564,
3906
- 5, 56, 0, 0, 560, 561, 5, 2, 0, 0, 561, 563, 5, 56, 0, 0, 562, 560, 1, 0, 0, 0, 563, 566,
3907
- 1, 0, 0, 0, 564, 562, 1, 0, 0, 0, 564, 565, 1, 0, 0, 0, 565, 567, 1, 0, 0, 0, 566, 564,
3908
- 1, 0, 0, 0, 567, 568, 5, 26, 0, 0, 568, 569, 3, 62, 31, 0, 569, 570, 5, 1, 0, 0, 570, 571,
3909
- 3, 90, 45, 0, 571, 573, 1, 0, 0, 0, 572, 546, 1, 0, 0, 0, 572, 558, 1, 0, 0, 0, 573, 99,
3910
- 1, 0, 0, 0, 574, 575, 3, 102, 51, 0, 575, 576, 5, 1, 0, 0, 576, 577, 3, 104, 52, 0, 577,
3911
- 101, 1, 0, 0, 0, 578, 579, 7, 12, 0, 0, 579, 103, 1, 0, 0, 0, 580, 590, 3, 96, 48, 0, 581,
3912
- 586, 3, 62, 31, 0, 582, 583, 5, 2, 0, 0, 583, 585, 3, 62, 31, 0, 584, 582, 1, 0, 0, 0,
3913
- 585, 588, 1, 0, 0, 0, 586, 584, 1, 0, 0, 0, 586, 587, 1, 0, 0, 0, 587, 590, 1, 0, 0, 0,
3914
- 588, 586, 1, 0, 0, 0, 589, 580, 1, 0, 0, 0, 589, 581, 1, 0, 0, 0, 590, 105, 1, 0, 0, 0,
3915
- 591, 594, 5, 56, 0, 0, 592, 595, 5, 57, 0, 0, 593, 595, 3, 62, 31, 0, 594, 592, 1, 0,
3916
- 0, 0, 594, 593, 1, 0, 0, 0, 595, 598, 1, 0, 0, 0, 596, 598, 5, 56, 0, 0, 597, 591, 1, 0,
3917
- 0, 0, 597, 596, 1, 0, 0, 0, 598, 107, 1, 0, 0, 0, 599, 603, 5, 14, 0, 0, 600, 602, 3, 106,
3918
- 53, 0, 601, 600, 1, 0, 0, 0, 602, 605, 1, 0, 0, 0, 603, 601, 1, 0, 0, 0, 603, 604, 1, 0,
3919
- 0, 0, 604, 109, 1, 0, 0, 0, 605, 603, 1, 0, 0, 0, 606, 617, 5, 6, 0, 0, 607, 612, 3, 62,
3920
- 31, 0, 608, 609, 5, 2, 0, 0, 609, 611, 3, 62, 31, 0, 610, 608, 1, 0, 0, 0, 611, 614, 1,
3921
- 0, 0, 0, 612, 610, 1, 0, 0, 0, 612, 613, 1, 0, 0, 0, 613, 616, 1, 0, 0, 0, 614, 612, 1,
3922
- 0, 0, 0, 615, 607, 1, 0, 0, 0, 616, 619, 1, 0, 0, 0, 617, 615, 1, 0, 0, 0, 617, 618, 1,
3923
- 0, 0, 0, 618, 620, 1, 0, 0, 0, 619, 617, 1, 0, 0, 0, 620, 621, 5, 7, 0, 0, 621, 111, 1,
3924
- 0, 0, 0, 622, 623, 5, 19, 0, 0, 623, 624, 5, 56, 0, 0, 624, 113, 1, 0, 0, 0, 625, 626,
3925
- 5, 24, 0, 0, 626, 627, 5, 56, 0, 0, 627, 115, 1, 0, 0, 0, 628, 629, 7, 13, 0, 0, 629, 630,
3926
- 5, 1, 0, 0, 630, 631, 3, 4, 2, 0, 631, 117, 1, 0, 0, 0, 632, 633, 5, 29, 0, 0, 633, 634,
3927
- 3, 62, 31, 0, 634, 635, 5, 1, 0, 0, 635, 639, 3, 4, 2, 0, 636, 638, 3, 120, 60, 0, 637,
3928
- 636, 1, 0, 0, 0, 638, 641, 1, 0, 0, 0, 639, 637, 1, 0, 0, 0, 639, 640, 1, 0, 0, 0, 640,
3929
- 643, 1, 0, 0, 0, 641, 639, 1, 0, 0, 0, 642, 644, 3, 122, 61, 0, 643, 642, 1, 0, 0, 0, 643,
3930
- 644, 1, 0, 0, 0, 644, 119, 1, 0, 0, 0, 645, 646, 5, 30, 0, 0, 646, 647, 5, 29, 0, 0, 647,
3931
- 648, 3, 62, 31, 0, 648, 649, 5, 1, 0, 0, 649, 650, 3, 4, 2, 0, 650, 121, 1, 0, 0, 0, 651,
3932
- 652, 5, 30, 0, 0, 652, 653, 5, 1, 0, 0, 653, 654, 3, 4, 2, 0, 654, 123, 1, 0, 0, 0, 655,
3933
- 656, 5, 27, 0, 0, 656, 657, 3, 62, 31, 0, 657, 658, 5, 1, 0, 0, 658, 659, 3, 4, 2, 0, 659,
3934
- 125, 1, 0, 0, 0, 660, 661, 5, 25, 0, 0, 661, 666, 5, 56, 0, 0, 662, 663, 5, 2, 0, 0, 663,
3935
- 665, 5, 56, 0, 0, 664, 662, 1, 0, 0, 0, 665, 668, 1, 0, 0, 0, 666, 664, 1, 0, 0, 0, 666,
3936
- 667, 1, 0, 0, 0, 667, 669, 1, 0, 0, 0, 668, 666, 1, 0, 0, 0, 669, 670, 5, 26, 0, 0, 670,
3937
- 671, 3, 62, 31, 0, 671, 672, 5, 1, 0, 0, 672, 673, 3, 4, 2, 0, 673, 127, 1, 0, 0, 0, 71,
3938
- 130, 132, 158, 164, 166, 173, 185, 187, 202, 206, 211, 215, 222, 229, 237, 241,
3939
- 251, 259, 261, 272, 283, 285, 291, 297, 301, 326, 333, 341, 344, 362, 372, 387,
3940
- 389, 397, 405, 413, 415, 421, 428, 437, 449, 452, 459, 464, 469, 472, 478, 481,
3941
- 485, 501, 503, 511, 513, 530, 532, 540, 542, 548, 556, 564, 572, 586, 589, 594,
3942
- 597, 603, 612, 617, 639, 643, 666
3766
+ 1, 0, 0, 0, 217, 218, 5, 16, 0, 0, 218, 219, 3, 18, 9, 0, 219, 21, 1, 0, 0, 0, 220, 224,
3767
+ 3, 18, 9, 0, 221, 224, 3, 14, 7, 0, 222, 224, 5, 19, 0, 0, 223, 220, 1, 0, 0, 0, 223, 221,
3768
+ 1, 0, 0, 0, 223, 222, 1, 0, 0, 0, 224, 23, 1, 0, 0, 0, 225, 226, 7, 2, 0, 0, 226, 25, 1,
3769
+ 0, 0, 0, 227, 228, 5, 17, 0, 0, 228, 229, 3, 22, 11, 0, 229, 27, 1, 0, 0, 0, 230, 231,
3770
+ 5, 18, 0, 0, 231, 236, 3, 22, 11, 0, 232, 233, 5, 2, 0, 0, 233, 235, 3, 22, 11, 0, 234,
3771
+ 232, 1, 0, 0, 0, 235, 238, 1, 0, 0, 0, 236, 234, 1, 0, 0, 0, 236, 237, 1, 0, 0, 0, 237,
3772
+ 29, 1, 0, 0, 0, 238, 236, 1, 0, 0, 0, 239, 240, 5, 17, 0, 0, 240, 241, 3, 22, 11, 0, 241,
3773
+ 242, 5, 18, 0, 0, 242, 247, 3, 22, 11, 0, 243, 244, 5, 2, 0, 0, 244, 246, 3, 22, 11, 0,
3774
+ 245, 243, 1, 0, 0, 0, 246, 249, 1, 0, 0, 0, 247, 245, 1, 0, 0, 0, 247, 248, 1, 0, 0, 0,
3775
+ 248, 250, 1, 0, 0, 0, 249, 247, 1, 0, 0, 0, 250, 251, 5, 1, 0, 0, 251, 252, 5, 64, 0, 0,
3776
+ 252, 255, 5, 66, 0, 0, 253, 256, 5, 64, 0, 0, 254, 256, 3, 32, 16, 0, 255, 253, 1, 0,
3777
+ 0, 0, 255, 254, 1, 0, 0, 0, 256, 257, 1, 0, 0, 0, 257, 255, 1, 0, 0, 0, 257, 258, 1, 0,
3778
+ 0, 0, 258, 259, 1, 0, 0, 0, 259, 260, 5, 67, 0, 0, 260, 31, 1, 0, 0, 0, 261, 262, 3, 24,
3779
+ 12, 0, 262, 263, 5, 1, 0, 0, 263, 268, 3, 34, 17, 0, 264, 265, 5, 2, 0, 0, 265, 267, 3,
3780
+ 34, 17, 0, 266, 264, 1, 0, 0, 0, 267, 270, 1, 0, 0, 0, 268, 266, 1, 0, 0, 0, 268, 269,
3781
+ 1, 0, 0, 0, 269, 33, 1, 0, 0, 0, 270, 268, 1, 0, 0, 0, 271, 272, 7, 3, 0, 0, 272, 35, 1,
3782
+ 0, 0, 0, 273, 274, 3, 26, 13, 0, 274, 275, 5, 1, 0, 0, 275, 276, 5, 64, 0, 0, 276, 279,
3783
+ 5, 66, 0, 0, 277, 280, 5, 64, 0, 0, 278, 280, 3, 38, 19, 0, 279, 277, 1, 0, 0, 0, 279,
3784
+ 278, 1, 0, 0, 0, 280, 281, 1, 0, 0, 0, 281, 279, 1, 0, 0, 0, 281, 282, 1, 0, 0, 0, 282,
3785
+ 283, 1, 0, 0, 0, 283, 284, 5, 67, 0, 0, 284, 37, 1, 0, 0, 0, 285, 288, 3, 2, 1, 0, 286,
3786
+ 288, 3, 40, 20, 0, 287, 285, 1, 0, 0, 0, 287, 286, 1, 0, 0, 0, 288, 39, 1, 0, 0, 0, 289,
3787
+ 290, 3, 24, 12, 0, 290, 293, 5, 1, 0, 0, 291, 294, 3, 42, 21, 0, 292, 294, 3, 44, 22,
3788
+ 0, 293, 291, 1, 0, 0, 0, 293, 292, 1, 0, 0, 0, 294, 41, 1, 0, 0, 0, 295, 298, 3, 2, 1, 0,
3789
+ 296, 298, 5, 54, 0, 0, 297, 295, 1, 0, 0, 0, 297, 296, 1, 0, 0, 0, 298, 43, 1, 0, 0, 0,
3790
+ 299, 300, 3, 4, 2, 0, 300, 45, 1, 0, 0, 0, 301, 302, 5, 8, 0, 0, 302, 47, 1, 0, 0, 0, 303,
3791
+ 304, 5, 28, 0, 0, 304, 49, 1, 0, 0, 0, 305, 306, 3, 76, 38, 0, 306, 307, 5, 3, 0, 0, 307,
3792
+ 308, 3, 62, 31, 0, 308, 51, 1, 0, 0, 0, 309, 310, 3, 76, 38, 0, 310, 311, 7, 4, 0, 0, 311,
3793
+ 312, 3, 62, 31, 0, 312, 53, 1, 0, 0, 0, 313, 314, 5, 56, 0, 0, 314, 315, 5, 3, 0, 0, 315,
3794
+ 316, 3, 62, 31, 0, 316, 55, 1, 0, 0, 0, 317, 322, 3, 62, 31, 0, 318, 319, 5, 2, 0, 0, 319,
3795
+ 321, 3, 62, 31, 0, 320, 318, 1, 0, 0, 0, 321, 324, 1, 0, 0, 0, 322, 320, 1, 0, 0, 0, 322,
3796
+ 323, 1, 0, 0, 0, 323, 329, 1, 0, 0, 0, 324, 322, 1, 0, 0, 0, 325, 326, 5, 2, 0, 0, 326,
3797
+ 328, 3, 54, 27, 0, 327, 325, 1, 0, 0, 0, 328, 331, 1, 0, 0, 0, 329, 327, 1, 0, 0, 0, 329,
3798
+ 330, 1, 0, 0, 0, 330, 341, 1, 0, 0, 0, 331, 329, 1, 0, 0, 0, 332, 337, 3, 54, 27, 0, 333,
3799
+ 334, 5, 2, 0, 0, 334, 336, 3, 54, 27, 0, 335, 333, 1, 0, 0, 0, 336, 339, 1, 0, 0, 0, 337,
3800
+ 335, 1, 0, 0, 0, 337, 338, 1, 0, 0, 0, 338, 341, 1, 0, 0, 0, 339, 337, 1, 0, 0, 0, 340,
3801
+ 317, 1, 0, 0, 0, 340, 332, 1, 0, 0, 0, 341, 57, 1, 0, 0, 0, 342, 343, 3, 76, 38, 0, 343,
3802
+ 344, 5, 3, 0, 0, 344, 345, 3, 62, 31, 0, 345, 59, 1, 0, 0, 0, 346, 347, 5, 4, 0, 0, 347,
3803
+ 348, 5, 56, 0, 0, 348, 349, 5, 3, 0, 0, 349, 350, 3, 62, 31, 0, 350, 61, 1, 0, 0, 0, 351,
3804
+ 352, 6, 31, -1, 0, 352, 353, 5, 52, 0, 0, 353, 354, 3, 62, 31, 0, 354, 355, 5, 53, 0,
3805
+ 0, 355, 369, 1, 0, 0, 0, 356, 359, 3, 68, 34, 0, 357, 359, 3, 76, 38, 0, 358, 356, 1,
3806
+ 0, 0, 0, 358, 357, 1, 0, 0, 0, 359, 369, 1, 0, 0, 0, 360, 361, 3, 66, 33, 0, 361, 362,
3807
+ 3, 62, 31, 10, 362, 369, 1, 0, 0, 0, 363, 369, 3, 88, 44, 0, 364, 369, 3, 92, 46, 0, 365,
3808
+ 369, 3, 94, 47, 0, 366, 369, 3, 80, 40, 0, 367, 369, 3, 110, 55, 0, 368, 351, 1, 0, 0,
3809
+ 0, 368, 358, 1, 0, 0, 0, 368, 360, 1, 0, 0, 0, 368, 363, 1, 0, 0, 0, 368, 364, 1, 0, 0,
3810
+ 0, 368, 365, 1, 0, 0, 0, 368, 366, 1, 0, 0, 0, 368, 367, 1, 0, 0, 0, 369, 385, 1, 0, 0,
3811
+ 0, 370, 371, 10, 9, 0, 0, 371, 372, 7, 5, 0, 0, 372, 384, 3, 62, 31, 10, 373, 374, 10,
3812
+ 8, 0, 0, 374, 375, 7, 6, 0, 0, 375, 384, 3, 62, 31, 9, 376, 377, 10, 7, 0, 0, 377, 378,
3813
+ 3, 64, 32, 0, 378, 379, 3, 62, 31, 8, 379, 384, 1, 0, 0, 0, 380, 381, 10, 6, 0, 0, 381,
3814
+ 382, 7, 7, 0, 0, 382, 384, 3, 62, 31, 7, 383, 370, 1, 0, 0, 0, 383, 373, 1, 0, 0, 0, 383,
3815
+ 376, 1, 0, 0, 0, 383, 380, 1, 0, 0, 0, 384, 387, 1, 0, 0, 0, 385, 383, 1, 0, 0, 0, 385,
3816
+ 386, 1, 0, 0, 0, 386, 63, 1, 0, 0, 0, 387, 385, 1, 0, 0, 0, 388, 389, 7, 8, 0, 0, 389, 65,
3817
+ 1, 0, 0, 0, 390, 391, 7, 9, 0, 0, 391, 67, 1, 0, 0, 0, 392, 394, 5, 43, 0, 0, 393, 392,
3818
+ 1, 0, 0, 0, 393, 394, 1, 0, 0, 0, 394, 395, 1, 0, 0, 0, 395, 396, 7, 10, 0, 0, 396, 69,
3819
+ 1, 0, 0, 0, 397, 398, 5, 23, 0, 0, 398, 399, 5, 56, 0, 0, 399, 401, 5, 52, 0, 0, 400, 402,
3820
+ 3, 74, 37, 0, 401, 400, 1, 0, 0, 0, 401, 402, 1, 0, 0, 0, 402, 403, 1, 0, 0, 0, 403, 404,
3821
+ 5, 53, 0, 0, 404, 405, 5, 1, 0, 0, 405, 406, 5, 64, 0, 0, 406, 409, 5, 66, 0, 0, 407, 410,
3822
+ 5, 64, 0, 0, 408, 410, 3, 72, 36, 0, 409, 407, 1, 0, 0, 0, 409, 408, 1, 0, 0, 0, 410, 411,
3823
+ 1, 0, 0, 0, 411, 409, 1, 0, 0, 0, 411, 412, 1, 0, 0, 0, 412, 413, 1, 0, 0, 0, 413, 414,
3824
+ 5, 67, 0, 0, 414, 71, 1, 0, 0, 0, 415, 418, 3, 2, 1, 0, 416, 418, 3, 84, 42, 0, 417, 415,
3825
+ 1, 0, 0, 0, 417, 416, 1, 0, 0, 0, 418, 73, 1, 0, 0, 0, 419, 424, 5, 56, 0, 0, 420, 421,
3826
+ 5, 2, 0, 0, 421, 423, 5, 56, 0, 0, 422, 420, 1, 0, 0, 0, 423, 426, 1, 0, 0, 0, 424, 422,
3827
+ 1, 0, 0, 0, 424, 425, 1, 0, 0, 0, 425, 433, 1, 0, 0, 0, 426, 424, 1, 0, 0, 0, 427, 428,
3828
+ 5, 2, 0, 0, 428, 429, 5, 56, 0, 0, 429, 430, 5, 3, 0, 0, 430, 432, 3, 68, 34, 0, 431, 427,
3829
+ 1, 0, 0, 0, 432, 435, 1, 0, 0, 0, 433, 431, 1, 0, 0, 0, 433, 434, 1, 0, 0, 0, 434, 449,
3830
+ 1, 0, 0, 0, 435, 433, 1, 0, 0, 0, 436, 437, 5, 56, 0, 0, 437, 438, 5, 3, 0, 0, 438, 445,
3831
+ 3, 68, 34, 0, 439, 440, 5, 2, 0, 0, 440, 441, 5, 56, 0, 0, 441, 442, 5, 3, 0, 0, 442, 444,
3832
+ 3, 68, 34, 0, 443, 439, 1, 0, 0, 0, 444, 447, 1, 0, 0, 0, 445, 443, 1, 0, 0, 0, 445, 446,
3833
+ 1, 0, 0, 0, 446, 449, 1, 0, 0, 0, 447, 445, 1, 0, 0, 0, 448, 419, 1, 0, 0, 0, 448, 436,
3834
+ 1, 0, 0, 0, 449, 75, 1, 0, 0, 0, 450, 455, 5, 56, 0, 0, 451, 452, 5, 5, 0, 0, 452, 454,
3835
+ 5, 56, 0, 0, 453, 451, 1, 0, 0, 0, 454, 457, 1, 0, 0, 0, 455, 453, 1, 0, 0, 0, 455, 456,
3836
+ 1, 0, 0, 0, 456, 77, 1, 0, 0, 0, 457, 455, 1, 0, 0, 0, 458, 460, 5, 52, 0, 0, 459, 461,
3837
+ 3, 56, 28, 0, 460, 459, 1, 0, 0, 0, 460, 461, 1, 0, 0, 0, 461, 462, 1, 0, 0, 0, 462, 466,
3838
+ 5, 53, 0, 0, 463, 464, 5, 5, 0, 0, 464, 466, 5, 56, 0, 0, 465, 458, 1, 0, 0, 0, 465, 463,
3839
+ 1, 0, 0, 0, 466, 79, 1, 0, 0, 0, 467, 469, 3, 82, 41, 0, 468, 467, 1, 0, 0, 0, 468, 469,
3840
+ 1, 0, 0, 0, 469, 470, 1, 0, 0, 0, 470, 472, 5, 56, 0, 0, 471, 473, 3, 78, 39, 0, 472, 471,
3841
+ 1, 0, 0, 0, 473, 474, 1, 0, 0, 0, 474, 472, 1, 0, 0, 0, 474, 475, 1, 0, 0, 0, 475, 81, 1,
3842
+ 0, 0, 0, 476, 478, 5, 42, 0, 0, 477, 476, 1, 0, 0, 0, 477, 478, 1, 0, 0, 0, 478, 479, 1,
3843
+ 0, 0, 0, 479, 481, 5, 44, 0, 0, 480, 482, 3, 62, 31, 0, 481, 480, 1, 0, 0, 0, 481, 482,
3844
+ 1, 0, 0, 0, 482, 83, 1, 0, 0, 0, 483, 484, 5, 22, 0, 0, 484, 485, 3, 62, 31, 0, 485, 85,
3845
+ 1, 0, 0, 0, 486, 487, 3, 102, 51, 0, 487, 488, 5, 1, 0, 0, 488, 489, 3, 4, 2, 0, 489, 87,
3846
+ 1, 0, 0, 0, 490, 491, 5, 10, 0, 0, 491, 492, 5, 11, 0, 0, 492, 493, 5, 1, 0, 0, 493, 494,
3847
+ 5, 64, 0, 0, 494, 497, 5, 66, 0, 0, 495, 498, 5, 64, 0, 0, 496, 498, 3, 100, 50, 0, 497,
3848
+ 495, 1, 0, 0, 0, 497, 496, 1, 0, 0, 0, 498, 499, 1, 0, 0, 0, 499, 497, 1, 0, 0, 0, 499,
3849
+ 500, 1, 0, 0, 0, 500, 501, 1, 0, 0, 0, 501, 502, 5, 67, 0, 0, 502, 89, 1, 0, 0, 0, 503,
3850
+ 504, 5, 64, 0, 0, 504, 507, 5, 66, 0, 0, 505, 508, 5, 64, 0, 0, 506, 508, 3, 98, 49, 0,
3851
+ 507, 505, 1, 0, 0, 0, 507, 506, 1, 0, 0, 0, 508, 509, 1, 0, 0, 0, 509, 507, 1, 0, 0, 0,
3852
+ 509, 510, 1, 0, 0, 0, 510, 511, 1, 0, 0, 0, 511, 512, 5, 67, 0, 0, 512, 91, 1, 0, 0, 0,
3853
+ 513, 514, 5, 10, 0, 0, 514, 518, 5, 12, 0, 0, 515, 516, 5, 52, 0, 0, 516, 517, 5, 56,
3854
+ 0, 0, 517, 519, 5, 53, 0, 0, 518, 515, 1, 0, 0, 0, 518, 519, 1, 0, 0, 0, 519, 520, 1, 0,
3855
+ 0, 0, 520, 521, 5, 1, 0, 0, 521, 522, 3, 90, 45, 0, 522, 93, 1, 0, 0, 0, 523, 524, 5, 10,
3856
+ 0, 0, 524, 525, 5, 13, 0, 0, 525, 526, 5, 1, 0, 0, 526, 527, 5, 64, 0, 0, 527, 531, 5,
3857
+ 66, 0, 0, 528, 532, 5, 64, 0, 0, 529, 532, 3, 100, 50, 0, 530, 532, 3, 86, 43, 0, 531,
3858
+ 528, 1, 0, 0, 0, 531, 529, 1, 0, 0, 0, 531, 530, 1, 0, 0, 0, 532, 533, 1, 0, 0, 0, 533,
3859
+ 531, 1, 0, 0, 0, 533, 534, 1, 0, 0, 0, 534, 535, 1, 0, 0, 0, 535, 536, 5, 67, 0, 0, 536,
3860
+ 95, 1, 0, 0, 0, 537, 538, 5, 64, 0, 0, 538, 541, 5, 66, 0, 0, 539, 542, 5, 64, 0, 0, 540,
3861
+ 542, 3, 100, 50, 0, 541, 539, 1, 0, 0, 0, 541, 540, 1, 0, 0, 0, 542, 543, 1, 0, 0, 0, 543,
3862
+ 541, 1, 0, 0, 0, 543, 544, 1, 0, 0, 0, 544, 545, 1, 0, 0, 0, 545, 546, 5, 67, 0, 0, 546,
3863
+ 97, 1, 0, 0, 0, 547, 549, 7, 11, 0, 0, 548, 550, 5, 1, 0, 0, 549, 548, 1, 0, 0, 0, 549,
3864
+ 550, 1, 0, 0, 0, 550, 557, 1, 0, 0, 0, 551, 558, 3, 56, 28, 0, 552, 553, 5, 52, 0, 0, 553,
3865
+ 554, 3, 56, 28, 0, 554, 555, 5, 53, 0, 0, 555, 558, 1, 0, 0, 0, 556, 558, 3, 96, 48, 0,
3866
+ 557, 551, 1, 0, 0, 0, 557, 552, 1, 0, 0, 0, 557, 556, 1, 0, 0, 0, 558, 574, 1, 0, 0, 0,
3867
+ 559, 560, 5, 25, 0, 0, 560, 565, 5, 56, 0, 0, 561, 562, 5, 2, 0, 0, 562, 564, 5, 56, 0,
3868
+ 0, 563, 561, 1, 0, 0, 0, 564, 567, 1, 0, 0, 0, 565, 563, 1, 0, 0, 0, 565, 566, 1, 0, 0,
3869
+ 0, 566, 568, 1, 0, 0, 0, 567, 565, 1, 0, 0, 0, 568, 569, 5, 26, 0, 0, 569, 570, 3, 62,
3870
+ 31, 0, 570, 571, 5, 1, 0, 0, 571, 572, 3, 90, 45, 0, 572, 574, 1, 0, 0, 0, 573, 547, 1,
3871
+ 0, 0, 0, 573, 559, 1, 0, 0, 0, 574, 99, 1, 0, 0, 0, 575, 576, 3, 102, 51, 0, 576, 577,
3872
+ 5, 1, 0, 0, 577, 578, 3, 104, 52, 0, 578, 101, 1, 0, 0, 0, 579, 580, 7, 12, 0, 0, 580,
3873
+ 103, 1, 0, 0, 0, 581, 591, 3, 96, 48, 0, 582, 587, 3, 62, 31, 0, 583, 584, 5, 2, 0, 0,
3874
+ 584, 586, 3, 62, 31, 0, 585, 583, 1, 0, 0, 0, 586, 589, 1, 0, 0, 0, 587, 585, 1, 0, 0,
3875
+ 0, 587, 588, 1, 0, 0, 0, 588, 591, 1, 0, 0, 0, 589, 587, 1, 0, 0, 0, 590, 581, 1, 0, 0,
3876
+ 0, 590, 582, 1, 0, 0, 0, 591, 105, 1, 0, 0, 0, 592, 595, 5, 56, 0, 0, 593, 596, 5, 57,
3877
+ 0, 0, 594, 596, 3, 62, 31, 0, 595, 593, 1, 0, 0, 0, 595, 594, 1, 0, 0, 0, 596, 599, 1,
3878
+ 0, 0, 0, 597, 599, 5, 56, 0, 0, 598, 592, 1, 0, 0, 0, 598, 597, 1, 0, 0, 0, 599, 107, 1,
3879
+ 0, 0, 0, 600, 604, 5, 14, 0, 0, 601, 603, 3, 106, 53, 0, 602, 601, 1, 0, 0, 0, 603, 606,
3880
+ 1, 0, 0, 0, 604, 602, 1, 0, 0, 0, 604, 605, 1, 0, 0, 0, 605, 109, 1, 0, 0, 0, 606, 604,
3881
+ 1, 0, 0, 0, 607, 618, 5, 6, 0, 0, 608, 613, 3, 62, 31, 0, 609, 610, 5, 2, 0, 0, 610, 612,
3882
+ 3, 62, 31, 0, 611, 609, 1, 0, 0, 0, 612, 615, 1, 0, 0, 0, 613, 611, 1, 0, 0, 0, 613, 614,
3883
+ 1, 0, 0, 0, 614, 617, 1, 0, 0, 0, 615, 613, 1, 0, 0, 0, 616, 608, 1, 0, 0, 0, 617, 620,
3884
+ 1, 0, 0, 0, 618, 616, 1, 0, 0, 0, 618, 619, 1, 0, 0, 0, 619, 621, 1, 0, 0, 0, 620, 618,
3885
+ 1, 0, 0, 0, 621, 622, 5, 7, 0, 0, 622, 111, 1, 0, 0, 0, 623, 624, 5, 19, 0, 0, 624, 625,
3886
+ 5, 56, 0, 0, 625, 113, 1, 0, 0, 0, 626, 627, 5, 24, 0, 0, 627, 628, 5, 56, 0, 0, 628, 115,
3887
+ 1, 0, 0, 0, 629, 630, 7, 13, 0, 0, 630, 631, 5, 1, 0, 0, 631, 632, 3, 4, 2, 0, 632, 117,
3888
+ 1, 0, 0, 0, 633, 634, 5, 29, 0, 0, 634, 635, 3, 62, 31, 0, 635, 636, 5, 1, 0, 0, 636, 640,
3889
+ 3, 4, 2, 0, 637, 639, 3, 120, 60, 0, 638, 637, 1, 0, 0, 0, 639, 642, 1, 0, 0, 0, 640, 638,
3890
+ 1, 0, 0, 0, 640, 641, 1, 0, 0, 0, 641, 644, 1, 0, 0, 0, 642, 640, 1, 0, 0, 0, 643, 645,
3891
+ 3, 122, 61, 0, 644, 643, 1, 0, 0, 0, 644, 645, 1, 0, 0, 0, 645, 119, 1, 0, 0, 0, 646, 647,
3892
+ 5, 30, 0, 0, 647, 648, 5, 29, 0, 0, 648, 649, 3, 62, 31, 0, 649, 650, 5, 1, 0, 0, 650,
3893
+ 651, 3, 4, 2, 0, 651, 121, 1, 0, 0, 0, 652, 653, 5, 30, 0, 0, 653, 654, 5, 1, 0, 0, 654,
3894
+ 655, 3, 4, 2, 0, 655, 123, 1, 0, 0, 0, 656, 657, 5, 27, 0, 0, 657, 658, 3, 62, 31, 0, 658,
3895
+ 659, 5, 1, 0, 0, 659, 660, 3, 4, 2, 0, 660, 125, 1, 0, 0, 0, 661, 662, 5, 25, 0, 0, 662,
3896
+ 667, 5, 56, 0, 0, 663, 664, 5, 2, 0, 0, 664, 666, 5, 56, 0, 0, 665, 663, 1, 0, 0, 0, 666,
3897
+ 669, 1, 0, 0, 0, 667, 665, 1, 0, 0, 0, 667, 668, 1, 0, 0, 0, 668, 670, 1, 0, 0, 0, 669,
3898
+ 667, 1, 0, 0, 0, 670, 671, 5, 26, 0, 0, 671, 672, 3, 62, 31, 0, 672, 673, 5, 1, 0, 0, 673,
3899
+ 674, 3, 4, 2, 0, 674, 127, 1, 0, 0, 0, 70, 130, 132, 158, 164, 166, 173, 185, 187, 202,
3900
+ 206, 211, 215, 223, 236, 247, 255, 257, 268, 279, 281, 287, 293, 297, 322, 329,
3901
+ 337, 340, 358, 368, 383, 385, 393, 401, 409, 411, 417, 424, 433, 445, 448, 455,
3902
+ 460, 465, 468, 474, 477, 481, 497, 499, 507, 509, 518, 531, 533, 541, 543, 549,
3903
+ 557, 565, 573, 587, 590, 595, 598, 604, 613, 618, 640, 644, 667
3943
3904
  ];
3944
3905
  CircuitScriptParser.vocabulary = new antlr.Vocabulary(CircuitScriptParser.literalNames, CircuitScriptParser.symbolicNames, []);
3945
3906
  CircuitScriptParser.decisionsToDFA = CircuitScriptParser._ATN.decisionToState.map((ds, index) => new antlr.DFA(ds, index));
@@ -4337,6 +4298,9 @@ class Component_select_exprContext extends antlr.ParserRuleContext {
4337
4298
  pin_select_expr() {
4338
4299
  return this.getRuleContext(0, Pin_select_exprContext);
4339
4300
  }
4301
+ Point() {
4302
+ return this.getToken(CircuitScriptParser.Point, 0);
4303
+ }
4340
4304
  get ruleIndex() {
4341
4305
  return CircuitScriptParser.RULE_component_select_expr;
4342
4306
  }
@@ -4383,9 +4347,6 @@ class At_component_exprContext extends antlr.ParserRuleContext {
4383
4347
  component_select_expr() {
4384
4348
  return this.getRuleContext(0, Component_select_exprContext);
4385
4349
  }
4386
- Point() {
4387
- return this.getToken(CircuitScriptParser.Point, 0);
4388
- }
4389
4350
  get ruleIndex() {
4390
4351
  return CircuitScriptParser.RULE_at_component_expr;
4391
4352
  }
@@ -4406,9 +4367,6 @@ class To_component_exprContext extends antlr.ParserRuleContext {
4406
4367
  To() {
4407
4368
  return this.getToken(CircuitScriptParser.To, 0);
4408
4369
  }
4409
- Point() {
4410
- return this.getToken(CircuitScriptParser.Point, 0);
4411
- }
4412
4370
  component_select_expr(i) {
4413
4371
  if (i === undefined) {
4414
4372
  return this.getRuleContexts(Component_select_exprContext);
@@ -5553,6 +5511,15 @@ class Create_graphic_exprContext extends antlr.ParserRuleContext {
5553
5511
  graphic_expressions_block() {
5554
5512
  return this.getRuleContext(0, Graphic_expressions_blockContext);
5555
5513
  }
5514
+ OPEN_PAREN() {
5515
+ return this.getToken(CircuitScriptParser.OPEN_PAREN, 0);
5516
+ }
5517
+ ID() {
5518
+ return this.getToken(CircuitScriptParser.ID, 0);
5519
+ }
5520
+ CLOSE_PAREN() {
5521
+ return this.getToken(CircuitScriptParser.CLOSE_PAREN, 0);
5522
+ }
5556
5523
  get ruleIndex() {
5557
5524
  return CircuitScriptParser.RULE_create_graphic_expr;
5558
5525
  }