brighterscript 0.58.0 → 0.60.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 (242) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +18 -9
  3. package/bsconfig.schema.json +11 -0
  4. package/dist/BsConfig.d.ts +11 -0
  5. package/dist/CommentFlagProcessor.d.ts +1 -1
  6. package/dist/CommentFlagProcessor.js +1 -1
  7. package/dist/DependencyGraph.d.ts +3 -2
  8. package/dist/DependencyGraph.js +3 -2
  9. package/dist/DependencyGraph.js.map +1 -1
  10. package/dist/DiagnosticFilterer.js +1 -2
  11. package/dist/DiagnosticFilterer.js.map +1 -1
  12. package/dist/DiagnosticMessages.d.ts +12 -2
  13. package/dist/DiagnosticMessages.js +12 -2
  14. package/dist/DiagnosticMessages.js.map +1 -1
  15. package/dist/FunctionScope.d.ts +1 -1
  16. package/dist/FunctionScope.js +1 -1
  17. package/dist/KeyedThrottler.d.ts +3 -3
  18. package/dist/KeyedThrottler.js +3 -3
  19. package/dist/KeyedThrottler.js.map +1 -1
  20. package/dist/LanguageServer.d.ts +0 -7
  21. package/dist/LanguageServer.js +0 -7
  22. package/dist/LanguageServer.js.map +1 -1
  23. package/dist/Program.d.ts +10 -8
  24. package/dist/Program.js +50 -238
  25. package/dist/Program.js.map +1 -1
  26. package/dist/ProgramBuilder.d.ts +0 -1
  27. package/dist/ProgramBuilder.js +1 -2
  28. package/dist/ProgramBuilder.js.map +1 -1
  29. package/dist/Scope.d.ts +35 -35
  30. package/dist/Scope.js +63 -42
  31. package/dist/Scope.js.map +1 -1
  32. package/dist/SymbolTable.d.ts +0 -3
  33. package/dist/SymbolTable.js +0 -3
  34. package/dist/SymbolTable.js.map +1 -1
  35. package/dist/Watcher.d.ts +0 -3
  36. package/dist/Watcher.js +0 -3
  37. package/dist/Watcher.js.map +1 -1
  38. package/dist/astUtils/AstEditor.d.ts +1 -1
  39. package/dist/astUtils/AstEditor.js +1 -1
  40. package/dist/astUtils/AstEditor.spec.js +58 -58
  41. package/dist/astUtils/AstEditor.spec.js.map +1 -1
  42. package/dist/astUtils/creators.spec.js +5 -5
  43. package/dist/astUtils/creators.spec.js.map +1 -1
  44. package/dist/astUtils/reflection.d.ts +3 -1
  45. package/dist/astUtils/reflection.js +10 -2
  46. package/dist/astUtils/reflection.js.map +1 -1
  47. package/dist/astUtils/reflection.spec.js +115 -110
  48. package/dist/astUtils/reflection.spec.js.map +1 -1
  49. package/dist/astUtils/stackedVisitor.spec.js +12 -12
  50. package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
  51. package/dist/astUtils/visitors.d.ts +6 -1
  52. package/dist/astUtils/visitors.js +4 -0
  53. package/dist/astUtils/visitors.js.map +1 -1
  54. package/dist/astUtils/visitors.spec.js +21 -21
  55. package/dist/astUtils/visitors.spec.js.map +1 -1
  56. package/dist/bscPlugin/CallExpressionInfo.d.ts +35 -0
  57. package/dist/bscPlugin/CallExpressionInfo.js +131 -0
  58. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -0
  59. package/dist/bscPlugin/SignatureHelpUtil.d.ts +10 -0
  60. package/dist/bscPlugin/SignatureHelpUtil.js +135 -0
  61. package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -0
  62. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +12 -12
  63. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
  64. package/dist/bscPlugin/hover/HoverProcessor.spec.js +48 -48
  65. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  66. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +4 -4
  67. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
  68. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js +1 -2
  69. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +1 -1
  70. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js +4 -5
  71. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js.map +1 -1
  72. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +2 -0
  73. package/dist/bscPlugin/validation/BrsFileValidator.js +59 -6
  74. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  75. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +39 -9
  76. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
  77. package/dist/files/BrsFile.Class.spec.js +43 -45
  78. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  79. package/dist/files/BrsFile.d.ts +8 -20
  80. package/dist/files/BrsFile.js +16 -97
  81. package/dist/files/BrsFile.js.map +1 -1
  82. package/dist/files/BrsFile.spec.js +309 -262
  83. package/dist/files/BrsFile.spec.js.map +1 -1
  84. package/dist/files/XmlFile.d.ts +1 -4
  85. package/dist/files/XmlFile.js +1 -4
  86. package/dist/files/XmlFile.js.map +1 -1
  87. package/dist/files/XmlFile.spec.js +136 -169
  88. package/dist/files/XmlFile.spec.js.map +1 -1
  89. package/dist/files/tests/imports.spec.js +19 -21
  90. package/dist/files/tests/imports.spec.js.map +1 -1
  91. package/dist/files/tests/optionalChaning.spec.js +8 -11
  92. package/dist/files/tests/optionalChaning.spec.js.map +1 -1
  93. package/dist/lexer/Character.spec.js +5 -5
  94. package/dist/lexer/Character.spec.js.map +1 -1
  95. package/dist/lexer/Lexer.d.ts +0 -5
  96. package/dist/lexer/Lexer.js +0 -5
  97. package/dist/lexer/Lexer.js.map +1 -1
  98. package/dist/lexer/Lexer.spec.js +141 -135
  99. package/dist/lexer/Lexer.spec.js.map +1 -1
  100. package/dist/lexer/TokenKind.d.ts +1 -0
  101. package/dist/lexer/TokenKind.js +6 -2
  102. package/dist/lexer/TokenKind.js.map +1 -1
  103. package/dist/parser/AstNode.d.ts +1 -1
  104. package/dist/parser/AstNode.spec.js +8 -10
  105. package/dist/parser/AstNode.spec.js.map +1 -1
  106. package/dist/parser/Expression.js.map +1 -1
  107. package/dist/parser/Parser.Class.spec.js +60 -60
  108. package/dist/parser/Parser.Class.spec.js.map +1 -1
  109. package/dist/parser/Parser.d.ts +8 -4
  110. package/dist/parser/Parser.js +16 -7
  111. package/dist/parser/Parser.js.map +1 -1
  112. package/dist/parser/Parser.spec.js +229 -221
  113. package/dist/parser/Parser.spec.js.map +1 -1
  114. package/dist/parser/SGParser.spec.js +16 -17
  115. package/dist/parser/SGParser.spec.js.map +1 -1
  116. package/dist/parser/Statement.d.ts +16 -2
  117. package/dist/parser/Statement.js +40 -8
  118. package/dist/parser/Statement.js.map +1 -1
  119. package/dist/parser/Statement.spec.js +31 -14
  120. package/dist/parser/Statement.spec.js.map +1 -1
  121. package/dist/parser/tests/controlFlow/For.spec.js +15 -15
  122. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  123. package/dist/parser/tests/controlFlow/ForEach.spec.js +13 -13
  124. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  125. package/dist/parser/tests/controlFlow/If.spec.js +93 -93
  126. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  127. package/dist/parser/tests/controlFlow/While.spec.js +12 -12
  128. package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
  129. package/dist/parser/tests/expression/Additive.spec.js +8 -8
  130. package/dist/parser/tests/expression/Additive.spec.js.map +1 -1
  131. package/dist/parser/tests/expression/ArrayLiterals.spec.js +26 -26
  132. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
  133. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +27 -27
  134. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  135. package/dist/parser/tests/expression/Boolean.spec.js +8 -8
  136. package/dist/parser/tests/expression/Boolean.spec.js.map +1 -1
  137. package/dist/parser/tests/expression/Call.spec.js +45 -45
  138. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  139. package/dist/parser/tests/expression/Exponential.spec.js +5 -5
  140. package/dist/parser/tests/expression/Exponential.spec.js.map +1 -1
  141. package/dist/parser/tests/expression/Function.spec.js +36 -36
  142. package/dist/parser/tests/expression/Function.spec.js.map +1 -1
  143. package/dist/parser/tests/expression/Indexing.spec.js +29 -29
  144. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  145. package/dist/parser/tests/expression/Multiplicative.spec.js +9 -9
  146. package/dist/parser/tests/expression/Multiplicative.spec.js.map +1 -1
  147. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +34 -34
  148. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  149. package/dist/parser/tests/expression/PrefixUnary.spec.js +12 -12
  150. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +1 -1
  151. package/dist/parser/tests/expression/Primary.spec.js +12 -12
  152. package/dist/parser/tests/expression/Primary.spec.js.map +1 -1
  153. package/dist/parser/tests/expression/Relational.spec.js +13 -13
  154. package/dist/parser/tests/expression/Relational.spec.js.map +1 -1
  155. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +10 -10
  156. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  157. package/dist/parser/tests/expression/TernaryExpression.spec.js +53 -53
  158. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  159. package/dist/parser/tests/statement/AssignmentOperators.spec.js +15 -15
  160. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +1 -1
  161. package/dist/parser/tests/statement/ConstStatement.spec.js +12 -12
  162. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
  163. package/dist/parser/tests/statement/Continue.spec.d.ts +1 -0
  164. package/dist/parser/tests/statement/Continue.spec.js +92 -0
  165. package/dist/parser/tests/statement/Continue.spec.js.map +1 -0
  166. package/dist/parser/tests/statement/Declaration.spec.js +19 -19
  167. package/dist/parser/tests/statement/Declaration.spec.js.map +1 -1
  168. package/dist/parser/tests/statement/Dim.spec.js +22 -22
  169. package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
  170. package/dist/parser/tests/statement/Enum.spec.js +43 -19
  171. package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
  172. package/dist/parser/tests/statement/For.spec.js +3 -4
  173. package/dist/parser/tests/statement/For.spec.js.map +1 -1
  174. package/dist/parser/tests/statement/ForEach.spec.js +4 -5
  175. package/dist/parser/tests/statement/ForEach.spec.js.map +1 -1
  176. package/dist/parser/tests/statement/Function.spec.js +35 -35
  177. package/dist/parser/tests/statement/Function.spec.js.map +1 -1
  178. package/dist/parser/tests/statement/Goto.spec.js +5 -5
  179. package/dist/parser/tests/statement/Goto.spec.js.map +1 -1
  180. package/dist/parser/tests/statement/Increment.spec.js +20 -20
  181. package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
  182. package/dist/parser/tests/statement/InterfaceStatement.spec.js +4 -5
  183. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
  184. package/dist/parser/tests/statement/LibraryStatement.spec.js +11 -11
  185. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
  186. package/dist/parser/tests/statement/Misc.spec.js +20 -20
  187. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  188. package/dist/parser/tests/statement/PrintStatement.spec.js +19 -20
  189. package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
  190. package/dist/parser/tests/statement/ReturnStatement.spec.js +9 -9
  191. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
  192. package/dist/parser/tests/statement/Set.spec.js +22 -22
  193. package/dist/parser/tests/statement/Set.spec.js.map +1 -1
  194. package/dist/parser/tests/statement/Stop.spec.js +6 -6
  195. package/dist/parser/tests/statement/Stop.spec.js.map +1 -1
  196. package/dist/parser/tests/statement/Throw.spec.js +6 -6
  197. package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
  198. package/dist/parser/tests/statement/TryCatch.spec.js +15 -15
  199. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  200. package/dist/preprocessor/Manifest.spec.js +8 -8
  201. package/dist/preprocessor/Manifest.spec.js.map +1 -1
  202. package/dist/preprocessor/Preprocessor.d.ts +2 -2
  203. package/dist/preprocessor/Preprocessor.js +2 -2
  204. package/dist/preprocessor/Preprocessor.spec.js +25 -25
  205. package/dist/preprocessor/Preprocessor.spec.js.map +1 -1
  206. package/dist/preprocessor/PreprocessorParser.d.ts +1 -1
  207. package/dist/preprocessor/PreprocessorParser.js +1 -1
  208. package/dist/preprocessor/PreprocessorParser.spec.js +13 -13
  209. package/dist/preprocessor/PreprocessorParser.spec.js.map +1 -1
  210. package/dist/types/ArrayType.spec.js +9 -9
  211. package/dist/types/ArrayType.spec.js.map +1 -1
  212. package/dist/types/BooleanType.spec.js +3 -3
  213. package/dist/types/BooleanType.spec.js.map +1 -1
  214. package/dist/types/DoubleType.spec.js +3 -3
  215. package/dist/types/DoubleType.spec.js.map +1 -1
  216. package/dist/types/DynamicType.d.ts +0 -1
  217. package/dist/types/DynamicType.js +0 -1
  218. package/dist/types/DynamicType.js.map +1 -1
  219. package/dist/types/DynamicType.spec.js +3 -3
  220. package/dist/types/DynamicType.spec.js.map +1 -1
  221. package/dist/types/FloatType.spec.js +3 -3
  222. package/dist/types/FloatType.spec.js.map +1 -1
  223. package/dist/types/FunctionType.spec.js +6 -6
  224. package/dist/types/FunctionType.spec.js.map +1 -1
  225. package/dist/types/IntegerType.spec.js +3 -3
  226. package/dist/types/IntegerType.spec.js.map +1 -1
  227. package/dist/types/InterfaceType.spec.js +8 -8
  228. package/dist/types/InterfaceType.spec.js.map +1 -1
  229. package/dist/types/InvalidType.spec.js +3 -3
  230. package/dist/types/InvalidType.spec.js.map +1 -1
  231. package/dist/types/LongIntegerType.spec.js +3 -3
  232. package/dist/types/LongIntegerType.spec.js.map +1 -1
  233. package/dist/types/ObjectType.spec.js +3 -3
  234. package/dist/types/ObjectType.spec.js.map +1 -1
  235. package/dist/types/StringType.spec.js +3 -3
  236. package/dist/types/StringType.spec.js.map +1 -1
  237. package/dist/types/VoidType.spec.js +3 -3
  238. package/dist/types/VoidType.spec.js.map +1 -1
  239. package/dist/util.d.ts +21 -43
  240. package/dist/util.js +33 -60
  241. package/dist/util.js.map +1 -1
  242. package/package.json +3 -3
