@irrelon/battlescript 4.1.2 → 5.0.0

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 (47) hide show
  1. package/bin/index.js +357 -278
  2. package/bin/index.js.map +1 -1
  3. package/dist/bin/functionality.cjs +357 -278
  4. package/dist/bin/functionality.cjs.map +1 -1
  5. package/dist/bin/functionality.mjs +357 -278
  6. package/dist/bin/functionality.mjs.map +1 -1
  7. package/dist/exports/typescript/enums/EnumNodeProp.d.ts +11 -7
  8. package/dist/exports/typescript/enums/EnumNodeProp.d.ts.map +1 -1
  9. package/dist/exports/typescript/enums/EnumOperator.d.ts +7 -4
  10. package/dist/exports/typescript/enums/EnumOperator.d.ts.map +1 -1
  11. package/dist/index.cjs +378 -285
  12. package/dist/index.cjs.map +1 -1
  13. package/dist/index.mjs +377 -286
  14. package/dist/index.mjs.map +1 -1
  15. package/dist/services/grammar/ts/language/BattleScriptLexer.d.ts.map +1 -1
  16. package/dist/services/miniAst/binaryTypeToByteSize.d.ts +1 -1
  17. package/dist/services/utils.d.ts +10 -0
  18. package/dist/services/utils.d.ts.map +1 -1
  19. package/dist/tests/ast/compoundAssignment.test.d.ts +2 -0
  20. package/dist/tests/ast/compoundAssignment.test.d.ts.map +1 -0
  21. package/dist/tests/ast/hex-literal.test.d.ts +2 -0
  22. package/dist/tests/ast/hex-literal.test.d.ts.map +1 -0
  23. package/dist/tests/ast/number-literal.test.d.ts +2 -0
  24. package/dist/tests/ast/number-literal.test.d.ts.map +1 -0
  25. package/dist/tsconfig.types.tsbuildinfo +1 -1
  26. package/dist/types/ast/nodes/AssignmentExpressionNode.d.ts +6 -0
  27. package/dist/types/ast/nodes/AssignmentExpressionNode.d.ts.map +1 -1
  28. package/dist/types/ast/nodes/ForwardStatementNode.d.ts +2 -0
  29. package/dist/types/ast/nodes/ForwardStatementNode.d.ts.map +1 -1
  30. package/dist/types/ast/nodes/LiteralIntNode.d.ts +10 -0
  31. package/dist/types/ast/nodes/LiteralIntNode.d.ts.map +1 -1
  32. package/dist/types/ast/nodes/OffsetStatementNode.d.ts +2 -0
  33. package/dist/types/ast/nodes/OffsetStatementNode.d.ts.map +1 -1
  34. package/dist/types/ast/nodes/OptimisedAssignmentExpressionNode.d.ts.map +1 -1
  35. package/dist/types/ast/nodes/ProtocolReadTypeNode.d.ts +2 -0
  36. package/dist/types/ast/nodes/ProtocolReadTypeNode.d.ts.map +1 -1
  37. package/dist/types/ast/nodes/ProtocolTypeNode.d.ts +2 -0
  38. package/dist/types/ast/nodes/ProtocolTypeNode.d.ts.map +1 -1
  39. package/dist/types/ast/nodes/RewindStatementNode.d.ts +2 -0
  40. package/dist/types/ast/nodes/RewindStatementNode.d.ts.map +1 -1
  41. package/dist/types/ast/nodes/RuleStatementNode.d.ts +4 -0
  42. package/dist/types/ast/nodes/RuleStatementNode.d.ts.map +1 -1
  43. package/dist/types/ast/operators/ArithmaticOperator.d.ts +1 -1
  44. package/dist/types/ast/operators/ArithmaticOperator.d.ts.map +1 -1
  45. package/dist/types/ast/operators/OtherOperator.d.ts +1 -1
  46. package/dist/types/ast/operators/OtherOperator.d.ts.map +1 -1
  47. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -23923,7 +23923,7 @@ BattleScriptLexer._SYMBOLIC_NAMES = [
23923
23923
  ];
23924
23924
  BattleScriptLexer.VOCABULARY = new VocabularyImplExports.VocabularyImpl(BattleScriptLexer._LITERAL_NAMES, BattleScriptLexer._SYMBOLIC_NAMES, []);
23925
23925
  BattleScriptLexer._serializedATNSegments = 2;
23926
- BattleScriptLexer._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02r\u0378\b\x01" +
23926
+ BattleScriptLexer._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02r\u037F\b\x01" +
23927
23927
  "\x04\x02\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06" +
23928
23928
  "\x04\x07\t\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r" +
23929
23929
  "\t\r\x04\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t" +
@@ -23979,77 +23979,78 @@ BattleScriptLexer._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u
23979
23979
  "A\x03A\x03A\x03B\x03B\x03B\x03B\x03C\x03C\x03C\x03C\x03C\x03D\x03D\x03" +
23980
23980
  "D\x03D\x03D\x03D\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03F\x03F\x03F\x03" +
23981
23981
  "F\x03F\x03G\x03G\x03G\x03G\x03G\x03H\x03H\x03H\x03H\x03H\x03I\x03I\x03" +
