@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
@@ -10,6 +10,12 @@ export interface AssignmentExpressionNode extends AstNodeBase {
10
10
  right: ExpressionUnion;
11
11
  }
12
12
  export declare const AssignmentExpressionNodeLayout: AstNodeLayout<AssignmentExpressionNode>[];
13
+ /**
14
+ * The operator as written: `=`, `+=` or `-=`. The grammar gives all three the
15
+ * same rule, so it is the token between the two expressions. It used to be
16
+ * written as "=" whatever the source said, which turned `a += b` into `a = b`.
17
+ */
18
+ export declare const assignmentOperator: (ctx: AssignmentExpressionContext) => AssignmentExpressionNode["operator"];
13
19
  export declare const assignmentExpressionToAstNode: (instance: BattleScriptToAST, ctx: AssignmentExpressionContext) => AssignmentExpressionNode | OptimisedAssignmentExpressionNode;
14
20
  export declare const assignmentExpressionFromAstNode: (instance: BattleScriptFromAST, node: AssignmentExpressionNode, options?: VisitOptions) => string;
15
21
  //# sourceMappingURL=AssignmentExpressionNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssignmentExpressionNode.d.ts","sourceRoot":"","sources":["../../../../types/ast/nodes/AssignmentExpressionNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,iCAAiC,EAAE,UAAU,EAAC,MAAM,SAAS,CAAC;AAExH,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAC,2BAA2B,EAAC,MAAM,mDAAmD,CAAC;AAEnG,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,wBAAyB,SAAQ,WAAW;IAC5D,IAAI,EAAE,uBAAuB,CAAC;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,eAAe,CAAC;CACvB;AAED,eAAO,MAAM,8BAA8B,EAAE,aAAa,CAAC,wBAAwB,CAAC,EAYlF,CAAC;AAEH,eAAO,MAAM,6BAA6B,GAAI,UAAU,iBAAiB,EAAE,KAAK,2BAA2B,KAAG,wBAAwB,GAAG,iCAqBxI,CAAA;AAED,eAAO,MAAM,+BAA+B,GAAI,UAAU,mBAAmB,EAAE,MAAM,wBAAwB,EAAE,UAAS,YAAiB,WAQvI,CAAA"}