@@ -5,19 +5,19 @@ const util_1 = require("../../../util");
5
5
  const Program_1 = require("../../../Program");
6
6
  const sinon_1 = require("sinon");
7
7
  const Parser_1 = require("../../Parser");
8
- const chai_1 = require("chai");
8
+ const chai_config_spec_1 = require("../../../chai-config.spec");
9
9
  const TokenKind_1 = require("../../../lexer/TokenKind");
10
10
  const Expression_1 = require("../../Expression");
11
11
  const vscode_languageserver_protocol_1 = require("vscode-languageserver-protocol");
12
+ const testHelpers_spec_2 = require("../../../testHelpers.spec");
12
13
  const sinon = (0, sinon_1.createSandbox)();
13
14
  describe('ConstStatement', () => {
14
- let rootDir = (0, util_1.standardizePath) `${process.cwd()}/.tmp/rootDir`;
15
15
  let program;
16
16
  let parser;
17
- let testTranspile = (0, testHelpers_spec_1.getTestTranspile)(() => [program, rootDir]);
18
- let testGetTypedef = (0, testHelpers_spec_1.getTestGetTypedef)(() => [program, rootDir]);
17
+ let testTranspile = (0, testHelpers_spec_1.getTestTranspile)(() => [program, testHelpers_spec_2.rootDir]);
18
+ let testGetTypedef = (0, testHelpers_spec_1.getTestGetTypedef)(() => [program, testHelpers_spec_2.rootDir]);
19
19
  beforeEach(() => {
20
- program = new Program_1.Program({ rootDir: rootDir, sourceMap: true });
20
+ program = new Program_1.Program({ rootDir: testHelpers_spec_2.rootDir, sourceMap: true });
21
21
  parser = new Parser_1.Parser();
22
22
  });
23
23
  afterEach(() => {
@@ -41,16 +41,16 @@ describe('ConstStatement', () => {
41
41
  parser.parse('const API_KEY = "abc"', { mode: Parser_1.ParseMode.BrighterScript });
42
42
  (0, testHelpers_spec_1.expectZeroDiagnostics)(parser);
43
43
  const statement = parser.ast.statements[0];
44
- (0, chai_1.expect)((_a = statement.tokens.const) === null || _a === void 0 ? void 0 : _a.kind).to.eql(TokenKind_1.TokenKind.Const);
45
- (0, chai_1.expect)(statement.tokens.name).to.include({
44
+ (0, chai_config_spec_1.expect)((_a = statement.tokens.const) === null || _a === void 0 ? void 0 : _a.kind).to.eql(TokenKind_1.TokenKind.Const);
45
+ (0, chai_config_spec_1.expect)(statement.tokens.name).to.include({
46
46
  kind: TokenKind_1.TokenKind.Identifier,
47
47
  text: 'API_KEY'
48
48
  });
49
49
  const value = statement.value;
50
- (0, chai_1.expect)(value).to.be.instanceof(Expression_1.LiteralExpression);
51
- (0, chai_1.expect)((_b = value.token) === null || _b === void 0 ? void 0 : _b.text).to.eql('"abc"');
50
+ (0, chai_config_spec_1.expect)(value).to.be.instanceof(Expression_1.LiteralExpression);
51
+ (0, chai_config_spec_1.expect)((_b = value.token) === null || _b === void 0 ? void 0 : _b.text).to.eql('"abc"');
52
52
  //ensure range is correct
53
- (0, chai_1.expect)(statement.range).to.eql(util_1.default.createRange(0, 0, 0, 21));
53
+ (0, chai_config_spec_1.expect)(statement.range).to.eql(util_1.util.createRange(0, 0, 0, 21));
54
54
  });
55
55
  it('produces typedef', () => {
56
56
  testGetTypedef(`
@@ -187,7 +187,7 @@ describe('ConstStatement', () => {
187
187
  `);
188
188
  (0, testHelpers_spec_1.expectCompletionsIncludes)(
189
189
  // log(|)
190
- program.getCompletions('source/main.bs', util_1.default.createPosition(3, 24)), [{
190
+ program.getCompletions('source/main.bs', util_1.util.createPosition(3, 24)), [{
191
191
  label: 'API_KEY',
192
192
  kind: vscode_languageserver_protocol_1.CompletionItemKind.Constant
193
193
  }]);
@@ -203,7 +203,7 @@ describe('ConstStatement', () => {
203
203
  `);
204
204
  (0, testHelpers_spec_1.expectCompletionsIncludes)(
205
205
  // log(|)
206
- program.getCompletions('source/main.bs', util_1.default.createPosition(5, 34)), [{
206
+ program.getCompletions('source/main.bs', util_1.util.createPosition(5, 34)), [{
207
207
  label: 'API_KEY',
208
208
  kind: vscode_languageserver_protocol_1.CompletionItemKind.Constant
209
209
  }]);
@@ -1 +1 @@
1
- {"version":3,"file":"ConstStatement.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/statement/ConstStatement.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConstStatement.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/statement/ConstStatement.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_config_spec_1 = require("../../../chai-config.spec");
4
+ const sinon_1 = require("sinon");
5
+ const reflection_1 = require("../../../astUtils/reflection");
6
+ const DiagnosticMessages_1 = require("../../../DiagnosticMessages");
7
+ const TokenKind_1 = require("../../../lexer/TokenKind");
8
+ const Program_1 = require("../../../Program");
9
+ const testHelpers_spec_1 = require("../../../testHelpers.spec");
10
+ const testHelpers_spec_2 = require("../../../testHelpers.spec");
11
+ const sinon = (0, sinon_1.createSandbox)();
12
+ describe('parser continue statements', () => {
13
+ let program;
14
+ let testTranspile = (0, testHelpers_spec_1.getTestTranspile)(() => [program, testHelpers_spec_2.rootDir]);
15
+ beforeEach(() => {
16
+ program = new Program_1.Program({ rootDir: testHelpers_spec_2.rootDir, sourceMap: true });
17
+ });
18
+ afterEach(() => {
19
+ sinon.restore();
20
+ program.dispose();
21
+ });
22
+ it('parses standalone statement properly', () => {
23
+ const file = program.setFile('source/main.bs', `
24
+ sub main()
25
+ for i = 0 to 10
26
+ continue for
27
+ end for
28
+ end sub
29
+ `);
30
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
31
+ (0, chai_config_spec_1.expect)(file.ast.findChild(reflection_1.isContinueStatement)).to.exist;
32
+ });
33
+ it('flags incorrect loop type', () => {
34
+ const file = program.setFile('source/main.bs', `
35
+ sub main()
36
+ for i = 0 to 10
37
+ continue while
38
+ end for
39
+ for each item in [1, 2, 3]
40
+ continue while
41
+ end for
42
+ while true
43
+ continue for
44
+ end while
45
+ end sub
46
+ `);
47
+ program.validate();
48
+ (0, testHelpers_spec_1.expectDiagnostics)(program, [
49
+ DiagnosticMessages_1.DiagnosticMessages.expectedToken(TokenKind_1.TokenKind.For),
50
+ DiagnosticMessages_1.DiagnosticMessages.expectedToken(TokenKind_1.TokenKind.For),
51
+ DiagnosticMessages_1.DiagnosticMessages.expectedToken(TokenKind_1.TokenKind.While)
52
+ ]);
53
+ (0, chai_config_spec_1.expect)(file.ast.findChild(reflection_1.isContinueStatement)).to.exist;
54
+ });
55
+ it('flags missing `for` or `while` but still creates the node', () => {
56
+ const file = program.setFile('source/main.bs', `
57
+ sub main()
58
+ for i = 0 to 10
59
+ continue
60
+ end for
61
+ end sub
62
+ `);
63
+ (0, testHelpers_spec_1.expectDiagnostics)(program, [
64
+ DiagnosticMessages_1.DiagnosticMessages.expectedToken(TokenKind_1.TokenKind.While, TokenKind_1.TokenKind.For)
65
+ ]);
66
+ (0, chai_config_spec_1.expect)(file.ast.findChild(reflection_1.isContinueStatement)).to.exist;
67
+ });
68
+ it('detects `continue` used outside of a loop', () => {
69
+ program.setFile('source/main.bs', `
70
+ sub main()
71
+ continue for
72
+ end sub
73
+ `);
74
+ program.validate();
75
+ (0, testHelpers_spec_1.expectDiagnostics)(program, [
76
+ DiagnosticMessages_1.DiagnosticMessages.illegalContinueStatement().message
77
+ ]);
78
+ });
79
+ it('transpiles properly', () => {
80
+ testTranspile(`
81
+ sub main()
82
+ while true
83
+ continue while
84
+ end while
85
+ for i = 0 to 10
86
+ continue for
87
+ end for
88
+ end sub
89
+ `);
90
+ });
91
+ });
92
+ //# sourceMappingURL=Continue.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Continue.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/statement/Continue.spec.ts"],"names":[],"mappings":";;AAAA,gEAAmD;AACnD,iCAAsC;AACtC,6DAAmE;AACnE,oEAAiE;AACjE,wDAAqD;AACrD,8CAA2C;AAC3C,gEAAuG;AACvG,gEAAoD;AAEpD,MAAM,KAAK,GAAG,IAAA,qBAAa,GAAE,CAAC;AAE9B,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IACxC,IAAI,OAAgB,CAAC;IACrB,IAAI,aAAa,GAAG,IAAA,mCAAgB,EAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,0BAAO,CAAC,CAAC,CAAC;IAE/D,UAAU,CAAC,GAAG,EAAE;QACZ,OAAO,GAAG,IAAI,iBAAO,CAAC,EAAE,OAAO,EAAE,0BAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE;QACX,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,OAAO,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAU,gBAAgB,EAAE;;;;;;SAMvD,CAAC,CAAC;QACH,IAAA,wCAAqB,EAAC,OAAO,CAAC,CAAC;QAC/B,IAAA,yBAAM,EAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,gCAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACjC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAU,gBAAgB,EAAE;;;;;;;;;;;;SAYvD,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE;YACvB,uCAAkB,CAAC,aAAa,CAAC,qBAAS,CAAC,GAAG,CAAC;YAC/C,uCAAkB,CAAC,aAAa,CAAC,qBAAS,CAAC,GAAG,CAAC;YAC/C,uCAAkB,CAAC,aAAa,CAAC,qBAAS,CAAC,KAAK,CAAC;SACpD,CAAC,CAAC;QACH,IAAA,yBAAM,EAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,gCAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACjE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAU,gBAAgB,EAAE;;;;;;SAMvD,CAAC,CAAC;QACH,IAAA,oCAAiB,EAAC,OAAO,EAAE;YACvB,uCAAkB,CAAC,aAAa,CAAC,qBAAS,CAAC,KAAK,EAAE,qBAAS,CAAC,GAAG,CAAC;SACnE,CAAC,CAAC;QACH,IAAA,yBAAM,EAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,gCAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACjD,OAAO,CAAC,OAAO,CAAU,gBAAgB,EAAE;;;;SAI1C,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE;YACvB,uCAAkB,CAAC,wBAAwB,EAAE,CAAC,OAAO;SACxD,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC3B,aAAa,CAAC;;;;;;;;;SASb,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const chai_1 = require("chai");
3
+ const chai_config_spec_1 = require("../../../chai-config.spec");
4
4
  const Parser_1 = require("../../Parser");
5
5
  const TokenKind_1 = require("../../../lexer/TokenKind");
6
6
  const Parser_spec_1 = require("../Parser.spec");
@@ -16,9 +16,9 @@ describe('parser variable declarations', () => {
16
16
  (0, Parser_spec_1.token)(TokenKind_1.TokenKind.True),
17
17
  Parser_spec_1.EOF
18
18
  ]);
19
- (0, chai_1.expect)(diagnostics).to.be.lengthOf(0);
20
- (0, chai_1.expect)(statements).to.exist;
21
- (0, chai_1.expect)(statements).not.to.be.null;
19
+ (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
20
+ (0, chai_config_spec_1.expect)(statements).to.exist;
21
+ (0, chai_config_spec_1.expect)(statements).not.to.be.null;
22
22
  });
23
23
  it('allows newlines after assignments', () => {
24
24
  let { statements, diagnostics } = Parser_1.Parser.parse([
@@ -28,9 +28,9 @@ describe('parser variable declarations', () => {
28
28
  (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Newline),
29
29
  Parser_spec_1.EOF
30
30
  ]);
31
- (0, chai_1.expect)(diagnostics).to.be.lengthOf(0);
32
- (0, chai_1.expect)(statements).to.exist;
33
- (0, chai_1.expect)(statements).not.to.be.null;
31
+ (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
32
+ (0, chai_config_spec_1.expect)(statements).to.exist;
33
+ (0, chai_config_spec_1.expect)(statements).not.to.be.null;
34
34
  });
35
35
  it('parses literal value assignments', () => {
36
36
  let { statements, diagnostics } = Parser_1.Parser.parse([
@@ -39,9 +39,9 @@ describe('parser variable declarations', () => {
39
39
  (0, Parser_spec_1.token)(TokenKind_1.TokenKind.IntegerLiteral, '5'),
40
40
  Parser_spec_1.EOF
41
41
  ]);
42
- (0, chai_1.expect)(diagnostics).to.be.lengthOf(0);
43
- (0, chai_1.expect)(statements).to.exist;
44
- (0, chai_1.expect)(statements).not.to.be.null;
42
+ (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
43
+ (0, chai_config_spec_1.expect)(statements).to.exist;
44
+ (0, chai_config_spec_1.expect)(statements).not.to.be.null;
45
45
  });
46
46
  it('parses evaluated value assignments', () => {
47
47
  let { statements, diagnostics } = Parser_1.Parser.parse([
@@ -52,9 +52,9 @@ describe('parser variable declarations', () => {
52
52
  (0, Parser_spec_1.token)(TokenKind_1.TokenKind.IntegerLiteral, '3'),
53
53
  Parser_spec_1.EOF
54
54
  ]);
55
- (0, chai_1.expect)(diagnostics).to.be.lengthOf(0);
56
- (0, chai_1.expect)(statements).to.exist;
57
- (0, chai_1.expect)(statements).not.to.be.null;
55
+ (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
56
+ (0, chai_config_spec_1.expect)(statements).to.exist;
57
+ (0, chai_config_spec_1.expect)(statements).not.to.be.null;
58
58
  });
59
59
  it('parses variable aliasing', () => {
60
60
  let { statements, diagnostics } = Parser_1.Parser.parse([
@@ -63,9 +63,9 @@ describe('parser variable declarations', () => {
63
63
  (0, Parser_spec_1.identifier)('foo'),
64
64
  Parser_spec_1.EOF
65
65
  ]);
66
- (0, chai_1.expect)(diagnostics).to.be.lengthOf(0);
67
- (0, chai_1.expect)(statements).to.exist;
68
- (0, chai_1.expect)(statements).not.to.be.null;
66
+ (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
67
+ (0, chai_config_spec_1.expect)(statements).to.exist;
68
+ (0, chai_config_spec_1.expect)(statements).not.to.be.null;
69
69
  });
70
70
  it('location tracking', () => {
71
71
  /**
@@ -100,9 +100,9 @@ describe('parser variable declarations', () => {
100
100
  range: vscode_languageserver_1.Range.create(0, 13, 0, 14)
101
101
  }
102
102
  ]);
103
- (0, chai_1.expect)(diagnostics).to.be.lengthOf(0);
104
- (0, chai_1.expect)(statements).to.be.lengthOf(1);
105
- (0, chai_1.expect)(statements[0].range).to.deep.include(vscode_languageserver_1.Range.create(0, 0, 0, 13));
103
+ (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
104
+ (0, chai_config_spec_1.expect)(statements).to.be.lengthOf(1);
105
+ (0, chai_config_spec_1.expect)(statements[0].range).to.deep.include(vscode_languageserver_1.Range.create(0, 0, 0, 13));
106
106
  });
107
107
  });
108
108
  //# sourceMappingURL=Declaration.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Declaration.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/statement/Declaration.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Declaration.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/statement/Declaration.spec.ts"],"names":[],"mappings":";;AAAA,gEAAmD;AAEnD,yCAAsC;AACtC,wDAAqD;AACrD,gDAAwD;AACxD,iEAA8C;AAE9C,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC1C,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC;YAC3C,IAAA,mBAAK,EAAC,qBAAS,CAAC,OAAO,CAAC;YACxB,IAAA,mBAAK,EAAC,qBAAS,CAAC,OAAO,CAAC;YACxB,IAAA,mBAAK,EAAC,qBAAS,CAAC,OAAO,CAAC;YACxB,IAAA,wBAAU,EAAC,aAAa,CAAC;YACzB,IAAA,mBAAK,EAAC,qBAAS,CAAC,KAAK,CAAC;YACtB,IAAA,mBAAK,EAAC,qBAAS,CAAC,IAAI,CAAC;YACrB,iBAAG;SACN,CAAC,CAAC;QAEH,IAAA,yBAAM,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtC,IAAA,yBAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC5B,IAAA,yBAAM,EAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QACzC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC;YAC3C,IAAA,wBAAU,EAAC,aAAa,CAAC;YACzB,IAAA,mBAAK,EAAC,qBAAS,CAAC,KAAK,CAAC;YACtB,IAAA,mBAAK,EAAC,qBAAS,CAAC,IAAI,CAAC;YACrB,IAAA,mBAAK,EAAC,qBAAS,CAAC,OAAO,CAAC;YACxB,iBAAG;SACN,CAAC,CAAC;QAEH,IAAA,yBAAM,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtC,IAAA,yBAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC5B,IAAA,yBAAM,EAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QACxC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC;YAC3C,IAAA,wBAAU,EAAC,KAAK,CAAC;YACjB,IAAA,mBAAK,EAAC,qBAAS,CAAC,KAAK,CAAC;YACtB,IAAA,mBAAK,EAAC,qBAAS,CAAC,cAAc,EAAE,GAAG,CAAC;YACpC,iBAAG;SACN,CAAC,CAAC;QAEH,IAAA,yBAAM,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtC,IAAA,yBAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC5B,IAAA,yBAAM,EAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC1C,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC;YAC3C,IAAA,wBAAU,EAAC,KAAK,CAAC;YACjB,IAAA,mBAAK,EAAC,qBAAS,CAAC,KAAK,CAAC;YACtB,IAAA,mBAAK,EAAC,qBAAS,CAAC,cAAc,EAAE,GAAG,CAAC;YACpC,IAAA,mBAAK,EAAC,qBAAS,CAAC,KAAK,CAAC;YACtB,IAAA,mBAAK,EAAC,qBAAS,CAAC,cAAc,EAAE,GAAG,CAAC;YACpC,iBAAG;SACN,CAAC,CAAC;QAEH,IAAA,yBAAM,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtC,IAAA,yBAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC5B,IAAA,yBAAM,EAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAChC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC;YAC3C,IAAA,wBAAU,EAAC,KAAK,CAAC;YACjB,IAAA,mBAAK,EAAC,qBAAS,CAAC,KAAK,CAAC;YACtB,IAAA,wBAAU,EAAC,KAAK,CAAC;YACjB,iBAAG;SACN,CAAC,CAAC;QAEH,IAAA,yBAAM,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtC,IAAA,yBAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC5B,IAAA,yBAAM,EAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACzB;;;;;WAKG;QACH,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAM;YAChD;gBACI,IAAI,EAAE,qBAAS,CAAC,UAAU;gBAC1B,IAAI,EAAE,KAAK;gBACX,UAAU,EAAE,KAAK;gBACjB,KAAK,EAAE,6BAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aAClC;YACD;gBACI,IAAI,EAAE,qBAAS,CAAC,KAAK;gBACrB,IAAI,EAAE,GAAG;gBACT,UAAU,EAAE,KAAK;gBACjB,KAAK,EAAE,6BAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aAClC;YACD;gBACI,IAAI,EAAE,qBAAS,CAAC,OAAO;gBACvB,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,6BAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;aACnC;YACD;gBACI,IAAI,EAAE,qBAAS,CAAC,GAAG;gBACnB,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE,KAAK;gBACjB,KAAK,EAAE,6BAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;aACpC;SACJ,CAAC,CAAC;QAEH,IAAA,yBAAM,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtC,IAAA,yBAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACrC,IAAA,yBAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CACvC,6BAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC5B,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const chai_1 = require("chai");
3
+ const chai_config_spec_1 = require("../../../chai-config.spec");
4
4
  const DiagnosticMessages_1 = require("../../../DiagnosticMessages");
5
5
  const Parser_1 = require("../../Parser");
6
6
  describe('parser DimStatement', () => {
@@ -28,46 +28,46 @@ describe('parser DimStatement', () => {
28
28
  const parser = Parser_1.Parser.parse(`Dim [5]`);
29
29
  const dimStatement = parser.ast.statements[0];
30
30
  //the statement should still exist and have null identifier
31
- (0, chai_1.expect)(dimStatement).to.exist;
32
- (0, chai_1.expect)(dimStatement.identifier).to.not.exist;
33
- (0, chai_1.expect)(parser.diagnostics.map(x => x.message)).to.include(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifierAfterKeyword('dim').message);
31
+ (0, chai_config_spec_1.expect)(dimStatement).to.exist;
32
+ (0, chai_config_spec_1.expect)(dimStatement.identifier).to.not.exist;
33
+ (0, chai_config_spec_1.expect)(parser.diagnostics.map(x => x.message)).to.include(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifierAfterKeyword('dim').message);
34
34
  });
35
35
  it('flags missing left bracket', () => {
36
36
  const parser = Parser_1.Parser.parse(`Dim c]`);
37
37
  const dimStatement = parser.ast.statements[0];
38
38
  //the statement should still exist and have null dimensions
39
- (0, chai_1.expect)(dimStatement).to.exist;
40
- (0, chai_1.expect)(dimStatement.openingSquare).to.not.exist;
41
- (0, chai_1.expect)(parser.diagnostics.map(x => x.message)).to.include(DiagnosticMessages_1.DiagnosticMessages.missingLeftSquareBracketAfterDimIdentifier().message);
39
+ (0, chai_config_spec_1.expect)(dimStatement).to.exist;
40
+ (0, chai_config_spec_1.expect)(dimStatement.openingSquare).to.not.exist;
41
+ (0, chai_config_spec_1.expect)(parser.diagnostics.map(x => x.message)).to.include(DiagnosticMessages_1.DiagnosticMessages.missingLeftSquareBracketAfterDimIdentifier().message);
42
42
  });
43
43
  it('flags missing right bracket', () => {
44
44
  const parser = Parser_1.Parser.parse(`Dim c[5, 5`);
45
45
  const dimStatement = parser.ast.statements[0];
46
46
  //the statement should still exist and have null dimensions
47
- (0, chai_1.expect)(dimStatement).to.exist;
48
- (0, chai_1.expect)(dimStatement.closingSquare).to.not.exist;
49
- (0, chai_1.expect)(parser.diagnostics.map(x => x.message)).to.include(DiagnosticMessages_1.DiagnosticMessages.missingRightSquareBracketAfterDimIdentifier().message);
47
+ (0, chai_config_spec_1.expect)(dimStatement).to.exist;
48
+ (0, chai_config_spec_1.expect)(dimStatement.closingSquare).to.not.exist;
49
+ (0, chai_config_spec_1.expect)(parser.diagnostics.map(x => x.message)).to.include(DiagnosticMessages_1.DiagnosticMessages.missingRightSquareBracketAfterDimIdentifier().message);
50
50
  });
51
51
  it('flags missing expression(s)', () => {
52
52
  const parser = Parser_1.Parser.parse(`Dim c[]`);
53
53
  const dimStatement = parser.ast.statements[0];
54
54
  //the statement should still exist and have null dimensions
55
- (0, chai_1.expect)(dimStatement).to.exist;
56
- (0, chai_1.expect)(dimStatement.dimensions).to.be.empty;
57
- (0, chai_1.expect)(parser.diagnostics.map(x => x.message)).to.include(DiagnosticMessages_1.DiagnosticMessages.missingExpressionsInDimStatement().message);
55
+ (0, chai_config_spec_1.expect)(dimStatement).to.exist;
56
+ (0, chai_config_spec_1.expect)(dimStatement.dimensions).to.be.empty;
57
+ (0, chai_config_spec_1.expect)(parser.diagnostics.map(x => x.message)).to.include(DiagnosticMessages_1.DiagnosticMessages.missingExpressionsInDimStatement().message);
58
58
  });
59
59
  });
60
60
  function validatePass(text, dimStatementIndex, identifierText, dimensionsCount) {
61
61
  const parser = Parser_1.Parser.parse(text);
62
62
  const dimStatement = parser.ast.statements[dimStatementIndex];
63
- (0, chai_1.expect)(dimStatement).to.exist;
64
- (0, chai_1.expect)(dimStatement.dimToken).to.exist;
65
- (0, chai_1.expect)(dimStatement.identifier).to.exist;
66
- (0, chai_1.expect)(dimStatement.identifier.text).to.equal(identifierText);
67
- (0, chai_1.expect)(dimStatement.openingSquare).to.exist;
68
- (0, chai_1.expect)(dimStatement.dimensions).to.exist;
69
- (0, chai_1.expect)(dimStatement.dimensions.length).to.equal(dimensionsCount);
70
- (0, chai_1.expect)(dimStatement.closingSquare).to.exist;
71
- (0, chai_1.expect)(dimStatement.range).to.exist;
63
+ (0, chai_config_spec_1.expect)(dimStatement).to.exist;
64
+ (0, chai_config_spec_1.expect)(dimStatement.dimToken).to.exist;
65
+ (0, chai_config_spec_1.expect)(dimStatement.identifier).to.exist;
66
+ (0, chai_config_spec_1.expect)(dimStatement.identifier.text).to.equal(identifierText);
67
+ (0, chai_config_spec_1.expect)(dimStatement.openingSquare).to.exist;
68
+ (0, chai_config_spec_1.expect)(dimStatement.dimensions).to.exist;
69
+ (0, chai_config_spec_1.expect)(dimStatement.dimensions.length).to.equal(dimensionsCount);
70
+ (0, chai_config_spec_1.expect)(dimStatement.closingSquare).to.exist;
71
+ (0, chai_config_spec_1.expect)(dimStatement.range).to.exist;
72
72
  }
73
73
  //# sourceMappingURL=Dim.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dim.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/statement/Dim.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Dim.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/statement/Dim.spec.ts"],"names":[],"mappings":";;AAAA,gEAAmD;AAEnD,oEAAiE;AACjE,yCAAsC;AAEtC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACvB,YAAY,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACpC,YAAY,CAAC,aAAa,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACvC,YAAY,CAAC,gBAAgB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1C,YAAY,CAAC,sCAAsC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QAC1E,YAAY,CAAC,yCAAyC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QAC7E,YAAY,CAAC,4CAA4C,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QAChF,YAAY,CAAC,iCAAiC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QACrE,YAAY,CAAC,oCAAoC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QACxE,YAAY,CAAC,uCAAuC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QAC3E,YAAY,CAAC,mCAAmC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QACvE,YAAY,CAAC,sCAAsC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QAC1E,YAAY,CAAC,yCAAyC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QAC7E,YAAY,CAAC,6BAA6B,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QACjE,YAAY,CAAC,gCAAgC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QACpE,YAAY,CAAC,mCAAmC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QACvE,YAAY,CAAC;;eAEN,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC1C,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,YAAY,GAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAkB,CAAC;QAChE,2DAA2D;QAC3D,IAAA,yBAAM,EAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC9B,IAAA,yBAAM,EAAC,YAAY,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;QAC7C,IAAA,yBAAM,EAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,uCAAkB,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;IAChI,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAClC,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,YAAY,GAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAkB,CAAC;QAChE,2DAA2D;QAC3D,IAAA,yBAAM,EAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC9B,IAAA,yBAAM,EAAC,YAAY,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;QAChD,IAAA,yBAAM,EAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,uCAAkB,CAAC,0CAA0C,EAAE,CAAC,OAAO,CAAC,CAAC;IACvI,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACnC,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAkB,CAAC;QAChE,2DAA2D;QAC3D,IAAA,yBAAM,EAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC9B,IAAA,yBAAM,EAAC,YAAY,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;QAChD,IAAA,yBAAM,EAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,uCAAkB,CAAC,2CAA2C,EAAE,CAAC,OAAO,CAAC,CAAC;IACxI,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACnC,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,YAAY,GAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAkB,CAAC;QAChE,2DAA2D;QAC3D,IAAA,yBAAM,EAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC9B,IAAA,yBAAM,EAAC,YAAY,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAC5C,IAAA,yBAAM,EAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,uCAAkB,CAAC,gCAAgC,EAAE,CAAC,OAAO,CAAC,CAAC;IAC7H,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,SAAS,YAAY,CAAC,IAAY,EAAE,iBAAyB,EAAE,cAAsB,EAAE,eAAuB;IAC1G,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,YAAY,GAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAkB,CAAC;IAChF,IAAA,yBAAM,EAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC9B,IAAA,yBAAM,EAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IACvC,IAAA,yBAAM,EAAC,YAAY,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IACzC,IAAA,yBAAM,EAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC9D,IAAA,yBAAM,EAAC,YAAY,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC5C,IAAA,yBAAM,EAAC,YAAY,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IACzC,IAAA,yBAAM,EAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACjE,IAAA,yBAAM,EAAC,YAAY,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC5C,IAAA,yBAAM,EAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;AACxC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const chai_1 = require("chai");
3
+ const chai_config_spec_1 = require("../../../chai-config.spec");
4
4
  const Expression_1 = require("../../Expression");
5
5
  const DiagnosticMessages_1 = require("../../../DiagnosticMessages");
6
6
  const testHelpers_spec_1 = require("../../../testHelpers.spec");
@@ -13,13 +13,13 @@ const vscode_languageserver_protocol_1 = require("vscode-languageserver-protocol
13
13
  const visitors_1 = require("../../../astUtils/visitors");
14
14
  const reflection_1 = require("../../../astUtils/reflection");
15
15
  const vscode_uri_1 = require("vscode-uri");
16
+ const testHelpers_spec_2 = require("../../../testHelpers.spec");
16
17
  const sinon = (0, sinon_1.createSandbox)();
17
18
  describe('EnumStatement', () => {
18
- let rootDir = (0, util_1.standardizePath) `${process.cwd()}/.tmp/rootDir`;
19
19
  let program;
20
- let testTranspile = (0, testHelpers_spec_1.getTestTranspile)(() => [program, rootDir]);
20
+ let testTranspile = (0, testHelpers_spec_1.getTestTranspile)(() => [program, testHelpers_spec_2.rootDir]);
21
21
  beforeEach(() => {
22
- program = new Program_1.Program({ rootDir: rootDir, sourceMap: true });
22
+ program = new Program_1.Program({ rootDir: testHelpers_spec_2.rootDir, sourceMap: true });
23
23
  });
24
24
  afterEach(() => {
25
25
  sinon.restore();
@@ -31,7 +31,7 @@ describe('EnumStatement', () => {
31
31
  end enum
32
32
  `, { mode: Parser_1.ParseMode.BrighterScript });
33
33
  (0, testHelpers_spec_1.expectZeroDiagnostics)(parser);
34
- (0, chai_1.expect)(parser.ast.statements[0]).to.be.instanceOf(Statement_1.EnumStatement);
34
+ (0, chai_config_spec_1.expect)(parser.ast.statements[0]).to.be.instanceOf(Statement_1.EnumStatement);
35
35
  });
36
36
  it('supports annotations above', () => {
37
37
  const parser = Parser_1.Parser.parse(`
@@ -40,7 +40,7 @@ describe('EnumStatement', () => {
40
40
  end enum
41
41
  `, { mode: Parser_1.ParseMode.BrighterScript });
42
42
  (0, testHelpers_spec_1.expectZeroDiagnostics)(parser);
43
- (0, chai_1.expect)(parser.ast.statements[0].annotations[0].name).to.eql('someAnnotation');
43
+ (0, chai_config_spec_1.expect)(parser.ast.statements[0].annotations[0].name).to.eql('someAnnotation');
44
44
  });
45
45
  it('constructs when missing enum name', () => {
46
46
  const parser = Parser_1.Parser.parse(`
@@ -50,7 +50,7 @@ describe('EnumStatement', () => {
50
50
  (0, testHelpers_spec_1.expectDiagnostics)(parser, [
51
51
  DiagnosticMessages_1.DiagnosticMessages.expectedIdentifier()
52
52
  ]);
53
- (0, chai_1.expect)(parser.ast.statements[0]).to.be.instanceOf(Statement_1.EnumStatement);
53
+ (0, chai_config_spec_1.expect)(parser.ast.statements[0]).to.be.instanceOf(Statement_1.EnumStatement);
54
54
  });
55
55
  it('collects uninitialized members', () => {
56
56
  const parser = Parser_1.Parser.parse(`
@@ -62,7 +62,7 @@ describe('EnumStatement', () => {
62
62
  end enum
63
63
  `, { mode: Parser_1.ParseMode.BrighterScript });
64
64
  (0, testHelpers_spec_1.expectZeroDiagnostics)(parser);
65
- (0, chai_1.expect)(parser.ast.statements[0].getMembers().map(x => x.tokens.name.text)).to.eql([
65
+ (0, chai_config_spec_1.expect)(parser.ast.statements[0].getMembers().map(x => x.tokens.name.text)).to.eql([
66
66
  'up',
67
67
  'down',
68
68
  'left',
@@ -86,7 +86,7 @@ describe('EnumStatement', () => {
86
86
  Expression_1.LiteralExpression,
87
87
  Expression_1.LiteralExpression
88
88
  ]);
89
- (0, chai_1.expect)(values.map(x => x.token.text)).to.eql([
89
+ (0, chai_config_spec_1.expect)(values.map(x => x.token.text)).to.eql([
90
90
  '1',
91
91
  '2',
92
92
  '3',
@@ -110,7 +110,7 @@ describe('EnumStatement', () => {
110
110
  Expression_1.LiteralExpression,
111
111
  Expression_1.LiteralExpression
112
112
  ]);
113
- (0, chai_1.expect)(values.map(x => x.token.text)).to.eql([
113
+ (0, chai_config_spec_1.expect)(values.map(x => x.token.text)).to.eql([
114
114
  '"u"',
115
115
  '"d"',
116
116
  '"l"',
@@ -141,8 +141,8 @@ describe('EnumStatement', () => {
141
141
  end interface
142
142
  `, { mode: Parser_1.ParseMode.BrighterScript });
143
143
  (0, testHelpers_spec_1.expectZeroDiagnostics)(parser);
144
- (0, chai_1.expect)(parser.statements[0]).instanceof(Statement_1.EnumStatement);
145
- (0, chai_1.expect)(parser.statements[1]).instanceof(Statement_1.InterfaceStatement);
144
+ (0, chai_config_spec_1.expect)(parser.statements[0]).instanceof(Statement_1.EnumStatement);
145
+ (0, chai_config_spec_1.expect)(parser.statements[1]).instanceof(Statement_1.InterfaceStatement);
146
146
  });
147
147
  it('allows enum at bottom of file', () => {
148
148
  const parser = Parser_1.Parser.parse(`
@@ -155,8 +155,8 @@ describe('EnumStatement', () => {
155
155
  end enum
156
156
  `, { mode: Parser_1.ParseMode.BrighterScript });
157
157
  (0, testHelpers_spec_1.expectZeroDiagnostics)(parser);
158
- (0, chai_1.expect)(parser.statements[0]).instanceof(Statement_1.InterfaceStatement);
159
- (0, chai_1.expect)(parser.statements[1]).instanceof(Statement_1.EnumStatement);
158
+ (0, chai_config_spec_1.expect)(parser.statements[0]).instanceof(Statement_1.InterfaceStatement);
159
+ (0, chai_config_spec_1.expect)(parser.statements[1]).instanceof(Statement_1.EnumStatement);
160
160
  });
161
161
  it('allows enum in namespace', () => {
162
162
  const file = program.setFile('source/types.bs', `
@@ -172,7 +172,7 @@ describe('EnumStatement', () => {
172
172
  `);
173
173
  program.validate();
174
174
  (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
175
- (0, chai_1.expect)(file.parser.references.enumStatements.map(x => x.fullName)).to.eql([
175
+ (0, chai_config_spec_1.expect)(file.parser.references.enumStatements.map(x => x.fullName)).to.eql([
176
176
  'entities.Person',
177
177
  'Direction'
178
178
  ]);
@@ -190,7 +190,7 @@ describe('EnumStatement', () => {
190
190
  `);
191
191
  program.validate();
192
192
  (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.duplicateEnumDeclaration('source', 'Direction')), { relatedInformation: [{
193
- location: util_1.util.createLocation(vscode_uri_1.URI.file((0, util_1.standardizePath) `${rootDir}/source/main.bs`).toString(), util_1.util.createRange(1, 21, 1, 30)),
193
+ location: util_1.util.createLocation(vscode_uri_1.URI.file((0, util_1.standardizePath) `${testHelpers_spec_2.rootDir}/source/main.bs`).toString(), util_1.util.createRange(1, 21, 1, 30)),
194
194
  message: 'Enum declared here'
195
195
  }] })]);
196
196
  });
@@ -207,7 +207,7 @@ describe('EnumStatement', () => {
207
207
  `);
208
208
  program.validate();
209
209
  (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.duplicateEnumDeclaration('source', 'Direction')), { relatedInformation: [{
210
- location: util_1.util.createLocation(vscode_uri_1.URI.file((0, util_1.standardizePath) `${rootDir}/source/lib.bs`).toString(), util_1.util.createRange(1, 21, 1, 30)),
210
+ location: util_1.util.createLocation(vscode_uri_1.URI.file((0, util_1.standardizePath) `${testHelpers_spec_2.rootDir}/source/lib.bs`).toString(), util_1.util.createRange(1, 21, 1, 30)),
211
211
  message: 'Enum declared here'
212
212
  }] })]);
213
213
  });
@@ -300,6 +300,16 @@ describe('EnumStatement', () => {
300
300
  program.validate();
301
301
  (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.enumValueMustBeType('integer')), { range: util_1.util.createRange(2, 33, 2, 35) })]);
302
302
  });
303
+ it('considers -1 to be an integer', () => {
304
+ program.setFile('source/main.bs', `
305
+ enum AppConfig
306
+ alpha = 1
307
+ beta = -1
308
+ end enum
309
+ `);
310
+ program.validate();
311
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
312
+ });
303
313
  it('flags missing value for string enum where string is not first item', () => {
304
314
  program.setFile('source/main.bs', `
305
315
  enum Direction
@@ -357,9 +367,9 @@ describe('EnumStatement', () => {
357
367
  walkMode: visitors_1.WalkMode.visitStatements,
358
368
  cancel: cancel.token
359
369
  });
360
- (0, chai_1.expect)(firstEnum).to.exist;
370
+ (0, chai_config_spec_1.expect)(firstEnum).to.exist;
361
371
  const values = firstEnum.getMemberValueMap();
362
- (0, chai_1.expect)([...values].reduce((prev, [key, value]) => {
372
+ (0, chai_config_spec_1.expect)([...values].reduce((prev, [key, value]) => {
363
373
  prev[key] = value;
364
374
  return prev;
365
375
  }, {})).to.eql(expected);
@@ -413,6 +423,20 @@ describe('EnumStatement', () => {
413
423
  });
414
424
  });
415
425
  describe('transpile', () => {
426
+ it('transpiles negative number', () => {
427
+ testTranspile(`
428
+ sub main()
429
+ print Direction.up
430
+ end sub
431
+ enum Direction
432
+ up = -1
433
+ end enum
434
+ `, `
435
+ sub main()
436
+ print -1
437
+ end sub
438
+ `, undefined, undefined, false);
439
+ });
416
440
  it('includes original value when no value could be computed', () => {
417
441
  testTranspile(`
418
442
  sub main()