23982
- "I\x03I\x03I\x03I\x03I\x03I\x03I\x03I\x03J\x06J\u02B9\nJ\rJ\x0EJ\u02BA" +
23983
- "\x03J\x03J\x06J\u02BF\nJ\rJ\x0EJ\u02C0\x05J\u02C3\nJ\x03J\x03J\x05J\u02C7" +
23984
- "\nJ\x03J\x06J\u02CA\nJ\rJ\x0EJ\u02CB\x05J\u02CE\nJ\x03J\x03J\x06J\u02D2" +
23985
- "\nJ\rJ\x0EJ\u02D3\x03J\x03J\x05J\u02D8\nJ\x03J\x06J\u02DB\nJ\rJ\x0EJ\u02DC" +
23986
- "\x05J\u02DF\nJ\x05J\u02E1\nJ\x03K\x03K\x03K\x03K\x03K\x03K\x03K\x03K\x03" +
23987
- "K\x05K\u02EC\nK\x03L\x03L\x07L\u02F0\nL\fL\x0EL\u02F3\vL\x03L\x03L\x03" +
23988
- "M\x03M\x03M\x03M\x07M\u02FB\nM\fM\x0EM\u02FE\vM\x03M\x03M\x03M\x03M\x07" +
23989
- "M\u0304\nM\fM\x0EM\u0307\vM\x03M\x03M\x05M\u030B\nM\x03N\x03N\x03N\x03" +
23990
- "O\x03O\x03O\x03P\x03P\x03P\x03Q\x03Q\x03R\x03R\x03S\x03S\x03T\x03T\x03" +
23991
- "U\x03U\x03V\x03V\x03W\x03W\x03X\x03X\x03X\x03Y\x03Y\x03Y\x03Z\x03Z\x03" +
23992
- "Z\x03[\x03[\x03[\x03\\\x03\\\x03]\x03]\x03]\x03^\x03^\x03^\x03_\x03_\x03" +
23993
- "`\x03`\x03a\x03a\x03a\x03b\x03b\x03b\x03c\x03c\x03c\x03c\x03d\x03d\x03" +
23994
- "e\x03e\x03f\x03f\x03g\x03g\x03h\x03h\x03i\x03i\x03j\x03j\x03k\x03k\x03" +
23995
- "l\x03l\x03m\x03m\x03m\x03n\x03n\x03o\x03o\x03p\x03p\x07p\u0361\np\fp\x0E" +
23996
- "p\u0364\vp\x03p\x06p\u0367\np\rp\x0Ep\u0368\x03p\x06p\u036C\np\rp\x0E" +
23997
- "p\u036D\x05p\u0370\np\x03q\x06q\u0373\nq\rq\x0Eq\u0374\x03q\x03q\x03\u0305" +
23998
- "\x02\x02r\x03\x02\x03\x05\x02\x04\x07\x02\x05\t\x02\x06\v\x02\x07\r\x02" +
23999
- "\b\x0F\x02\t\x11\x02\n\x13\x02\v\x15\x02\f\x17\x02\r\x19\x02\x0E\x1B\x02" +
24000
- "\x0F\x1D\x02\x10\x1F\x02\x11!\x02\x12#\x02\x13%\x02\x14\'\x02\x15)\x02" +
24001
- "\x16+\x02\x17-\x02\x18/\x02\x191\x02\x1A3\x02\x1B5\x02\x1C7\x02\x1D9\x02" +
24002
- "\x1E;\x02\x1F=\x02 ?\x02!A\x02\"C\x02#E\x02$G\x02%I\x02&K\x02\'M\x02(" +
24003
- "O\x02)Q\x02*S\x02+U\x02,W\x02-Y\x02.[\x02/]\x020_\x021a\x022c\x023e\x02" +
24004
- "4g\x025i\x026k\x027m\x028o\x029q\x02:s\x02;u\x02<w\x02=y\x02>{\x02?}\x02" +
24005
- "@\x7F\x02A\x81\x02B\x83\x02C\x85\x02D\x87\x02E\x89\x02F\x8B\x02G\x8D\x02" +
24006
- "H\x8F\x02I\x91\x02J\x93\x02K\x95\x02L\x97\x02M\x99\x02N\x9B\x02O\x9D\x02" +
24007
- "P\x9F\x02Q\xA1\x02R\xA3\x02S\xA5\x02T\xA7\x02U\xA9\x02V\xAB\x02W\xAD\x02" +
24008
- "X\xAF\x02Y\xB1\x02Z\xB3\x02[\xB5\x02\\\xB7\x02]\xB9\x02^\xBB\x02_\xBD" +
24009
- "\x02`\xBF\x02a\xC1\x02b\xC3\x02c\xC5\x02d\xC7\x02e\xC9\x02f\xCB\x02g\xCD" +
24010
- "\x02h\xCF\x02i\xD1\x02j\xD3\x02k\xD5\x02l\xD7\x02m\xD9\x02n\xDB\x02o\xDD" +
24011
- "\x02p\xDF\x02q\xE1\x02r\x03\x02\v\x03\x022;\x04\x02GGgg\x04\x02--//\x03" +
24012
- "\x02$$\x04\x02\f\f\x0F\x0F\x05\x02&&C\\c|\x07\x02&&2;C\\aac|\x03\x02a" +
24013
- "a\x05\x02\v\f\x0F\x0F\"\"\x02\u038C\x02\x03\x03\x02\x02\x02\x02\x05\x03" +
24014
- "\x02\x02\x02\x02\x07\x03\x02\x02\x02\x02\t\x03\x02\x02\x02\x02\v\x03\x02" +
24015
- "\x02\x02\x02\r\x03\x02\x02\x02\x02\x0F\x03\x02\x02\x02\x02\x11\x03\x02" +
24016
- "\x02\x02\x02\x13\x03\x02\x02\x02\x02\x15\x03\x02\x02\x02\x02\x17\x03\x02" +
24017
- "\x02\x02\x02\x19\x03\x02\x02\x02\x02\x1B\x03\x02\x02\x02\x02\x1D\x03\x02" +
24018
- "\x02\x02\x02\x1F\x03\x02\x02\x02\x02!\x03\x02\x02\x02\x02#\x03\x02\x02" +
24019
- "\x02\x02%\x03\x02\x02\x02\x02\'\x03\x02\x02\x02\x02)\x03\x02\x02\x02\x02" +
24020
- "+\x03\x02\x02\x02\x02-\x03\x02\x02\x02\x02/\x03\x02\x02\x02\x021\x03\x02" +
24021
- "\x02\x02\x023\x03\x02\x02\x02\x025\x03\x02\x02\x02\x027\x03\x02\x02\x02" +
24022
- "\x029\x03\x02\x02\x02\x02;\x03\x02\x02\x02\x02=\x03\x02\x02\x02\x02?\x03" +
24023
- "\x02\x02\x02\x02A\x03\x02\x02\x02\x02C\x03\x02\x02\x02\x02E\x03\x02\x02" +
24024
- "\x02\x02G\x03\x02\x02\x02\x02I\x03\x02\x02\x02\x02K\x03\x02\x02\x02\x02" +
24025
- "M\x03\x02\x02\x02\x02O\x03\x02\x02\x02\x02Q\x03\x02\x02\x02\x02S\x03\x02" +
24026
- "\x02\x02\x02U\x03\x02\x02\x02\x02W\x03\x02\x02\x02\x02Y\x03\x02\x02\x02" +
24027
- "\x02[\x03\x02\x02\x02\x02]\x03\x02\x02\x02\x02_\x03\x02\x02\x02\x02a\x03" +
24028
- "\x02\x02\x02\x02c\x03\x02\x02\x02\x02e\x03\x02\x02\x02\x02g\x03\x02\x02" +
24029
- "\x02\x02i\x03\x02\x02\x02\x02k\x03\x02\x02\x02\x02m\x03\x02\x02\x02\x02" +
24030
- "o\x03\x02\x02\x02\x02q\x03\x02\x02\x02\x02s\x03\x02\x02\x02\x02u\x03\x02" +
24031
- "\x02\x02\x02w\x03\x02\x02\x02\x02y\x03\x02\x02\x02\x02{\x03\x02\x02\x02" +
24032
- "\x02}\x03\x02\x02\x02\x02\x7F\x03\x02\x02\x02\x02\x81\x03\x02\x02\x02" +
24033
- "\x02\x83\x03\x02\x02\x02\x02\x85\x03\x02\x02\x02\x02\x87\x03\x02\x02\x02" +
24034
- "\x02\x89\x03\x02\x02\x02\x02\x8B\x03\x02\x02\x02\x02\x8D\x03\x02\x02\x02" +
24035
- "\x02\x8F\x03\x02\x02\x02\x02\x91\x03\x02\x02\x02\x02\x93\x03\x02\x02\x02" +
24036
- "\x02\x95\x03\x02\x02\x02\x02\x97\x03\x02\x02\x02\x02\x99\x03\x02\x02\x02" +
24037
- "\x02\x9B\x03\x02\x02\x02\x02\x9D\x03\x02\x02\x02\x02\x9F\x03\x02\x02\x02" +
24038
- "\x02\xA1\x03\x02\x02\x02\x02\xA3\x03\x02\x02\x02\x02\xA5\x03\x02\x02\x02" +
24039
- "\x02\xA7\x03\x02\x02\x02\x02\xA9\x03\x02\x02\x02\x02\xAB\x03\x02\x02\x02" +
24040
- "\x02\xAD\x03\x02\x02\x02\x02\xAF\x03\x02\x02\x02\x02\xB1\x03\x02\x02\x02" +
24041
- "\x02\xB3\x03\x02\x02\x02\x02\xB5\x03\x02\x02\x02\x02\xB7\x03\x02\x02\x02" +
24042
- "\x02\xB9\x03\x02\x02\x02\x02\xBB\x03\x02\x02\x02\x02\xBD\x03\x02\x02\x02" +
24043
- "\x02\xBF\x03\x02\x02\x02\x02\xC1\x03\x02\x02\x02\x02\xC3\x03\x02\x02\x02" +
24044
- "\x02\xC5\x03\x02\x02\x02\x02\xC7\x03\x02\x02\x02\x02\xC9\x03\x02\x02\x02" +
24045
- "\x02\xCB\x03\x02\x02\x02\x02\xCD\x03\x02\x02\x02\x02\xCF\x03\x02\x02\x02" +
24046
- "\x02\xD1\x03\x02\x02\x02\x02\xD3\x03\x02\x02\x02\x02\xD5\x03\x02\x02\x02" +
24047
- "\x02\xD7\x03\x02\x02\x02\x02\xD9\x03\x02\x02\x02\x02\xDB\x03\x02\x02\x02" +
24048
- "\x02\xDD\x03\x02\x02\x02\x02\xDF\x03\x02\x02\x02\x02\xE1\x03\x02\x02\x02" +
24049
- "\x03\xE3\x03\x02\x02\x02\x05\xEC\x03\x02\x02\x02\x07\xF5\x03\x02\x02\x02" +
24050
- "\t\xFC\x03\x02\x02\x02\v\u0101\x03\x02\x02\x02\r\u0109\x03\x02\x02\x02" +
24051
- "\x0F\u0110\x03\x02\x02\x02\x11\u0118\x03\x02\x02\x02\x13\u011F\x03\x02" +
24052
- "\x02\x02\x15\u0123\x03\x02\x02\x02\x17\u0128\x03\x02\x02\x02\x19\u0132" +
23982
+ "I\x03I\x03I\x03I\x03I\x03I\x03I\x03I\x03J\x03J\x03J\x06J\u02BB\nJ\rJ\x0E" +
23983
+ "J\u02BC\x03J\x06J\u02C0\nJ\rJ\x0EJ\u02C1\x03J\x03J\x06J\u02C6\nJ\rJ\x0E" +
23984
+ "J\u02C7\x05J\u02CA\nJ\x03J\x03J\x05J\u02CE\nJ\x03J\x06J\u02D1\nJ\rJ\x0E" +
23985
+ "J\u02D2\x05J\u02D5\nJ\x03J\x03J\x06J\u02D9\nJ\rJ\x0EJ\u02DA\x03J\x03J" +
23986
+ "\x05J\u02DF\nJ\x03J\x06J\u02E2\nJ\rJ\x0EJ\u02E3\x05J\u02E6\nJ\x05J\u02E8" +
23987
+ "\nJ\x03K\x03K\x03K\x03K\x03K\x03K\x03K\x03K\x03K\x05K\u02F3\nK\x03L\x03" +
23988
+ "L\x07L\u02F7\nL\fL\x0EL\u02FA\vL\x03L\x03L\x03M\x03M\x03M\x03M\x07M\u0302" +
23989
+ "\nM\fM\x0EM\u0305\vM\x03M\x03M\x03M\x03M\x07M\u030B\nM\fM\x0EM\u030E\v" +
23990
+ "M\x03M\x03M\x05M\u0312\nM\x03N\x03N\x03N\x03O\x03O\x03O\x03P\x03P\x03" +
23991
+ "P\x03Q\x03Q\x03R\x03R\x03S\x03S\x03T\x03T\x03U\x03U\x03V\x03V\x03W\x03" +
23992
+ "W\x03X\x03X\x03X\x03Y\x03Y\x03Y\x03Z\x03Z\x03Z\x03[\x03[\x03[\x03\\\x03" +
23993
+ "\\\x03]\x03]\x03]\x03^\x03^\x03^\x03_\x03_\x03`\x03`\x03a\x03a\x03a\x03" +
23994
+ "b\x03b\x03b\x03c\x03c\x03c\x03c\x03d\x03d\x03e\x03e\x03f\x03f\x03g\x03" +
23995
+ "g\x03h\x03h\x03i\x03i\x03j\x03j\x03k\x03k\x03l\x03l\x03m\x03m\x03m\x03" +
23996
+ "n\x03n\x03o\x03o\x03p\x03p\x07p\u0368\np\fp\x0Ep\u036B\vp\x03p\x06p\u036E" +
23997
+ "\np\rp\x0Ep\u036F\x03p\x06p\u0373\np\rp\x0Ep\u0374\x05p\u0377\np\x03q" +
23998
+ "\x06q\u037A\nq\rq\x0Eq\u037B\x03q\x03q\x03\u030C\x02\x02r\x03\x02\x03" +
23999
+ "\x05\x02\x04\x07\x02\x05\t\x02\x06\v\x02\x07\r\x02\b\x0F\x02\t\x11\x02" +
24000
+ "\n\x13\x02\v\x15\x02\f\x17\x02\r\x19\x02\x0E\x1B\x02\x0F\x1D\x02\x10\x1F" +
24001
+ "\x02\x11!\x02\x12#\x02\x13%\x02\x14\'\x02\x15)\x02\x16+\x02\x17-\x02\x18" +
24002
+ "/\x02\x191\x02\x1A3\x02\x1B5\x02\x1C7\x02\x1D9\x02\x1E;\x02\x1F=\x02 " +
24003
+ "?\x02!A\x02\"C\x02#E\x02$G\x02%I\x02&K\x02\'M\x02(O\x02)Q\x02*S\x02+U" +
24004
+ "\x02,W\x02-Y\x02.[\x02/]\x020_\x021a\x022c\x023e\x024g\x025i\x026k\x02" +
24005
+ "7m\x028o\x029q\x02:s\x02;u\x02<w\x02=y\x02>{\x02?}\x02@\x7F\x02A\x81\x02" +
24006
+ "B\x83\x02C\x85\x02D\x87\x02E\x89\x02F\x8B\x02G\x8D\x02H\x8F\x02I\x91\x02" +
24007
+ "J\x93\x02K\x95\x02L\x97\x02M\x99\x02N\x9B\x02O\x9D\x02P\x9F\x02Q\xA1\x02" +
24008
+ "R\xA3\x02S\xA5\x02T\xA7\x02U\xA9\x02V\xAB\x02W\xAD\x02X\xAF\x02Y\xB1\x02" +
24009
+ "Z\xB3\x02[\xB5\x02\\\xB7\x02]\xB9\x02^\xBB\x02_\xBD\x02`\xBF\x02a\xC1" +
24010
+ "\x02b\xC3\x02c\xC5\x02d\xC7\x02e\xC9\x02f\xCB\x02g\xCD\x02h\xCF\x02i\xD1" +
24011
+ "\x02j\xD3\x02k\xD5\x02l\xD7\x02m\xD9\x02n\xDB\x02o\xDD\x02p\xDF\x02q\xE1" +
24012
+ "\x02r\x03\x02\r\x04\x02ZZzz\x05\x022;CHch\x03\x022;\x04\x02GGgg\x04\x02" +
24013
+ "--//\x03\x02$$\x04\x02\f\f\x0F\x0F\x05\x02&&C\\c|\x07\x02&&2;C\\aac|\x03" +
24014
+ "\x02aa\x05\x02\v\f\x0F\x0F\"\"\x02\u0395\x02\x03\x03\x02\x02\x02\x02\x05" +
24015
+ "\x03\x02\x02\x02\x02\x07\x03\x02\x02\x02\x02\t\x03\x02\x02\x02\x02\v\x03" +
24016
+ "\x02\x02\x02\x02\r\x03\x02\x02\x02\x02\x0F\x03\x02\x02\x02\x02\x11\x03" +
24017
+ "\x02\x02\x02\x02\x13\x03\x02\x02\x02\x02\x15\x03\x02\x02\x02\x02\x17\x03" +
24018
+ "\x02\x02\x02\x02\x19\x03\x02\x02\x02\x02\x1B\x03\x02\x02\x02\x02\x1D\x03" +
24019
+ "\x02\x02\x02\x02\x1F\x03\x02\x02\x02\x02!\x03\x02\x02\x02\x02#\x03\x02" +
24020
+ "\x02\x02\x02%\x03\x02\x02\x02\x02\'\x03\x02\x02\x02\x02)\x03\x02\x02\x02" +
24021
+ "\x02+\x03\x02\x02\x02\x02-\x03\x02\x02\x02\x02/\x03\x02\x02\x02\x021\x03" +
24022
+ "\x02\x02\x02\x023\x03\x02\x02\x02\x025\x03\x02\x02\x02\x027\x03\x02\x02" +
24023
+ "\x02\x029\x03\x02\x02\x02\x02;\x03\x02\x02\x02\x02=\x03\x02\x02\x02\x02" +
24024
+ "?\x03\x02\x02\x02\x02A\x03\x02\x02\x02\x02C\x03\x02\x02\x02\x02E\x03\x02" +
24025
+ "\x02\x02\x02G\x03\x02\x02\x02\x02I\x03\x02\x02\x02\x02K\x03\x02\x02\x02" +
24026
+ "\x02M\x03\x02\x02\x02\x02O\x03\x02\x02\x02\x02Q\x03\x02\x02\x02\x02S\x03" +
24027
+ "\x02\x02\x02\x02U\x03\x02\x02\x02\x02W\x03\x02\x02\x02\x02Y\x03\x02\x02" +
24028
+ "\x02\x02[\x03\x02\x02\x02\x02]\x03\x02\x02\x02\x02_\x03\x02\x02\x02\x02" +
24029
+ "a\x03\x02\x02\x02\x02c\x03\x02\x02\x02\x02e\x03\x02\x02\x02\x02g\x03\x02" +
24030
+ "\x02\x02\x02i\x03\x02\x02\x02\x02k\x03\x02\x02\x02\x02m\x03\x02\x02\x02" +
24031
+ "\x02o\x03\x02\x02\x02\x02q\x03\x02\x02\x02\x02s\x03\x02\x02\x02\x02u\x03" +
24032
+ "\x02\x02\x02\x02w\x03\x02\x02\x02\x02y\x03\x02\x02\x02\x02{\x03\x02\x02" +
24033
+ "\x02\x02}\x03\x02\x02\x02\x02\x7F\x03\x02\x02\x02\x02\x81\x03\x02\x02" +
24034
+ "\x02\x02\x83\x03\x02\x02\x02\x02\x85\x03\x02\x02\x02\x02\x87\x03\x02\x02" +
24035
+ "\x02\x02\x89\x03\x02\x02\x02\x02\x8B\x03\x02\x02\x02\x02\x8D\x03\x02\x02" +
24036
+ "\x02\x02\x8F\x03\x02\x02\x02\x02\x91\x03\x02\x02\x02\x02\x93\x03\x02\x02" +
24037
+ "\x02\x02\x95\x03\x02\x02\x02\x02\x97\x03\x02\x02\x02\x02\x99\x03\x02\x02" +
24038
+ "\x02\x02\x9B\x03\x02\x02\x02\x02\x9D\x03\x02\x02\x02\x02\x9F\x03\x02\x02" +
24039
+ "\x02\x02\xA1\x03\x02\x02\x02\x02\xA3\x03\x02\x02\x02\x02\xA5\x03\x02\x02" +
24040
+ "\x02\x02\xA7\x03\x02\x02\x02\x02\xA9\x03\x02\x02\x02\x02\xAB\x03\x02\x02" +
24041
+ "\x02\x02\xAD\x03\x02\x02\x02\x02\xAF\x03\x02\x02\x02\x02\xB1\x03\x02\x02" +
24042
+ "\x02\x02\xB3\x03\x02\x02\x02\x02\xB5\x03\x02\x02\x02\x02\xB7\x03\x02\x02" +
24043
+ "\x02\x02\xB9\x03\x02\x02\x02\x02\xBB\x03\x02\x02\x02\x02\xBD\x03\x02\x02" +
24044
+ "\x02\x02\xBF\x03\x02\x02\x02\x02\xC1\x03\x02\x02\x02\x02\xC3\x03\x02\x02" +
24045
+ "\x02\x02\xC5\x03\x02\x02\x02\x02\xC7\x03\x02\x02\x02\x02\xC9\x03\x02\x02" +
24046
+ "\x02\x02\xCB\x03\x02\x02\x02\x02\xCD\x03\x02\x02\x02\x02\xCF\x03\x02\x02" +
24047
+ "\x02\x02\xD1\x03\x02\x02\x02\x02\xD3\x03\x02\x02\x02\x02\xD5\x03\x02\x02" +
24048
+ "\x02\x02\xD7\x03\x02\x02\x02\x02\xD9\x03\x02\x02\x02\x02\xDB\x03\x02\x02" +
24049
+ "\x02\x02\xDD\x03\x02\x02\x02\x02\xDF\x03\x02\x02\x02\x02\xE1\x03\x02\x02" +
24050
+ "\x02\x03\xE3\x03\x02\x02\x02\x05\xEC\x03\x02\x02\x02\x07\xF5\x03\x02\x02" +
24051
+ "\x02\t\xFC\x03\x02\x02\x02\v\u0101\x03\x02\x02\x02\r\u0109\x03\x02\x02" +
24052
+ "\x02\x0F\u0110\x03\x02\x02\x02\x11\u0118\x03\x02\x02\x02\x13\u011F\x03" +
24053
+ "\x02\x02\x02\x15\u0123\x03\x02\x02\x02\x17\u0128\x03\x02\x02\x02\x19\u0132" +
24053
24054
  "\x03\x02\x02\x02\x1B\u013A\x03\x02\x02\x02\x1D\u0141\x03\x02\x02\x02\x1F" +
24054
24055
  "\u0147\x03\x02\x02\x02!\u014F\x03\x02\x02\x02#\u0156\x03\x02\x02\x02%" +
24055
24056
  "\u015F\x03\x02\x02\x02\'\u0169\x03\x02\x02\x02)\u0171\x03\x02\x02\x02" +
@@ -24070,21 +24071,21 @@ BattleScriptLexer._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u
24070
24071
  "\x7F\u027B\x03\x02\x02\x02\x81\u0281\x03\x02\x02\x02\x83\u0288\x03\x02" +
24071
24072
  "\x02\x02\x85\u028C\x03\x02\x02\x02\x87\u0291\x03\x02\x02\x02\x89\u0297" +
24072
24073
  "\x03\x02\x02\x02\x8B\u029E\x03\x02\x02\x02\x8D\u02A3\x03\x02\x02\x02\x8F" +
24073
- "\u02A8\x03\x02\x02\x02\x91\u02AD\x03\x02\x02\x02\x93\u02E0\x03\x02\x02" +
24074
- "\x02\x95\u02EB\x03\x02\x02\x02\x97\u02ED\x03\x02\x02\x02\x99\u030A\x03" +
24075
- "\x02\x02\x02\x9B\u030C\x03\x02\x02\x02\x9D\u030F\x03\x02\x02\x02\x9F\u0312" +
24076
- "\x03\x02\x02\x02\xA1\u0315\x03\x02\x02\x02\xA3\u0317\x03\x02\x02\x02\xA5" +
24077
- "\u0319\x03\x02\x02\x02\xA7\u031B\x03\x02\x02\x02\xA9\u031D\x03\x02\x02" +
24078
- "\x02\xAB\u031F\x03\x02\x02\x02\xAD\u0321\x03\x02\x02\x02\xAF\u0323\x03" +
24079
- "\x02\x02\x02\xB1\u0326\x03\x02\x02\x02\xB3\u0329\x03\x02\x02\x02\xB5\u032C" +
24080
- "\x03\x02\x02\x02\xB7\u032F\x03\x02\x02\x02\xB9\u0331\x03\x02\x02\x02\xBB" +
24081
- "\u0334\x03\x02\x02\x02\xBD\u0337\x03\x02\x02\x02\xBF\u0339\x03\x02\x02" +
24082
- "\x02\xC1\u033B\x03\x02\x02\x02\xC3\u033E\x03\x02\x02\x02\xC5\u0341\x03" +
24083
- "\x02\x02\x02\xC7\u0345\x03\x02\x02\x02\xC9\u0347\x03\x02\x02\x02\xCB\u0349" +
24084
- "\x03\x02\x02\x02\xCD\u034B\x03\x02\x02\x02\xCF\u034D\x03\x02\x02\x02\xD1" +
24085
- "\u034F\x03\x02\x02\x02\xD3\u0351\x03\x02\x02\x02\xD5\u0353\x03\x02\x02" +
24086
- "\x02\xD7\u0355\x03\x02\x02\x02\xD9\u0357\x03\x02\x02\x02\xDB\u035A\x03" +
24087
- "\x02\x02\x02\xDD\u035C\x03\x02\x02\x02\xDF\u036F\x03\x02\x02\x02\xE1\u0372" +
24074
+ "\u02A8\x03\x02\x02\x02\x91\u02AD\x03\x02\x02\x02\x93\u02E7\x03\x02\x02" +
24075
+ "\x02\x95\u02F2\x03\x02\x02\x02\x97\u02F4\x03\x02\x02\x02\x99\u0311\x03" +
24076
+ "\x02\x02\x02\x9B\u0313\x03\x02\x02\x02\x9D\u0316\x03\x02\x02\x02\x9F\u0319" +
24077
+ "\x03\x02\x02\x02\xA1\u031C\x03\x02\x02\x02\xA3\u031E\x03\x02\x02\x02\xA5" +
24078
+ "\u0320\x03\x02\x02\x02\xA7\u0322\x03\x02\x02\x02\xA9\u0324\x03\x02\x02" +
24079
+ "\x02\xAB\u0326\x03\x02\x02\x02\xAD\u0328\x03\x02\x02\x02\xAF\u032A\x03" +
24080
+ "\x02\x02\x02\xB1\u032D\x03\x02\x02\x02\xB3\u0330\x03\x02\x02\x02\xB5\u0333" +
24081
+ "\x03\x02\x02\x02\xB7\u0336\x03\x02\x02\x02\xB9\u0338\x03\x02\x02\x02\xBB" +
24082
+ "\u033B\x03\x02\x02\x02\xBD\u033E\x03\x02\x02\x02\xBF\u0340\x03\x02\x02" +
24083
+ "\x02\xC1\u0342\x03\x02\x02\x02\xC3\u0345\x03\x02\x02\x02\xC5\u0348\x03" +
24084
+ "\x02\x02\x02\xC7\u034C\x03\x02\x02\x02\xC9\u034E\x03\x02\x02\x02\xCB\u0350" +
24085
+ "\x03\x02\x02\x02\xCD\u0352\x03\x02\x02\x02\xCF\u0354\x03\x02\x02\x02\xD1" +
24086
+ "\u0356\x03\x02\x02\x02\xD3\u0358\x03\x02\x02\x02\xD5\u035A\x03\x02\x02" +
24087
+ "\x02\xD7\u035C\x03\x02\x02\x02\xD9\u035E\x03\x02\x02\x02\xDB\u0361\x03" +
24088
+ "\x02\x02\x02\xDD\u0363\x03\x02\x02\x02\xDF\u0376\x03\x02\x02\x02\xE1\u0379" +
24088
24089
  "\x03\x02\x02\x02\xE3\xE4\x07f\x02\x02\xE4\xE5\x07g\x02\x02\xE5\xE6\x07" +