1
+ {"version":3,"file":"AssignmentExpressionNode.d.ts","sourceRoot":"","sources":["../../../../types/ast/nodes/AssignmentExpressionNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,iCAAiC,EAAE,UAAU,EAAC,MAAM,SAAS,CAAC;AAExH,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAC,2BAA2B,EAAC,MAAM,mDAAmD,CAAC;AAEnG,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,wBAAyB,SAAQ,WAAW;IAC5D,IAAI,EAAE,uBAAuB,CAAC;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,eAAe,CAAC;CACvB;AAED,eAAO,MAAM,8BAA8B,EAAE,aAAa,CAAC,wBAAwB,CAAC,EAYlF,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,KAAK,2BAA2B,KAAG,wBAAwB,CAAC,UAAU,CAIxG,CAAA;AAED,eAAO,MAAM,6BAA6B,GAAI,UAAU,iBAAiB,EAAE,KAAK,2BAA2B,KAAG,wBAAwB,GAAG,iCAqBxI,CAAA;AAED,eAAO,MAAM,+BAA+B,GAAI,UAAU,mBAAmB,EAAE,MAAM,wBAAwB,EAAE,UAAS,YAAiB,WAQvI,CAAA"}
@@ -4,6 +4,8 @@ import type { ForwardStatementContext } from "@/services/grammar/ts/language/Bat
4
4
  export interface ForwardStatementNode extends AstNodeBase {
5
5
  kind: "FORWARD_STATEMENT";
6
6
  value: number;
7
+ /** The literal as written, e.g. "0x10". Full AST only - not in the binary layout. */
8
+ valueRaw?: string;
7
9
  }
8
10
  export declare const ForwardStatementNodeLayout: AstNodeLayout<ForwardStatementNode>[];
9
11
  export declare const forwardStatementToAstNode: (instance: BattleScriptToAST, ctx: ForwardStatementContext) => ForwardStatementNode;
@@ -1 +1 @@
1
- {"version":3,"file":"ForwardStatementNode.d.ts","sourceRoot":"","sources":["../../../../types/ast/nodes/ForwardStatementNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,aAAa,EACb,YAAY,EACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAC,mBAAmB,EAAE,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAEvE,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,mDAAmD,CAAC;AAE/F,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACxD,IAAI,EAAE,mBAAmB,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,0BAA0B,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAM1E,CAAC;AAEH,eAAO,MAAM,yBAAyB,GAAI,UAAU,iBAAiB,EAAE,KAAK,uBAAuB,KAAG,oBAMrG,CAAA;AAED,eAAO,MAAM,2BAA2B,GAAI,UAAU,mBAAmB,EAAE,MAAM,oBAAoB,EAAE,UAAS,YAAiB,WAShI,CAAA"}
1
+ {"version":3,"file":"ForwardStatementNode.d.ts","sourceRoot":"","sources":["../../../../types/ast/nodes/ForwardStatementNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,aAAa,EACb,YAAY,EACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAC,mBAAmB,EAAE,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAGvE,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,mDAAmD,CAAC;AAE/F,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACxD,IAAI,EAAE,mBAAmB,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,0BAA0B,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAM1E,CAAC;AAEH,eAAO,MAAM,yBAAyB,GAAI,UAAU,iBAAiB,EAAE,KAAK,uBAAuB,KAAG,oBASrG,CAAA;AAED,eAAO,MAAM,2BAA2B,GAAI,UAAU,mBAAmB,EAAE,MAAM,oBAAoB,EAAE,UAAS,YAAiB,WAShI,CAAA"}
@@ -7,6 +7,16 @@ export interface LiteralIntNode extends AstNodeBase {
7
7
  raw: string;
8
8
  }
9
9
  export declare const LiteralIntNodeLayout: AstNodeLayout<LiteralIntNode>[];
10
+ /**
11
+ * Decode the text of a NUMBER token to its numeric value.
12
+ *
13
+ * `Number()` rather than `JSON.parse()`, because the NUMBER rule accepts three forms JSON
14
+ * rejects: hex (`0xFF`), a bare fraction (`.5`), and leading zeroes (`010`). Decoding those
15
+ * with `JSON.parse` threw on source the parser had already accepted. Note that a leading zero
16
+ * is not a base marker - BattleScript has no octal, so `010` is ten, and a C-style bitmask is
17
+ * written `0x…`.
18
+ */
19
+ export declare const decodeNumberLiteral: (raw: string) => number;
10
20
  export declare const numberLiteralToAstNode: (instance: BattleScriptToAST, ctx: NumberLiteralContext) => LiteralIntNode | LiteralFloatNode | LiteralDoubleNode;
11
21
  export declare const literalIntFromAstNode: (instance: BattleScriptFromAST, node: any) => any;
12
22
  //# sourceMappingURL=LiteralIntNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LiteralIntNode.d.ts","sourceRoot":"","sources":["../../../../types/ast/nodes/LiteralIntNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAE7F,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,mDAAmD,CAAC;AAC5F,OAAO,KAAK,EAAC,mBAAmB,EAAE,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAEvE,MAAM,WAAW,cAAe,SAAQ,WAAW;IAClD,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,cAAc,CAAC,EAM9D,CAAC;AAMH,eAAO,MAAM,sBAAsB,GAAI,UAAU,iBAAiB,EAAE,KAAK,oBAAoB,KAAG,cAAc,GAAG,gBAAgB,GAAG,iBAmBnI,CAAA;AACD,eAAO,MAAM,qBAAqB,GAAI,UAAU,mBAAmB,EAAE,MAAM,GAAG,QAAa,CAAC"}
1
+ {"version":3,"file":"LiteralIntNode.d.ts","sourceRoot":"","sources":["../../../../types/ast/nodes/LiteralIntNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAE7F,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,mDAAmD,CAAC;AAC5F,OAAO,KAAK,EAAC,mBAAmB,EAAE,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAEvE,MAAM,WAAW,cAAe,SAAQ,WAAW;IAClD,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,cAAc,CAAC,EAM9D,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAAI,KAAK,MAAM,KAAG,MAQjD,CAAC;AAMF,eAAO,MAAM,sBAAsB,GAAI,UAAU,iBAAiB,EAAE,KAAK,oBAAoB,KAAG,cAAc,GAAG,gBAAgB,GAAG,iBA4BnI,CAAA;AACD,eAAO,MAAM,qBAAqB,GAAI,UAAU,mBAAmB,EAAE,MAAM,GAAG,QAAa,CAAC"}
@@ -4,6 +4,8 @@ import type { OffsetStatementContext } from "@/services/grammar/ts/language/Batt
4
4
  export interface OffsetStatementNode extends AstNodeBase {
5
5
  kind: "OFFSET_STATEMENT";
6
6
  value: number;
7
+ /** The literal as written, e.g. "0x10". Full AST only - not in the binary layout. */
8
+ valueRaw?: string;
7
9
  }
8
10
  export declare const OffsetStatementNodeLayout: AstNodeLayout<OffsetStatementNode>[];
9
11
  export declare const offsetStatementToAstNode: (instance: BattleScriptToAST, ctx: OffsetStatementContext) => OffsetStatementNode;
@@ -1 +1 @@
1
- {"version":3,"file":"OffsetStatementNode.d.ts","sourceRoot":"","sources":["../../../../types/ast/nodes/OffsetStatementNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,aAAa,EACb,YAAY,EACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAC,mBAAmB,EAAE,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAEvE,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,mDAAmD,CAAC;AAE9F,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACvD,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,yBAAyB,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAMxE,CAAC;AAEH,eAAO,MAAM,wBAAwB,GAAI,UAAU,iBAAiB,EAAE,KAAK,sBAAsB,KAAG,mBAMnG,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAI,UAAU,mBAAmB,EAAE,MAAM,mBAAmB,EAAE,UAAS,YAAiB,WAS9H,CAAA"}
1
+ {"version":3,"file":"OffsetStatementNode.d.ts","sourceRoot":"","sources":["../../../../types/ast/nodes/OffsetStatementNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,aAAa,EACb,YAAY,EACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAC,mBAAmB,EAAE,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAGvE,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,mDAAmD,CAAC;AAE9F,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACvD,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,yBAAyB,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAMxE,CAAC;AAEH,eAAO,MAAM,wBAAwB,GAAI,UAAU,iBAAiB,EAAE,KAAK,sBAAsB,KAAG,mBASnG,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAI,UAAU,mBAAmB,EAAE,MAAM,mBAAmB,EAAE,UAAS,YAAiB,WAS9H,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"OptimisedAssignmentExpressionNode.d.ts","sourceRoot":"","sources":["../../../../types/ast/nodes/OptimisedAssignmentExpressionNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AAExD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAC,2BAA2B,EAAC,MAAM,mDAAmD,CAAC;AACnG,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,iCAAkC,SAAQ,WAAW;IACrE,IAAI,EAAE,iCAAiC,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,uCAAuC,EAAE,aAAa,CAAC,iCAAiC,CAAC,EAYpG,CAAC;AAEH,eAAO,MAAM,sCAAsC,GAAI,UAAU,iBAAiB,EAAE,KAAK,2BAA2B,KAAG,iCAQtH,CAAA;AAED,eAAO,MAAM,wCAAwC,GAAI,UAAU,mBAAmB,EAAE,MAAM,iCAAiC,EAAE,UAAS,YAAiB,WAQzJ,CAAA"}
1
+ {"version":3,"file":"OptimisedAssignmentExpressionNode.d.ts","sourceRoot":"","sources":["../../../../types/ast/nodes/OptimisedAssignmentExpressionNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AAExD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAC,2BAA2B,EAAC,MAAM,mDAAmD,CAAC;AACnG,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAGvD,MAAM,WAAW,iCAAkC,SAAQ,WAAW;IACrE,IAAI,EAAE,iCAAiC,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,uCAAuC,EAAE,aAAa,CAAC,iCAAiC,CAAC,EAYpG,CAAC;AAEH,eAAO,MAAM,sCAAsC,GAAI,UAAU,iBAAiB,EAAE,KAAK,2BAA2B,KAAG,iCAQtH,CAAA;AAED,eAAO,MAAM,wCAAwC,GAAI,UAAU,mBAAmB,EAAE,MAAM,iCAAiC,EAAE,UAAS,YAAiB,WAQzJ,CAAA"}
@@ -7,6 +7,8 @@ export interface ProtocolReadTypeNode extends AstNodeBase {
7
7
  kind: "PROTOCOL_READ_TYPE";
8
8
  value: number;
9
9
  bits: number;
10
+ /** The width as written, e.g. "0x13". Full AST only - not in the binary layout. */
11
+ bitsRaw?: string;
10
12
  }
11
13
  export declare const ProtocolReadTypeNodeLayout: AstNodeLayout<ProtocolReadTypeNode>[];
12
14
  export declare const protocolReadTypeToAstNode: (instance: BattleScriptToAST, ctx: ProtocolReadTypeContext) => ProtocolReadTypeNode;
@@ -1 +1 @@
1
- {"version":3,"file":"ProtocolReadTypeNode.d.ts","sourceRoot":"","sources":["../../../../types/ast/nodes/ProtocolReadTypeNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AAExD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,mDAAmD,CAAC;AAC/F,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACxD,IAAI,EAAE,oBAAoB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,0BAA0B,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAS1E,CAAC;AAEH,eAAO,MAAM,yBAAyB,GAAI,UAAU,iBAAiB,EAAE,KAAK,uBAAuB,KAAG,oBAgBrG,CAAA;AAED,eAAO,MAAM,2BAA2B,GAAI,UAAU,mBAAmB,EAAE,MAAM,oBAAoB,EAAE,UAAS,YAAiB,WAahI,CAAA"}
1
+ {"version":3,"file":"ProtocolReadTypeNode.d.ts","sourceRoot":"","sources":["../../../../types/ast/nodes/ProtocolReadTypeNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AAExD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAElD,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,mDAAmD,CAAC;AAC/F,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACxD,IAAI,EAAE,oBAAoB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,0BAA0B,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAS1E,CAAC;AAEH,eAAO,MAAM,yBAAyB,GAAI,UAAU,iBAAiB,EAAE,KAAK,uBAAuB,KAAG,oBAmBrG,CAAA;AAED,eAAO,MAAM,2BAA2B,GAAI,UAAU,mBAAmB,EAAE,MAAM,oBAAoB,EAAE,UAAS,YAAiB,WAahI,CAAA"}
@@ -7,6 +7,8 @@ export interface ProtocolTypeNode extends AstNodeBase {
7
7
  kind: "PROTOCOL_TYPE";
8
8
  value: string;
9
9
  bits: number;
10
+ /** The width as written, e.g. "0x03". Full AST only - not in the binary layout. */
11
+ bitsRaw?: string;
10
12
  }
11
13
  export declare const ProtocolTypeNodeLayout: AstNodeLayout<ProtocolTypeNode>[];
12
14
  export declare const protocolTypeToAstNode: (instance: BattleScriptToAST, ctx: ProtocolTypeContext) => ProtocolTypeNode;
@@ -1 +1 @@
1
- {"version":3,"file":"ProtocolTypeNode.d.ts","sourceRoot":"","sources":["../../../../types/ast/nodes/ProtocolTypeNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AAExD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,mDAAmD,CAAC;AAC3F,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACpD,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,sBAAsB,EAAE,aAAa,CAAC,gBAAgB,CAAC,EASlE,CAAC;AAEH,eAAO,MAAM,qBAAqB,GAAI,UAAU,iBAAiB,EAAE,KAAK,mBAAmB,KAAG,gBAyB7F,CAAA;AAGD,eAAO,MAAM,uBAAuB,GAAI,UAAU,mBAAmB,EAAE,MAAM,gBAAgB,EAAE,UAAS,YAAiB,WAQxH,CAAA"}
1
+ {"version":3,"file":"ProtocolTypeNode.d.ts","sourceRoot":"","sources":["../../../../types/ast/nodes/ProtocolTypeNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AAExD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAElD,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,mDAAmD,CAAC;AAC3F,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACpD,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,sBAAsB,EAAE,aAAa,CAAC,gBAAgB,CAAC,EASlE,CAAC;AAEH,eAAO,MAAM,qBAAqB,GAAI,UAAU,iBAAiB,EAAE,KAAK,mBAAmB,KAAG,gBA6B7F,CAAA;AAGD,eAAO,MAAM,uBAAuB,GAAI,UAAU,mBAAmB,EAAE,MAAM,gBAAgB,EAAE,UAAS,YAAiB,WAQxH,CAAA"}
@@ -4,6 +4,8 @@ import type { RewindStatementContext } from "@/services/grammar/ts/language/Batt
4
4
  export interface RewindStatementNode extends AstNodeBase {
5
5
  kind: "REWIND_STATEMENT";
6
6
  value: number;
7
+ /** The literal as written, e.g. "0x10". Full AST only - not in the binary layout. */
8
+ valueRaw?: string;
7
9
  }
8
10
  export declare const RewindStatementNodeLayout: AstNodeLayout<RewindStatementNode>[];
9
11
  export declare const rewindStatementToAstNode: (instance: BattleScriptToAST, ctx: RewindStatementContext) => RewindStatementNode;
@@ -1 +1 @@
1
- {"version":3,"file":"RewindStatementNode.d.ts","sourceRoot":"","sources":["../../../../types/ast/nodes/RewindStatementNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,aAAa,EACb,YAAY,EACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAC,mBAAmB,EAAE,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAEvE,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,mDAAmD,CAAC;AAE9F,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACvD,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,yBAAyB,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAMxE,CAAC;AAEH,eAAO,MAAM,wBAAwB,GAAI,UAAU,iBAAiB,EAAE,KAAK,sBAAsB,KAAG,mBAMnG,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAI,UAAU,mBAAmB,EAAE,MAAM,mBAAmB,EAAE,UAAS,YAAiB,WAS9H,CAAA"}
1
+ {"version":3,"file":"RewindStatementNode.d.ts","sourceRoot":"","sources":["../../../../types/ast/nodes/RewindStatementNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,aAAa,EACb,YAAY,EACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAC,mBAAmB,EAAE,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAGvE,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,mDAAmD,CAAC;AAE9F,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACvD,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,yBAAyB,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAMxE,CAAC;AAEH,eAAO,MAAM,wBAAwB,GAAI,UAAU,iBAAiB,EAAE,KAAK,sBAAsB,KAAG,mBASnG,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAI,UAAU,mBAAmB,EAAE,MAAM,mBAAmB,EAAE,UAAS,YAAiB,WAS9H,CAAA"}
@@ -12,6 +12,10 @@ export interface RuleStatementNode extends AstNodeBase {
12
12
  value: number;
13
13
  consequent: number;
14
14
  alternate: number;
15
+ /** The literals as written, e.g. "0x05". Full AST only - not in the binary layout. */
16
+ valueRaw?: string;
17
+ consequentRaw?: string;
18
+ alternateRaw?: string;
15
19
  }
16
20
  export declare const RuleStatementNodeLayout: AstNodeLayout<RuleStatementNode>[];
17
21
  export declare const ruleStatementToAstNode: (instance: BattleScriptToAST, ctx: RuleStatementContext) => RuleStatementNode;
@@ -1 +1 @@
1
- {"version":3,"file":"RuleStatementNode.d.ts","sourceRoot":"","sources":["../../../../types/ast/nodes/RuleStatementNode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,WAAW,EAAE,aAAa,EAAsC,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAC9G,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,mDAAmD,CAAC;AAC5F,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACrD,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,gBAAgB,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,uBAAuB,EAAE,aAAa,CAAC,iBAAiB,CAAC,EAwBpE,CAAC;AAEH,eAAO,MAAM,sBAAsB,GAAI,UAAU,iBAAiB,EAAE,KAAK,oBAAoB,KAAG,iBAY/F,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,UAAU,mBAAmB,EAAE,MAAM,iBAAiB,EAAE,UAAS,YAAiB,WA0B1H,CAAA"}
1
+ {"version":3,"file":"RuleStatementNode.d.ts","sourceRoot":"","sources":["../../../../types/ast/nodes/RuleStatementNode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,WAAW,EAAE,aAAa,EAAsC,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAC9G,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAElD,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,mDAAmD,CAAC;AAC5F,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACrD,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,gBAAgB,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,uBAAuB,EAAE,aAAa,CAAC,iBAAiB,CAAC,EAwBpE,CAAC;AAEH,eAAO,MAAM,sBAAsB,GAAI,UAAU,iBAAiB,EAAE,KAAK,oBAAoB,KAAG,iBAmB/F,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,UAAU,mBAAmB,EAAE,MAAM,iBAAiB,EAAE,UAAS,YAAiB,WA0B1H,CAAA"}
@@ -1,2 +1,2 @@
1
- export type ArithmaticOperator = '+' | '-' | '*' | '/';
1
+ export type ArithmaticOperator = '+' | '-' | '*' | '/' | '%';
2
2
  //# sourceMappingURL=ArithmaticOperator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArithmaticOperator.d.ts","sourceRoot":"","sources":["../../../../types/ast/operators/ArithmaticOperator.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAC1B,GAAG,GACD,GAAG,GACH,GAAG,GACH,GAAG,CACJ"}
1
+ {"version":3,"file":"ArithmaticOperator.d.ts","sourceRoot":"","sources":["../../../../types/ast/operators/ArithmaticOperator.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAC1B,GAAG,GACD,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,CACJ"}
@@ -1,2 +1,2 @@
1
- export type OtherOperator = '.' | '::' | '=' | '=>';
1
+ export type OtherOperator = '.' | '::' | '=' | '=>' | '+=' | '-=';
2
2
  //# sourceMappingURL=OtherOperator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OtherOperator.d.ts","sourceRoot":"","sources":["../../../../types/ast/operators/OtherOperator.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GACxB,GAAG,GACD,IAAI,GACJ,GAAG,GACH,IAAI,CACL"}
1
+ {"version":3,"file":"OtherOperator.d.ts","sourceRoot":"","sources":["../../../../types/ast/operators/OtherOperator.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GACxB,GAAG,GACD,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,CACL"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@irrelon/battlescript",
3
- "version": "4.1.2",
3
+ "version": "5.0.0",
4
4
  "binaryVersion": 9,
5
5
  "description": "BattleScript Lexer, Parser and Compiler",
6
6
  "bin": {