brighterscript 0.72.1 → 0.72.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.
- package/README.md +7 -2
- package/dist/LanguageServer.d.ts +2 -1
- package/dist/LanguageServer.js +12 -0
- package/dist/LanguageServer.js.map +1 -1
- package/dist/Program.d.ts +5 -1
- package/dist/Program.js +20 -0
- package/dist/Program.js.map +1 -1
- package/dist/bscPlugin/BscPlugin.d.ts +2 -1
- package/dist/bscPlugin/BscPlugin.js +4 -0
- package/dist/bscPlugin/BscPlugin.js.map +1 -1
- package/dist/bscPlugin/inlayHints/InlayHintProcessor.d.ts +23 -0
- package/dist/bscPlugin/inlayHints/InlayHintProcessor.js +183 -0
- package/dist/bscPlugin/inlayHints/InlayHintProcessor.js.map +1 -0
- package/dist/interfaces.d.ts +34 -1
- package/dist/lsp/LspProject.d.ts +8 -1
- package/dist/lsp/Project.d.ts +5 -1
- package/dist/lsp/Project.js +6 -0
- package/dist/lsp/Project.js.map +1 -1
- package/dist/lsp/ProjectManager.d.ts +5 -1
- package/dist/lsp/ProjectManager.js +12 -0
- package/dist/lsp/ProjectManager.js.map +1 -1
- package/dist/lsp/worker/WorkerThreadProject.d.ts +5 -1
- package/dist/lsp/worker/WorkerThreadProject.js +3 -0
- package/dist/lsp/worker/WorkerThreadProject.js.map +1 -1
- package/package.json +18 -14
- package/dist/astUtils/AstEditor.spec.d.ts +0 -1
- package/dist/astUtils/AstEditor.spec.js +0 -254
- package/dist/astUtils/AstEditor.spec.js.map +0 -1
- package/dist/astUtils/creators.spec.d.ts +0 -1
- package/dist/astUtils/creators.spec.js +0 -21
- package/dist/astUtils/creators.spec.js.map +0 -1
- package/dist/astUtils/reflection.spec.d.ts +0 -1
- package/dist/astUtils/reflection.spec.js +0 -308
- package/dist/astUtils/reflection.spec.js.map +0 -1
- package/dist/astUtils/stackedVisitor.spec.d.ts +0 -1
- package/dist/astUtils/stackedVisitor.spec.js +0 -79
- package/dist/astUtils/stackedVisitor.spec.js.map +0 -1
- package/dist/astUtils/visitors.spec.d.ts +0 -1
- package/dist/astUtils/visitors.spec.js +0 -1197
- package/dist/astUtils/visitors.spec.js.map +0 -1
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.d.ts +0 -1
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +0 -1237
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +0 -1
- package/dist/bscPlugin/definition/DefinitionProvider.spec.d.ts +0 -1
- package/dist/bscPlugin/definition/DefinitionProvider.spec.js +0 -171
- package/dist/bscPlugin/definition/DefinitionProvider.spec.js.map +0 -1
- package/dist/bscPlugin/hover/HoverProcessor.spec.d.ts +0 -1
- package/dist/bscPlugin/hover/HoverProcessor.spec.js +0 -201
- package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +0 -1
- package/dist/bscPlugin/references/ReferencesProvider.spec.d.ts +0 -1
- package/dist/bscPlugin/references/ReferencesProvider.spec.js +0 -51
- package/dist/bscPlugin/references/ReferencesProvider.spec.js.map +0 -1
- package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.spec.d.ts +0 -1
- package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.spec.js +0 -298
- package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.spec.js.map +0 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.d.ts +0 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +0 -399
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +0 -1
- package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.d.ts +0 -1
- package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js +0 -290
- package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js.map +0 -1
- package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.d.ts +0 -1
- package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js +0 -245
- package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js.map +0 -1
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.d.ts +0 -1
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js +0 -46
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js.map +0 -1
- package/dist/bscPlugin/validation/BrsFileValidator.spec.d.ts +0 -1
- package/dist/bscPlugin/validation/BrsFileValidator.spec.js +0 -702
- package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +0 -1
- package/dist/common/Sequencer.spec.d.ts +0 -1
- package/dist/common/Sequencer.spec.js +0 -75
- package/dist/common/Sequencer.spec.js.map +0 -1
- package/dist/files/BrsFile.Class.spec.d.ts +0 -1
- package/dist/files/BrsFile.Class.spec.js +0 -1805
- package/dist/files/BrsFile.Class.spec.js.map +0 -1
- package/dist/files/BrsFile.spec.d.ts +0 -1
- package/dist/files/BrsFile.spec.js +0 -4611
- package/dist/files/BrsFile.spec.js.map +0 -1
- package/dist/files/XmlFile.spec.d.ts +0 -1
- package/dist/files/XmlFile.spec.js +0 -1219
- package/dist/files/XmlFile.spec.js.map +0 -1
- package/dist/files/tests/imports.spec.d.ts +0 -1
- package/dist/files/tests/imports.spec.js +0 -241
- package/dist/files/tests/imports.spec.js.map +0 -1
- package/dist/files/tests/optionalChaning.spec.d.ts +0 -1
- package/dist/files/tests/optionalChaning.spec.js +0 -152
- package/dist/files/tests/optionalChaning.spec.js.map +0 -1
- package/dist/lexer/Character.spec.d.ts +0 -1
- package/dist/lexer/Character.spec.js +0 -27
- package/dist/lexer/Character.spec.js.map +0 -1
- package/dist/lexer/Lexer.spec.d.ts +0 -1
- package/dist/lexer/Lexer.spec.js +0 -1300
- package/dist/lexer/Lexer.spec.js.map +0 -1
- package/dist/lsp/ActionQueue.spec.d.ts +0 -1
- package/dist/lsp/ActionQueue.spec.js +0 -80
- package/dist/lsp/ActionQueue.spec.js.map +0 -1
- package/dist/lsp/DocumentManager.spec.d.ts +0 -1
- package/dist/lsp/DocumentManager.spec.js +0 -103
- package/dist/lsp/DocumentManager.spec.js.map +0 -1
- package/dist/lsp/PathFilterer.spec.d.ts +0 -1
- package/dist/lsp/PathFilterer.spec.js +0 -182
- package/dist/lsp/PathFilterer.spec.js.map +0 -1
- package/dist/lsp/Project.spec.d.ts +0 -1
- package/dist/lsp/Project.spec.js +0 -400
- package/dist/lsp/Project.spec.js.map +0 -1
- package/dist/lsp/ProjectManager.spec.d.ts +0 -1
- package/dist/lsp/ProjectManager.spec.js +0 -1183
- package/dist/lsp/ProjectManager.spec.js.map +0 -1
- package/dist/lsp/worker/MessageHandler.spec.d.ts +0 -1
- package/dist/lsp/worker/MessageHandler.spec.js +0 -64
- package/dist/lsp/worker/MessageHandler.spec.js.map +0 -1
- package/dist/lsp/worker/WorkerPool.spec.d.ts +0 -1
- package/dist/lsp/worker/WorkerPool.spec.js +0 -59
- package/dist/lsp/worker/WorkerPool.spec.js.map +0 -1
- package/dist/lsp/worker/WorkerThreadProject.spec.d.ts +0 -2
- package/dist/lsp/worker/WorkerThreadProject.spec.js +0 -72
- package/dist/lsp/worker/WorkerThreadProject.spec.js.map +0 -1
- package/dist/parser/AstNode.spec.d.ts +0 -1
- package/dist/parser/AstNode.spec.js +0 -1452
- package/dist/parser/AstNode.spec.js.map +0 -1
- package/dist/parser/Expression.spec.d.ts +0 -1
- package/dist/parser/Expression.spec.js +0 -40
- package/dist/parser/Expression.spec.js.map +0 -1
- package/dist/parser/Parser.Class.spec.d.ts +0 -1
- package/dist/parser/Parser.Class.spec.js +0 -495
- package/dist/parser/Parser.Class.spec.js.map +0 -1
- package/dist/parser/Parser.spec.d.ts +0 -4
- package/dist/parser/Parser.spec.js +0 -1985
- package/dist/parser/Parser.spec.js.map +0 -1
- package/dist/parser/SGParser.spec.d.ts +0 -1
- package/dist/parser/SGParser.spec.js +0 -131
- package/dist/parser/SGParser.spec.js.map +0 -1
- package/dist/parser/Statement.spec.d.ts +0 -1
- package/dist/parser/Statement.spec.js +0 -118
- package/dist/parser/Statement.spec.js.map +0 -1
- package/dist/parser/tests/Parser.spec.d.ts +0 -19
- package/dist/parser/tests/Parser.spec.js +0 -38
- package/dist/parser/tests/Parser.spec.js.map +0 -1
- package/dist/parser/tests/controlFlow/For.spec.d.ts +0 -1
- package/dist/parser/tests/controlFlow/For.spec.js +0 -208
- package/dist/parser/tests/controlFlow/For.spec.js.map +0 -1
- package/dist/parser/tests/controlFlow/ForEach.spec.d.ts +0 -1
- package/dist/parser/tests/controlFlow/ForEach.spec.js +0 -143
- package/dist/parser/tests/controlFlow/ForEach.spec.js.map +0 -1
- package/dist/parser/tests/controlFlow/If.spec.d.ts +0 -1
- package/dist/parser/tests/controlFlow/If.spec.js +0 -570
- package/dist/parser/tests/controlFlow/If.spec.js.map +0 -1
- package/dist/parser/tests/controlFlow/While.spec.d.ts +0 -1
- package/dist/parser/tests/controlFlow/While.spec.js +0 -156
- package/dist/parser/tests/controlFlow/While.spec.js.map +0 -1
- package/dist/parser/tests/expression/Additive.spec.d.ts +0 -1
- package/dist/parser/tests/expression/Additive.spec.js +0 -99
- package/dist/parser/tests/expression/Additive.spec.js.map +0 -1
- package/dist/parser/tests/expression/ArrayLiterals.spec.d.ts +0 -1
- package/dist/parser/tests/expression/ArrayLiterals.spec.js +0 -291
- package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +0 -1
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.d.ts +0 -1
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +0 -401
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +0 -1
- package/dist/parser/tests/expression/Boolean.spec.d.ts +0 -1
- package/dist/parser/tests/expression/Boolean.spec.js +0 -83
- package/dist/parser/tests/expression/Boolean.spec.js.map +0 -1
- package/dist/parser/tests/expression/Call.spec.d.ts +0 -1
- package/dist/parser/tests/expression/Call.spec.js +0 -242
- package/dist/parser/tests/expression/Call.spec.js.map +0 -1
- package/dist/parser/tests/expression/Exponential.spec.d.ts +0 -1
- package/dist/parser/tests/expression/Exponential.spec.js +0 -37
- package/dist/parser/tests/expression/Exponential.spec.js.map +0 -1
- package/dist/parser/tests/expression/Function.spec.d.ts +0 -1
- package/dist/parser/tests/expression/Function.spec.js +0 -403
- package/dist/parser/tests/expression/Function.spec.js.map +0 -1
- package/dist/parser/tests/expression/Indexing.spec.d.ts +0 -1
- package/dist/parser/tests/expression/Indexing.spec.js +0 -289
- package/dist/parser/tests/expression/Indexing.spec.js.map +0 -1
- package/dist/parser/tests/expression/Multiplicative.spec.d.ts +0 -1
- package/dist/parser/tests/expression/Multiplicative.spec.js +0 -67
- package/dist/parser/tests/expression/Multiplicative.spec.js.map +0 -1
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.d.ts +0 -1
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +0 -346
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +0 -1
- package/dist/parser/tests/expression/PrefixUnary.spec.d.ts +0 -1
- package/dist/parser/tests/expression/PrefixUnary.spec.js +0 -105
- package/dist/parser/tests/expression/PrefixUnary.spec.js.map +0 -1
- package/dist/parser/tests/expression/Primary.spec.d.ts +0 -1
- package/dist/parser/tests/expression/Primary.spec.js +0 -149
- package/dist/parser/tests/expression/Primary.spec.js.map +0 -1
- package/dist/parser/tests/expression/RegexLiteralExpression.spec.d.ts +0 -1
- package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +0 -171
- package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +0 -1
- package/dist/parser/tests/expression/Relational.spec.d.ts +0 -1
- package/dist/parser/tests/expression/Relational.spec.js +0 -83
- package/dist/parser/tests/expression/Relational.spec.js.map +0 -1
- package/dist/parser/tests/expression/SourceLiteralExpression.spec.d.ts +0 -1
- package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +0 -201
- package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +0 -1
- package/dist/parser/tests/expression/TemplateStringExpression.spec.d.ts +0 -1
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js +0 -389
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +0 -1
- package/dist/parser/tests/expression/TernaryExpression.spec.d.ts +0 -1
- package/dist/parser/tests/expression/TernaryExpression.spec.js +0 -876
- package/dist/parser/tests/expression/TernaryExpression.spec.js.map +0 -1
- package/dist/parser/tests/expression/UnaryExpression.spec.d.ts +0 -1
- package/dist/parser/tests/expression/UnaryExpression.spec.js +0 -52
- package/dist/parser/tests/expression/UnaryExpression.spec.js.map +0 -1
- package/dist/parser/tests/statement/AssignmentOperators.spec.d.ts +0 -1
- package/dist/parser/tests/statement/AssignmentOperators.spec.js +0 -79
- package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +0 -1
- package/dist/parser/tests/statement/ConstStatement.spec.d.ts +0 -1
- package/dist/parser/tests/statement/ConstStatement.spec.js +0 -708
- package/dist/parser/tests/statement/ConstStatement.spec.js.map +0 -1
- package/dist/parser/tests/statement/Continue.spec.d.ts +0 -1
- package/dist/parser/tests/statement/Continue.spec.js +0 -119
- package/dist/parser/tests/statement/Continue.spec.js.map +0 -1
- package/dist/parser/tests/statement/Declaration.spec.d.ts +0 -1
- package/dist/parser/tests/statement/Declaration.spec.js +0 -108
- package/dist/parser/tests/statement/Declaration.spec.js.map +0 -1
- package/dist/parser/tests/statement/Dim.spec.d.ts +0 -1
- package/dist/parser/tests/statement/Dim.spec.js +0 -73
- package/dist/parser/tests/statement/Dim.spec.js.map +0 -1
- package/dist/parser/tests/statement/Enum.spec.d.ts +0 -1
- package/dist/parser/tests/statement/Enum.spec.js +0 -1307
- package/dist/parser/tests/statement/Enum.spec.js.map +0 -1
- package/dist/parser/tests/statement/For.spec.d.ts +0 -1
- package/dist/parser/tests/statement/For.spec.js +0 -45
- package/dist/parser/tests/statement/For.spec.js.map +0 -1
- package/dist/parser/tests/statement/ForEach.spec.d.ts +0 -1
- package/dist/parser/tests/statement/ForEach.spec.js +0 -36
- package/dist/parser/tests/statement/ForEach.spec.js.map +0 -1
- package/dist/parser/tests/statement/Function.spec.d.ts +0 -1
- package/dist/parser/tests/statement/Function.spec.js +0 -342
- package/dist/parser/tests/statement/Function.spec.js.map +0 -1
- package/dist/parser/tests/statement/Goto.spec.d.ts +0 -1
- package/dist/parser/tests/statement/Goto.spec.js +0 -51
- package/dist/parser/tests/statement/Goto.spec.js.map +0 -1
- package/dist/parser/tests/statement/Increment.spec.d.ts +0 -1
- package/dist/parser/tests/statement/Increment.spec.js +0 -117
- package/dist/parser/tests/statement/Increment.spec.js.map +0 -1
- package/dist/parser/tests/statement/InterfaceStatement.spec.d.ts +0 -1
- package/dist/parser/tests/statement/InterfaceStatement.spec.js +0 -102
- package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +0 -1
- package/dist/parser/tests/statement/LibraryStatement.spec.d.ts +0 -1
- package/dist/parser/tests/statement/LibraryStatement.spec.js +0 -74
- package/dist/parser/tests/statement/LibraryStatement.spec.js.map +0 -1
- package/dist/parser/tests/statement/Misc.spec.d.ts +0 -1
- package/dist/parser/tests/statement/Misc.spec.js +0 -335
- package/dist/parser/tests/statement/Misc.spec.js.map +0 -1
- package/dist/parser/tests/statement/PrintStatement.spec.d.ts +0 -1
- package/dist/parser/tests/statement/PrintStatement.spec.js +0 -195
- package/dist/parser/tests/statement/PrintStatement.spec.js.map +0 -1
- package/dist/parser/tests/statement/ReturnStatement.spec.d.ts +0 -1
- package/dist/parser/tests/statement/ReturnStatement.spec.js +0 -94
- package/dist/parser/tests/statement/ReturnStatement.spec.js.map +0 -1
- package/dist/parser/tests/statement/Set.spec.d.ts +0 -1
- package/dist/parser/tests/statement/Set.spec.js +0 -218
- package/dist/parser/tests/statement/Set.spec.js.map +0 -1
- package/dist/parser/tests/statement/Stop.spec.d.ts +0 -1
- package/dist/parser/tests/statement/Stop.spec.js +0 -38
- package/dist/parser/tests/statement/Stop.spec.js.map +0 -1
- package/dist/parser/tests/statement/Throw.spec.d.ts +0 -1
- package/dist/parser/tests/statement/Throw.spec.js +0 -35
- package/dist/parser/tests/statement/Throw.spec.js.map +0 -1
- package/dist/parser/tests/statement/TryCatch.spec.d.ts +0 -1
- package/dist/parser/tests/statement/TryCatch.spec.js +0 -142
- package/dist/parser/tests/statement/TryCatch.spec.js.map +0 -1
- package/dist/preprocessor/Manifest.spec.d.ts +0 -1
- package/dist/preprocessor/Manifest.spec.js +0 -80
- package/dist/preprocessor/Manifest.spec.js.map +0 -1
- package/dist/preprocessor/Preprocessor.spec.d.ts +0 -1
- package/dist/preprocessor/Preprocessor.spec.js +0 -152
- package/dist/preprocessor/Preprocessor.spec.js.map +0 -1
- package/dist/preprocessor/PreprocessorParser.spec.d.ts +0 -1
- package/dist/preprocessor/PreprocessorParser.spec.js +0 -116
- package/dist/preprocessor/PreprocessorParser.spec.js.map +0 -1
- package/dist/types/ArrayType.spec.d.ts +0 -1
- package/dist/types/ArrayType.spec.js +0 -30
- package/dist/types/ArrayType.spec.js.map +0 -1
- package/dist/types/BooleanType.spec.d.ts +0 -1
- package/dist/types/BooleanType.spec.js +0 -12
- package/dist/types/BooleanType.spec.js.map +0 -1
- package/dist/types/DoubleType.spec.d.ts +0 -1
- package/dist/types/DoubleType.spec.js +0 -12
- package/dist/types/DoubleType.spec.js.map +0 -1
- package/dist/types/DynamicType.spec.d.ts +0 -1
- package/dist/types/DynamicType.spec.js +0 -12
- package/dist/types/DynamicType.spec.js.map +0 -1
- package/dist/types/FloatType.spec.d.ts +0 -1
- package/dist/types/FloatType.spec.js +0 -12
- package/dist/types/FloatType.spec.js.map +0 -1
- package/dist/types/FunctionType.spec.d.ts +0 -1
- package/dist/types/FunctionType.spec.js +0 -23
- package/dist/types/FunctionType.spec.js.map +0 -1
- package/dist/types/IntegerType.spec.d.ts +0 -1
- package/dist/types/IntegerType.spec.js +0 -12
- package/dist/types/IntegerType.spec.js.map +0 -1
- package/dist/types/InterfaceType.spec.d.ts +0 -1
- package/dist/types/InterfaceType.spec.js +0 -175
- package/dist/types/InterfaceType.spec.js.map +0 -1
- package/dist/types/InvalidType.spec.d.ts +0 -1
- package/dist/types/InvalidType.spec.js +0 -12
- package/dist/types/InvalidType.spec.js.map +0 -1
- package/dist/types/LongIntegerType.spec.d.ts +0 -1
- package/dist/types/LongIntegerType.spec.js +0 -12
- package/dist/types/LongIntegerType.spec.js.map +0 -1
- package/dist/types/ObjectType.spec.d.ts +0 -1
- package/dist/types/ObjectType.spec.js +0 -12
- package/dist/types/ObjectType.spec.js.map +0 -1
- package/dist/types/StringType.spec.d.ts +0 -1
- package/dist/types/StringType.spec.js +0 -12
- package/dist/types/StringType.spec.js.map +0 -1
- package/dist/types/VoidType.spec.d.ts +0 -1
- package/dist/types/VoidType.spec.js +0 -12
- package/dist/types/VoidType.spec.js.map +0 -1
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const chai_config_spec_1 = require("../../../chai-config.spec");
|
|
4
|
-
const DiagnosticMessages_1 = require("../../../DiagnosticMessages");
|
|
5
|
-
const Expression_1 = require("../../Expression");
|
|
6
|
-
const Parser_1 = require("../../Parser");
|
|
7
|
-
describe('parser ThrowStatement', () => {
|
|
8
|
-
it('parses properly', () => {
|
|
9
|
-
const parser = Parser_1.Parser.parse(`
|
|
10
|
-
try
|
|
11
|
-
throw "some message"
|
|
12
|
-
catch
|
|
13
|
-
end try
|
|
14
|
-
`);
|
|
15
|
-
const throwStatement = parser.ast.statements[0].tryBranch.statements[0];
|
|
16
|
-
//the statement should still exist and have null expression
|
|
17
|
-
(0, chai_config_spec_1.expect)(throwStatement).to.exist;
|
|
18
|
-
(0, chai_config_spec_1.expect)(throwStatement.expression).to.be.instanceof(Expression_1.LiteralExpression);
|
|
19
|
-
});
|
|
20
|
-
it('flags missing exception expression', () => {
|
|
21
|
-
var _a;
|
|
22
|
-
const parser = Parser_1.Parser.parse(`
|
|
23
|
-
try
|
|
24
|
-
throw
|
|
25
|
-
catch
|
|
26
|
-
end try
|
|
27
|
-
`);
|
|
28
|
-
(0, chai_config_spec_1.expect)((_a = parser.diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).to.eql(DiagnosticMessages_1.DiagnosticMessages.missingExceptionExpressionAfterThrowKeyword().message);
|
|
29
|
-
const throwStatement = parser.ast.statements[0].tryBranch.statements[0];
|
|
30
|
-
//the statement should still exist and have null expression
|
|
31
|
-
(0, chai_config_spec_1.expect)(throwStatement).to.exist;
|
|
32
|
-
(0, chai_config_spec_1.expect)(throwStatement.expression).to.not.exist;
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
//# sourceMappingURL=Throw.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Throw.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/statement/Throw.spec.ts"],"names":[],"mappings":";;AAAA,gEAAmD;AAEnD,oEAAiE;AACjE,iDAAqD;AACrD,yCAAsC;AAEtC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACvB,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC;;;;;SAK3B,CAAC,CAAC;QACH,MAAM,cAAc,GAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAuB,CAAC,SAAU,CAAC,UAAU,CAAC,CAAC,CAAmB,CAAC;QAClH,2DAA2D;QAC3D,IAAA,yBAAM,EAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAChC,IAAA,yBAAM,EAAC,cAAc,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,8BAAiB,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;;QAC1C,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC;;;;;SAK3B,CAAC,CAAC;QACH,IAAA,yBAAM,EAAC,MAAA,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,uCAAkB,CAAC,2CAA2C,EAAE,CAAC,OAAO,CAAC,CAAC;QACxH,MAAM,cAAc,GAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAuB,CAAC,SAAU,CAAC,UAAU,CAAC,CAAC,CAAmB,CAAC;QAClH,2DAA2D;QAC3D,IAAA,yBAAM,EAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAChC,IAAA,yBAAM,EAAC,cAAc,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;IAEnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const chai_config_spec_1 = require("../../../chai-config.spec");
|
|
4
|
-
const Parser_1 = require("../../Parser");
|
|
5
|
-
const Statement_1 = require("../../Statement");
|
|
6
|
-
describe('parser try/catch', () => {
|
|
7
|
-
it('can parse try catch statements', () => {
|
|
8
|
-
var _a, _b, _c, _d;
|
|
9
|
-
const parser = Parser_1.Parser.parse(`
|
|
10
|
-
sub new()
|
|
11
|
-
try
|
|
12
|
-
print "hello"
|
|
13
|
-
catch e
|
|
14
|
-
print "error"
|
|
15
|
-
end try
|
|
16
|
-
end sub
|
|
17
|
-
`);
|
|
18
|
-
(0, chai_config_spec_1.expect)((_a = parser.diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).not.to.exist;
|
|
19
|
-
const stmt = parser.references.functionExpressions[0].body.statements[0];
|
|
20
|
-
(0, chai_config_spec_1.expect)(stmt).to.be.instanceof(Statement_1.TryCatchStatement);
|
|
21
|
-
(0, chai_config_spec_1.expect)((_b = stmt.tokens.try) === null || _b === void 0 ? void 0 : _b.text).to.eql('try');
|
|
22
|
-
(0, chai_config_spec_1.expect)(stmt.tryBranch).to.exist.and.ownProperty('statements').to.be.lengthOf(1);
|
|
23
|
-
(0, chai_config_spec_1.expect)(stmt.catchStatement).to.exist;
|
|
24
|
-
const cstmt = stmt.catchStatement;
|
|
25
|
-
(0, chai_config_spec_1.expect)((_c = cstmt.tokens.catch) === null || _c === void 0 ? void 0 : _c.text).to.eql('catch');
|
|
26
|
-
(0, chai_config_spec_1.expect)(cstmt.exceptionVariable.text).to.eql('e');
|
|
27
|
-
(0, chai_config_spec_1.expect)(cstmt.catchBranch).to.exist.and.ownProperty('statements').to.be.lengthOf(1);
|
|
28
|
-
(0, chai_config_spec_1.expect)((_d = stmt.tokens.endTry) === null || _d === void 0 ? void 0 : _d.text).to.eql('end try');
|
|
29
|
-
});
|
|
30
|
-
it('supports various configurations of try-catch', () => {
|
|
31
|
-
function expectNoParseErrors(text) {
|
|
32
|
-
var _a;
|
|
33
|
-
const parser = Parser_1.Parser.parse(`
|
|
34
|
-
sub main()
|
|
35
|
-
${text}
|
|
36
|
-
end sub
|
|
37
|
-
`);
|
|
38
|
-
(0, chai_config_spec_1.expect)((_a = parser.diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).not.to.exist;
|
|
39
|
-
}
|
|
40
|
-
expectNoParseErrors(`
|
|
41
|
-
try : print a.b.c : catch e : print "error" : end try
|
|
42
|
-
`);
|
|
43
|
-
//multiple statements
|
|
44
|
-
expectNoParseErrors(`
|
|
45
|
-
try : print "one" : print "two" : catch e : print "error" : end try
|
|
46
|
-
`);
|
|
47
|
-
expectNoParseErrors(`
|
|
48
|
-
try : print a.b.c
|
|
49
|
-
catch e : print "error" : end try
|
|
50
|
-
`);
|
|
51
|
-
expectNoParseErrors(`
|
|
52
|
-
try
|
|
53
|
-
print a.b.c
|
|
54
|
-
catch e : print "error" : end try
|
|
55
|
-
`);
|
|
56
|
-
expectNoParseErrors(`
|
|
57
|
-
try
|
|
58
|
-
print a.b.c
|
|
59
|
-
catch e
|
|
60
|
-
print "error" : end try
|
|
61
|
-
`);
|
|
62
|
-
expectNoParseErrors(`
|
|
63
|
-
try: print a.b.c
|
|
64
|
-
catch e
|
|
65
|
-
print "error" : end try
|
|
66
|
-
`);
|
|
67
|
-
expectNoParseErrors(`
|
|
68
|
-
try: print a.b.c : catch e
|
|
69
|
-
print "error" : end try
|
|
70
|
-
`);
|
|
71
|
-
expectNoParseErrors(`
|
|
72
|
-
try: print a.b.c : catch e : print "error"
|
|
73
|
-
end try
|
|
74
|
-
`);
|
|
75
|
-
expectNoParseErrors(`
|
|
76
|
-
try
|
|
77
|
-
: print a.b.c : catch e : print "error" : end try
|
|
78
|
-
`);
|
|
79
|
-
expectNoParseErrors(`
|
|
80
|
-
try : print a.b.c
|
|
81
|
-
: catch e : print "error" : end try
|
|
82
|
-
`);
|
|
83
|
-
expectNoParseErrors(`
|
|
84
|
-
try : print a.b.c
|
|
85
|
-
: catch e
|
|
86
|
-
: print "error" : end try
|
|
87
|
-
`);
|
|
88
|
-
expectNoParseErrors(`
|
|
89
|
-
try
|
|
90
|
-
: print a.b.c
|
|
91
|
-
: catch e
|
|
92
|
-
: print "error"
|
|
93
|
-
: end try
|
|
94
|
-
`);
|
|
95
|
-
});
|
|
96
|
-
it('recovers gracefully with syntax errors', () => {
|
|
97
|
-
var _a;
|
|
98
|
-
const parser = Parser_1.Parser.parse(`
|
|
99
|
-
sub new()
|
|
100
|
-
try
|
|
101
|
-
print "hello"
|
|
102
|
-
catch e
|
|
103
|
-
print "error"
|
|
104
|
-
end try
|
|
105
|
-
end sub
|
|
106
|
-
`);
|
|
107
|
-
(0, chai_config_spec_1.expect)((_a = parser.diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).not.to.exist;
|
|
108
|
-
});
|
|
109
|
-
it('recovers from missing end-try when reaching function boundary', () => {
|
|
110
|
-
const parser = Parser_1.Parser.parse(`
|
|
111
|
-
sub new()
|
|
112
|
-
try
|
|
113
|
-
print "hello"
|
|
114
|
-
catch e
|
|
115
|
-
print "error"
|
|
116
|
-
end sub
|
|
117
|
-
`);
|
|
118
|
-
(0, chai_config_spec_1.expect)(parser.diagnostics).to.be.lengthOf(1);
|
|
119
|
-
});
|
|
120
|
-
it('recovers from missing catch', () => {
|
|
121
|
-
const parser = Parser_1.Parser.parse(`
|
|
122
|
-
sub new()
|
|
123
|
-
try
|
|
124
|
-
print "hello"
|
|
125
|
-
print "error"
|
|
126
|
-
end try
|
|
127
|
-
end sub
|
|
128
|
-
`);
|
|
129
|
-
(0, chai_config_spec_1.expect)(parser.diagnostics).to.be.lengthOf(1);
|
|
130
|
-
});
|
|
131
|
-
it('recovers from missing catch and end-try when reaching function boundary', () => {
|
|
132
|
-
const parser = Parser_1.Parser.parse(`
|
|
133
|
-
sub new()
|
|
134
|
-
try
|
|
135
|
-
print "hello"
|
|
136
|
-
print "error"
|
|
137
|
-
end sub
|
|
138
|
-
`);
|
|
139
|
-
(0, chai_config_spec_1.expect)(parser.diagnostics).to.be.lengthOf(1);
|
|
140
|
-
});
|
|
141
|
-
});
|
|
142
|
-
//# sourceMappingURL=TryCatch.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TryCatch.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/statement/TryCatch.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const fsExtra = require("fs");
|
|
4
|
-
const chai_config_spec_1 = require("../chai-config.spec");
|
|
5
|
-
const Manifest_1 = require("./Manifest");
|
|
6
|
-
const sinon_1 = require("sinon");
|
|
7
|
-
const testHelpers_spec_1 = require("../testHelpers.spec");
|
|
8
|
-
const sinon = (0, sinon_1.createSandbox)();
|
|
9
|
-
describe('manifest support', () => {
|
|
10
|
-
beforeEach(() => {
|
|
11
|
-
sinon.restore();
|
|
12
|
-
});
|
|
13
|
-
afterEach(() => {
|
|
14
|
-
sinon.restore();
|
|
15
|
-
});
|
|
16
|
-
describe('manifest parser', () => {
|
|
17
|
-
it('returns an empty map if manifest not found', async () => {
|
|
18
|
-
sinon.stub(fsExtra, 'readFile').returns(Promise.reject(new Error('File not found')));
|
|
19
|
-
return (0, chai_config_spec_1.expect)(await (0, Manifest_1.getManifest)('/no/manifest/here')).to.eql(new Map());
|
|
20
|
-
});
|
|
21
|
-
it('rejects key-value pairs with no \'=\'', () => {
|
|
22
|
-
(0, testHelpers_spec_1.expectThrows)(() => {
|
|
23
|
-
(0, Manifest_1.parseManifest)('key');
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
it('ignores comments', () => {
|
|
27
|
-
return (0, chai_config_spec_1.expect)((0, Manifest_1.parseManifest)('')).to.eql(new Map());
|
|
28
|
-
});
|
|
29
|
-
it('retains whitespace for keys and values', () => {
|
|
30
|
-
(0, chai_config_spec_1.expect)((0, testHelpers_spec_1.mapToObject)((0, Manifest_1.parseManifest)(' leading interum and trailing key spaces = value '))).to.eql({
|
|
31
|
-
' leading interum and trailing key spaces ': ' value '
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
it('does not convert values to primitives', () => {
|
|
35
|
-
(0, chai_config_spec_1.expect)((0, testHelpers_spec_1.mapToObject)((0, Manifest_1.parseManifest)((0, testHelpers_spec_1.trim) `
|
|
36
|
-
name=bob
|
|
37
|
-
age=12
|
|
38
|
-
enabled=true
|
|
39
|
-
height=1.5
|
|
40
|
-
`))).to.eql({
|
|
41
|
-
name: 'bob',
|
|
42
|
-
age: '12',
|
|
43
|
-
enabled: 'true',
|
|
44
|
-
height: '1.5'
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
describe('bs_const parser', () => {
|
|
49
|
-
function test(manifest, expected) {
|
|
50
|
-
(0, chai_config_spec_1.expect)((0, Manifest_1.getBsConst)((0, Manifest_1.parseManifest)(manifest))).to.eql((0, testHelpers_spec_1.objectToMap)(expected));
|
|
51
|
-
}
|
|
52
|
-
it('returns an empty map if \'bs_const\' isn\'t found', () => {
|
|
53
|
-
test('', new Map());
|
|
54
|
-
});
|
|
55
|
-
it('ignores empty key-value pairs', () => {
|
|
56
|
-
test('bs_const=;;;;', new Map());
|
|
57
|
-
});
|
|
58
|
-
it('rejects key-value pairs with no \'=\'', () => {
|
|
59
|
-
(0, testHelpers_spec_1.expectThrows)(() => test(`bs_const=i-have-no-equal`, {}), `No '=' detected for key i-have-no-equal. bs_const constants must be of the form 'key=value'.`);
|
|
60
|
-
});
|
|
61
|
-
it('trims whitespace from keys and values', () => {
|
|
62
|
-
let manifest = new Map([['bs_const', ' key = true ']]);
|
|
63
|
-
(0, chai_config_spec_1.expect)((0, Manifest_1.getBsConst)(manifest)).to.eql(new Map([['key', true]]));
|
|
64
|
-
});
|
|
65
|
-
it('rejects non-boolean values', () => {
|
|
66
|
-
const manifest = new Map([['bs_const', 'string=word']]);
|
|
67
|
-
(0, testHelpers_spec_1.expectThrows)(() => {
|
|
68
|
-
(0, Manifest_1.getBsConst)(manifest);
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
it('allows case-insensitive booleans', () => {
|
|
72
|
-
let manifest = new Map([['bs_const', 'foo=true;bar=FalSE']]);
|
|
73
|
-
(0, chai_config_spec_1.expect)((0, Manifest_1.getBsConst)(manifest)).to.eql(new Map([
|
|
74
|
-
['foo', true],
|
|
75
|
-
['bar', false]
|
|
76
|
-
]));
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
//# sourceMappingURL=Manifest.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Manifest.spec.js","sourceRoot":"","sources":["../../src/preprocessor/Manifest.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const Parser_spec_1 = require("../parser/tests/Parser.spec");
|
|
4
|
-
const TokenKind_1 = require("../lexer/TokenKind");
|
|
5
|
-
const Preprocessor_1 = require("./Preprocessor");
|
|
6
|
-
const Chunk_1 = require("./Chunk");
|
|
7
|
-
const chai_config_spec_1 = require("../chai-config.spec");
|
|
8
|
-
const sinon_1 = require("sinon");
|
|
9
|
-
let sinon = (0, sinon_1.createSandbox)();
|
|
10
|
-
describe('preprocessor', () => {
|
|
11
|
-
afterEach(() => {
|
|
12
|
-
sinon.restore();
|
|
13
|
-
});
|
|
14
|
-
it('forwards brightscript chunk contents unmodified', () => {
|
|
15
|
-
let unprocessed = [
|
|
16
|
-
(0, Parser_spec_1.identifier)('foo'),
|
|
17
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.LeftParen, '('),
|
|
18
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.RightParen, ')'),
|
|
19
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Newline, '\n'),
|
|
20
|
-
Parser_spec_1.EOF
|
|
21
|
-
];
|
|
22
|
-
let { processedTokens } = new Preprocessor_1.Preprocessor().filter([new Chunk_1.BrightScriptChunk(unprocessed)]);
|
|
23
|
-
(0, chai_config_spec_1.expect)(processedTokens).to.eql(unprocessed);
|
|
24
|
-
});
|
|
25
|
-
describe('#const', () => {
|
|
26
|
-
it('removes #const declarations from output', () => {
|
|
27
|
-
let { processedTokens } = new Preprocessor_1.Preprocessor().filter([
|
|
28
|
-
new Chunk_1.DeclarationChunk((0, Parser_spec_1.identifier)('lorem'), (0, Parser_spec_1.token)(TokenKind_1.TokenKind.False, 'false'))
|
|
29
|
-
]);
|
|
30
|
-
(0, chai_config_spec_1.expect)(processedTokens).to.eql([]);
|
|
31
|
-
});
|
|
32
|
-
describe('values', () => {
|
|
33
|
-
it('allows `true`', () => {
|
|
34
|
-
(0, chai_config_spec_1.expect)(() => new Preprocessor_1.Preprocessor().filter([
|
|
35
|
-
new Chunk_1.DeclarationChunk((0, Parser_spec_1.identifier)('lorem'), (0, Parser_spec_1.token)(TokenKind_1.TokenKind.True, 'true'))
|
|
36
|
-
])).not.to.throw;
|
|
37
|
-
});
|
|
38
|
-
it('allows `false`', () => {
|
|
39
|
-
(0, chai_config_spec_1.expect)(() => new Preprocessor_1.Preprocessor().filter([
|
|
40
|
-
new Chunk_1.DeclarationChunk((0, Parser_spec_1.identifier)('ipsum'), (0, Parser_spec_1.token)(TokenKind_1.TokenKind.False, 'false'))
|
|
41
|
-
])).not.to.throw;
|
|
42
|
-
});
|
|
43
|
-
it('allows identifiers', () => {
|
|
44
|
-
(0, chai_config_spec_1.expect)(() => new Preprocessor_1.Preprocessor().filter([
|
|
45
|
-
// 'ipsum' must be defined before it's referenced
|
|
46
|
-
new Chunk_1.DeclarationChunk((0, Parser_spec_1.identifier)('ipsum'), (0, Parser_spec_1.token)(TokenKind_1.TokenKind.False, 'false')),
|
|
47
|
-
new Chunk_1.DeclarationChunk((0, Parser_spec_1.identifier)('dolor'), (0, Parser_spec_1.token)(TokenKind_1.TokenKind.True, 'true'))
|
|
48
|
-
])).not.to.throw;
|
|
49
|
-
});
|
|
50
|
-
it('disallows strings', () => {
|
|
51
|
-
(0, chai_config_spec_1.expect)(() => new Preprocessor_1.Preprocessor().filter([
|
|
52
|
-
new Chunk_1.DeclarationChunk((0, Parser_spec_1.identifier)('sit'), (0, Parser_spec_1.token)(TokenKind_1.TokenKind.String, 'good boy!'))
|
|
53
|
-
])).to.throw; //('#const declarations can only have');
|
|
54
|
-
});
|
|
55
|
-
it('disallows re-declaration of values', () => {
|
|
56
|
-
(0, chai_config_spec_1.expect)(() => new Preprocessor_1.Preprocessor().filter([
|
|
57
|
-
new Chunk_1.DeclarationChunk((0, Parser_spec_1.identifier)('lorem'), (0, Parser_spec_1.token)(TokenKind_1.TokenKind.False, 'false')),
|
|
58
|
-
new Chunk_1.DeclarationChunk((0, Parser_spec_1.identifier)('lorem'), (0, Parser_spec_1.token)(TokenKind_1.TokenKind.True, 'true'))
|
|
59
|
-
])).to.throw;
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
describe('#error', () => {
|
|
64
|
-
it('throws error when #error directives encountered', () => {
|
|
65
|
-
(0, chai_config_spec_1.expect)(() => new Preprocessor_1.Preprocessor().filter([
|
|
66
|
-
new Chunk_1.ErrorChunk((0, Parser_spec_1.token)(TokenKind_1.TokenKind.HashError, '#error'), (0, Parser_spec_1.token)(TokenKind_1.TokenKind.HashError, 'I\'m an error message!'))
|
|
67
|
-
])).to.throw;
|
|
68
|
-
});
|
|
69
|
-
it('doesn\'t throw when branched around', () => {
|
|
70
|
-
(0, chai_config_spec_1.expect)(() => new Preprocessor_1.Preprocessor().filter([
|
|
71
|
-
new Chunk_1.HashIfStatement((0, Parser_spec_1.token)(TokenKind_1.TokenKind.False, 'false'), [
|
|
72
|
-
new Chunk_1.ErrorChunk((0, Parser_spec_1.token)(TokenKind_1.TokenKind.HashError, '#error'), (0, Parser_spec_1.token)(TokenKind_1.TokenKind.HashError, 'I\'m an error message!'))
|
|
73
|
-
], [] // no else-ifs necessary
|
|
74
|
-
)
|
|
75
|
-
])).not.to.throw;
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
describe('#if', () => {
|
|
79
|
-
let elseChunk;
|
|
80
|
-
let elseIfChunk;
|
|
81
|
-
let ifChunk;
|
|
82
|
-
beforeEach(() => {
|
|
83
|
-
ifChunk = new Chunk_1.BrightScriptChunk([]);
|
|
84
|
-
elseIfChunk = new Chunk_1.BrightScriptChunk([]);
|
|
85
|
-
elseChunk = new Chunk_1.BrightScriptChunk([]);
|
|
86
|
-
sinon.spy(ifChunk, 'accept');
|
|
87
|
-
sinon.spy(elseIfChunk, 'accept');
|
|
88
|
-
sinon.spy(elseChunk, 'accept');
|
|
89
|
-
});
|
|
90
|
-
it('enters #if branch', () => {
|
|
91
|
-
new Preprocessor_1.Preprocessor().filter([
|
|
92
|
-
new Chunk_1.HashIfStatement((0, Parser_spec_1.token)(TokenKind_1.TokenKind.True, 'true'), [ifChunk], [
|
|
93
|
-
{
|
|
94
|
-
condition: (0, Parser_spec_1.token)(TokenKind_1.TokenKind.True, 'true'),
|
|
95
|
-
thenChunks: [elseIfChunk]
|
|
96
|
-
}
|
|
97
|
-
], [elseChunk])
|
|
98
|
-
]);
|
|
99
|
-
(0, chai_config_spec_1.expect)(ifChunk.accept.callCount).to.equal(1);
|
|
100
|
-
(0, chai_config_spec_1.expect)(elseIfChunk.accept.callCount).to.equal(0);
|
|
101
|
-
(0, chai_config_spec_1.expect)(elseChunk.accept.callCount).to.equal(0);
|
|
102
|
-
});
|
|
103
|
-
it('enters #else if branch', () => {
|
|
104
|
-
new Preprocessor_1.Preprocessor().filter([
|
|
105
|
-
new Chunk_1.HashIfStatement((0, Parser_spec_1.token)(TokenKind_1.TokenKind.False, 'false'), [ifChunk], [
|
|
106
|
-
{
|
|
107
|
-
condition: (0, Parser_spec_1.token)(TokenKind_1.TokenKind.True, 'true'),
|
|
108
|
-
thenChunks: [elseIfChunk]
|
|
109
|
-
}
|
|
110
|
-
], [elseChunk])
|
|
111
|
-
]);
|
|
112
|
-
(0, chai_config_spec_1.expect)(ifChunk.accept.callCount).to.equal(0);
|
|
113
|
-
(0, chai_config_spec_1.expect)(elseIfChunk.accept.callCount).to.equal(1);
|
|
114
|
-
(0, chai_config_spec_1.expect)(elseChunk.accept.callCount).to.equal(0);
|
|
115
|
-
});
|
|
116
|
-
it('enters #else branch', () => {
|
|
117
|
-
new Preprocessor_1.Preprocessor().filter([
|
|
118
|
-
new Chunk_1.HashIfStatement((0, Parser_spec_1.token)(TokenKind_1.TokenKind.False, 'false'), [ifChunk], [
|
|
119
|
-
{
|
|
120
|
-
condition: (0, Parser_spec_1.token)(TokenKind_1.TokenKind.False, 'false'),
|
|
121
|
-
thenChunks: [elseIfChunk]
|
|
122
|
-
}
|
|
123
|
-
], [elseChunk])
|
|
124
|
-
]);
|
|
125
|
-
(0, chai_config_spec_1.expect)(ifChunk.accept.callCount).to.equal(0);
|
|
126
|
-
(0, chai_config_spec_1.expect)(elseIfChunk.accept.callCount).to.equal(0);
|
|
127
|
-
(0, chai_config_spec_1.expect)(elseChunk.accept.callCount).to.equal(1);
|
|
128
|
-
});
|
|
129
|
-
it('enters no branches if none pass', () => {
|
|
130
|
-
new Preprocessor_1.Preprocessor().filter([
|
|
131
|
-
new Chunk_1.HashIfStatement((0, Parser_spec_1.token)(TokenKind_1.TokenKind.False, 'false'), [ifChunk], [] // no else-if chunks
|
|
132
|
-
// NOTE: no 'else" chunk!
|
|
133
|
-
)
|
|
134
|
-
]);
|
|
135
|
-
(0, chai_config_spec_1.expect)(ifChunk.accept.callCount).to.equal(0);
|
|
136
|
-
(0, chai_config_spec_1.expect)(elseIfChunk.accept.callCount).to.equal(0);
|
|
137
|
-
(0, chai_config_spec_1.expect)(elseChunk.accept.callCount).to.equal(0);
|
|
138
|
-
});
|
|
139
|
-
it('uses #const values to determine truth', () => {
|
|
140
|
-
new Preprocessor_1.Preprocessor().filter([
|
|
141
|
-
new Chunk_1.DeclarationChunk((0, Parser_spec_1.identifier)('lorem'), (0, Parser_spec_1.token)(TokenKind_1.TokenKind.True, 'true')),
|
|
142
|
-
new Chunk_1.HashIfStatement((0, Parser_spec_1.identifier)('lorem'), [ifChunk], [] // no else-if chunks
|
|
143
|
-
// NOTE: no 'else" chunk!
|
|
144
|
-
)
|
|
145
|
-
]);
|
|
146
|
-
(0, chai_config_spec_1.expect)(ifChunk.accept.callCount).to.equal(1);
|
|
147
|
-
(0, chai_config_spec_1.expect)(elseIfChunk.accept.callCount).to.equal(0);
|
|
148
|
-
(0, chai_config_spec_1.expect)(elseChunk.accept.callCount).to.equal(0);
|
|
149
|
-
});
|
|
150
|
-
});
|
|
151
|
-
});
|
|
152
|
-
//# sourceMappingURL=Preprocessor.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Preprocessor.spec.js","sourceRoot":"","sources":["../../src/preprocessor/Preprocessor.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const PreprocessorParser_1 = require("./PreprocessorParser");
|
|
4
|
-
const Parser_spec_1 = require("../parser/tests/Parser.spec");
|
|
5
|
-
const TokenKind_1 = require("../lexer/TokenKind");
|
|
6
|
-
const chai_config_spec_1 = require("../chai-config.spec");
|
|
7
|
-
describe('preprocessor parser', () => {
|
|
8
|
-
let parser;
|
|
9
|
-
beforeEach(() => {
|
|
10
|
-
parser = new PreprocessorParser_1.PreprocessorParser();
|
|
11
|
-
});
|
|
12
|
-
it('parses chunks of brightscript', () => {
|
|
13
|
-
let { chunks, diagnostics } = parser.parse([
|
|
14
|
-
(0, Parser_spec_1.identifier)('someFunction'),
|
|
15
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.LeftParen, '('),
|
|
16
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.RightParen, ')'),
|
|
17
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Newline, '\n'),
|
|
18
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Eof, '\0')
|
|
19
|
-
]);
|
|
20
|
-
(0, chai_config_spec_1.expect)(diagnostics).to.eql([]);
|
|
21
|
-
(0, chai_config_spec_1.expect)(chunks[0].tokens.map(x => x.kind)).to.eql([
|
|
22
|
-
TokenKind_1.TokenKind.Identifier,
|
|
23
|
-
TokenKind_1.TokenKind.LeftParen,
|
|
24
|
-
TokenKind_1.TokenKind.RightParen,
|
|
25
|
-
TokenKind_1.TokenKind.Newline
|
|
26
|
-
]);
|
|
27
|
-
});
|
|
28
|
-
it('parses #const', () => {
|
|
29
|
-
let { chunks, diagnostics } = parser.parse([
|
|
30
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.HashConst, '#const'),
|
|
31
|
-
(0, Parser_spec_1.identifier)('foo'),
|
|
32
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Equal, '='),
|
|
33
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.True, 'true'),
|
|
34
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Newline, '\n'),
|
|
35
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Eof, '\0')
|
|
36
|
-
]);
|
|
37
|
-
(0, chai_config_spec_1.expect)(diagnostics).to.be.empty;
|
|
38
|
-
(0, chai_config_spec_1.expect)(chunks).to.exist;
|
|
39
|
-
});
|
|
40
|
-
it('parses #error', () => {
|
|
41
|
-
let { chunks, diagnostics } = parser.parse([
|
|
42
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.HashError, '#error'),
|
|
43
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.HashErrorMessage, 'I\'m an error message!'),
|
|
44
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Eof, '\0')
|
|
45
|
-
]);
|
|
46
|
-
(0, chai_config_spec_1.expect)(diagnostics).to.eql([]);
|
|
47
|
-
(0, chai_config_spec_1.expect)(chunks).to.exist;
|
|
48
|
-
});
|
|
49
|
-
describe('conditionals', () => {
|
|
50
|
-
it('#if only', () => {
|
|
51
|
-
let { chunks, diagnostics } = parser.parse([
|
|
52
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.HashIf, '#if'),
|
|
53
|
-
(0, Parser_spec_1.identifier)('foo'),
|
|
54
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Newline, '\n'),
|
|
55
|
-
(0, Parser_spec_1.identifier)('fooIsTrue'),
|
|
56
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.LeftParen, '('),
|
|
57
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.RightParen, ')'),
|
|
58
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Newline, '\n'),
|
|
59
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.HashEndIf, '#endif'),
|
|
60
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Eof, '\0')
|
|
61
|
-
]);
|
|
62
|
-
(0, chai_config_spec_1.expect)(diagnostics).to.eql([]);
|
|
63
|
-
(0, chai_config_spec_1.expect)(chunks).to.exist;
|
|
64
|
-
});
|
|
65
|
-
it('#if and #else', () => {
|
|
66
|
-
let { chunks, diagnostics } = parser.parse([
|
|
67
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.HashIf, '#if'),
|
|
68
|
-
(0, Parser_spec_1.identifier)('foo'),
|
|
69
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Newline, '\n'),
|
|
70
|
-
(0, Parser_spec_1.identifier)('fooIsTrue'),
|
|
71
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.LeftParen, '('),
|
|
72
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.RightParen, ')'),
|
|
73
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Newline, '\n'),
|
|
74
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.HashElse, '#else'),
|
|
75
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Newline, '\n'),
|
|
76
|
-
(0, Parser_spec_1.identifier)('fooIsFalse'),
|
|
77
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.LeftParen, '('),
|
|
78
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.RightParen, ')'),
|
|
79
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Newline, '\n'),
|
|
80
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.HashEndIf, '#endif'),
|
|
81
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Eof, '\0')
|
|
82
|
-
]);
|
|
83
|
-
(0, chai_config_spec_1.expect)(diagnostics).to.eql([]);
|
|
84
|
-
(0, chai_config_spec_1.expect)(chunks).to.exist;
|
|
85
|
-
});
|
|
86
|
-
it('#if #else if and #else', () => {
|
|
87
|
-
let { chunks, diagnostics } = parser.parse([
|
|
88
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.HashIf, '#if'),
|
|
89
|
-
(0, Parser_spec_1.identifier)('foo'),
|
|
90
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Newline, '\n'),
|
|
91
|
-
(0, Parser_spec_1.identifier)('fooIsTrue'),
|
|
92
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.LeftParen, '('),
|
|
93
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.RightParen, ')'),
|
|
94
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Newline, '\n'),
|
|
95
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.HashElseIf, '#elseif'),
|
|
96
|
-
(0, Parser_spec_1.identifier)('bar'),
|
|
97
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Newline, '\n'),
|
|
98
|
-
(0, Parser_spec_1.identifier)('bar'),
|
|
99
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.LeftParen, '('),
|
|
100
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.RightParen, ')'),
|
|
101
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Newline, '\n'),
|
|
102
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.HashElse, '#else'),
|
|
103
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Newline, '\n'),
|
|
104
|
-
(0, Parser_spec_1.identifier)('neither'),
|
|
105
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.LeftParen, '('),
|
|
106
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.RightParen, ')'),
|
|
107
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Newline, '\n'),
|
|
108
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.HashEndIf, '#endif'),
|
|
109
|
-
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Eof, '\0')
|
|
110
|
-
]);
|
|
111
|
-
(0, chai_config_spec_1.expect)(diagnostics).to.eql([]);
|
|
112
|
-
(0, chai_config_spec_1.expect)(chunks).to.exist;
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
});
|
|
116
|
-
//# sourceMappingURL=PreprocessorParser.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PreprocessorParser.spec.js","sourceRoot":"","sources":["../../src/preprocessor/PreprocessorParser.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const chai_config_spec_1 = require("../chai-config.spec");
|
|
4
|
-
const ArrayType_1 = require("./ArrayType");
|
|
5
|
-
const DynamicType_1 = require("./DynamicType");
|
|
6
|
-
const BooleanType_1 = require("./BooleanType");
|
|
7
|
-
const StringType_1 = require("./StringType");
|
|
8
|
-
describe('ArrayType', () => {
|
|
9
|
-
it('is equivalent to array types', () => {
|
|
10
|
-
(0, chai_config_spec_1.expect)(new ArrayType_1.ArrayType().isAssignableTo(new ArrayType_1.ArrayType())).to.be.true;
|
|
11
|
-
(0, chai_config_spec_1.expect)(new ArrayType_1.ArrayType().isAssignableTo(new DynamicType_1.DynamicType())).to.be.true;
|
|
12
|
-
});
|
|
13
|
-
it('catches arrays containing different inner types', () => {
|
|
14
|
-
(0, chai_config_spec_1.expect)(new ArrayType_1.ArrayType(new BooleanType_1.BooleanType()).isAssignableTo(new ArrayType_1.ArrayType(new BooleanType_1.BooleanType()))).to.be.true;
|
|
15
|
-
(0, chai_config_spec_1.expect)(new ArrayType_1.ArrayType(new BooleanType_1.BooleanType()).isAssignableTo(new ArrayType_1.ArrayType(new StringType_1.StringType()))).to.be.false;
|
|
16
|
-
});
|
|
17
|
-
it('is not equivalent to other types', () => {
|
|
18
|
-
(0, chai_config_spec_1.expect)(new ArrayType_1.ArrayType().isAssignableTo(new BooleanType_1.BooleanType())).to.be.false;
|
|
19
|
-
});
|
|
20
|
-
describe('isConveribleTo', () => {
|
|
21
|
-
(0, chai_config_spec_1.expect)(new ArrayType_1.ArrayType().isConvertibleTo(new BooleanType_1.BooleanType())).to.be.false;
|
|
22
|
-
(0, chai_config_spec_1.expect)(new ArrayType_1.ArrayType().isConvertibleTo(new ArrayType_1.ArrayType())).to.be.true;
|
|
23
|
-
});
|
|
24
|
-
describe('toString', () => {
|
|
25
|
-
it('prints inner types', () => {
|
|
26
|
-
(0, chai_config_spec_1.expect)(new ArrayType_1.ArrayType(new BooleanType_1.BooleanType(), new StringType_1.StringType()).toString()).to.eql('Array<boolean | string>');
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
//# sourceMappingURL=ArrayType.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ArrayType.spec.js","sourceRoot":"","sources":["../../src/types/ArrayType.spec.ts"],"names":[],"mappings":";;AAAA,0DAA6C;AAE7C,2CAAwC;AACxC,+CAA4C;AAC5C,+CAA4C;AAC5C,6CAA0C;AAE1C,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACpC,IAAA,yBAAM,EAAC,IAAI,qBAAS,EAAE,CAAC,cAAc,CAAC,IAAI,qBAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACnE,IAAA,yBAAM,EAAC,IAAI,qBAAS,EAAE,CAAC,cAAc,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACvD,IAAA,yBAAM,EAAC,IAAI,qBAAS,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,qBAAS,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACrG,IAAA,yBAAM,EAAC,IAAI,qBAAS,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,qBAAS,CAAC,IAAI,uBAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IACzG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QACxC,IAAA,yBAAM,EAAC,IAAI,qBAAS,EAAE,CAAC,cAAc,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC5B,IAAA,yBAAM,EAAC,IAAI,qBAAS,EAAE,CAAC,eAAe,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACvE,IAAA,yBAAM,EAAC,IAAI,qBAAS,EAAE,CAAC,eAAe,CAAC,IAAI,qBAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAC1B,IAAA,yBAAM,EAAC,IAAI,qBAAS,CAAC,IAAI,yBAAW,EAAE,EAAE,IAAI,uBAAU,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAC5G,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|