24089
24090
  "d\x02\x02\xE6\xE7\x07w\x02\x02\xE7\xE8\x07i\x02\x02\xE8\xE9\x07i\x02\x02" +
24090
24091
  "\xE9\xEA\x07g\x02\x02\xEA\xEB\x07t\x02\x02\xEB\x04\x03\x02\x02\x02\xEC" +
@@ -24166,172 +24167,175 @@ BattleScriptLexer._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u
24166
24167
  "\x07h\x02\x02\u01C4\u01C5\x07q\x02\x02\u01C5\u01C6\x07t\x02\x02\u01C6" +
24167
24168
  "F\x03\x02\x02\x02\u01C7\u01C8\x07g\x02\x02\u01C8\u01C9\x07x\x02\x02\u01C9" +
24168
24169
  "\u01CA\x07c\x02\x02\u01CA\u01CB\x07n\x02\x02\u01CB\u01CC\x07w\x02\x02" +
24169
- "\u01CC\u01CD\x07c\x02\x02\u01CD\u01CE\x07v\x02\x02\u01CE\u01CF\x07g\x02" +
24170
- "\x02\u01CFH\x03\x02\x02\x02\u01D0\u01D1\x07e\x02\x02\u01D1\u01D2\x07c" +
24171
- "\x02\x02\u01D2";
24172
- BattleScriptLexer._serializedATNSegment1 = "\u01D3\x07u\x02\x02\u01D3\u01D4\x07g\x02\x02\u01D4J\x03\x02\x02\x02\u01D5" +
24173
- "\u01D6\x07d\x02\x02\u01D6\u01D7\x07t\x02\x02\u01D7\u01D8\x07g\x02\x02" +
24174
- "\u01D8\u01D9\x07c\x02\x02\u01D9\u01DA\x07m\x02\x02\u01DAL\x03\x02\x02" +
24175
- "\x02\u01DB\u01DC\x07e\x02\x02\u01DC\u01DD\x07q\x02\x02\u01DD\u01DE\x07" +
24176
- "p\x02\x02\u01DE\u01DF\x07v\x02\x02\u01DF\u01E0\x07k\x02\x02\u01E0\u01E1" +
24177
- "\x07p\x02\x02\u01E1\u01E2\x07w\x02\x02\u01E2\u01E3\x07g\x02\x02\u01E3" +
24178
- "N\x03\x02\x02\x02\u01E4\u01E5\x07h\x02\x02\u01E5\u01E6\x07c\x02\x02\u01E6" +
24179
- "\u01E7\x07n\x02\x02\u01E7\u01E8\x07n\x02\x02\u01E8\u01E9\x07d\x02\x02" +
24180
- "\u01E9\u01EA\x07c\x02\x02\u01EA\u01EB\x07e\x02\x02\u01EB\u01EC\x07m\x02" +
24181
- "\x02\u01ECP\x03\x02\x02\x02\u01ED\u01EE\x07e\x02\x02\u01EE\u01EF\x07c" +
24182
- "\x02\x02\u01EF\u01F0\x07v\x02\x02\u01F0\u01F1\x07e\x02\x02\u01F1\u01F2" +
24183
- "\x07j\x02\x02\u01F2R\x03\x02\x02\x02\u01F3\u01F4\x07c\x02\x02\u01F4\u01F5" +
24184
- "\x07u\x02\x02\u01F5T\x03\x02\x02\x02\u01F6\u01F7\x07g\x02\x02\u01F7\u01F8" +
24185
- "\x07p\x02\x02\u01F8\u01F9\x07w\x02\x02\u01F9\u01FA\x07o\x02\x02\u01FA" +
24186
- "V\x03\x02\x02\x02\u01FB\u01FC\x07c\x02\x02\u01FC\u01FD\x07p\x02\x02\u01FD" +
24187
- "\u01FE\x07{\x02\x02\u01FEX\x03\x02\x02\x02\u01FF\u0200\x07r\x02\x02\u0200" +
24188
- "\u0201\x07t\x02\x02\u0201\u0202\x07q\x02\x02\u0202\u0203\x07v\x02\x02" +
24189
- "\u0203\u0204\x07q\x02\x02\u0204\u0205\x07e\x02\x02\u0205\u0206\x07q\x02" +
24190
- "\x02\u0206\u0207\x07n\x02\x02\u0207Z\x03\x02\x02\x02\u0208\u0209\x07f" +
24191
- "\x02\x02\u0209\u020A\x07g\x02\x02\u020A\u020B\x07h\x02\x02\u020B\u020C" +
24192
- "\x07k\x02\x02\u020C\u020D\x07p\x02\x02\u020D\u020E\x07g\x02\x02\u020E" +
24193
- "\\\x03\x02\x02\x02\u020F\u0210\x07t\x02\x02\u0210\u0211\x07g\x02\x02\u0211" +
24194
- "\u0212\x07s\x02\x02\u0212\u0213\x07w\x02\x02\u0213\u0214\x07k\x02\x02" +
24195
- "\u0214\u0215\x07t\x02\x02\u0215\u0216\x07g\x02\x02\u0216^\x03\x02\x02" +
24196
- "\x02\u0217\u0218\x07v\x02\x02\u0218\u0219\x07g\x02\x02\u0219\u021A\x07" +
24197
- "t\x02\x02\u021A\u021B\x07o\x02\x02\u021B\u021C\x07k\x02\x02\u021C\u021D" +
24198
- "\x07p\x02\x02\u021D\u021E\x07c\x02\x02\u021E\u021F\x07v\x02\x02\u021F" +
24199
- "\u0220\x07g\x02\x02\u0220`\x03\x02\x02\x02\u0221\u0222\x07u\x02\x02\u0222" +
24200
- "\u0223\x07v\x02\x02\u0223\u0224\x07g\x02\x02\u0224\u0225\x07r\x02\x02" +
24201
- "\u0225b\x03\x02\x02\x02\u0226\u0227\x07f\x02\x02\u0227\u0228\x07g\x02" +
24202
- "\x02\u0228\u0229\x07e\x02\x02\u0229\u022A\x07q\x02\x02\u022A\u022B\x07" +
24203
- "f\x02\x02\u022B\u022C\x07g\x02\x02\u022Cd\x03\x02\x02\x02\u022D\u022E" +
24204
- "\x07g\x02\x02\u022E\u022F\x07p\x02\x02\u022F\u0230\x07e\x02\x02\u0230" +
24205
- "\u0231\x07q\x02\x02\u0231\u0232\x07f\x02\x02\u0232\u0233\x07g\x02\x02" +
24206
- "\u0233f\x03\x02\x02\x02\u0234\u0235\x07g\x02\x02\u0235\u0236\x07p\x02" +
24207
- "\x02\u0236\u0237\x07f\x02\x02\u0237h\x03\x02\x02\x02\u0238\u0239\x07h" +
24208
- "\x02\x02\u0239\u023A\x07q\x02\x02\u023A\u023B\x07t\x02\x02\u023B\u023C" +
24209
- "\x07y\x02\x02\u023C\u023D\x07c\x02\x02\u023D\u023E\x07t\x02\x02\u023E" +
24210
- "\u023F\x07f\x02\x02\u023Fj\x03\x02\x02\x02\u0240\u0241\x07t\x02\x02\u0241" +
24211
- "\u0242\x07g\x02\x02\u0242\u0243\x07y\x02\x02\u0243\u0244\x07k\x02\x02" +
24212
- "\u0244\u0245\x07p\x02\x02\u0245\u0246\x07f\x02\x02\u0246l\x03\x02\x02" +
24213
- "\x02\u0247\u0248\x07q\x02\x02\u0248\u0249\x07h\x02\x02\u0249\u024A\x07" +
24214
- "h\x02\x02\u024A\u024B\x07u\x02\x02\u024B\u024C\x07g\x02\x02\u024C\u024D" +
24215
- "\x07v\x02\x02\u024Dn\x03\x02\x02\x02\u024E\u024F\x07z\x02\x02\u024F\u0250" +
24216
- "\x07q\x02\x02\u0250\u0251\x07t\x02\x02\u0251p\x03\x02\x02\x02\u0252\u0253" +
24217
- "\x07z\x02\x02\u0253\u0254\x07p\x02\x02\u0254\u0255\x07q\x02\x02\u0255" +
24218
- "\u0256\x07t\x02\x02\u0256r\x03\x02\x02\x02\u0257\u0258\x07d\x02\x02\u0258" +
24219
- "\u0259\x07k\x02\x02\u0259\u025A\x07v\x02\x02\u025A\u025B\x07u\x02\x02" +
24220
- "\u025Bt\x03\x02\x02\x02\u025C\u025D\x07d\x02\x02\u025D\u025E\x07{\x02" +
24221
- "\x02\u025E\u025F\x07v\x02\x02\u025F\u0260\x07g\x02\x02\u0260\u0261\x07" +
24222
- "u\x02\x02\u0261v\x03\x02\x02\x02\u0262\u0263\x07t\x02\x02\u0263\u0264" +
24223
- "\x07w\x02\x02\u0264\u0265\x07n\x02\x02\u0265\u0266\x07g\x02\x02\u0266" +
24224
- "x\x03\x02\x02\x02\u0267\u0268\x07r\x02\x02\u0268\u0269\x07c\x02\x02\u0269" +
24225
- "\u026A\x07t\x02\x02\u026A\u026B\x07k\x02\x02\u026B\u026C\x07v\x02\x02" +
24226
- "\u026C\u026D\x07{\x02\x02\u026Dz\x03\x02\x02\x02\u026E\u026F\x07e\x02" +
24227
- "\x02\u026F\u0270\x07q\x02\x02\u0270\u0271\x07p\x02\x02\u0271\u0272\x07" +
24228
- "u\x02\x02\u0272\u0273\x07v\x02\x02\u0273|\x03\x02\x02\x02\u0274\u0275" +
24229
- "\x07q\x02\x02\u0275\u0276\x07d\x02\x02\u0276\u0277\x07l\x02\x02\u0277" +
24230
- "\u0278\x07g\x02\x02\u0278\u0279\x07e\x02\x02\u0279\u027A\x07v\x02\x02" +
24231
- "\u027A~\x03\x02\x02\x02\u027B\u027C\x07c\x02\x02\u027C\u027D\x07t\x02" +
24232
- "\x02\u027D\u027E\x07t\x02\x02\u027E\u027F\x07c\x02\x02\u027F\u0280\x07" +
24233
- "{\x02\x02\u0280\x80\x03\x02\x02\x02\u0281\u0282\x07u\x02\x02\u0282\u0283" +
24234
- "\x07v\x02\x02\u0283\u0284\x07t\x02\x02\u0284\u0285\x07k\x02\x02\u0285" +
24235
- "\u0286\x07p\x02\x02\u0286\u0287\x07i\x02\x02\u0287\x82\x03\x02\x02\x02" +
24236
- "\u0288\u0289\x07k\x02\x02\u0289\u028A\x07p\x02\x02\u028A\u028B\x07v\x02" +
24237
- "\x02\u028B\x84\x03\x02\x02\x02\u028C\u028D\x07w\x02\x02\u028D\u028E\x07" +
24238
- "k\x02\x02\u028E\u028F\x07p\x02\x02\u028F\u0290\x07v\x02\x02\u0290\x86" +
24239
- "\x03\x02\x02\x02\u0291\u0292\x07h\x02\x02\u0292\u0293\x07n\x02\x02\u0293" +
24240
- "\u0294\x07q\x02\x02\u0294\u0295\x07c\x02\x02\u0295\u0296\x07v\x02\x02" +
24241
- "\u0296\x88\x03\x02\x02\x02\u0297\u0298\x07f\x02\x02\u0298\u0299\x07q\x02" +
24242
- "\x02\u0299\u029A\x07w\x02\x02\u029A\u029B\x07d\x02\x02\u029B\u029C\x07" +
24243
- "n\x02\x02\u029C\u029D\x07g\x02\x02\u029D\x8A\x03\x02\x02\x02\u029E\u029F" +
24244
- "\x07d\x02\x02\u029F\u02A0\x07q\x02\x02\u02A0\u02A1\x07q\x02\x02\u02A1" +
24245
- "\u02A2\x07n\x02\x02\u02A2\x8C\x03\x02\x02\x02\u02A3\u02A4\x07p\x02\x02" +
24246
- "\u02A4\u02A5\x07w\x02\x02\u02A5\u02A6\x07n\x02\x02\u02A6\u02A7\x07n\x02" +
24247
- "\x02\u02A7\x8E\x03\x02\x02\x02\u02A8\u02A9\x07x\x02\x02\u02A9\u02AA\x07" +
24248
- "q\x02\x02\u02AA\u02AB\x07k\x02\x02\u02AB\u02AC\x07f\x02\x02\u02AC\x90" +
24249
- "\x03\x02\x02\x02\u02AD\u02AE\x07w\x02\x02\u02AE\u02AF\x07p\x02\x02\u02AF" +
24250
- "\u02B0\x07f\x02\x02\u02B0\u02B1\x07g\x02\x02\u02B1\u02B2\x07h\x02\x02" +
24251
- "\u02B2\u02B3\x07k\x02\x02\u02B3\u02B4\x07p\x02\x02\u02B4\u02B5\x07g\x02" +
24252
- "\x02\u02B5\u02B6\x07f\x02\x02\u02B6\x92\x03\x02\x02\x02\u02B7\u02B9\t" +
24253
- "\x02\x02\x02\u02B8\u02B7\x03\x02\x02\x02\u02B9\u02BA\x03\x02\x02\x02\u02BA" +
24254
- "\u02B8\x03\x02\x02\x02\u02BA\u02BB\x03\x02\x02\x02\u02BB\u02C2\x03\x02" +
24255
- "\x02\x02\u02BC\u02BE\x070\x02\x02\u02BD\u02BF\t\x02\x02\x02\u02BE\u02BD" +
24256
- "\x03\x02\x02\x02\u02BF\u02C0\x03\x02\x02\x02\u02C0\u02BE\x03\x02\x02\x02" +
24257
- "\u02C0\u02C1\x03\x02\x02\x02\u02C1\u02C3\x03\x02\x02\x02\u02C2\u02BC\x03" +
24258
- "\x02\x02\x02\u02C2\u02C3\x03\x02\x02\x02\u02C3\u02CD\x03\x02\x02\x02\u02C4" +
24259
- "\u02C6\t\x03\x02\x02\u02C5\u02C7\t\x04\x02\x02\u02C6\u02C5\x03\x02\x02" +
24260
- "\x02\u02C6\u02C7\x03\x02\x02\x02\u02C7\u02C9\x03\x02\x02\x02\u02C8\u02CA" +
24261
- "\t\x02\x02\x02\u02C9\u02C8\x03\x02\x02\x02\u02CA\u02CB\x03\x02\x02\x02" +
24262
- "\u02CB\u02C9\x03\x02\x02\x02\u02CB\u02CC\x03\x02\x02\x02\u02CC\u02CE\x03" +
24263
- "\x02\x02\x02\u02CD\u02C4\x03\x02\x02\x02\u02CD\u02CE\x03\x02\x02\x02\u02CE" +
24264
- "\u02E1\x03\x02\x02\x02\u02CF\u02D1\x070\x02\x02\u02D0\u02D2\t\x02\x02" +
24265
- "\x02\u02D1\u02D0\x03\x02\x02\x02\u02D2\u02D3\x03\x02\x02\x02\u02D3\u02D1" +
24266
- "\x03\x02\x02\x02\u02D3\u02D4\x03\x02\x02\x02\u02D4\u02DE\x03\x02\x02\x02" +
24267
- "\u02D5\u02D7\t\x03\x02\x02\u02D6\u02D8\t\x04\x02\x02\u02D7\u02D6\x03\x02" +
24268
- "\x02\x02\u02D7\u02D8\x03\x02\x02\x02\u02D8\u02DA\x03\x02\x02\x02\u02D9" +
24269
- "\u02DB\t\x02\x02\x02\u02DA\u02D9\x03\x02\x02\x02\u02DB\u02DC\x03\x02\x02" +
24270
- "\x02\u02DC\u02DA\x03\x02\x02\x02\u02DC\u02DD\x03\x02\x02\x02\u02DD\u02DF" +
24271
- "\x03\x02\x02\x02\u02DE\u02D5\x03\x02\x02\x02\u02DE\u02DF\x03\x02\x02\x02" +
24272
- "\u02DF\u02E1\x03\x02\x02\x02\u02E0\u02B8\x03\x02\x02\x02\u02E0\u02CF\x03" +
24273
- "\x02\x02\x02\u02E1\x94\x03\x02\x02\x02\u02E2\u02E3\x07v\x02\x02\u02E3" +
24274
- "\u02E4\x07t\x02\x02\u02E4\u02E5\x07w\x02\x02\u02E5\u02EC\x07g\x02\x02" +
24275
- "\u02E6\u02E7\x07h\x02\x02\u02E7\u02E8\x07c\x02\x02\u02E8\u02E9\x07n\x02" +
24276
- "\x02\u02E9\u02EA\x07u\x02\x02\u02EA\u02EC\x07g\x02\x02\u02EB\u02E2\x03" +
24277
- "\x02\x02\x02\u02EB\u02E6\x03\x02\x02\x02\u02EC\x96\x03\x02\x02\x02\u02ED" +
24278
- "\u02F1\x07$\x02\x02\u02EE\u02F0\n\x05\x02\x02\u02EF\u02EE\x03\x02\x02" +
24279
- "\x02\u02F0\u02F3\x03\x02\x02\x02\u02F1\u02EF\x03\x02\x02\x02\u02F1\u02F2" +
24280
- "\x03\x02\x02\x02\u02F2\u02F4\x03\x02\x02\x02\u02F3\u02F1\x03\x02\x02\x02" +
24281
- "\u02F4\u02F5\x07$\x02\x02\u02F5\x98\x03\x02\x02\x02\u02F6\u02F7\x071\x02" +
24282
- "\x02\u02F7\u02F8\x071\x02\x02\u02F8\u02FC\x03\x02\x02\x02\u02F9\u02FB" +
24283
- "\n\x06\x02\x02\u02FA\u02F9\x03\x02\x02\x02\u02FB\u02FE\x03\x02\x02\x02" +
24284
- "\u02FC\u02FA\x03\x02\x02\x02\u02FC\u02FD\x03\x02\x02\x02\u02FD\u030B\x03" +
24285
- "\x02\x02\x02\u02FE\u02FC\x03\x02\x02\x02\u02FF\u0300\x071\x02\x02\u0300" +
24286
- "\u0301\x07,\x02\x02\u0301\u0305\x03\x02\x02\x02\u0302\u0304\v\x02\x02" +
24287
- "\x02\u0303\u0302\x03\x02\x02\x02\u0304\u0307\x03\x02\x02\x02\u0305\u0306" +
24288
- "\x03\x02\x02\x02\u0305\u0303\x03\x02\x02\x02\u0306\u0308\x03\x02\x02\x02" +
24289
- "\u0307\u0305\x03\x02\x02\x02\u0308\u0309\x07,\x02\x02\u0309\u030B\x07" +
24290
- "1\x02\x02\u030A\u02F6\x03\x02\x02\x02\u030A\u02FF\x03\x02\x02\x02\u030B" +
24291
- "\x9A\x03\x02\x02\x02\u030C\u030D\x07?\x02\x02\u030D\u030E\x07@\x02\x02" +
24292
- "\u030E\x9C\x03\x02\x02\x02\u030F\u0310\x07-\x02\x02\u0310\u0311\x07-\x02" +
24293
- "\x02\u0311\x9E\x03\x02\x02\x02\u0312\u0313\x07/\x02\x02\u0313\u0314\x07" +
24294
- "/\x02\x02\u0314\xA0\x03\x02\x02\x02\u0315\u0316\x07-\x02\x02\u0316\xA2" +
24295
- "\x03\x02\x02\x02\u0317\u0318\x07/\x02\x02\u0318\xA4\x03\x02\x02\x02\u0319" +
24296
- "\u031A\x071\x02\x02\u031A\xA6\x03\x02\x02\x02\u031B\u031C\x07,\x02\x02" +
24297
- "\u031C\xA8\x03\x02\x02\x02\u031D\u031E\x07\'\x02\x02\u031E\xAA\x03\x02" +
24298
- "\x02\x02\u031F\u0320\x07A\x02\x02\u0320\xAC\x03\x02\x02\x02\u0321\u0322" +
24299
- "\x07?\x02\x02\u0322\xAE\x03\x02\x02\x02\u0323\u0324\x07-\x02\x02\u0324" +
24300
- "\u0325\x07?\x02\x02\u0325\xB0\x03\x02\x02\x02\u0326\u0327\x07/\x02\x02" +
24301
- "\u0327\u0328\x07?\x02\x02\u0328\xB2\x03\x02\x02\x02\u0329\u032A\x07(\x02" +
24302
- "\x02\u032A\u032B\x07(\x02\x02\u032B\xB4\x03\x02\x02\x02\u032C\u032D\x07" +
24303
- "~\x02\x02\u032D\u032E\x07~\x02\x02\u032E\xB6\x03\x02\x02\x02\u032F\u0330" +
24304
- "\x07#\x02\x02\u0330\xB8\x03\x02\x02\x02\u0331\u0332\x07?\x02\x02\u0332" +
24305
- "\u0333\x07?\x02\x02\u0333\xBA\x03\x02\x02\x02\u0334\u0335\x07#\x02\x02" +
24306
- "\u0335\u0336\x07?\x02\x02\u0336\xBC\x03\x02\x02\x02\u0337\u0338\x07@\x02" +
24307
- "\x02\u0338\xBE\x03\x02\x02\x02\u0339\u033A\x07>\x02\x02\u033A\xC0\x03" +
24308
- "\x02\x02\x02\u033B\u033C\x07@\x02\x02\u033C\u033D\x07?\x02\x02\u033D\xC2" +
24309
- "\x03\x02\x02\x02\u033E\u033F\x07>\x02\x02\u033F\u0340\x07?\x02\x02\u0340" +
24310
- "\xC4\x03\x02\x02\x02\u0341\u0342\x070\x02\x02\u0342\u0343\x070\x02\x02" +
24311
- "\u0343\u0344\x070\x02\x02\u0344\xC6\x03\x02\x02\x02\u0345\u0346\x070\x02" +
24312
- "\x02\u0346\xC8\x03\x02\x02\x02\u0347\u0348\x07.\x02\x02\u0348\xCA\x03" +
24313
- "\x02\x02\x02\u0349\u034A\x07a\x02\x02\u034A\xCC\x03\x02\x02\x02\u034B" +
24314
- "\u034C\x07*\x02\x02\u034C\xCE\x03\x02\x02\x02\u034D\u034E\x07+\x02\x02" +
24315
- "\u034E\xD0\x03\x02\x02\x02\u034F\u0350\x07}\x02\x02\u0350\xD2\x03\x02" +
24316
- "\x02\x02\u0351\u0352\x07\x7F\x02\x02\u0352\xD4\x03\x02\x02\x02\u0353\u0354" +
24317
- "\x07]\x02\x02\u0354\xD6\x03\x02\x02\x02\u0355\u0356\x07_\x02\x02\u0356" +
24318
- "\xD8\x03\x02\x02\x02\u0357\u0358\x07<\x02\x02\u0358\u0359\x07<\x02\x02" +
24319
- "\u0359\xDA\x03\x02\x02\x02\u035A\u035B\x07=\x02\x02\u035B\xDC\x03\x02" +
24320
- "\x02\x02\u035C\u035D\x07<\x02\x02\u035D\xDE\x03\x02\x02\x02\u035E\u0362" +
24321
- "\t\x07\x02\x02\u035F\u0361\t\b\x02\x02\u0360\u035F\x03\x02\x02\x02\u0361" +
24322
- "\u0364\x03\x02\x02\x02\u0362\u0360\x03\x02\x02\x02\u0362\u0363\x03\x02" +
24323
- "\x02\x02\u0363\u0370\x03\x02\x02\x02\u0364\u0362\x03\x02\x02\x02\u0365" +
24324
- "\u0367\t\t\x02\x02\u0366\u0365\x03\x02\x02\x02\u0367\u0368\x03\x02\x02" +
24325
- "\x02\u0368\u0366\x03\x02\x02\x02\u0368\u0369\x03\x02\x02\x02\u0369\u036B" +
24326
- "\x03\x02\x02\x02\u036A\u036C\t\b\x02\x02\u036B\u036A\x03\x02\x02\x02\u036C" +
24327
- "\u036D\x03\x02\x02\x02\u036D\u036B\x03\x02\x02\x02\u036D\u036E\x03\x02" +
24328
- "\x02\x02\u036E\u0370\x03\x02\x02\x02\u036F\u035E\x03\x02\x02\x02\u036F" +
24329
- "\u0366\x03\x02\x02\x02\u0370\xE0\x03\x02\x02\x02\u0371\u0373\t\n\x02\x02" +
24330
- "\u0372\u0371\x03\x02\x02\x02\u0373\u0374\x03\x02\x02\x02\u0374\u0372\x03" +
24331
- "\x02\x02\x02\u0374\u0375\x03\x02\x02\x02\u0375\u0376\x03\x02\x02\x02\u0376" +
24332
- "\u0377\bq\x02\x02\u0377\xE2\x03\x02\x02\x02\x18\x02\u02BA\u02C0\u02C2" +
24333
- "\u02C6\u02CB\u02CD\u02D3\u02D7\u02DC\u02DE\u02E0\u02EB\u02F1\u02FC\u0305" +
24334
- "\u030A\u0362\u0368\u036D\u036F\u0374\x03\b\x02\x02";
24170
+ "\u01CC\u01CD\x07c\x02\x02\u01CD";
24171
+ BattleScriptLexer._serializedATNSegment1 = "\u01CE\x07v\x02\x02\u01CE\u01CF\x07g\x02\x02\u01CFH\x03\x02\x02\x02\u01D0" +
24172
+ "\u01D1\x07e\x02\x02\u01D1\u01D2\x07c\x02\x02\u01D2\u01D3\x07u\x02\x02" +
24173
+ "\u01D3\u01D4\x07g\x02\x02\u01D4J\x03\x02\x02\x02\u01D5\u01D6\x07d\x02" +
24174
+ "\x02\u01D6\u01D7\x07t\x02\x02\u01D7\u01D8\x07g\x02\x02\u01D8\u01D9\x07" +
24175
+ "c\x02\x02\u01D9\u01DA\x07m\x02\x02\u01DAL\x03\x02\x02\x02\u01DB\u01DC" +
24176
+ "\x07e\x02\x02\u01DC\u01DD\x07q\x02\x02\u01DD\u01DE\x07p\x02\x02\u01DE" +
24177
+ "\u01DF\x07v\x02\x02\u01DF\u01E0\x07k\x02\x02\u01E0\u01E1\x07p\x02\x02" +
24178
+ "\u01E1\u01E2\x07w\x02\x02\u01E2\u01E3\x07g\x02\x02\u01E3N\x03\x02\x02" +
24179
+ "\x02\u01E4\u01E5\x07h\x02\x02\u01E5\u01E6\x07c\x02\x02\u01E6\u01E7\x07" +
24180
+ "n\x02\x02\u01E7\u01E8\x07n\x02\x02\u01E8\u01E9\x07d\x02\x02\u01E9\u01EA" +
24181
+ "\x07c\x02\x02\u01EA\u01EB\x07e\x02\x02\u01EB\u01EC\x07m\x02\x02\u01EC" +
24182
+ "P\x03\x02\x02\x02\u01ED\u01EE\x07e\x02\x02\u01EE\u01EF\x07c\x02\x02\u01EF" +
24183
+ "\u01F0\x07v\x02\x02\u01F0\u01F1\x07e\x02\x02\u01F1\u01F2\x07j\x02\x02" +
24184
+ "\u01F2R\x03\x02\x02\x02\u01F3\u01F4\x07c\x02\x02\u01F4\u01F5\x07u\x02" +
24185
+ "\x02\u01F5T\x03\x02\x02\x02\u01F6\u01F7\x07g\x02\x02\u01F7\u01F8\x07p" +
24186
+ "\x02\x02\u01F8\u01F9\x07w\x02\x02\u01F9\u01FA\x07o\x02\x02\u01FAV\x03" +
24187
+ "\x02\x02\x02\u01FB\u01FC\x07c\x02\x02\u01FC\u01FD\x07p\x02\x02\u01FD\u01FE" +
24188
+ "\x07{\x02\x02\u01FEX\x03\x02\x02\x02\u01FF\u0200\x07r\x02\x02\u0200\u0201" +
24189
+ "\x07t\x02\x02\u0201\u0202\x07q\x02\x02\u0202\u0203\x07v\x02\x02\u0203" +
24190
+ "\u0204\x07q\x02\x02\u0204\u0205\x07e\x02\x02\u0205\u0206\x07q\x02\x02" +
24191
+ "\u0206\u0207\x07n\x02\x02\u0207Z\x03\x02\x02\x02\u0208\u0209\x07f\x02" +
24192
+ "\x02\u0209\u020A\x07g\x02\x02\u020A\u020B\x07h\x02\x02\u020B\u020C\x07" +
24193
+ "k\x02\x02\u020C\u020D\x07p\x02\x02\u020D\u020E\x07g\x02\x02\u020E\\\x03" +
24194
+ "\x02\x02\x02\u020F\u0210\x07t\x02\x02\u0210\u0211\x07g\x02\x02\u0211\u0212" +
24195
+ "\x07s\x02\x02\u0212\u0213\x07w\x02\x02\u0213\u0214\x07k\x02\x02\u0214" +
24196
+ "\u0215\x07t\x02\x02\u0215\u0216\x07g\x02\x02\u0216^\x03\x02\x02\x02\u0217" +
24197
+ "\u0218\x07v\x02\x02\u0218\u0219\x07g\x02\x02\u0219\u021A\x07t\x02\x02" +
24198
+ "\u021A\u021B\x07o\x02\x02\u021B\u021C\x07k\x02\x02\u021C\u021D\x07p\x02" +
24199
+ "\x02\u021D\u021E\x07c\x02\x02\u021E\u021F\x07v\x02\x02\u021F\u0220\x07" +
24200
+ "g\x02\x02\u0220`\x03\x02\x02\x02\u0221\u0222\x07u\x02\x02\u0222\u0223" +
24201
+ "\x07v\x02\x02\u0223\u0224\x07g\x02\x02\u0224\u0225\x07r\x02\x02\u0225" +
24202
+ "b\x03\x02\x02\x02\u0226\u0227\x07f\x02\x02\u0227\u0228\x07g\x02\x02\u0228" +
24203
+ "\u0229\x07e\x02\x02\u0229\u022A\x07q\x02\x02\u022A\u022B\x07f\x02\x02" +
24204
+ "\u022B\u022C\x07g\x02\x02\u022Cd\x03\x02\x02\x02\u022D\u022E\x07g\x02" +
24205
+ "\x02\u022E\u022F\x07p\x02\x02\u022F\u0230\x07e\x02\x02\u0230\u0231\x07" +
24206
+ "q\x02\x02\u0231\u0232\x07f\x02\x02\u0232\u0233\x07g\x02\x02\u0233f\x03" +
24207
+ "\x02\x02\x02\u0234\u0235\x07g\x02\x02\u0235\u0236\x07p\x02\x02\u0236\u0237" +
24208
+ "\x07f\x02\x02\u0237h\x03\x02\x02\x02\u0238\u0239\x07h\x02\x02\u0239\u023A" +
24209
+ "\x07q\x02\x02\u023A\u023B\x07t\x02\x02\u023B\u023C\x07y\x02\x02\u023C" +
24210
+ "\u023D\x07c\x02\x02\u023D\u023E\x07t\x02\x02\u023E\u023F\x07f\x02\x02" +
24211
+ "\u023Fj\x03\x02\x02\x02\u0240\u0241\x07t\x02\x02\u0241\u0242\x07g\x02" +
24212
+ "\x02\u0242\u0243\x07y\x02\x02\u0243\u0244\x07k\x02\x02\u0244\u0245\x07" +
24213
+ "p\x02\x02\u0245\u0246\x07f\x02\x02\u0246l\x03\x02\x02\x02\u0247\u0248" +
24214
+ "\x07q\x02\x02\u0248\u0249\x07h\x02\x02\u0249\u024A\x07h\x02\x02\u024A" +
24215
+ "\u024B\x07u\x02\x02\u024B\u024C\x07g\x02\x02\u024C\u024D\x07v\x02\x02" +
24216
+ "\u024Dn\x03\x02\x02\x02\u024E\u024F\x07z\x02\x02\u024F\u0250\x07q\x02" +
24217
+ "\x02\u0250\u0251\x07t\x02\x02\u0251p\x03\x02\x02\x02\u0252\u0253\x07z" +
24218
+ "\x02\x02\u0253\u0254\x07p\x02\x02\u0254\u0255\x07q\x02\x02\u0255\u0256" +
24219
+ "\x07t\x02\x02\u0256r\x03\x02\x02\x02\u0257\u0258\x07d\x02\x02\u0258\u0259" +
24220
+ "\x07k\x02\x02\u0259\u025A\x07v\x02\x02\u025A\u025B\x07u\x02\x02\u025B" +
24221
+ "t\x03\x02\x02\x02\u025C\u025D\x07d\x02\x02\u025D\u025E\x07{\x02\x02\u025E" +
24222
+ "\u025F\x07v\x02\x02\u025F\u0260\x07g\x02\x02\u0260\u0261\x07u\x02\x02" +
24223
+ "\u0261v\x03\x02\x02\x02\u0262\u0263\x07t\x02\x02\u0263\u0264\x07w\x02" +
24224
+ "\x02\u0264\u0265\x07n\x02\x02\u0265\u0266\x07g\x02\x02\u0266x\x03\x02" +
24225
+ "\x02\x02\u0267\u0268\x07r\x02\x02\u0268\u0269\x07c\x02\x02\u0269\u026A" +
24226
+ "\x07t\x02\x02\u026A\u026B\x07k\x02\x02\u026B\u026C\x07v\x02\x02\u026C" +
24227
+ "\u026D\x07{\x02\x02\u026Dz\x03\x02\x02\x02\u026E\u026F\x07e\x02\x02\u026F" +
24228
+ "\u0270\x07q\x02\x02\u0270\u0271\x07p\x02\x02\u0271\u0272\x07u\x02\x02" +
24229
+ "\u0272\u0273\x07v\x02\x02\u0273|\x03\x02\x02\x02\u0274\u0275\x07q\x02" +
24230
+ "\x02\u0275\u0276\x07d\x02\x02\u0276\u0277\x07l\x02\x02\u0277\u0278\x07" +
24231
+ "g\x02\x02\u0278\u0279\x07e\x02\x02\u0279\u027A\x07v\x02\x02\u027A~\x03" +
24232
+ "\x02\x02\x02\u027B\u027C\x07c\x02\x02\u027C\u027D\x07t\x02\x02\u027D\u027E" +
24233
+ "\x07t\x02\x02\u027E\u027F\x07c\x02\x02\u027F\u0280\x07{\x02\x02\u0280" +
24234
+ "\x80\x03\x02\x02\x02\u0281\u0282\x07u\x02\x02\u0282\u0283\x07v\x02\x02" +
24235
+ "\u0283\u0284\x07t\x02\x02\u0284\u0285\x07k\x02\x02\u0285\u0286\x07p\x02" +
24236
+ "\x02\u0286\u0287\x07i\x02\x02\u0287\x82\x03\x02\x02\x02\u0288\u0289\x07" +
24237
+ "k\x02\x02\u0289\u028A\x07p\x02\x02\u028A\u028B\x07v\x02\x02\u028B\x84" +
24238
+ "\x03\x02\x02\x02\u028C\u028D\x07w\x02\x02\u028D\u028E\x07k\x02\x02\u028E" +
24239
+ "\u028F\x07p\x02\x02\u028F\u0290\x07v\x02\x02\u0290\x86\x03\x02\x02\x02" +
24240
+ "\u0291\u0292\x07h\x02\x02\u0292\u0293\x07n\x02\x02\u0293\u0294\x07q\x02" +
24241
+ "\x02\u0294\u0295\x07c\x02\x02\u0295\u0296\x07v\x02\x02\u0296\x88\x03\x02" +
24242
+ "\x02\x02\u0297\u0298\x07f\x02\x02\u0298\u0299\x07q\x02\x02\u0299\u029A" +
24243
+ "\x07w\x02\x02\u029A\u029B\x07d\x02\x02\u029B\u029C\x07n\x02\x02\u029C" +
24244
+ "\u029D\x07g\x02\x02\u029D\x8A\x03\x02\x02\x02\u029E\u029F\x07d\x02\x02" +
24245
+ "\u029F\u02A0\x07q\x02\x02\u02A0\u02A1\x07q\x02\x02\u02A1\u02A2\x07n\x02" +
24246
+ "\x02\u02A2\x8C\x03\x02\x02\x02\u02A3\u02A4\x07p\x02\x02\u02A4\u02A5\x07" +
24247
+ "w\x02\x02\u02A5\u02A6\x07n\x02\x02\u02A6\u02A7\x07n\x02\x02\u02A7\x8E" +
24248
+ "\x03\x02\x02\x02\u02A8\u02A9\x07x\x02\x02\u02A9\u02AA\x07q\x02\x02\u02AA" +
24249
+ "\u02AB\x07k\x02\x02\u02AB\u02AC\x07f\x02\x02\u02AC\x90\x03\x02\x02\x02" +
24250
+ "\u02AD\u02AE\x07w\x02\x02\u02AE\u02AF\x07p\x02\x02\u02AF\u02B0\x07f\x02" +
24251
+ "\x02\u02B0\u02B1\x07g\x02\x02\u02B1\u02B2\x07h\x02\x02\u02B2\u02B3\x07" +
24252
+ "k\x02\x02\u02B3\u02B4\x07p\x02\x02\u02B4\u02B5\x07g\x02\x02\u02B5\u02B6" +
24253
+ "\x07f\x02\x02\u02B6\x92\x03\x02\x02\x02\u02B7\u02B8\x072\x02\x02\u02B8" +
24254
+ "\u02BA\t\x02\x02\x02\u02B9\u02BB\t\x03\x02\x02\u02BA\u02B9\x03\x02\x02" +
24255
+ "\x02\u02BB\u02BC\x03\x02\x02\x02\u02BC\u02BA\x03\x02\x02\x02\u02BC\u02BD" +
24256
+ "\x03\x02\x02\x02\u02BD\u02E8\x03\x02\x02\x02\u02BE\u02C0\t\x04\x02\x02" +
24257
+ "\u02BF\u02BE\x03\x02\x02\x02\u02C0\u02C1\x03\x02\x02\x02\u02C1\u02BF\x03" +
24258
+ "\x02\x02\x02\u02C1\u02C2\x03\x02\x02\x02\u02C2\u02C9\x03\x02\x02\x02\u02C3" +
24259
+ "\u02C5\x070\x02\x02\u02C4\u02C6\t\x04\x02\x02\u02C5\u02C4\x03\x02\x02" +
24260
+ "\x02\u02C6\u02C7\x03\x02\x02\x02\u02C7\u02C5\x03\x02\x02\x02\u02C7\u02C8" +
24261
+ "\x03\x02\x02\x02\u02C8\u02CA\x03\x02\x02\x02\u02C9\u02C3\x03\x02\x02\x02" +
24262
+ "\u02C9\u02CA\x03\x02\x02\x02\u02CA\u02D4\x03\x02\x02\x02\u02CB\u02CD\t" +
24263
+ "\x05\x02\x02\u02CC\u02CE\t\x06\x02\x02\u02CD\u02CC\x03\x02\x02\x02\u02CD" +
24264
+ "\u02CE\x03\x02\x02\x02\u02CE\u02D0\x03\x02\x02\x02\u02CF\u02D1\t\x04\x02" +
24265
+ "\x02\u02D0\u02CF\x03\x02\x02\x02\u02D1\u02D2\x03\x02\x02\x02\u02D2\u02D0" +
24266
+ "\x03\x02\x02\x02\u02D2\u02D3\x03\x02\x02\x02\u02D3\u02D5\x03\x02\x02\x02" +
24267
+ "\u02D4\u02CB\x03\x02\x02\x02\u02D4\u02D5\x03\x02\x02\x02\u02D5\u02E8\x03" +
24268
+ "\x02\x02\x02\u02D6\u02D8\x070\x02\x02\u02D7\u02D9\t\x04\x02\x02\u02D8" +
24269
+ "\u02D7\x03\x02\x02\x02\u02D9\u02DA\x03\x02\x02\x02\u02DA\u02D8\x03\x02" +
24270
+ "\x02\x02\u02DA\u02DB\x03\x02\x02\x02\u02DB\u02E5\x03\x02\x02\x02\u02DC" +
24271
+ "\u02DE\t\x05\x02\x02\u02DD\u02DF\t\x06\x02\x02\u02DE\u02DD\x03\x02\x02" +
24272
+ "\x02\u02DE\u02DF\x03\x02\x02\x02\u02DF\u02E1\x03\x02\x02\x02\u02E0\u02E2" +
24273
+ "\t\x04\x02\x02\u02E1\u02E0\x03\x02\x02\x02\u02E2\u02E3\x03\x02\x02\x02" +
24274
+ "\u02E3\u02E1\x03\x02\x02\x02\u02E3\u02E4\x03\x02\x02\x02\u02E4\u02E6\x03" +
24275
+ "\x02\x02\x02\u02E5\u02DC\x03\x02\x02\x02\u02E5\u02E6\x03\x02\x02\x02\u02E6" +
24276
+ "\u02E8\x03\x02\x02\x02\u02E7\u02B7\x03\x02\x02\x02\u02E7\u02BF\x03\x02" +
24277
+ "\x02\x02\u02E7\u02D6\x03\x02\x02\x02\u02E8\x94\x03\x02\x02\x02\u02E9\u02EA" +
24278
+ "\x07v\x02\x02\u02EA\u02EB\x07t\x02\x02\u02EB\u02EC\x07w\x02\x02\u02EC" +
24279
+ "\u02F3\x07g\x02\x02\u02ED\u02EE\x07h\x02\x02\u02EE\u02EF\x07c\x02\x02" +
24280
+ "\u02EF\u02F0\x07n\x02\x02\u02F0\u02F1\x07u\x02\x02\u02F1\u02F3\x07g\x02" +
24281
+ "\x02\u02F2\u02E9\x03\x02\x02\x02\u02F2\u02ED\x03\x02\x02\x02\u02F3\x96" +
24282
+ "\x03\x02\x02\x02\u02F4\u02F8\x07$\x02\x02\u02F5\u02F7\n\x07\x02\x02\u02F6" +
24283
+ "\u02F5\x03\x02\x02\x02\u02F7\u02FA\x03\x02\x02\x02\u02F8\u02F6\x03\x02" +
24284
+ "\x02\x02\u02F8\u02F9\x03\x02\x02\x02\u02F9\u02FB\x03\x02\x02\x02\u02FA" +
24285
+ "\u02F8\x03\x02\x02\x02\u02FB\u02FC\x07$\x02\x02\u02FC\x98\x03\x02\x02" +
24286
+ "\x02\u02FD\u02FE\x071\x02\x02\u02FE\u02FF\x071\x02\x02\u02FF\u0303\x03" +
24287
+ "\x02\x02\x02\u0300\u0302\n\b\x02\x02\u0301\u0300\x03\x02\x02\x02\u0302" +
24288
+ "\u0305\x03\x02\x02\x02\u0303\u0301\x03\x02\x02\x02\u0303\u0304\x03\x02" +
24289
+ "\x02\x02\u0304\u0312\x03\x02\x02\x02\u0305\u0303\x03\x02\x02\x02\u0306" +
24290
+ "\u0307\x071\x02\x02\u0307\u0308\x07,\x02\x02\u0308\u030C\x03\x02\x02\x02" +
24291
+ "\u0309\u030B\v\x02\x02\x02\u030A\u0309\x03\x02\x02\x02\u030B\u030E\x03" +
24292
+ "\x02\x02\x02\u030C\u030D\x03\x02\x02\x02\u030C\u030A\x03\x02\x02\x02\u030D" +
24293
+ "\u030F\x03\x02\x02\x02\u030E\u030C\x03\x02\x02\x02\u030F\u0310\x07,\x02" +
24294
+ "\x02\u0310\u0312\x071\x02\x02\u0311\u02FD\x03\x02\x02\x02\u0311\u0306" +
24295
+ "\x03\x02\x02\x02\u0312\x9A\x03\x02\x02\x02\u0313\u0314\x07?\x02\x02\u0314" +
24296
+ "\u0315\x07@\x02\x02\u0315\x9C\x03\x02\x02\x02\u0316\u0317\x07-\x02\x02" +
24297
+ "\u0317\u0318\x07-\x02\x02\u0318\x9E\x03\x02\x02\x02\u0319\u031A\x07/\x02" +
24298
+ "\x02\u031A\u031B\x07/\x02\x02\u031B\xA0\x03\x02\x02\x02\u031C\u031D\x07" +
24299
+ "-\x02\x02\u031D\xA2\x03\x02\x02\x02\u031E\u031F\x07/\x02\x02\u031F\xA4" +
24300
+ "\x03\x02\x02\x02\u0320\u0321\x071\x02\x02\u0321\xA6\x03\x02\x02\x02\u0322" +
24301
+ "\u0323\x07,\x02\x02\u0323\xA8\x03\x02\x02\x02\u0324\u0325\x07\'\x02\x02" +
24302
+ "\u0325\xAA\x03\x02\x02\x02\u0326\u0327\x07A\x02\x02\u0327\xAC\x03\x02" +
24303
+ "\x02\x02\u0328\u0329\x07?\x02\x02\u0329\xAE\x03\x02\x02\x02\u032A\u032B" +
24304
+ "\x07-\x02\x02\u032B\u032C\x07?\x02\x02\u032C\xB0\x03\x02\x02\x02\u032D" +
24305
+ "\u032E\x07/\x02\x02\u032E\u032F\x07?\x02\x02\u032F\xB2\x03\x02\x02\x02" +
24306
+ "\u0330\u0331\x07(\x02\x02\u0331\u0332\x07(\x02\x02\u0332\xB4\x03\x02\x02" +
24307
+ "\x02\u0333\u0334\x07~\x02\x02\u0334\u0335\x07~\x02\x02\u0335\xB6\x03\x02" +
24308
+ "\x02\x02\u0336\u0337\x07#\x02\x02\u0337\xB8\x03\x02\x02\x02\u0338\u0339" +
24309
+ "\x07?\x02\x02\u0339\u033A\x07?\x02\x02\u033A\xBA\x03\x02\x02\x02\u033B" +
24310
+ "\u033C\x07#\x02\x02\u033C\u033D\x07?\x02\x02\u033D\xBC\x03\x02\x02\x02" +
24311
+ "\u033E\u033F\x07@\x02\x02\u033F\xBE\x03\x02\x02\x02\u0340\u0341\x07>\x02" +
24312
+ "\x02\u0341\xC0\x03\x02\x02\x02\u0342\u0343\x07@\x02\x02\u0343\u0344\x07" +
24313
+ "?\x02\x02\u0344\xC2\x03\x02\x02\x02\u0345\u0346\x07>\x02\x02\u0346\u0347" +
24314
+ "\x07?\x02\x02\u0347\xC4\x03\x02\x02\x02\u0348\u0349\x070\x02\x02\u0349" +
24315
+ "\u034A\x070\x02\x02\u034A\u034B\x070\x02\x02\u034B\xC6\x03\x02\x02\x02" +
24316
+ "\u034C\u034D\x070\x02\x02\u034D\xC8\x03\x02\x02\x02\u034E\u034F\x07.\x02" +
24317
+ "\x02\u034F\xCA\x03\x02\x02\x02\u0350\u0351\x07a\x02\x02\u0351\xCC\x03" +
24318
+ "\x02\x02\x02\u0352\u0353\x07*\x02\x02\u0353\xCE\x03\x02\x02\x02\u0354" +
24319
+ "\u0355\x07+\x02\x02\u0355\xD0\x03\x02\x02\x02\u0356\u0357\x07}\x02\x02" +
24320
+ "\u0357\xD2\x03\x02\x02\x02\u0358\u0359\x07\x7F\x02\x02\u0359\xD4\x03\x02" +
24321
+ "\x02\x02\u035A\u035B\x07]\x02\x02\u035B\xD6\x03\x02\x02\x02\u035C\u035D" +
24322
+ "\x07_\x02\x02\u035D\xD8\x03\x02\x02\x02\u035E\u035F\x07<\x02\x02\u035F" +
24323
+ "\u0360\x07<\x02\x02\u0360\xDA\x03\x02\x02\x02\u0361\u0362\x07=\x02\x02" +
24324
+ "\u0362\xDC\x03\x02\x02\x02\u0363\u0364\x07<\x02\x02\u0364\xDE\x03\x02" +
24325
+ "\x02\x02\u0365\u0369\t\t\x02\x02\u0366\u0368\t\n\x02\x02\u0367\u0366\x03" +
24326
+ "\x02\x02\x02\u0368\u036B\x03\x02\x02\x02\u0369\u0367\x03\x02\x02\x02\u0369" +
24327
+ "\u036A\x03\x02\x02\x02\u036A\u0377\x03\x02\x02\x02\u036B\u0369\x03\x02" +
24328
+ "\x02\x02\u036C\u036E\t\v\x02\x02\u036D\u036C\x03\x02\x02\x02\u036E\u036F" +
24329
+ "\x03\x02\x02\x02\u036F\u036D\x03\x02\x02\x02\u036F\u0370\x03\x02\x02\x02" +
24330
+ "\u0370\u0372\x03\x02\x02\x02\u0371\u0373\t\n\x02\x02\u0372\u0371\x03\x02" +
24331
+ "\x02\x02\u0373\u0374\x03\x02\x02\x02\u0374\u0372\x03\x02\x02\x02\u0374" +
24332
+ "\u0375\x03\x02\x02\x02\u0375\u0377\x03\x02\x02\x02\u0376\u0365\x03\x02" +
24333
+ "\x02\x02\u0376\u036D\x03\x02\x02\x02\u0377\xE0\x03\x02\x02\x02\u0378\u037A" +
24334
+ "\t\f\x02\x02\u0379\u0378\x03\x02\x02\x02\u037A\u037B\x03\x02\x02\x02\u037B" +
24335
+ "\u0379\x03\x02\x02\x02\u037B\u037C\x03\x02\x02\x02\u037C\u037D\x03\x02" +
24336
+ "\x02\x02\u037D\u037E\bq\x02\x02\u037E\xE2\x03\x02\x02\x02\x19\x02\u02BC" +
24337
+ "\u02C1\u02C7\u02C9\u02CD\u02D2\u02D4\u02DA\u02DE\u02E3\u02E5\u02E7\u02F2" +
24338
+ "\u02F8\u0303\u030C\u0311\u0369\u036F\u0374\u0376\u037B\x03\b\x02\x02";
24335
24339
  BattleScriptLexer._serializedATN = UtilsExports.join([
24336
24340
  BattleScriptLexer._serializedATNSegment0,
24337
24341
  BattleScriptLexer._serializedATNSegment1,
@@ -24405,6 +24409,18 @@ const throwIfUndefined = (value, message) => {
24405
24409
  }
24406
24410
  return value;
24407
24411
  };
24412
+ /**
24413
+ * Write a number held directly on a node back to source.
24414
+ *
24415
+ * Nodes such as `forward`/`offset`/`rewind`, `rule`, and the `uint<n>`/`bits<n>` widths store a
24416
+ * decoded number rather than a literal child, so each keeps a companion `<field>Raw` holding the
24417
+ * text it was written as - otherwise `forward 0x10;` would come back as `forward 16;`. The raw
24418
+ * text is a full-AST convenience and is not in the binary layout, so a node rebuilt from a binary
24419
+ * has no raw text and falls back to decimal.
24420
+ */
24421
+ const numberToSourceCode = (value, raw) => {
24422
+ return raw ?? value.toString();
24423
+ };
24408
24424
  const applyMetaDataToFunctionDeclarationNode = (node, meta) => {
24409
24425
  return {
24410
24426
  ...node,
@@ -24484,6 +24500,18 @@ const AssignmentExpressionNodeLayout = [{
24484
24500
  key: "right",
24485
24501
  shape: [EnumNodeLayoutEntry.LAYOUT_POINTER_NODE],
24486
24502
  }];
24503
+ /**
24504
+ * The operator as written: `=`, `+=` or `-=`. The grammar gives all three the
24505
+ * same rule, so it is the token between the two expressions. It used to be
24506
+ * written as "=" whatever the source said, which turned `a += b` into `a = b`.
24507
+ */
24508
+ const assignmentOperator = (ctx) => {
24509
+ if (ctx.PLUS_ASSIGN())
24510
+ return "+=";
24511
+ if (ctx.MINUS_ASSIGN())
24512
+ return "-=";
24513
+ return "=";
24514
+ };
24487
24515
  const assignmentExpressionToAstNode = (instance, ctx) => {
24488
24516
  // Check for optimisations
24489
24517
  const canOptimise = isOptimisable(instance, ctx);
@@ -24491,7 +24519,7 @@ const assignmentExpressionToAstNode = (instance, ctx) => {
24491
24519
  return {
24492
24520
  kind: "OPTIMISED_ASSIGNMENT_EXPRESSION",
24493
24521
  left: ctx.expression(0).text,
24494
- operator: "=",
24522
+ operator: assignmentOperator(ctx),
24495
24523
  right: ctx.expression(1).text,
24496
24524
  ...instance.contextMetaData(ctx)
24497
24525
  };
@@ -24499,7 +24527,7 @@ const assignmentExpressionToAstNode = (instance, ctx) => {
24499
24527
  return {
24500
24528
  kind: "ASSIGNMENT_EXPRESSION",
24501
24529
  left: instance.visit(ctx.expression(0)),
24502
- operator: "=",
24530
+ operator: assignmentOperator(ctx),
24503
24531
  right: instance.visit(ctx.expression(1)),
24504
24532
  ...instance.contextMetaData(ctx)
24505
24533
  };
@@ -25477,24 +25505,48 @@ const LiteralIntNodeLayout = [{
25477
25505
  key: "value",
25478
25506
  shape: [EnumNodeLayoutEntry.LAYOUT_RAW_INT],
25479
25507
  }];
25508
+ /**
25509
+ * Decode the text of a NUMBER token to its numeric value.
25510
+ *
25511
+ * `Number()` rather than `JSON.parse()`, because the NUMBER rule accepts three forms JSON
25512
+ * rejects: hex (`0xFF`), a bare fraction (`.5`), and leading zeroes (`010`). Decoding those
25513
+ * with `JSON.parse` threw on source the parser had already accepted. Note that a leading zero
25514
+ * is not a base marker - BattleScript has no octal, so `010` is ten, and a C-style bitmask is
25515
+ * written `0x…`.
25516
+ */
25517
+ const decodeNumberLiteral = (raw) => {
25518
+ const value = Number(raw);
25519
+ if (Number.isNaN(value)) {
25520
+ throw new Error(`Could not decode number literal "${raw}"`);
25521
+ }
25522
+ return value;
25523
+ };
25480
25524
  // TODO: We don't currently have a way to distinguish between float and double
25481
25525
  // and would need to add support at the grammar level to do so. I think adding
25482
25526
  // support for 1.2453L with a capital L would be the best way to do this,
25483
25527
  // defaulting to 32-bit floats when L is not present.
25484
25528
  const numberLiteralToAstNode = (instance, ctx) => {
25529
+ // `raw` is kept verbatim so codegen writes the literal back exactly as it was authored -
25530
+ // a colour written as 0xFF0000 should not come back out as 16711680.
25485
25531
  const raw = ctx.NUMBER().text;
25486
- const isInteger = Number.isInteger(JSON.parse(raw));
25487
- if (isInteger) {
25532
+ const value = decodeNumberLiteral(raw);
25533
+ // Int or float is decided by how the literal was written, not by its value:
25534
+ // `2.0` and `1e3` are floats the author spelled as floats, and deciding on
25535
+ // the value made `7 / 2.0` integer division in the interpreter. Hex is
25536
+ // always an int (its digits can include `e`).
25537
+ const isHex = /^0[xX]/.test(raw);
25538
+ const writtenAsFloat = !isHex && /[.eE]/.test(raw);
25539
+ if (!writtenAsFloat) {
25488
25540
  return {
25489
25541
  kind: `LITERAL_INT`,
25490
- value: JSON.parse(raw),
25542
+ value,
25491
25543
  raw,
25492
25544
  ...instance.contextMetaData(ctx),
25493
25545
  };
25494
25546
  }
25495
25547
  return {
25496
25548
  kind: `LITERAL_FLOAT`,
25497
- value: JSON.parse(raw),
25549
+ value,
25498
25550
  raw,
25499
25551
  ...instance.contextMetaData(ctx),
25500
25552
  };
@@ -40268,7 +40320,7 @@ const optimisedAssignmentExpressionToAstNode = (instance, ctx) => {
40268
40320
  return {
40269
40321
  kind: "OPTIMISED_ASSIGNMENT_EXPRESSION",
40270
40322
  left: ctx.expression(0).text,
40271
- operator: "=",
40323
+ operator: assignmentOperator(ctx),
40272
40324
  right: ctx.expression(1).text,
40273
40325
  ...instance.contextMetaData(ctx)
40274
40326
  };
@@ -40402,8 +40454,11 @@ const ProtocolTypeNodeLayout = [{
40402
40454
  const protocolTypeToAstNode = (instance, ctx) => {
40403
40455
  const numLiteralNode = ctx.numberLiteral();
40404
40456
  let bitCount = 0;
40457
+ let bitCountRaw;
40405
40458
  if (numLiteralNode) {
40406
- bitCount = instance.visit(numLiteralNode).value;
40459
+ const literal = instance.visit(numLiteralNode);
40460
+ bitCount = literal.value;
40461
+ bitCountRaw = literal.raw;
40407
40462
  }
40408
40463
  let value = "";
40409
40464
  if (ctx.TYPE_STRING()) {
@@ -40422,13 +40477,14 @@ const protocolTypeToAstNode = (instance, ctx) => {
40422
40477
  kind: "PROTOCOL_TYPE",
40423
40478
  value,
40424
40479
  bits: bitCount,
40480
+ bitsRaw: bitCountRaw,
40425
40481
  ...instance.contextMetaData(ctx)
40426
40482
  };
40427
40483
  };
40428
40484
  const protocolTypeFromAstNode = (instance, node, options = {}) => {
40429
40485
  if (node.value === "string")
40430
40486
  return instance.raw(`${node.value}`);
40431
- return instance.raw(`${node.value}<${node.bits}>`);
40487
+ return instance.raw(`${node.value}<${numberToSourceCode(node.bits, node.bitsRaw)}>`);
40432
40488
  };
40433
40489
 
40434
40490
  const DefineStatementNodeLayout = [{
@@ -40649,20 +40705,26 @@ const RuleStatementNodeLayout = [{
40649
40705
  shape: [EnumNodeLayoutEntry.LAYOUT_RAW_INT]
40650
40706
  }];
40651
40707
  const ruleStatementToAstNode = (instance, ctx) => {
40708
+ const value = instance.visit(ctx.numberLiteral(0));
40709
+ const consequent = instance.visit(ctx.numberLiteral(1));
40710
+ const alternate = instance.visit(ctx.numberLiteral(2));
40652
40711
  return {
40653
40712
  kind: "RULE_STATEMENT",
40654
40713
  type: instance.visit(ctx.protocolType()),
40655
40714
  id: instance.visit(ctx.stringLiteral(0)).value,
40656
40715
  inspect: instance.visit(ctx.stringLiteral(1)).value,
40657
40716
  comparator: ctx.protocolComparator().text,
40658
- value: instance.visit(ctx.numberLiteral(0)).value,
40659
- consequent: instance.visit(ctx.numberLiteral(1)).value,
40660
- alternate: instance.visit(ctx.numberLiteral(2)).value,
40717
+ value: value.value,
40718
+ consequent: consequent.value,
40719
+ alternate: alternate.value,
40720
+ valueRaw: value.raw,
40721
+ consequentRaw: consequent.raw,
40722
+ alternateRaw: alternate.raw,
40661
40723
  ...instance.contextMetaData(ctx)
40662
40724
  };
40663
40725
  };
40664
40726
  const ruleStatementFromAstNode = (instance, node, options = {}) => {
40665
- return instance.inline(instance.getTokenLiteralText(BattleScriptLexer.RULE), " ", instance.visit(node.type), " ", `"${node.id}"`, " ", instance.getTokenLiteralText(BattleScriptLexer.ASSIGN), " ", `"${node.inspect}"`, " ", node.comparator, " ", node.value.toString(), " ", instance.getTokenLiteralText(BattleScriptLexer.QUESTION_MARK), " ", node.consequent.toString(), " ", instance.getTokenLiteralText(BattleScriptLexer.COLON), " ", node.alternate.toString(), ";", instance.newLine());
40727
+ return instance.inline(instance.getTokenLiteralText(BattleScriptLexer.RULE), " ", instance.visit(node.type), " ", `"${node.id}"`, " ", instance.getTokenLiteralText(BattleScriptLexer.ASSIGN), " ", `"${node.inspect}"`, " ", node.comparator, " ", numberToSourceCode(node.value, node.valueRaw), " ", instance.getTokenLiteralText(BattleScriptLexer.QUESTION_MARK), " ", numberToSourceCode(node.consequent, node.consequentRaw), " ", instance.getTokenLiteralText(BattleScriptLexer.COLON), " ", numberToSourceCode(node.alternate, node.alternateRaw), ";", instance.newLine());
40666
40728
  };
40667
40729
 
40668
40730
  const ParityDeclarationNodeLayout = [{
@@ -40718,14 +40780,16 @@ const ForwardStatementNodeLayout = [{
40718
40780
  shape: [EnumNodeLayoutEntry.LAYOUT_RAW_INT]
40719
40781
  }];
40720
40782
  const forwardStatementToAstNode = (instance, ctx) => {
40783
+ const literal = instance.visit(ctx.numberLiteral());
40721
40784
  return {
40722
40785
  kind: "FORWARD_STATEMENT",
40723
- value: instance.visit(ctx.numberLiteral()).value,
40786
+ value: literal.value,
40787
+ valueRaw: literal.raw,
40724
40788
  ...instance.contextMetaData(ctx)
40725
40789
  };
40726
40790
  };
40727
40791
  const forwardStatementFromAstNode = (instance, node, options = {}) => {
40728
- return instance.raw(instance.inline(`${instance.getTokenLiteralText(BattleScriptLexer.FORWARD)} `, node.value.toString(), ";", instance.newLine()));
40792
+ return instance.raw(instance.inline(`${instance.getTokenLiteralText(BattleScriptLexer.FORWARD)} `, numberToSourceCode(node.value, node.valueRaw), ";", instance.newLine()));
40729
40793
  };
40730
40794
 
40731
40795
  const OffsetStatementNodeLayout = [{
@@ -40736,14 +40800,16 @@ const OffsetStatementNodeLayout = [{
40736
40800
  shape: [EnumNodeLayoutEntry.LAYOUT_RAW_INT]
40737
40801
  }];
40738
40802
  const offsetStatementToAstNode = (instance, ctx) => {
40803
+ const literal = instance.visit(ctx.numberLiteral());
40739
40804
  return {
40740
40805
  kind: "OFFSET_STATEMENT",
40741
- value: instance.visit(ctx.numberLiteral()).value,
40806
+ value: literal.value,
40807
+ valueRaw: literal.raw,
40742
40808
  ...instance.contextMetaData(ctx)
40743
40809
  };
40744
40810
  };
40745
40811
  const offsetStatementFromAstNode = (instance, node, options = {}) => {
40746
- return instance.raw(instance.inline(`${instance.getTokenLiteralText(BattleScriptLexer.OFFSET)} `, node.value.toString(), ";", instance.newLine()));
40812
+ return instance.raw(instance.inline(`${instance.getTokenLiteralText(BattleScriptLexer.OFFSET)} `, numberToSourceCode(node.value, node.valueRaw), ";", instance.newLine()));
40747
40813
  };
40748
40814
 
40749
40815
  const RewindStatementNodeLayout = [{
@@ -40754,14 +40820,16 @@ const RewindStatementNodeLayout = [{
40754
40820
  shape: [EnumNodeLayoutEntry.LAYOUT_RAW_INT]
40755
40821
  }];
40756
40822
  const rewindStatementToAstNode = (instance, ctx) => {
40823
+ const literal = instance.visit(ctx.numberLiteral());
40757
40824
  return {
40758
40825
  kind: "REWIND_STATEMENT",
40759
- value: instance.visit(ctx.numberLiteral()).value,
40826
+ value: literal.value,
40827
+ valueRaw: literal.raw,
40760
40828
  ...instance.contextMetaData(ctx)
40761
40829
  };
40762
40830
  };
40763
40831
  const rewindStatementFromAstNode = (instance, node, options = {}) => {
40764
- return instance.raw(instance.inline(`${instance.getTokenLiteralText(BattleScriptLexer.REWIND)} `, node.value.toString(), ";", instance.newLine()));
40832
+ return instance.raw(instance.inline(`${instance.getTokenLiteralText(BattleScriptLexer.REWIND)} `, numberToSourceCode(node.value, node.valueRaw), ";", instance.newLine()));
40765
40833
  };
40766
40834
 
40767
40835
  const ProtocolOpStatementNodeLayout = [{
@@ -40826,10 +40894,12 @@ const protocolReadTypeToAstNode = (instance, ctx) => {
40826
40894
  else {
40827
40895
  throw new Error(`Unknown PROTOCOL_READ_TYPE type: ${ctx.text}`);
40828
40896
  }
40897
+ const literal = instance.visit(ctx.numberLiteral());
40829
40898
  return {
40830
40899
  kind: "PROTOCOL_READ_TYPE",
40831
40900
  value,
40832
- bits: instance.visit(ctx.numberLiteral()).value,
40901
+ bits: literal.value,
40902
+ bitsRaw: literal.raw,
40833
40903
  ...instance.contextMetaData(ctx)
40834
40904
  };
40835
40905
  };
@@ -40844,7 +40914,7 @@ const protocolReadTypeFromAstNode = (instance, node, options = {}) => {
40844
40914
  else {
40845
40915
  throw new Error(`Unknown PROTOCOL_READ_TYPE type (ReadDataType enum from dyna protocol repo): ${node.value}`);
40846
40916
  }
40847
- return instance.raw(`${value}<${node.bits}>`);
40917
+ return instance.raw(`${value}<${numberToSourceCode(node.bits, node.bitsRaw)}>`);
40848
40918
  };
40849
40919
 
40850
40920
  const StopStatementNodeLayout = [{
@@ -42460,10 +42530,13 @@ var EnumOperator;
42460
42530
  EnumOperator[EnumOperator["OPERATOR_SUB"] = 13] = "OPERATOR_SUB";
42461
42531
  EnumOperator[EnumOperator["OPERATOR_MUL"] = 14] = "OPERATOR_MUL";
42462
42532
  EnumOperator[EnumOperator["OPERATOR_DIV"] = 15] = "OPERATOR_DIV";
42463
- EnumOperator[EnumOperator["OPERATOR_PERIOD"] = 16] = "OPERATOR_PERIOD";
42464
- EnumOperator[EnumOperator["OPERATOR_NAMESPACE"] = 17] = "OPERATOR_NAMESPACE";
42465
- EnumOperator[EnumOperator["OPERATOR_ASSIGN"] = 18] = "OPERATOR_ASSIGN";
42466
- EnumOperator[EnumOperator["OPERATOR_ARROW"] = 19] = "OPERATOR_ARROW";
42533
+ EnumOperator[EnumOperator["OPERATOR_MOD"] = 16] = "OPERATOR_MOD";
42534
+ EnumOperator[EnumOperator["OPERATOR_PERIOD"] = 17] = "OPERATOR_PERIOD";
42535
+ EnumOperator[EnumOperator["OPERATOR_NAMESPACE"] = 18] = "OPERATOR_NAMESPACE";
42536
+ EnumOperator[EnumOperator["OPERATOR_ASSIGN"] = 19] = "OPERATOR_ASSIGN";
42537
+ EnumOperator[EnumOperator["OPERATOR_ARROW"] = 20] = "OPERATOR_ARROW";
42538
+ EnumOperator[EnumOperator["OPERATOR_ADD_ASSIGN"] = 21] = "OPERATOR_ADD_ASSIGN";
42539
+ EnumOperator[EnumOperator["OPERATOR_SUB_ASSIGN"] = 22] = "OPERATOR_SUB_ASSIGN";
42467
42540
  })(EnumOperator || (EnumOperator = {}));
42468
42541
  function EnumOperatorToString(opTor) {
42469
42542
  switch (opTor) {
@@ -42482,10 +42555,13 @@ function EnumOperatorToString(opTor) {
42482
42555
  case EnumOperator.OPERATOR_SUB: return "-";
42483
42556
  case EnumOperator.OPERATOR_MUL: return "*";
42484
42557
  case EnumOperator.OPERATOR_DIV: return "/";
42558
+ case EnumOperator.OPERATOR_MOD: return "%";
42485
42559
  case EnumOperator.OPERATOR_PERIOD: return ".";
42486
42560
  case EnumOperator.OPERATOR_NAMESPACE: return "::";
42487
42561
  case EnumOperator.OPERATOR_ASSIGN: return "=";
42488
42562
  case EnumOperator.OPERATOR_ARROW: return "=>";
42563
+ case EnumOperator.OPERATOR_ADD_ASSIGN: return "+=";
42564
+ case EnumOperator.OPERATOR_SUB_ASSIGN: return "-=";
42489
42565
  default: return "UNKNOWN";
42490
42566
  }
42491
42567
  }
@@ -42506,10 +42582,13 @@ function EnumOperatorFromString(opTor) {
42506
42582
  case "-": return EnumOperator.OPERATOR_SUB;
42507
42583
  case "*": return EnumOperator.OPERATOR_MUL;
42508
42584
  case "/": return EnumOperator.OPERATOR_DIV;
42585
+ case "%": return EnumOperator.OPERATOR_MOD;
42509
42586
  case ".": return EnumOperator.OPERATOR_PERIOD;
42510
42587
  case "::": return EnumOperator.OPERATOR_NAMESPACE;
42511
42588
  case "=": return EnumOperator.OPERATOR_ASSIGN;
42512
42589
  case "=>": return EnumOperator.OPERATOR_ARROW;
42590
+ case "+=": return EnumOperator.OPERATOR_ADD_ASSIGN;
42591
+ case "-=": return EnumOperator.OPERATOR_SUB_ASSIGN;
42513
42592
  default: return EnumOperator.OPERATOR_UNKNOWN;
42514
42593
  }
42515
42594
  }
@@ -45168,13 +45247,17 @@ var EnumNodeProp;
45168
45247
  EnumNodeProp[EnumNodeProp["PROP_LOCALIDENTIFIER"] = 53] = "PROP_LOCALIDENTIFIER";
45169
45248
  EnumNodeProp[EnumNodeProp["PROP_TRANSPORT"] = 54] = "PROP_TRANSPORT";
45170
45249
  EnumNodeProp[EnumNodeProp["PROP_BITS"] = 55] = "PROP_BITS";
45171
- EnumNodeProp[EnumNodeProp["PROP_COMPARATOR"] = 56] = "PROP_COMPARATOR";
45172
- EnumNodeProp[EnumNodeProp["PROP_ISTERMINAL"] = 57] = "PROP_ISTERMINAL";
45173
- EnumNodeProp[EnumNodeProp["PROP_MODE"] = 58] = "PROP_MODE";
45174
- EnumNodeProp[EnumNodeProp["PROP_SUCCESS"] = 59] = "PROP_SUCCESS";
45175
- EnumNodeProp[EnumNodeProp["PROP_INSPECT"] = 60] = "PROP_INSPECT";
45176
- EnumNodeProp[EnumNodeProp["PROP_OP"] = 61] = "PROP_OP";
45177
- EnumNodeProp[EnumNodeProp["PROP_READTYPE"] = 62] = "PROP_READTYPE";
45250
+ EnumNodeProp[EnumNodeProp["PROP_BITSRAW"] = 56] = "PROP_BITSRAW";
45251
+ EnumNodeProp[EnumNodeProp["PROP_COMPARATOR"] = 57] = "PROP_COMPARATOR";
45252
+ EnumNodeProp[EnumNodeProp["PROP_ISTERMINAL"] = 58] = "PROP_ISTERMINAL";
45253
+ EnumNodeProp[EnumNodeProp["PROP_MODE"] = 59] = "PROP_MODE";
45254
+ EnumNodeProp[EnumNodeProp["PROP_SUCCESS"] = 60] = "PROP_SUCCESS";
45255
+ EnumNodeProp[EnumNodeProp["PROP_INSPECT"] = 61] = "PROP_INSPECT";
45256
+ EnumNodeProp[EnumNodeProp["PROP_VALUERAW"] = 62] = "PROP_VALUERAW";
45257
+ EnumNodeProp[EnumNodeProp["PROP_CONSEQUENTRAW"] = 63] = "PROP_CONSEQUENTRAW";
45258
+ EnumNodeProp[EnumNodeProp["PROP_ALTERNATERAW"] = 64] = "PROP_ALTERNATERAW";
45259
+ EnumNodeProp[EnumNodeProp["PROP_OP"] = 65] = "PROP_OP";
45260
+ EnumNodeProp[EnumNodeProp["PROP_READTYPE"] = 66] = "PROP_READTYPE";
45178
45261
  })(EnumNodeProp || (EnumNodeProp = {}));
45179
45262
  function EnumNodePropToString(prop) {
45180
45263
  switch (prop) {
@@ -45233,11 +45316,15 @@ function EnumNodePropToString(prop) {
45233
45316
  case EnumNodeProp.PROP_LOCALIDENTIFIER: return "localIdentifier";
45234
45317
  case EnumNodeProp.PROP_TRANSPORT: return "transport";
45235
45318
  case EnumNodeProp.PROP_BITS: return "bits";
45319
+ case EnumNodeProp.PROP_BITSRAW: return "bitsRaw";
45236
45320
  case EnumNodeProp.PROP_COMPARATOR: return "comparator";
45237
45321
  case EnumNodeProp.PROP_ISTERMINAL: return "isTerminal";
45238
45322
  case EnumNodeProp.PROP_MODE: return "mode";
45239
45323
  case EnumNodeProp.PROP_SUCCESS: return "success";
45240
45324
  case EnumNodeProp.PROP_INSPECT: return "inspect";
45325
+ case EnumNodeProp.PROP_VALUERAW: return "valueRaw";
45326
+ case EnumNodeProp.PROP_CONSEQUENTRAW: return "consequentRaw";
45327
+ case EnumNodeProp.PROP_ALTERNATERAW: return "alternateRaw";
45241
45328
  case EnumNodeProp.PROP_OP: return "op";
45242
45329
  case EnumNodeProp.PROP_READTYPE: return "readType";
45243
45330
  default: return "unknown";
@@ -45300,16 +45387,20 @@ function EnumNodePropFromString(prop) {
45300
45387
  case "localIdentifier": return EnumNodeProp.PROP_LOCALIDENTIFIER;
45301
45388
  case "transport": return EnumNodeProp.PROP_TRANSPORT;
45302
45389
  case "bits": return EnumNodeProp.PROP_BITS;
45390
+ case "bitsRaw": return EnumNodeProp.PROP_BITSRAW;
45303
45391
  case "comparator": return EnumNodeProp.PROP_COMPARATOR;
45304
45392
  case "isTerminal": return EnumNodeProp.PROP_ISTERMINAL;
45305
45393
  case "mode": return EnumNodeProp.PROP_MODE;
45306
45394
  case "success": return EnumNodeProp.PROP_SUCCESS;
45307
45395
  case "inspect": return EnumNodeProp.PROP_INSPECT;
45396
+ case "valueRaw": return EnumNodeProp.PROP_VALUERAW;
45397
+ case "consequentRaw": return EnumNodeProp.PROP_CONSEQUENTRAW;
45398
+ case "alternateRaw": return EnumNodeProp.PROP_ALTERNATERAW;
45308
45399
  case "op": return EnumNodeProp.PROP_OP;
45309
45400
  case "readType": return EnumNodeProp.PROP_READTYPE;
45310
45401
  default: return EnumNodeProp.PROP_UNKNOWN;
45311
45402
  }
45312
45403
  }
45313
45404
 
45314
- export { AfterDeclarationNodeLayout, AfterExpressionNodeLayout, ArrayExpressionNodeLayout, AssignmentExpressionNodeLayout, AssignmentPatternNodeLayout, BattleScriptFromAST, BattleScriptLexer, BattleScriptParser, BattleScriptToAST, BattleScriptToMiniAST, BinaryExpressionNodeLayout, BlockStatementNodeLayout, BreakStatementNodeLayout, CallExpressionNodeLayout, CancelStatementNodeLayout, CatchStatementNodeLayout, CommentNodeLayout, ConstantDeclarationNodeLayout, ConstantDeclaratorNodeLayout, ContinueStatementNodeLayout, CustomTypeNodeLayout, DataTypeNodeLayout, DebuggerStatementNodeLayout, DefineStatementNodeLayout, DependencyAnalyzer, EndStatementNodeLayout, EntryPointCollector, EnumAssignmentNodeLayout, EnumByteCodeFormat, EnumByteCodeFormatFromString, EnumByteCodeFormatToString, EnumDeclarationNodeLayout, EnumFunctionType, EnumFunctionTypeFromString, EnumFunctionTypeToString, EnumLiteralType, EnumLiteralTypeFromString, EnumLiteralTypeToString, EnumNodeBinaryType, EnumNodeBinaryTypeFromString, EnumNodeBinaryTypeToString, EnumNodeKind, EnumNodeKindFromString, EnumNodeKindToString, EnumNodeLayoutEntry, EnumNodeLayoutEntryFromString, EnumNodeLayoutEntryToString, EnumNodeProp, EnumNodePropFromString, EnumNodePropToString, EnumOperator, EnumOperatorFromString, EnumOperatorToString, EvaluateCaseNodeLayout, EvaluateFallbackNodeLayout, EvaluateStatementNodeLayout, EveryDeclarationNodeLayout, EveryExpressionNodeLayout, ExportNamedDeclarationNodeLayout, ExportSpecifierNodeLayout, ExpressionStatementNodeLayout, ForStatementNodeLayout, ForwardStatementNodeLayout, FunctionDeclarationNodeLayout, FunctionDefinitionNodeLayout, IdentifierNodeLayout, IfStatementNodeLayout, ImportDeclarationNodeLayout, ImportSpecifierNodeLayout, IncludeStatementNodeLayout, InterfaceNodeLayout, InterfacePropertyDeclarationNodeLayout, LiteralBooleanNodeLayout, LiteralDoubleNodeLayout, LiteralFloatNodeLayout, LiteralIntNodeLayout, LiteralNullNodeLayout, LiteralStringNodeLayout, LiteralUndefinedNodeLayout, MemberExpressionNodeLayout, MiniAstToFullAst, ModuleResolver, ObjectExpressionNodeLayout, ObjectPropertyNodeLayout, OffsetStatementNodeLayout, OptimisedAssignmentExpressionNodeLayout, OptimisedBinaryExpressionNodeLayout, OptimisedMemberExpressionNodeLayout, OptimisedUpdateExpressionNodeLayout, ParityDeclarationNodeLayout, ProgramDeclarationNodeLayout, ProgramPropertyDeclarationNodeLayout, ProtocolDeclarationNodeLayout, ProtocolOpStatementNodeLayout, ProtocolReadTypeNodeLayout, ProtocolToCpp, ProtocolTypeNodeLayout, RequireStatementNodeLayout, RestElementNodeLayout, ResumeStatementNodeLayout, ReturnStatementNodeLayout, RewindStatementNodeLayout, RootNodeLayout, RuleStatementNodeLayout, StartStatementNodeLayout, StateDeclarationNodeLayout, StateModuleDeclarationNodeLayout, StateModuleEventDeclarationNodeLayout, StepDeclarationNodeLayout, StopStatementNodeLayout, TreeShaker, UnaryExpressionNodeLayout, UpdateExpressionNodeLayout, VariableDeclarationNodeLayout, VariableDeclaratorNodeLayout, WildcardNodeLayout, afterDeclarationFromAstNode, afterDeclarationToAstNode, afterExpressionFromAstNode, afterExpressionToAstNode, arrayExpressionFromAstNode, arrayExpressionInternalToAstNode, assignmentExpressionFromAstNode, assignmentExpressionToAstNode, assignmentPatternToAstNode, binaryExpressionFromAstNode, binaryExpressionToAstNode, blockStatementFromAstNode, blockStatementToAstNode, booleanLiteralToAstNode, breakStatementFromAstNode, breakStatementToAstNode, callExpressionFromAstNode, callExpressionToAstNode, cancelStatementFromAstNode, cancelStatementToAstNode, catchAsStatementToAstNode, catchStatementFromAstNode, catchStatementToAstNode, commentFromAstNode, commentToAstNode, computedMemberExpressionToAstNode, constantDeclarationFromAstNode, constantDeclaratorFromAstNode, constantDeclaratorToAstNode, continueStatementFromAstNode, continueStatementToAstNode, customTypeFromAstNode, customTypeToAstNode, dataTypeFromAstNode, dataTypeToAstNode, debuggerStatementFromAstNode, debuggerStatementToAstNode, defineStatementFromAstNode, defineStatementToAstNode, endStatementFromAstNode, endStatementToAstNode, enumAssignmentFromAstNode, enumAssignmentToAstNode, enumDeclarationFromAstNode, enumDeclarationToAstNode, evaluateCaseFromAstNode, evaluateCaseToAstNode, evaluateFallbackFromAstNode, evaluateFallbackToAstNode, evaluateStatementFromAstNode, evaluateStatementToAstNode, everyDeclarationFromAstNode, everyDeclarationToAstNode, everyExpressionFromAstNode, everyExpressionToAstNode, exportNamedDeclarationFromAstNode, exportNamedToAstNode, exportReexportToAstNode, exportSpecifierFromAstNode, exportSpecifierToAstNode, expressionStatementFromAstNode, expressionStatementToAstNode, forStatementFromAstNode, forStatementToAstNode, forwardStatementFromAstNode, forwardStatementToAstNode, fromBinaryToMiniAst, fromFullAstToSourceCode, fromMiniAstToAst, fromMiniAstToBinary, fromMiniAstToSourceCode, fromSourceCodeToBinary, fromSourceCodeToFullAst, fromSourceCodeToMiniAst, functionDeclarationFromAstNode, functionDeclarationToAstNode, functionDefinitionFromAstNode, functionDefinitionToAstNode, functionNameIdentifierToAstNode, functionParameterFromAstNode, generateCppFromProtocolAst, getParser, identifierFromAstNode, identifierToAstNode, ifStatementFromAstNode, ifStatementToAstNode, importDeclarationFromAstNode, importExternalToAstNode, importNativeToAstNode, importSpecifierFromAstNode, importSpecifierToAstNode, includeStatementFromAstNode, includeStatementToAstNode, interfaceDeclarationFromAstNode, interfaceDeclarationToAstNode, interfacePropertyDeclarationFromAstNode, interfacePropertyToAstNode, literalBooleanFromAstNode, literalDoubleFromAstNode, literalFloatFromAstNode, literalIntFromAstNode, literalNullFromAstNode, literalStringFromAstNode, literalUndefinedFromAstNode, memberExpressionFromAstNode, miniAstFromBinaryBuffer, miniAstLayout, miniAstToBinary, namespacedMemberExpressionToAstNode, nonComputedMemberExpressionToAstNode, normaliseFormatting, nullLiteralToAstNode, numberLiteralToAstNode, objectExpressionFromAstNode, objectExpressionInternalToAstNode, objectPropertyFromAstNode, objectPropertyToAstNode, offsetStatementFromAstNode, offsetStatementToAstNode, optimisedAssignmentExpressionFromAstNode, optimisedAssignmentExpressionToAstNode, optimisedBinaryExpressionFromAstNode, optimisedBinaryExpressionToAstNode, optimisedMemberExpressionFromAstNode, optimisedUpdateExpressionFromAstNode, optimisedUpdateExpressionToAstNode, parityDeclarationFromAstNode, parityDeclarationToAstNode, programDeclarationFromAstNode, programDeclarationToAstNode, programPropertyDeclarationFromAstNode, programPropertyToAstNode, protocolDeclarationFromAstNode, protocolDeclarationToAstNode, protocolOpStatementFromAstNode, protocolOpStatementToAstNode, protocolReadTypeFromAstNode, protocolReadTypeToAstNode, protocolTypeFromAstNode, protocolTypeToAstNode, requireStatementFromAstNode, requireStatementToAstNode, resetModuleCache, resolveModules, restElementFromAstNode, restElementToAstNode, resumeStatementFromAstNode, resumeStatementToAstNode, returnFromAstNode, returnStatementToAstNode, rewindStatementFromAstNode, rewindStatementToAstNode, rootFromAstNode, rootToAstNode, ruleStatementFromAstNode, ruleStatementToAstNode, startStatementFromAstNode, startStatementToAstNode, stateDeclarationFromAstNode, stateDeclarationToAstNode, stateModuleDeclarationFromAstNode, stateModuleDeclarationToAstNode, stateModuleEventDeclarationFromAstNode, stateModuleEventDeclarationToAstNode, stepDeclarationFromAstNode, stepDeclarationToAstNode, stopStatementFromAstNode, stopStatementToAstNode, stringLiteralToAstNode, treeShake, unaryExpressionFromAstNode, unaryExpressionToAstNode, undefinedLiteralToAstNode, updateExpressionFromAstNode, updateExpressionToAstNode, variableDeclarationFromAstNode, variableDeclarationToAstNode, variableDeclaratorFromAstNode, variableDeclaratorToAstNode, wildcardFromAstNode, wildcardToAstNode };
45405
+ export { AfterDeclarationNodeLayout, AfterExpressionNodeLayout, ArrayExpressionNodeLayout, AssignmentExpressionNodeLayout, AssignmentPatternNodeLayout, BattleScriptFromAST, BattleScriptLexer, BattleScriptParser, BattleScriptToAST, BattleScriptToMiniAST, BinaryExpressionNodeLayout, BlockStatementNodeLayout, BreakStatementNodeLayout, CallExpressionNodeLayout, CancelStatementNodeLayout, CatchStatementNodeLayout, CommentNodeLayout, ConstantDeclarationNodeLayout, ConstantDeclaratorNodeLayout, ContinueStatementNodeLayout, CustomTypeNodeLayout, DataTypeNodeLayout, DebuggerStatementNodeLayout, DefineStatementNodeLayout, DependencyAnalyzer, EndStatementNodeLayout, EntryPointCollector, EnumAssignmentNodeLayout, EnumByteCodeFormat, EnumByteCodeFormatFromString, EnumByteCodeFormatToString, EnumDeclarationNodeLayout, EnumFunctionType, EnumFunctionTypeFromString, EnumFunctionTypeToString, EnumLiteralType, EnumLiteralTypeFromString, EnumLiteralTypeToString, EnumNodeBinaryType, EnumNodeBinaryTypeFromString, EnumNodeBinaryTypeToString, EnumNodeKind, EnumNodeKindFromString, EnumNodeKindToString, EnumNodeLayoutEntry, EnumNodeLayoutEntryFromString, EnumNodeLayoutEntryToString, EnumNodeProp, EnumNodePropFromString, EnumNodePropToString, EnumOperator, EnumOperatorFromString, EnumOperatorToString, EvaluateCaseNodeLayout, EvaluateFallbackNodeLayout, EvaluateStatementNodeLayout, EveryDeclarationNodeLayout, EveryExpressionNodeLayout, ExportNamedDeclarationNodeLayout, ExportSpecifierNodeLayout, ExpressionStatementNodeLayout, ForStatementNodeLayout, ForwardStatementNodeLayout, FunctionDeclarationNodeLayout, FunctionDefinitionNodeLayout, IdentifierNodeLayout, IfStatementNodeLayout, ImportDeclarationNodeLayout, ImportSpecifierNodeLayout, IncludeStatementNodeLayout, InterfaceNodeLayout, InterfacePropertyDeclarationNodeLayout, LiteralBooleanNodeLayout, LiteralDoubleNodeLayout, LiteralFloatNodeLayout, LiteralIntNodeLayout, LiteralNullNodeLayout, LiteralStringNodeLayout, LiteralUndefinedNodeLayout, MemberExpressionNodeLayout, MiniAstToFullAst, ModuleResolver, ObjectExpressionNodeLayout, ObjectPropertyNodeLayout, OffsetStatementNodeLayout, OptimisedAssignmentExpressionNodeLayout, OptimisedBinaryExpressionNodeLayout, OptimisedMemberExpressionNodeLayout, OptimisedUpdateExpressionNodeLayout, ParityDeclarationNodeLayout, ProgramDeclarationNodeLayout, ProgramPropertyDeclarationNodeLayout, ProtocolDeclarationNodeLayout, ProtocolOpStatementNodeLayout, ProtocolReadTypeNodeLayout, ProtocolToCpp, ProtocolTypeNodeLayout, RequireStatementNodeLayout, RestElementNodeLayout, ResumeStatementNodeLayout, ReturnStatementNodeLayout, RewindStatementNodeLayout, RootNodeLayout, RuleStatementNodeLayout, StartStatementNodeLayout, StateDeclarationNodeLayout, StateModuleDeclarationNodeLayout, StateModuleEventDeclarationNodeLayout, StepDeclarationNodeLayout, StopStatementNodeLayout, TreeShaker, UnaryExpressionNodeLayout, UpdateExpressionNodeLayout, VariableDeclarationNodeLayout, VariableDeclaratorNodeLayout, WildcardNodeLayout, afterDeclarationFromAstNode, afterDeclarationToAstNode, afterExpressionFromAstNode, afterExpressionToAstNode, arrayExpressionFromAstNode, arrayExpressionInternalToAstNode, assignmentExpressionFromAstNode, assignmentExpressionToAstNode, assignmentOperator, assignmentPatternToAstNode, binaryExpressionFromAstNode, binaryExpressionToAstNode, blockStatementFromAstNode, blockStatementToAstNode, booleanLiteralToAstNode, breakStatementFromAstNode, breakStatementToAstNode, callExpressionFromAstNode, callExpressionToAstNode, cancelStatementFromAstNode, cancelStatementToAstNode, catchAsStatementToAstNode, catchStatementFromAstNode, catchStatementToAstNode, commentFromAstNode, commentToAstNode, computedMemberExpressionToAstNode, constantDeclarationFromAstNode, constantDeclaratorFromAstNode, constantDeclaratorToAstNode, continueStatementFromAstNode, continueStatementToAstNode, customTypeFromAstNode, customTypeToAstNode, dataTypeFromAstNode, dataTypeToAstNode, debuggerStatementFromAstNode, debuggerStatementToAstNode, decodeNumberLiteral, defineStatementFromAstNode, defineStatementToAstNode, endStatementFromAstNode, endStatementToAstNode, enumAssignmentFromAstNode, enumAssignmentToAstNode, enumDeclarationFromAstNode, enumDeclarationToAstNode, evaluateCaseFromAstNode, evaluateCaseToAstNode, evaluateFallbackFromAstNode, evaluateFallbackToAstNode, evaluateStatementFromAstNode, evaluateStatementToAstNode, everyDeclarationFromAstNode, everyDeclarationToAstNode, everyExpressionFromAstNode, everyExpressionToAstNode, exportNamedDeclarationFromAstNode, exportNamedToAstNode, exportReexportToAstNode, exportSpecifierFromAstNode, exportSpecifierToAstNode, expressionStatementFromAstNode, expressionStatementToAstNode, forStatementFromAstNode, forStatementToAstNode, forwardStatementFromAstNode, forwardStatementToAstNode, fromBinaryToMiniAst, fromFullAstToSourceCode, fromMiniAstToAst, fromMiniAstToBinary, fromMiniAstToSourceCode, fromSourceCodeToBinary, fromSourceCodeToFullAst, fromSourceCodeToMiniAst, functionDeclarationFromAstNode, functionDeclarationToAstNode, functionDefinitionFromAstNode, functionDefinitionToAstNode, functionNameIdentifierToAstNode, functionParameterFromAstNode, generateCppFromProtocolAst, getParser, identifierFromAstNode, identifierToAstNode, ifStatementFromAstNode, ifStatementToAstNode, importDeclarationFromAstNode, importExternalToAstNode, importNativeToAstNode, importSpecifierFromAstNode, importSpecifierToAstNode, includeStatementFromAstNode, includeStatementToAstNode, interfaceDeclarationFromAstNode, interfaceDeclarationToAstNode, interfacePropertyDeclarationFromAstNode, interfacePropertyToAstNode, literalBooleanFromAstNode, literalDoubleFromAstNode, literalFloatFromAstNode, literalIntFromAstNode, literalNullFromAstNode, literalStringFromAstNode, literalUndefinedFromAstNode, memberExpressionFromAstNode, miniAstFromBinaryBuffer, miniAstLayout, miniAstToBinary, namespacedMemberExpressionToAstNode, nonComputedMemberExpressionToAstNode, normaliseFormatting, nullLiteralToAstNode, numberLiteralToAstNode, objectExpressionFromAstNode, objectExpressionInternalToAstNode, objectPropertyFromAstNode, objectPropertyToAstNode, offsetStatementFromAstNode, offsetStatementToAstNode, optimisedAssignmentExpressionFromAstNode, optimisedAssignmentExpressionToAstNode, optimisedBinaryExpressionFromAstNode, optimisedBinaryExpressionToAstNode, optimisedMemberExpressionFromAstNode, optimisedUpdateExpressionFromAstNode, optimisedUpdateExpressionToAstNode, parityDeclarationFromAstNode, parityDeclarationToAstNode, programDeclarationFromAstNode, programDeclarationToAstNode, programPropertyDeclarationFromAstNode, programPropertyToAstNode, protocolDeclarationFromAstNode, protocolDeclarationToAstNode, protocolOpStatementFromAstNode, protocolOpStatementToAstNode, protocolReadTypeFromAstNode, protocolReadTypeToAstNode, protocolTypeFromAstNode, protocolTypeToAstNode, requireStatementFromAstNode, requireStatementToAstNode, resetModuleCache, resolveModules, restElementFromAstNode, restElementToAstNode, resumeStatementFromAstNode, resumeStatementToAstNode, returnFromAstNode, returnStatementToAstNode, rewindStatementFromAstNode, rewindStatementToAstNode, rootFromAstNode, rootToAstNode, ruleStatementFromAstNode, ruleStatementToAstNode, startStatementFromAstNode, startStatementToAstNode, stateDeclarationFromAstNode, stateDeclarationToAstNode, stateModuleDeclarationFromAstNode, stateModuleDeclarationToAstNode, stateModuleEventDeclarationFromAstNode, stateModuleEventDeclarationToAstNode, stepDeclarationFromAstNode, stepDeclarationToAstNode, stopStatementFromAstNode, stopStatementToAstNode, stringLiteralToAstNode, treeShake, unaryExpressionFromAstNode, unaryExpressionToAstNode, undefinedLiteralToAstNode, updateExpressionFromAstNode, updateExpressionToAstNode, variableDeclarationFromAstNode, variableDeclarationToAstNode, variableDeclaratorFromAstNode, variableDeclaratorToAstNode, wildcardFromAstNode, wildcardToAstNode };
45315
45406
  //# sourceMappingURL=index.mjs.map