@haneullabs/prettier-plugin-move 0.3.3

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 (149) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/CONTRIBUTING.md +31 -0
  3. package/README.md +96 -0
  4. package/bin/prettier-move.js +29 -0
  5. package/out/cst/annotation.js +64 -0
  6. package/out/cst/annotation.js.map +1 -0
  7. package/out/cst/common.js +376 -0
  8. package/out/cst/common.js.map +1 -0
  9. package/out/cst/constant.js +92 -0
  10. package/out/cst/constant.js.map +1 -0
  11. package/out/cst/enum_definition.js +69 -0
  12. package/out/cst/enum_definition.js.map +1 -0
  13. package/out/cst/expression/abort_expression.js +32 -0
  14. package/out/cst/expression/abort_expression.js.map +1 -0
  15. package/out/cst/expression/annotation_expression.js +35 -0
  16. package/out/cst/expression/annotation_expression.js.map +1 -0
  17. package/out/cst/expression/assign_expression.js +51 -0
  18. package/out/cst/expression/assign_expression.js.map +1 -0
  19. package/out/cst/expression/binary_expression.js +70 -0
  20. package/out/cst/expression/binary_expression.js.map +1 -0
  21. package/out/cst/expression/block.js +58 -0
  22. package/out/cst/expression/block.js.map +1 -0
  23. package/out/cst/expression/block_item.js +25 -0
  24. package/out/cst/expression/block_item.js.map +1 -0
  25. package/out/cst/expression/borrow_expression.js +26 -0
  26. package/out/cst/expression/borrow_expression.js.map +1 -0
  27. package/out/cst/expression/break_expression.js +27 -0
  28. package/out/cst/expression/break_expression.js.map +1 -0
  29. package/out/cst/expression/call_expression.js +25 -0
  30. package/out/cst/expression/call_expression.js.map +1 -0
  31. package/out/cst/expression/cast_expression.js +31 -0
  32. package/out/cst/expression/cast_expression.js.map +1 -0
  33. package/out/cst/expression/continue_expression.js +26 -0
  34. package/out/cst/expression/continue_expression.js.map +1 -0
  35. package/out/cst/expression/dereference_expression.js +27 -0
  36. package/out/cst/expression/dereference_expression.js.map +1 -0
  37. package/out/cst/expression/dot_expression.js +66 -0
  38. package/out/cst/expression/dot_expression.js.map +1 -0
  39. package/out/cst/expression/expression_list.js +26 -0
  40. package/out/cst/expression/expression_list.js.map +1 -0
  41. package/out/cst/expression/identified_expression.js +28 -0
  42. package/out/cst/expression/identified_expression.js.map +1 -0
  43. package/out/cst/expression/if_expression.js +133 -0
  44. package/out/cst/expression/if_expression.js.map +1 -0
  45. package/out/cst/expression/index.js +74 -0
  46. package/out/cst/expression/index.js.map +1 -0
  47. package/out/cst/expression/index_expression.js +28 -0
  48. package/out/cst/expression/index_expression.js.map +1 -0
  49. package/out/cst/expression/lambda_expression.js +72 -0
  50. package/out/cst/expression/lambda_expression.js.map +1 -0
  51. package/out/cst/expression/let_statement.js +59 -0
  52. package/out/cst/expression/let_statement.js.map +1 -0
  53. package/out/cst/expression/loop_expression.js +27 -0
  54. package/out/cst/expression/loop_expression.js.map +1 -0
  55. package/out/cst/expression/macro_call_expression.js +66 -0
  56. package/out/cst/expression/macro_call_expression.js.map +1 -0
  57. package/out/cst/expression/match_expression.js +86 -0
  58. package/out/cst/expression/match_expression.js.map +1 -0
  59. package/out/cst/expression/move_or_copy_expression.js +27 -0
  60. package/out/cst/expression/move_or_copy_expression.js.map +1 -0
  61. package/out/cst/expression/name_expression.js +26 -0
  62. package/out/cst/expression/name_expression.js.map +1 -0
  63. package/out/cst/expression/pack_expression.js +27 -0
  64. package/out/cst/expression/pack_expression.js.map +1 -0
  65. package/out/cst/expression/return_expression.js +44 -0
  66. package/out/cst/expression/return_expression.js.map +1 -0
  67. package/out/cst/expression/unary_expression.js +26 -0
  68. package/out/cst/expression/unary_expression.js.map +1 -0
  69. package/out/cst/expression/unit_expression.js +17 -0
  70. package/out/cst/expression/unit_expression.js.map +1 -0
  71. package/out/cst/expression/vector_expression.js +80 -0
  72. package/out/cst/expression/vector_expression.js.map +1 -0
  73. package/out/cst/expression/while_expression.js +42 -0
  74. package/out/cst/expression/while_expression.js.map +1 -0
  75. package/out/cst/formatting.js +100 -0
  76. package/out/cst/formatting.js.map +1 -0
  77. package/out/cst/function_definition.js +248 -0
  78. package/out/cst/function_definition.js.map +1 -0
  79. package/out/cst/literal.js +68 -0
  80. package/out/cst/literal.js.map +1 -0
  81. package/out/cst/module.js +158 -0
  82. package/out/cst/module.js.map +1 -0
  83. package/out/cst/source_file.js +38 -0
  84. package/out/cst/source_file.js.map +1 -0
  85. package/out/cst/struct_definition.js +209 -0
  86. package/out/cst/struct_definition.js.map +1 -0
  87. package/out/cst/use_declaration.js +212 -0
  88. package/out/cst/use_declaration.js.map +1 -0
  89. package/out/imports-grouping.js +259 -0
  90. package/out/imports-grouping.js.map +1 -0
  91. package/out/index.js +97 -0
  92. package/out/index.js.map +1 -0
  93. package/out/printer.js +69 -0
  94. package/out/printer.js.map +1 -0
  95. package/out/tree.js +371 -0
  96. package/out/tree.js.map +1 -0
  97. package/out/utilities.js +251 -0
  98. package/out/utilities.js.map +1 -0
  99. package/package.json +34 -0
  100. package/prettier.config.js +12 -0
  101. package/src/cst/annotation.ts +71 -0
  102. package/src/cst/common.ts +430 -0
  103. package/src/cst/constant.ts +110 -0
  104. package/src/cst/enum_definition.ts +73 -0
  105. package/src/cst/expression/abort_expression.ts +35 -0
  106. package/src/cst/expression/annotation_expression.ts +38 -0
  107. package/src/cst/expression/assign_expression.ts +66 -0
  108. package/src/cst/expression/binary_expression.ts +75 -0
  109. package/src/cst/expression/block.ts +72 -0
  110. package/src/cst/expression/block_item.ts +29 -0
  111. package/src/cst/expression/borrow_expression.ts +28 -0
  112. package/src/cst/expression/break_expression.ts +33 -0
  113. package/src/cst/expression/call_expression.ts +28 -0
  114. package/src/cst/expression/cast_expression.ts +35 -0
  115. package/src/cst/expression/continue_expression.ts +29 -0
  116. package/src/cst/expression/dereference_expression.ts +33 -0
  117. package/src/cst/expression/dot_expression.ts +89 -0
  118. package/src/cst/expression/expression_list.ts +28 -0
  119. package/src/cst/expression/identified_expression.ts +30 -0
  120. package/src/cst/expression/if_expression.ts +177 -0
  121. package/src/cst/expression/index.ts +85 -0
  122. package/src/cst/expression/index_expression.ts +37 -0
  123. package/src/cst/expression/lambda_expression.ts +84 -0
  124. package/src/cst/expression/let_statement.ts +73 -0
  125. package/src/cst/expression/loop_expression.ts +29 -0
  126. package/src/cst/expression/macro_call_expression.ts +79 -0
  127. package/src/cst/expression/match_expression.ts +102 -0
  128. package/src/cst/expression/move_or_copy_expression.ts +29 -0
  129. package/src/cst/expression/name_expression.ts +28 -0
  130. package/src/cst/expression/pack_expression.ts +29 -0
  131. package/src/cst/expression/return_expression.ts +50 -0
  132. package/src/cst/expression/unary_expression.ts +28 -0
  133. package/src/cst/expression/unit_expression.ts +18 -0
  134. package/src/cst/expression/vector_expression.ts +97 -0
  135. package/src/cst/expression/while_expression.ts +45 -0
  136. package/src/cst/formatting.ts +100 -0
  137. package/src/cst/function_definition.ts +300 -0
  138. package/src/cst/literal.ts +69 -0
  139. package/src/cst/module.ts +191 -0
  140. package/src/cst/source_file.ts +38 -0
  141. package/src/cst/struct_definition.ts +267 -0
  142. package/src/cst/use_declaration.ts +238 -0
  143. package/src/imports-grouping.ts +300 -0
  144. package/src/index.ts +119 -0
  145. package/src/printer.ts +93 -0
  146. package/src/tree.ts +438 -0
  147. package/src/utilities.ts +387 -0
  148. package/tree-sitter-move.wasm +0 -0
  149. package/tsconfig.json +26 -0
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.NODE_TYPE = void 0;
6
+ exports.default = default_1;
7
+ const prettier_1 = require("prettier");
8
+ const utilities_1 = require("../utilities");
9
+ const VectorExpression = require("./expression/vector_expression");
10
+ const block_1 = require("./expression/block");
11
+ const { line, group, join, fill, ifBreak, softline, indent, lineSuffix } = prettier_1.doc.builders;
12
+ /** The type of the node implemented in this file */
13
+ exports.NODE_TYPE = 'constant';
14
+ /**
15
+ * Prints:
16
+ * - `constant`
17
+ * - `constant_identifier`
18
+ */
19
+ function default_1(path) {
20
+ if (path.node.type === exports.NODE_TYPE) {
21
+ return printConstant;
22
+ }
23
+ else if (path.node.type === 'constant_identifier') {
24
+ return utilities_1.printIdentifier;
25
+ }
26
+ return null;
27
+ }
28
+ /**
29
+ * Print `constant` node.
30
+ *
31
+ * See `module-members/constant.move` for tests.
32
+ */
33
+ function printConstant(path, options, print) {
34
+ const expression = path.node.nonFormattingChildren[2];
35
+ const trailing = lineSuffix((0, utilities_1.printTrailingComment)(path));
36
+ path.node.disableTrailingComment();
37
+ const printCb = (path) => printConstExpression(path, options, print);
38
+ const groupId = Symbol('type_group');
39
+ if (path.node.nonFormattingChildren.length !== 3) {
40
+ throw new Error('`constant` expects 3 children');
41
+ }
42
+ const [identDoc, typeDoc, exprDoc] = path.map(printCb, 'nonFormattingChildren');
43
+ const parts = [];
44
+ // const <ident> : <type> = <expr>;
45
+ parts.push('const ', identDoc);
46
+ parts.push(': ', group(typeDoc, { id: groupId }), ' =');
47
+ if (expression?.isList) {
48
+ parts.push(group([
49
+ ifBreak(indent(line), ' ', { groupId }),
50
+ ifBreak(indent(exprDoc), exprDoc, { groupId }),
51
+ ]));
52
+ }
53
+ else {
54
+ parts.push(group([indent(line), indent(exprDoc)]));
55
+ }
56
+ return parts.concat([';', trailing]);
57
+ }
58
+ // Sub-router for expressions in the const declaration. Special cases are:
59
+ //
60
+ // - for vectors with `num` and `bool` literals, we want to fill single line
61
+ // - for blocks we want breakability
62
+ function printConstExpression(path, options, print) {
63
+ if (path.node.type === VectorExpression.NODE_TYPE) {
64
+ return prettyNumVector(path, options, print);
65
+ }
66
+ if (path.node.type === 'block') {
67
+ return (0, block_1.printBreakableBlock)(path, options, print);
68
+ }
69
+ return print(path);
70
+ }
71
+ // TODO: optionally move this to `VectorExpression`
72
+ function prettyNumVector(path, options, print) {
73
+ let elType = path.node.nonFormattingChildren[0]?.type;
74
+ if (elType && ['num_literal', 'bool_literal'].includes(elType)) {
75
+ let allSameType = !path.node.nonFormattingChildren.some((e) => e.type !== elType);
76
+ let hasComments = path.node.namedChildren.some((e) => e.trailingComment || e.leadingComment.length > 0);
77
+ if (allSameType && !hasComments) {
78
+ const literals = path.map(print, 'nonFormattingChildren');
79
+ if (literals.length == 0) {
80
+ return 'vector[]';
81
+ }
82
+ const elements = join([',', line], literals);
83
+ return [
84
+ 'vector[',
85
+ group([indent(softline), indent(fill(elements)), ifBreak(','), softline]),
86
+ ']',
87
+ ];
88
+ }
89
+ }
90
+ return print(path);
91
+ }
92
+ //# sourceMappingURL=constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constant.js","sourceRoot":"","sources":["../../src/cst/constant.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.EnumDefinition = void 0;
6
+ exports.default = default_1;
7
+ exports.printEnumDefinition = printEnumDefinition;
8
+ exports.printEnumVariants = printEnumVariants;
9
+ exports.printVariant = printVariant;
10
+ const prettier_1 = require("prettier");
11
+ const utilities_1 = require("../utilities");
12
+ const { join, lineSuffix, group } = prettier_1.doc.builders;
13
+ function default_1(path) {
14
+ switch (path.node.type) {
15
+ case EnumDefinition.EnumDefinition:
16
+ return printEnumDefinition;
17
+ case EnumDefinition.EnumVariants:
18
+ return printEnumVariants;
19
+ case EnumDefinition.Variant:
20
+ return printVariant;
21
+ // identifiers
22
+ case EnumDefinition.EnumIdentifier:
23
+ case EnumDefinition.VariantIdentifier:
24
+ return utilities_1.printIdentifier;
25
+ }
26
+ return null;
27
+ }
28
+ var EnumDefinition;
29
+ (function (EnumDefinition) {
30
+ EnumDefinition["EnumDefinition"] = "enum_definition";
31
+ EnumDefinition["EnumVariants"] = "enum_variants";
32
+ EnumDefinition["Variant"] = "variant";
33
+ EnumDefinition["EnumIdentifier"] = "enum_identifier";
34
+ EnumDefinition["VariantIdentifier"] = "variant_identifier";
35
+ })(EnumDefinition || (exports.EnumDefinition = EnumDefinition = {}));
36
+ /**
37
+ * Print `enum_definition` node.
38
+ */
39
+ function printEnumDefinition(path, _opt, print) {
40
+ const isPublic = path.node.child(0)?.type == 'public';
41
+ return [isPublic ? 'public ' : '', 'enum ', path.map(print, 'nonFormattingChildren')];
42
+ }
43
+ /**
44
+ * Print `enum_variants` node.
45
+ * List of `variant` nodes.
46
+ */
47
+ function printEnumVariants(path, options, print) {
48
+ if (path.node.nonFormattingChildren.length === 0) {
49
+ return ' {}';
50
+ }
51
+ return [
52
+ ' ',
53
+ group((0, utilities_1.list)({ path, print, options, open: '{', close: '}', addWhitespace: true }), {
54
+ shouldBreak: true,
55
+ }),
56
+ ];
57
+ }
58
+ /**
59
+ * Print `variant` node.
60
+ * Inside:
61
+ * - `variant_identifier`
62
+ * - `datatype_fields` (optional)
63
+ */
64
+ function printVariant(path, _opt, print) {
65
+ const trailing = lineSuffix((0, utilities_1.printTrailingComment)(path, false));
66
+ path.node.disableTrailingComment();
67
+ return [path.map(print, 'nonFormattingChildren'), trailing];
68
+ }
69
+ //# sourceMappingURL=enum_definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum_definition.js","sourceRoot":"","sources":["../../src/cst/enum_definition.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAQtC,4BAgBC;AAcD,kDAIC;AAMD,8CAWC;AAQD,oCAIC;AArED,uCAA6C;AAG7C,4CAA2E;AAC3E,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAEjD,mBAAyB,IAAmB;IACxC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,cAAc,CAAC,cAAc;YAC9B,OAAO,mBAAmB,CAAC;QAC/B,KAAK,cAAc,CAAC,YAAY;YAC5B,OAAO,iBAAiB,CAAC;QAC7B,KAAK,cAAc,CAAC,OAAO;YACvB,OAAO,YAAY,CAAC;QAExB,cAAc;QACd,KAAK,cAAc,CAAC,cAAc,CAAC;QACnC,KAAK,cAAc,CAAC,iBAAiB;YACjC,OAAO,2BAAe,CAAC;IAC/B,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,IAAY,cAOX;AAPD,WAAY,cAAc;IACtB,oDAAkC,CAAA;IAClC,gDAA8B,CAAA;IAC9B,qCAAmB,CAAA;IAEnB,oDAAkC,CAAA;IAClC,0DAAwC,CAAA;AAC5C,CAAC,EAPW,cAAc,8BAAd,cAAc,QAOzB;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,IAAmB,EAAE,IAAiB,EAAE,KAAc;IACtF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,QAAQ,CAAC;IAEtD,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IACvF,IAAI,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO;QACH,GAAG;QACH,KAAK,CAAC,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE;YAC9E,WAAW,EAAE,IAAI;SACpB,CAAC;KACL,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,IAAmB,EAAE,IAAiB,EAAE,KAAc;IAC/E,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAA,gCAAoB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/D,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,uBAAuB,CAAC,EAAE,QAAQ,CAAC,CAAC;AAChE,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.NODE_TYPE = void 0;
6
+ exports.default = default_1;
7
+ const prettier_1 = require("prettier");
8
+ const { group, indent, line } = prettier_1.doc.builders;
9
+ /** The type of the node implemented in this file */
10
+ exports.NODE_TYPE = 'abort_expression';
11
+ function default_1(path) {
12
+ if (path.node.type === exports.NODE_TYPE) {
13
+ return printAbortExpression;
14
+ }
15
+ return null;
16
+ }
17
+ /**
18
+ * Print `abort_expression` node.
19
+ */
20
+ function printAbortExpression(path, options, print) {
21
+ const expression = path.node.nonFormattingChildren[0];
22
+ const printed = path.call(print, 'nonFormattingChildren', 0);
23
+ if (!expression)
24
+ return 'abort';
25
+ return group([
26
+ 'abort',
27
+ expression?.isList || expression?.isControlFlow
28
+ ? [' ', printed]
29
+ : [indent(line), indent(printed)],
30
+ ]);
31
+ }
32
+ //# sourceMappingURL=abort_expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abort_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/abort_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAUtC,4BAMC;AAZD,uCAA6C;AAC7C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAE7C,oDAAoD;AACvC,QAAA,SAAS,GAAG,kBAAkB,CAAC;AAE5C,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,EAAE,CAAC;QAC/B,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IACnF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;IAE7D,IAAI,CAAC,UAAU;QAAE,OAAO,OAAO,CAAC;IAEhC,OAAO,KAAK,CAAC;QACT,OAAO;QACP,UAAU,EAAE,MAAM,IAAI,UAAU,EAAE,aAAa;YAC3C,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC;YAChB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;KACxC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.NODE_TYPE = void 0;
6
+ exports.default = default_1;
7
+ const prettier_1 = require("prettier");
8
+ const { group, indent, softline } = prettier_1.doc.builders;
9
+ /** The type of the node implemented in this file */
10
+ exports.NODE_TYPE = 'annotation_expression';
11
+ function default_1(path) {
12
+ if (path.node.type === exports.NODE_TYPE) {
13
+ return printAnnotationExpression;
14
+ }
15
+ return null;
16
+ }
17
+ /**
18
+ * Print `annotation_expression` node.
19
+ */
20
+ function printAnnotationExpression(path, _opt, print) {
21
+ const children = path.map(print, 'nonFormattingChildren');
22
+ if (children.length !== 2) {
23
+ throw new Error('`annotation_expression` node should have 2 children');
24
+ }
25
+ return group([
26
+ '(',
27
+ indent(softline),
28
+ indent(children[0]), // expression
29
+ ': ',
30
+ children[1], // type
31
+ softline,
32
+ ')',
33
+ ]);
34
+ }
35
+ //# sourceMappingURL=annotation_expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotation_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/annotation_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAUtC,4BAMC;AAZD,uCAA6C;AAC7C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAEjD,oDAAoD;AACvC,QAAA,SAAS,GAAG,uBAAuB,CAAC;AAEjD,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,EAAE,CAAC;QAC/B,OAAO,yBAAyB,CAAC;IACrC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAAC,IAAmB,EAAE,IAAiB,EAAE,KAAc;IACrF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IAC1D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,KAAK,CAAC;QACT,GAAG;QACH,MAAM,CAAC,QAAQ,CAAC;QAChB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,EAAE,aAAa;QACnC,IAAI;QACJ,QAAQ,CAAC,CAAC,CAAE,EAAE,OAAO;QACrB,QAAQ;QACR,GAAG;KACN,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.NODE_TYPE = void 0;
6
+ exports.default = default_1;
7
+ const prettier_1 = require("prettier");
8
+ const utilities_1 = require("../../utilities");
9
+ const { group, indent, line } = prettier_1.doc.builders;
10
+ /** The type of the node implemented in this file */
11
+ exports.NODE_TYPE = 'assign_expression';
12
+ function default_1(path) {
13
+ if (path.node.type === exports.NODE_TYPE) {
14
+ return printAssignExpression;
15
+ }
16
+ return null;
17
+ }
18
+ /**
19
+ * Print `assign_expression` node.
20
+ */
21
+ function printAssignExpression(path, options, print) {
22
+ if (path.node.nonFormattingChildren.length !== 2) {
23
+ throw new Error('`assign_expression` must have 2 children');
24
+ }
25
+ const result = [];
26
+ let shouldBreak = false;
27
+ // together with the LHS we print trailing comment if there is one
28
+ result.push(path.call((lhs) => {
29
+ const hasComment = !!lhs.node.trailingComment;
30
+ if (lhs.node.trailingComment?.type == 'line_comment') {
31
+ shouldBreak = true;
32
+ const trailingLineComment = (0, utilities_1.printTrailingComment)(lhs, true);
33
+ lhs.node.disableTrailingComment();
34
+ return [print(lhs), ' =', indent(trailingLineComment)];
35
+ }
36
+ return [print(lhs), hasComment ? '=' : ' ='];
37
+ }, 'nonFormattingChildren', 0));
38
+ const rhs = path.node.nonFormattingChildren[1];
39
+ if ((rhs.isControlFlow || rhs.isList) && !shouldBreak) {
40
+ result.push(group([' ', path.call(print, 'nonFormattingChildren', 1)]));
41
+ }
42
+ else {
43
+ // then print the rhs
44
+ result.push(group([
45
+ shouldBreak ? '' : indent(line),
46
+ indent(path.call(print, 'nonFormattingChildren', 1)),
47
+ ]));
48
+ }
49
+ return result;
50
+ }
51
+ //# sourceMappingURL=assign_expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assign_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/assign_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAWtC,4BAMC;AAbD,uCAA6C;AAC7C,+CAAuD;AACvD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAE7C,oDAAoD;AACvC,QAAA,SAAS,GAAG,mBAAmB,CAAC;AAE7C,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,EAAE,CAAC;QAC/B,OAAO,qBAAqB,CAAC;IACjC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IACpF,IAAI,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,MAAM,GAAU,EAAE,CAAC;IACzB,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,kEAAkE;IAClE,MAAM,CAAC,IAAI,CACP,IAAI,CAAC,IAAI,CACL,CAAC,GAAG,EAAE,EAAE;QACJ,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;QAE9C,IAAI,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,cAAc,EAAE,CAAC;YACnD,WAAW,GAAG,IAAI,CAAC;YACnB,MAAM,mBAAmB,GAAG,IAAA,gCAAoB,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC5D,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC,EACD,uBAAuB,EACvB,CAAC,CACJ,CACJ,CAAC;IAEF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAE,CAAC;IAChD,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;SAAM,CAAC;QACJ,qBAAqB;QACrB,MAAM,CAAC,IAAI,CACP,KAAK,CAAC;YACF,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;SACvD,CAAC,CACL,CAAC;IACN,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.NODE_TYPE = void 0;
6
+ exports.default = default_1;
7
+ exports.printBinaryOperator = printBinaryOperator;
8
+ const prettier_1 = require("prettier");
9
+ const { group, line } = prettier_1.doc.builders;
10
+ /** The type of the node implemented in this file */
11
+ exports.NODE_TYPE = 'binary_expression';
12
+ // TODO: re-enable binary expression once we figure out how to achieve it.
13
+ function default_1(path) {
14
+ if (path.node.type === exports.NODE_TYPE) {
15
+ return () => path.node.text;
16
+ // TODO: re-enable binary expression once we figure out how to achieve it.
17
+ // return printBinaryExpression;
18
+ }
19
+ else if (path.node.type === 'binary_operator') {
20
+ // return printBinaryOperator;
21
+ // TODO: re-enable binary expression once we figure out how to achieve it.
22
+ return () => path.node.text;
23
+ }
24
+ return null;
25
+ }
26
+ /**
27
+ * Print `binary_expression` node.
28
+ * (Currently disabled)
29
+ */
30
+ function printBinaryExpression(path, options, print) {
31
+ if (path.node.nonFormattingChildren.length != 3) {
32
+ throw new Error('`binary_expression` node should have 3 children');
33
+ }
34
+ const [one, two, three] = path.map(print, 'nonFormattingChildren');
35
+ const rhs = path.node.nonFormattingChildren[2];
36
+ if (rhs?.type === 'block' || rhs?.type === 'expression_list') {
37
+ return [one, ' ', two, ' ', three];
38
+ }
39
+ return [one, ' ', two, group([line, three], { shouldBreak: false })];
40
+ }
41
+ /**
42
+ * Print `binary_operator` node.
43
+ */
44
+ function printBinaryOperator(path, _opt, _p) {
45
+ return path.node.text;
46
+ }
47
+ /**
48
+
49
+ or: '||',
50
+ and: '&&',
51
+ eq: '==',
52
+ neq: '!=',
53
+ lt: '<',
54
+ gt: '>',
55
+ le: '<=',
56
+ ge: '>=',
57
+ bit_or: '|',
58
+ xor: '^',
59
+ bit_and: '&',
60
+ shl: '<<',
61
+ shr: '>>',
62
+ add: '+',
63
+ sub: '-',
64
+ mul: '*',
65
+ div: '/',
66
+ mod: '%'
67
+
68
+
69
+ */
70
+ //# sourceMappingURL=binary_expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/binary_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAWtC,4BAYC;AAwBD,kDAEC;AA7CD,uCAA6C;AAC7C,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAErC,oDAAoD;AACvC,QAAA,SAAS,GAAG,mBAAmB,CAAC;AAE7C,0EAA0E;AAC1E,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,EAAE,CAAC;QAC/B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,0EAA0E;QAC1E,gCAAgC;IACpC,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC9C,8BAA8B;QAC9B,0EAA0E;QAC1E,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAChC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IACpF,IAAI,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IACnE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAE/C,IAAI,GAAG,EAAE,IAAI,KAAK,OAAO,IAAI,GAAG,EAAE,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC3D,OAAO,CAAC,GAAI,EAAE,GAAG,EAAE,GAAI,EAAE,GAAG,EAAE,KAAM,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,CAAC,GAAI,EAAE,GAAG,EAAE,GAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,KAAM,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,IAAmB,EAAE,IAAiB,EAAE,EAAW;IACnF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;EAsBE"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.default = default_1;
6
+ exports.printNonBreakingBlock = printNonBreakingBlock;
7
+ exports.printBreakableBlock = printBreakableBlock;
8
+ exports.printBlock = printBlock;
9
+ const prettier_1 = require("prettier");
10
+ const utilities_1 = require("../../utilities");
11
+ const { group, indent, join, conditionalGroup, hardlineWithoutBreakParent } = prettier_1.doc.builders;
12
+ /** The type of the node implemented in this file */
13
+ const NODE_TYPE = 'block';
14
+ function default_1(path) {
15
+ if (path.node.type === NODE_TYPE) {
16
+ return printBlock;
17
+ }
18
+ return null;
19
+ }
20
+ /**
21
+ * Special case of `block` node, that does not break the parent. A must-have for
22
+ * lambda expressions.
23
+ */
24
+ function printNonBreakingBlock(path, options, print) {
25
+ const length = path.node.nonFormattingChildren.length;
26
+ if (length == 0) {
27
+ return '{}';
28
+ }
29
+ return group([
30
+ '{',
31
+ indent(hardlineWithoutBreakParent),
32
+ indent(join(hardlineWithoutBreakParent, path.map(print, 'namedAndEmptyLineChildren'))),
33
+ hardlineWithoutBreakParent,
34
+ '}',
35
+ ]);
36
+ }
37
+ function printBreakableBlock(path, options, print) {
38
+ const length = path.node.nonFormattingChildren.length;
39
+ if (length == 0) {
40
+ return '{}';
41
+ }
42
+ return (0, utilities_1.block)({
43
+ options,
44
+ print,
45
+ path,
46
+ shouldBreak: (0, utilities_1.shouldBreakFirstChild)(path),
47
+ });
48
+ }
49
+ /**
50
+ * Print `block` node.
51
+ */
52
+ function printBlock(path, options, print) {
53
+ return conditionalGroup([
54
+ printBreakableBlock(path, options, print),
55
+ printNonBreakingBlock(path, options, print),
56
+ ]);
57
+ }
58
+ //# sourceMappingURL=block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block.js","sourceRoot":"","sources":["../../../src/cst/expression/block.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;AAWtC,4BAMC;AAMD,sDAkBC;AAED,kDAiBC;AAKD,gCAKC;AAlED,uCAA6C;AAC7C,+CAA+D;AAC/D,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAE3F,oDAAoD;AACpD,MAAM,SAAS,GAAG,OAAO,CAAC;AAE1B,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CACjC,IAAmB,EACnB,OAAoB,EACpB,KAAc;IAEd,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;IAEtD,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;QACT,GAAG;QACH,MAAM,CAAC,0BAA0B,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC,CAAC;QACtF,0BAA0B;QAC1B,GAAG;KACN,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,mBAAmB,CAC/B,IAAmB,EACnB,OAAoB,EACpB,KAAc;IAEd,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;IAEtD,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,IAAA,iBAAK,EAAC;QACT,OAAO;QACP,KAAK;QACL,IAAI;QACJ,WAAW,EAAE,IAAA,iCAAqB,EAAC,IAAI,CAAC;KAC3C,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IAChF,OAAO,gBAAgB,CAAC;QACpB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC;QACzC,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC;KAC9C,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.default = default_1;
6
+ const prettier_1 = require("prettier");
7
+ const utilities_1 = require("../../utilities");
8
+ const { group, lineSuffix } = prettier_1.doc.builders;
9
+ /** The type of the node implemented in this file */
10
+ const NODE_TYPE = 'block_item';
11
+ function default_1(path) {
12
+ if (path.node.type === NODE_TYPE) {
13
+ return printBlockItem;
14
+ }
15
+ return null;
16
+ }
17
+ /**
18
+ * Print `block_item` node.
19
+ */
20
+ function printBlockItem(path, options, print) {
21
+ const trailing = lineSuffix((0, utilities_1.printTrailingComment)(path));
22
+ path.node.disableTrailingComment();
23
+ return [group([path.call(print, 'nonFormattingChildren', 0), ';', trailing])];
24
+ }
25
+ //# sourceMappingURL=block_item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block_item.js","sourceRoot":"","sources":["../../../src/cst/expression/block_item.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;AAWtC,4BAMC;AAbD,uCAA6C;AAC7C,+CAAuD;AACvD,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAE3C,oDAAoD;AACpD,MAAM,SAAS,GAAG,YAAY,CAAC;AAE/B,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,cAAc,CAAC;IAC1B,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IAC7E,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAA,gCAAoB,EAAC,IAAI,CAAC,CAAC,CAAC;IACxD,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAEnC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClF,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.NODE_TYPE = void 0;
6
+ exports.default = default_1;
7
+ const prettier_1 = require("prettier");
8
+ const {} = prettier_1.doc.builders;
9
+ /** The type of the node implemented in this file */
10
+ exports.NODE_TYPE = 'borrow_expression';
11
+ function default_1(path) {
12
+ if (path.node.type === exports.NODE_TYPE) {
13
+ return printBorrowExpression;
14
+ }
15
+ return null;
16
+ }
17
+ /**
18
+ * Print `borrow_expression` node.
19
+ */
20
+ function printBorrowExpression(path, options, print) {
21
+ return [
22
+ path.call(print, 'nonFormattingChildren', 0), // borrow type
23
+ path.call(print, 'nonFormattingChildren', 1), // expression
24
+ ];
25
+ }
26
+ //# sourceMappingURL=borrow_expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"borrow_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/borrow_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAUtC,4BAMC;AAZD,uCAA6C;AAC7C,MAAM,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAExB,oDAAoD;AACvC,QAAA,SAAS,GAAG,mBAAmB,CAAC;AAE7C,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,EAAE,CAAC;QAC/B,OAAO,qBAAqB,CAAC;IACjC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IACpF,OAAO;QACH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,EAAE,cAAc;QAC5D,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,EAAE,aAAa;KAC9D,CAAC;AACN,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.NODE_TYPE = void 0;
6
+ exports.default = default_1;
7
+ exports.printBreakExpression = printBreakExpression;
8
+ const prettier_1 = require("prettier");
9
+ const { join } = prettier_1.doc.builders;
10
+ /** The type of the node implemented in this file */
11
+ exports.NODE_TYPE = 'break_expression';
12
+ function default_1(path) {
13
+ if (path.node.type === exports.NODE_TYPE) {
14
+ return printBreakExpression;
15
+ }
16
+ return null;
17
+ }
18
+ /**
19
+ * Print `break_expression` node.
20
+ */
21
+ function printBreakExpression(path, options, print) {
22
+ if (path.node.nonFormattingChildren.length > 0) {
23
+ return join(' ', ['break', ...path.map(print, 'nonFormattingChildren')]);
24
+ }
25
+ return 'break';
26
+ }
27
+ //# sourceMappingURL=break_expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"break_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/break_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAUtC,4BAMC;AAKD,oDAUC;AA3BD,uCAA6C;AAC7C,MAAM,EAAE,IAAI,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAE9B,oDAAoD;AACvC,QAAA,SAAS,GAAG,kBAAkB,CAAC;AAE5C,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,EAAE,CAAC;QAC/B,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAChC,IAAmB,EACnB,OAAoB,EACpB,KAAc;IAEd,IAAI,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.NODE_TYPE = void 0;
6
+ exports.default = default_1;
7
+ /** The type of the node implemented in this file */
8
+ exports.NODE_TYPE = 'call_expression';
9
+ function default_1(path) {
10
+ if (path.node.type === exports.NODE_TYPE) {
11
+ return printCallExpression;
12
+ }
13
+ return null;
14
+ }
15
+ /**
16
+ * Print `call_expression` node.
17
+ * Inside:
18
+ * - `module_access`
19
+ * - `type_arguments`
20
+ * - `arg_list`
21
+ */
22
+ function printCallExpression(path, options, print) {
23
+ return path.map(print, 'nonFormattingChildren');
24
+ }
25
+ //# sourceMappingURL=call_expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/call_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAStC,4BAMC;AATD,oDAAoD;AACvC,QAAA,SAAS,GAAG,iBAAiB,CAAC;AAE3C,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,EAAE,CAAC;QAC/B,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IAClF,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.NODE_TYPE = void 0;
6
+ exports.default = default_1;
7
+ const prettier_1 = require("prettier");
8
+ const { join } = prettier_1.doc.builders;
9
+ /** The type of the node implemented in this file */
10
+ exports.NODE_TYPE = 'cast_expression';
11
+ function default_1(path) {
12
+ if (path.node.type === exports.NODE_TYPE) {
13
+ return printCastExpression;
14
+ }
15
+ return null;
16
+ }
17
+ /**
18
+ * Print `cast_expression` node.
19
+ * Inside:
20
+ * - `expression`
21
+ * - `type`
22
+ */
23
+ function printCastExpression(path, options, print) {
24
+ const parens = path.node.child(0)?.text == '(';
25
+ const children = path.map(print, 'nonFormattingChildren');
26
+ if (parens) {
27
+ return ['(', join(' as ', children), ')'];
28
+ }
29
+ return join(' as ', children);
30
+ }
31
+ //# sourceMappingURL=cast_expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cast_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/cast_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAUtC,4BAMC;AAZD,uCAA6C;AAC7C,MAAM,EAAE,IAAI,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAE9B,oDAAoD;AACvC,QAAA,SAAS,GAAG,iBAAiB,CAAC;AAE3C,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,EAAE,CAAC;QAC/B,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IAClF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,GAAG,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IAE1D,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.NODE_TYPE = void 0;
6
+ exports.default = default_1;
7
+ const prettier_1 = require("prettier");
8
+ const {} = prettier_1.doc.builders;
9
+ /** The type of the node implemented in this file */
10
+ exports.NODE_TYPE = 'continue_expression';
11
+ function default_1(path) {
12
+ if (path.node.type === exports.NODE_TYPE) {
13
+ return printContinueExpression;
14
+ }
15
+ return null;
16
+ }
17
+ /**
18
+ * Print `continue_expression` node.
19
+ */
20
+ function printContinueExpression(path, options, print) {
21
+ if (path.node.nonFormattingChildren.length === 1) {
22
+ return ['continue ', path.call(print, 'nonFormattingChildren', 0)];
23
+ }
24
+ return 'continue';
25
+ }
26
+ //# sourceMappingURL=continue_expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continue_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/continue_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAUtC,4BAMC;AAZD,uCAA6C;AAC7C,MAAM,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAExB,oDAAoD;AACvC,QAAA,SAAS,GAAG,qBAAqB,CAAC;AAE/C,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,EAAE,CAAC;QAC/B,OAAO,uBAAuB,CAAC;IACnC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IACtF,IAAI,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC"}