brighterscript 1.0.0-alpha.24 → 1.0.0-alpha.26
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/CHANGELOG.md +521 -233
- package/README.md +45 -139
- package/bsconfig.schema.json +46 -0
- package/dist/ActionPipeline.d.ts +10 -0
- package/dist/ActionPipeline.js +40 -0
- package/dist/ActionPipeline.js.map +1 -0
- package/dist/AstValidationSegmenter.d.ts +25 -0
- package/dist/AstValidationSegmenter.js +152 -0
- package/dist/AstValidationSegmenter.js.map +1 -0
- package/dist/BsConfig.d.ts +40 -4
- package/dist/BusyStatusTracker.d.ts +31 -0
- package/dist/BusyStatusTracker.js +83 -0
- package/dist/BusyStatusTracker.js.map +1 -0
- package/dist/Cache.js +3 -3
- package/dist/Cache.js.map +1 -1
- package/dist/CacheVerifier.d.ts +7 -0
- package/dist/CacheVerifier.js +20 -0
- package/dist/CacheVerifier.js.map +1 -0
- package/dist/CodeActionUtil.d.ts +3 -3
- package/dist/CodeActionUtil.js.map +1 -1
- package/dist/CommentFlagProcessor.d.ts +3 -2
- package/dist/CommentFlagProcessor.js +5 -4
- package/dist/CommentFlagProcessor.js.map +1 -1
- package/dist/DependencyGraph.d.ts +3 -2
- package/dist/DependencyGraph.js +11 -10
- package/dist/DependencyGraph.js.map +1 -1
- package/dist/DiagnosticCollection.js +9 -5
- package/dist/DiagnosticCollection.js.map +1 -1
- package/dist/DiagnosticFilterer.d.ts +1 -0
- package/dist/DiagnosticFilterer.js +5 -3
- package/dist/DiagnosticFilterer.js.map +1 -1
- package/dist/DiagnosticMessages.d.ts +61 -13
- package/dist/DiagnosticMessages.js +116 -19
- package/dist/DiagnosticMessages.js.map +1 -1
- package/dist/DiagnosticSeverityAdjuster.d.ts +7 -0
- package/dist/DiagnosticSeverityAdjuster.js +41 -0
- package/dist/DiagnosticSeverityAdjuster.js.map +1 -0
- package/dist/FunctionScope.d.ts +28 -0
- package/dist/FunctionScope.js +52 -0
- package/dist/FunctionScope.js.map +1 -0
- package/dist/KeyedThrottler.d.ts +3 -3
- package/dist/KeyedThrottler.js +3 -3
- package/dist/KeyedThrottler.js.map +1 -1
- package/dist/LanguageServer.d.ts +23 -11
- package/dist/LanguageServer.js +150 -69
- package/dist/LanguageServer.js.map +1 -1
- package/dist/Logger.d.ts +3 -2
- package/dist/Logger.js +11 -3
- package/dist/Logger.js.map +1 -1
- package/dist/PluginInterface.d.ts +21 -3
- package/dist/PluginInterface.js +74 -6
- package/dist/PluginInterface.js.map +1 -1
- package/dist/Program.d.ts +158 -79
- package/dist/Program.js +841 -706
- package/dist/Program.js.map +1 -1
- package/dist/ProgramBuilder.d.ts +22 -12
- package/dist/ProgramBuilder.js +130 -103
- package/dist/ProgramBuilder.js.map +1 -1
- package/dist/Scope.d.ts +86 -137
- package/dist/Scope.js +453 -519
- package/dist/Scope.js.map +1 -1
- package/dist/Stopwatch.js +1 -1
- package/dist/Stopwatch.js.map +1 -1
- package/dist/SymbolTable.d.ts +89 -34
- package/dist/SymbolTable.js +239 -114
- package/dist/SymbolTable.js.map +1 -1
- package/dist/Throttler.d.ts +12 -0
- package/dist/Throttler.js +39 -0
- package/dist/Throttler.js.map +1 -1
- package/dist/Watcher.d.ts +0 -3
- package/dist/Watcher.js +0 -3
- package/dist/Watcher.js.map +1 -1
- package/dist/XmlScope.d.ts +4 -11
- package/dist/XmlScope.js +75 -88
- package/dist/XmlScope.js.map +1 -1
- package/dist/astUtils/CachedLookups.d.ts +48 -0
- package/dist/astUtils/CachedLookups.js +323 -0
- package/dist/astUtils/CachedLookups.js.map +1 -0
- package/dist/astUtils/{AstEditor.d.ts → Editor.d.ts} +9 -5
- package/dist/astUtils/{AstEditor.js → Editor.js} +10 -4
- package/dist/astUtils/Editor.js.map +1 -0
- package/dist/astUtils/{AstEditor.spec.js → Editor.spec.js} +69 -65
- package/dist/astUtils/Editor.spec.js.map +1 -0
- package/dist/astUtils/creators.d.ts +10 -10
- package/dist/astUtils/creators.js +54 -24
- package/dist/astUtils/creators.js.map +1 -1
- package/dist/astUtils/creators.spec.js +5 -5
- package/dist/astUtils/creators.spec.js.map +1 -1
- package/dist/astUtils/reflection.d.ts +132 -104
- package/dist/astUtils/reflection.js +220 -174
- package/dist/astUtils/reflection.js.map +1 -1
- package/dist/astUtils/reflection.spec.js +256 -157
- package/dist/astUtils/reflection.spec.js.map +1 -1
- package/dist/astUtils/stackedVisitor.spec.js +12 -12
- package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
- package/dist/astUtils/visitors.d.ts +53 -35
- package/dist/astUtils/visitors.js +29 -3
- package/dist/astUtils/visitors.js.map +1 -1
- package/dist/astUtils/visitors.spec.js +208 -52
- package/dist/astUtils/visitors.spec.js.map +1 -1
- package/dist/astUtils/xml.d.ts +9 -9
- package/dist/astUtils/xml.js +9 -9
- package/dist/astUtils/xml.js.map +1 -1
- package/dist/bscPlugin/BscPlugin.d.ts +11 -2
- package/dist/bscPlugin/BscPlugin.js +37 -3
- package/dist/bscPlugin/BscPlugin.js.map +1 -1
- package/dist/bscPlugin/CallExpressionInfo.d.ts +36 -0
- package/dist/bscPlugin/CallExpressionInfo.js +131 -0
- package/dist/bscPlugin/CallExpressionInfo.js.map +1 -0
- package/dist/bscPlugin/FileWriter.d.ts +6 -0
- package/dist/bscPlugin/FileWriter.js +24 -0
- package/dist/bscPlugin/FileWriter.js.map +1 -0
- package/dist/bscPlugin/SignatureHelpUtil.d.ts +10 -0
- package/dist/bscPlugin/SignatureHelpUtil.js +136 -0
- package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -0
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +16 -13
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +16 -16
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +52 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.js +517 -26
- package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +1909 -0
- package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -0
- package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
- package/dist/bscPlugin/definition/DefinitionProvider.js +210 -0
- package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -0
- package/dist/bscPlugin/definition/DefinitionProvider.spec.js +88 -0
- package/dist/bscPlugin/definition/DefinitionProvider.spec.js.map +1 -0
- package/dist/bscPlugin/fileProviders/FileProvider.d.ts +9 -0
- package/dist/bscPlugin/fileProviders/FileProvider.js +51 -0
- package/dist/bscPlugin/fileProviders/FileProvider.js.map +1 -0
- package/dist/bscPlugin/hover/HoverProcessor.d.ts +7 -7
- package/dist/bscPlugin/hover/HoverProcessor.js +123 -125
- package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
- package/dist/bscPlugin/hover/HoverProcessor.spec.js +371 -53
- package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +2 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +83 -23
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +83 -6
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/serialize/BslibInjector.spec.d.ts +1 -0
- package/dist/bscPlugin/serialize/BslibInjector.spec.js +19 -0
- package/dist/bscPlugin/serialize/BslibInjector.spec.js.map +1 -0
- package/dist/bscPlugin/serialize/BslibManager.d.ts +9 -0
- package/dist/bscPlugin/serialize/BslibManager.js +40 -0
- package/dist/bscPlugin/serialize/BslibManager.js.map +1 -0
- package/dist/bscPlugin/serialize/FileSerializer.d.ts +9 -0
- package/dist/bscPlugin/serialize/FileSerializer.js +72 -0
- package/dist/bscPlugin/serialize/FileSerializer.js.map +1 -0
- package/dist/bscPlugin/transpile/{BrsFilePreTranspileProcessor.d.ts → BrsFileTranspileProcessor.d.ts} +4 -2
- package/dist/bscPlugin/transpile/{BrsFilePreTranspileProcessor.js → BrsFileTranspileProcessor.js} +38 -12
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -0
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.d.ts +1 -0
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js +41 -0
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js.map +1 -0
- package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +12 -0
- package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +99 -0
- package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +1 -0
- package/dist/bscPlugin/validation/BrsFileValidator.d.ts +13 -5
- package/dist/bscPlugin/validation/BrsFileValidator.js +262 -52
- package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
- package/dist/bscPlugin/validation/BrsFileValidator.spec.js +230 -14
- package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
- package/dist/bscPlugin/validation/ProgramValidator.d.ts +10 -0
- package/dist/bscPlugin/validation/ProgramValidator.js +32 -0
- package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -0
- package/dist/bscPlugin/validation/ScopeValidator.d.ts +58 -27
- package/dist/bscPlugin/validation/ScopeValidator.js +514 -286
- package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.spec.d.ts +1 -0
- package/dist/bscPlugin/validation/ScopeValidator.spec.js +2527 -0
- package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -0
- package/dist/bscPlugin/validation/XmlFileValidator.d.ts +8 -0
- package/dist/bscPlugin/validation/XmlFileValidator.js +44 -0
- package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -0
- package/dist/cli.js +104 -13
- package/dist/cli.js.map +1 -1
- package/dist/deferred.d.ts +3 -3
- package/dist/deferred.js.map +1 -1
- package/dist/diagnosticUtils.d.ts +8 -2
- package/dist/diagnosticUtils.js +47 -17
- package/dist/diagnosticUtils.js.map +1 -1
- package/dist/examples/plugins/removePrint.js +8 -10
- package/dist/examples/plugins/removePrint.js.map +1 -1
- package/dist/files/AssetFile.d.ts +26 -0
- package/dist/files/AssetFile.js +26 -0
- package/dist/files/AssetFile.js.map +1 -0
- package/dist/files/BrsFile.Class.spec.js +523 -493
- package/dist/files/BrsFile.Class.spec.js.map +1 -1
- package/dist/files/BrsFile.d.ts +111 -117
- package/dist/files/BrsFile.js +684 -1142
- package/dist/files/BrsFile.js.map +1 -1
- package/dist/files/BrsFile.spec.js +1783 -1233
- package/dist/files/BrsFile.spec.js.map +1 -1
- package/dist/files/BscFile.d.ts +104 -0
- package/dist/files/BscFile.js +16 -0
- package/dist/files/BscFile.js.map +1 -0
- package/dist/files/Factory.d.ts +25 -0
- package/dist/files/Factory.js +22 -0
- package/dist/files/Factory.js.map +1 -0
- package/dist/files/LazyFileData.d.ts +20 -0
- package/dist/files/LazyFileData.js +54 -0
- package/dist/files/LazyFileData.js.map +1 -0
- package/dist/files/LazyFileData.spec.d.ts +1 -0
- package/dist/files/LazyFileData.spec.js +27 -0
- package/dist/files/LazyFileData.spec.js.map +1 -0
- package/dist/files/XmlFile.d.ts +70 -32
- package/dist/files/XmlFile.js +106 -118
- package/dist/files/XmlFile.js.map +1 -1
- package/dist/files/XmlFile.spec.js +325 -262
- package/dist/files/XmlFile.spec.js.map +1 -1
- package/dist/files/tests/imports.spec.js +48 -40
- package/dist/files/tests/imports.spec.js.map +1 -1
- package/dist/files/tests/optionalChaning.spec.js +84 -24
- package/dist/files/tests/optionalChaning.spec.js.map +1 -1
- package/dist/globalCallables.js +16 -21
- package/dist/globalCallables.js.map +1 -1
- package/dist/index.d.ts +12 -1
- package/dist/index.js +12 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +421 -162
- package/dist/interfaces.js +27 -0
- package/dist/interfaces.js.map +1 -1
- package/dist/lexer/Character.spec.js +5 -5
- package/dist/lexer/Character.spec.js.map +1 -1
- package/dist/lexer/Lexer.d.ts +12 -5
- package/dist/lexer/Lexer.js +28 -13
- package/dist/lexer/Lexer.js.map +1 -1
- package/dist/lexer/Lexer.spec.js +181 -135
- package/dist/lexer/Lexer.spec.js.map +1 -1
- package/dist/lexer/Token.d.ts +9 -1
- package/dist/lexer/Token.js +9 -1
- package/dist/lexer/Token.js.map +1 -1
- package/dist/lexer/TokenKind.d.ts +8 -0
- package/dist/lexer/TokenKind.js +24 -4
- package/dist/lexer/TokenKind.js.map +1 -1
- package/dist/parser/AstNode.d.ts +162 -0
- package/dist/parser/AstNode.js +225 -0
- package/dist/parser/AstNode.js.map +1 -0
- package/dist/parser/AstNode.spec.d.ts +1 -0
- package/dist/parser/AstNode.spec.js +165 -0
- package/dist/parser/AstNode.spec.js.map +1 -0
- package/dist/parser/BrsTranspileState.d.ts +4 -7
- package/dist/parser/BrsTranspileState.js +4 -12
- package/dist/parser/BrsTranspileState.js.map +1 -1
- package/dist/parser/Expression.d.ts +376 -283
- package/dist/parser/Expression.js +742 -585
- package/dist/parser/Expression.js.map +1 -1
- package/dist/parser/Parser.Class.spec.js +151 -145
- package/dist/parser/Parser.Class.spec.js.map +1 -1
- package/dist/parser/Parser.d.ts +48 -201
- package/dist/parser/Parser.js +705 -1026
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/Parser.spec.d.ts +3 -1
- package/dist/parser/Parser.spec.js +861 -848
- package/dist/parser/Parser.spec.js.map +1 -1
- package/dist/parser/SGParser.d.ts +9 -8
- package/dist/parser/SGParser.js +10 -8
- package/dist/parser/SGParser.js.map +1 -1
- package/dist/parser/SGParser.spec.js +27 -38
- package/dist/parser/SGParser.spec.js.map +1 -1
- package/dist/parser/SGTypes.d.ts +98 -35
- package/dist/parser/SGTypes.js +169 -99
- package/dist/parser/SGTypes.js.map +1 -1
- package/dist/parser/Statement.d.ts +468 -272
- package/dist/parser/Statement.js +904 -631
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/Statement.spec.js +47 -23
- package/dist/parser/Statement.spec.js.map +1 -1
- package/dist/parser/TranspileState.d.ts +1 -1
- package/dist/parser/TranspileState.js +7 -12
- package/dist/parser/TranspileState.js.map +1 -1
- package/dist/parser/tests/Parser.spec.js +3 -2
- package/dist/parser/tests/Parser.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/For.spec.js +33 -23
- package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/ForEach.spec.js +25 -20
- package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/If.spec.js +96 -94
- package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/While.spec.js +22 -16
- package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
- package/dist/parser/tests/expression/Additive.spec.js +8 -8
- package/dist/parser/tests/expression/Additive.spec.js.map +1 -1
- package/dist/parser/tests/expression/ArrayLiterals.spec.js +58 -21
- package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +62 -21
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
- package/dist/parser/tests/expression/Boolean.spec.js +8 -8
- package/dist/parser/tests/expression/Boolean.spec.js.map +1 -1
- package/dist/parser/tests/expression/Call.spec.js +129 -21
- package/dist/parser/tests/expression/Call.spec.js.map +1 -1
- package/dist/parser/tests/expression/Exponential.spec.js +5 -5
- package/dist/parser/tests/expression/Exponential.spec.js.map +1 -1
- package/dist/parser/tests/expression/Function.spec.js +36 -36
- package/dist/parser/tests/expression/Function.spec.js.map +1 -1
- package/dist/parser/tests/expression/Indexing.spec.js +92 -22
- package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
- package/dist/parser/tests/expression/Multiplicative.spec.js +9 -9
- package/dist/parser/tests/expression/Multiplicative.spec.js.map +1 -1
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +59 -59
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/PrefixUnary.spec.js +12 -12
- package/dist/parser/tests/expression/PrefixUnary.spec.js.map +1 -1
- package/dist/parser/tests/expression/Primary.spec.js +12 -12
- package/dist/parser/tests/expression/Primary.spec.js.map +1 -1
- package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +10 -10
- package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/Relational.spec.js +13 -13
- package/dist/parser/tests/expression/Relational.spec.js.map +1 -1
- package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +24 -24
- package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js +96 -57
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TernaryExpression.spec.js +89 -89
- package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TypeExpression.spec.d.ts +1 -0
- package/dist/parser/tests/expression/TypeExpression.spec.js +127 -0
- package/dist/parser/tests/expression/TypeExpression.spec.js.map +1 -0
- package/dist/parser/tests/expression/UnaryExpression.spec.d.ts +1 -0
- package/dist/parser/tests/expression/UnaryExpression.spec.js +52 -0
- package/dist/parser/tests/expression/UnaryExpression.spec.js.map +1 -0
- package/dist/parser/tests/statement/AssignmentOperators.spec.js +15 -15
- package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +1 -1
- package/dist/parser/tests/statement/ConstStatement.spec.js +82 -33
- package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Continue.spec.d.ts +1 -0
- package/dist/parser/tests/statement/Continue.spec.js +119 -0
- package/dist/parser/tests/statement/Continue.spec.js.map +1 -0
- package/dist/parser/tests/statement/Declaration.spec.js +19 -19
- package/dist/parser/tests/statement/Declaration.spec.js.map +1 -1
- package/dist/parser/tests/statement/Dim.spec.js +22 -22
- package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
- package/dist/parser/tests/statement/Enum.spec.js +98 -302
- package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
- package/dist/parser/tests/statement/For.spec.js +9 -10
- package/dist/parser/tests/statement/For.spec.js.map +1 -1
- package/dist/parser/tests/statement/ForEach.spec.js +8 -9
- package/dist/parser/tests/statement/ForEach.spec.js.map +1 -1
- package/dist/parser/tests/statement/Function.spec.js +44 -35
- package/dist/parser/tests/statement/Function.spec.js.map +1 -1
- package/dist/parser/tests/statement/Goto.spec.js +5 -5
- package/dist/parser/tests/statement/Goto.spec.js.map +1 -1
- package/dist/parser/tests/statement/Increment.spec.js +20 -20
- package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
- package/dist/parser/tests/statement/InterfaceStatement.spec.js +30 -196
- package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/LibraryStatement.spec.js +11 -11
- package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Misc.spec.js +16 -78
- package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
- package/dist/parser/tests/statement/PrintStatement.spec.js +36 -34
- package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/ReturnStatement.spec.js +14 -12
- package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Set.spec.js +48 -35
- package/dist/parser/tests/statement/Set.spec.js.map +1 -1
- package/dist/parser/tests/statement/Stop.spec.js +6 -6
- package/dist/parser/tests/statement/Stop.spec.js.map +1 -1
- package/dist/parser/tests/statement/Throw.spec.js +6 -6
- package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
- package/dist/parser/tests/statement/TryCatch.spec.js +18 -16
- package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
- package/dist/preprocessor/Manifest.d.ts +1 -1
- package/dist/preprocessor/Manifest.js +2 -2
- package/dist/preprocessor/Manifest.js.map +1 -1
- package/dist/preprocessor/Manifest.spec.js +8 -8
- package/dist/preprocessor/Manifest.spec.js.map +1 -1
- package/dist/preprocessor/Preprocessor.d.ts +5 -6
- package/dist/preprocessor/Preprocessor.js +5 -5
- package/dist/preprocessor/Preprocessor.js.map +1 -1
- package/dist/preprocessor/Preprocessor.spec.js +25 -25
- package/dist/preprocessor/Preprocessor.spec.js.map +1 -1
- package/dist/preprocessor/PreprocessorParser.d.ts +1 -1
- package/dist/preprocessor/PreprocessorParser.js +7 -1
- package/dist/preprocessor/PreprocessorParser.js.map +1 -1
- package/dist/preprocessor/PreprocessorParser.spec.js +13 -13
- package/dist/preprocessor/PreprocessorParser.spec.js.map +1 -1
- package/dist/roku-types/data.json +5892 -10081
- package/dist/roku-types/index.d.ts +622 -1719
- package/dist/types/ArrayType.d.ts +10 -9
- package/dist/types/ArrayType.js +65 -60
- package/dist/types/ArrayType.js.map +1 -1
- package/dist/types/ArrayType.spec.js +36 -68
- package/dist/types/ArrayType.spec.js.map +1 -1
- package/dist/types/AssociativeArrayType.d.ts +11 -0
- package/dist/types/AssociativeArrayType.js +52 -0
- package/dist/types/AssociativeArrayType.js.map +1 -0
- package/dist/types/BaseFunctionType.d.ts +9 -0
- package/dist/types/BaseFunctionType.js +25 -0
- package/dist/types/BaseFunctionType.js.map +1 -0
- package/dist/types/BooleanType.d.ts +8 -5
- package/dist/types/BooleanType.js +14 -7
- package/dist/types/BooleanType.js.map +1 -1
- package/dist/types/BooleanType.spec.js +10 -6
- package/dist/types/BooleanType.spec.js.map +1 -1
- package/dist/types/BscType.d.ts +32 -21
- package/dist/types/BscType.js +118 -21
- package/dist/types/BscType.js.map +1 -1
- package/dist/types/BscTypeKind.d.ts +25 -0
- package/dist/types/BscTypeKind.js +30 -0
- package/dist/types/BscTypeKind.js.map +1 -0
- package/dist/types/BuiltInInterfaceAdder.d.ts +23 -0
- package/dist/types/BuiltInInterfaceAdder.js +171 -0
- package/dist/types/BuiltInInterfaceAdder.js.map +1 -0
- package/dist/types/BuiltInInterfaceAdder.spec.d.ts +1 -0
- package/dist/types/BuiltInInterfaceAdder.spec.js +116 -0
- package/dist/types/BuiltInInterfaceAdder.spec.js.map +1 -0
- package/dist/types/ClassType.d.ts +17 -0
- package/dist/types/ClassType.js +58 -0
- package/dist/types/ClassType.js.map +1 -0
- package/dist/types/ClassType.spec.d.ts +1 -0
- package/dist/types/ClassType.spec.js +77 -0
- package/dist/types/ClassType.spec.js.map +1 -0
- package/dist/types/ComponentType.d.ts +26 -0
- package/dist/types/ComponentType.js +83 -0
- package/dist/types/ComponentType.js.map +1 -0
- package/dist/types/DoubleType.d.ts +8 -5
- package/dist/types/DoubleType.js +18 -16
- package/dist/types/DoubleType.js.map +1 -1
- package/dist/types/DoubleType.spec.js +12 -6
- package/dist/types/DoubleType.spec.js.map +1 -1
- package/dist/types/DynamicType.d.ts +9 -5
- package/dist/types/DynamicType.js +15 -4
- package/dist/types/DynamicType.js.map +1 -1
- package/dist/types/DynamicType.spec.js +16 -5
- package/dist/types/DynamicType.spec.js.map +1 -1
- package/dist/types/EnumType.d.ts +30 -12
- package/dist/types/EnumType.js +43 -17
- package/dist/types/EnumType.js.map +1 -1
- package/dist/types/EnumType.spec.d.ts +1 -0
- package/dist/types/EnumType.spec.js +33 -0
- package/dist/types/EnumType.spec.js.map +1 -0
- package/dist/types/FloatType.d.ts +8 -5
- package/dist/types/FloatType.js +18 -16
- package/dist/types/FloatType.js.map +1 -1
- package/dist/types/FloatType.spec.js +4 -6
- package/dist/types/FloatType.spec.js.map +1 -1
- package/dist/types/FunctionType.d.ts +13 -8
- package/dist/types/FunctionType.js +30 -14
- package/dist/types/FunctionType.js.map +1 -1
- package/dist/types/InheritableType.d.ts +28 -0
- package/dist/types/InheritableType.js +152 -0
- package/dist/types/InheritableType.js.map +1 -0
- package/dist/types/IntegerType.d.ts +8 -5
- package/dist/types/IntegerType.js +18 -16
- package/dist/types/IntegerType.js.map +1 -1
- package/dist/types/IntegerType.spec.js +8 -6
- package/dist/types/IntegerType.spec.js.map +1 -1
- package/dist/types/InterfaceType.d.ts +12 -13
- package/dist/types/InterfaceType.js +20 -48
- package/dist/types/InterfaceType.js.map +1 -1
- package/dist/types/InterfaceType.spec.js +90 -56
- package/dist/types/InterfaceType.spec.js.map +1 -1
- package/dist/types/InvalidType.d.ts +7 -5
- package/dist/types/InvalidType.js +13 -7
- package/dist/types/InvalidType.js.map +1 -1
- package/dist/types/InvalidType.spec.js +8 -6
- package/dist/types/InvalidType.spec.js.map +1 -1
- package/dist/types/LongIntegerType.d.ts +8 -5
- package/dist/types/LongIntegerType.js +17 -15
- package/dist/types/LongIntegerType.js.map +1 -1
- package/dist/types/LongIntegerType.spec.js +10 -6
- package/dist/types/LongIntegerType.spec.js.map +1 -1
- package/dist/types/NamespaceType.d.ts +12 -0
- package/dist/types/NamespaceType.js +28 -0
- package/dist/types/NamespaceType.js.map +1 -0
- package/dist/types/ObjectType.d.ts +9 -8
- package/dist/types/ObjectType.js +21 -11
- package/dist/types/ObjectType.js.map +1 -1
- package/dist/types/ObjectType.spec.js +3 -3
- package/dist/types/ObjectType.spec.js.map +1 -1
- package/dist/types/ReferenceType.d.ts +63 -0
- package/dist/types/ReferenceType.js +423 -0
- package/dist/types/ReferenceType.js.map +1 -0
- package/dist/types/ReferenceType.spec.d.ts +1 -0
- package/dist/types/ReferenceType.spec.js +137 -0
- package/dist/types/ReferenceType.spec.js.map +1 -0
- package/dist/types/StringType.d.ts +11 -5
- package/dist/types/StringType.js +18 -7
- package/dist/types/StringType.js.map +1 -1
- package/dist/types/StringType.spec.js +3 -5
- package/dist/types/StringType.spec.js.map +1 -1
- package/dist/types/TypedFunctionType.d.ts +22 -17
- package/dist/types/TypedFunctionType.js +78 -60
- package/dist/types/TypedFunctionType.js.map +1 -1
- package/dist/types/TypedFunctionType.spec.js +105 -20
- package/dist/types/TypedFunctionType.spec.js.map +1 -1
- package/dist/types/UninitializedType.d.ts +8 -6
- package/dist/types/UninitializedType.js +13 -7
- package/dist/types/UninitializedType.js.map +1 -1
- package/dist/types/UnionType.d.ts +20 -0
- package/dist/types/UnionType.js +123 -0
- package/dist/types/UnionType.js.map +1 -0
- package/dist/types/UnionType.spec.d.ts +1 -0
- package/dist/types/UnionType.spec.js +130 -0
- package/dist/types/UnionType.spec.js.map +1 -0
- package/dist/types/VoidType.d.ts +8 -5
- package/dist/types/VoidType.js +14 -7
- package/dist/types/VoidType.js.map +1 -1
- package/dist/types/VoidType.spec.js +3 -3
- package/dist/types/VoidType.spec.js.map +1 -1
- package/dist/types/helper.spec.d.ts +1 -0
- package/dist/types/helper.spec.js +145 -0
- package/dist/types/helper.spec.js.map +1 -0
- package/dist/types/helpers.d.ts +19 -37
- package/dist/types/helpers.js +159 -99
- package/dist/types/helpers.js.map +1 -1
- package/dist/types/index.d.ts +22 -0
- package/dist/types/index.js +39 -0
- package/dist/types/index.js.map +1 -0
- package/dist/util.d.ts +143 -139
- package/dist/util.js +864 -385
- package/dist/util.js.map +1 -1
- package/dist/validators/ClassValidator.d.ts +8 -25
- package/dist/validators/ClassValidator.js +99 -179
- package/dist/validators/ClassValidator.js.map +1 -1
- package/package.json +165 -152
- package/dist/astUtils/AstEditor.js.map +0 -1
- package/dist/astUtils/AstEditor.spec.js.map +0 -1
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +0 -1
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js +0 -32
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js.map +0 -1
- package/dist/parser/SGTypes.spec.js +0 -351
- package/dist/parser/SGTypes.spec.js.map +0 -1
- package/dist/types/CustomType.d.ts +0 -12
- package/dist/types/CustomType.js +0 -44
- package/dist/types/CustomType.js.map +0 -1
- package/dist/types/LazyType.d.ts +0 -16
- package/dist/types/LazyType.js +0 -44
- package/dist/types/LazyType.js.map +0 -1
- /package/dist/astUtils/{AstEditor.spec.d.ts → Editor.spec.d.ts} +0 -0
- /package/dist/bscPlugin/{transpile/BrsFilePreTranspileProcessor.spec.d.ts → completions/CompletionsProcessor.spec.d.ts} +0 -0
- /package/dist/{parser/SGTypes.spec.d.ts → bscPlugin/definition/DefinitionProvider.spec.d.ts} +0 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
3
|
+
const chai_config_spec_1 = require("../../../chai-config.spec");
|
|
4
4
|
const Parser_1 = require("../../Parser");
|
|
5
5
|
const Statement_1 = require("../../Statement");
|
|
6
|
+
const reflection_1 = require("../../../astUtils/reflection");
|
|
6
7
|
describe('parser try/catch', () => {
|
|
7
8
|
it('can parse try catch statements', () => {
|
|
8
9
|
var _a, _b, _c, _d;
|
|
@@ -15,17 +16,18 @@ describe('parser try/catch', () => {
|
|
|
15
16
|
end try
|
|
16
17
|
end sub
|
|
17
18
|
`);
|
|
18
|
-
(0,
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
(0,
|
|
22
|
-
(0,
|
|
23
|
-
(0,
|
|
19
|
+
(0, chai_config_spec_1.expect)((_a = parser.diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).not.to.exist;
|
|
20
|
+
const functionExpressions = parser.ast.findChildren(reflection_1.isFunctionExpression);
|
|
21
|
+
const stmt = functionExpressions[0].body.statements[0];
|
|
22
|
+
(0, chai_config_spec_1.expect)(stmt).to.be.instanceof(Statement_1.TryCatchStatement);
|
|
23
|
+
(0, chai_config_spec_1.expect)((_b = stmt.tokens.try) === null || _b === void 0 ? void 0 : _b.text).to.eql('try');
|
|
24
|
+
(0, chai_config_spec_1.expect)(stmt.tryBranch).to.exist.and.ownProperty('statements').to.be.lengthOf(1);
|
|
25
|
+
(0, chai_config_spec_1.expect)(stmt.catchStatement).to.exist;
|
|
24
26
|
const cstmt = stmt.catchStatement;
|
|
25
|
-
(0,
|
|
26
|
-
(0,
|
|
27
|
-
(0,
|
|
28
|
-
(0,
|
|
27
|
+
(0, chai_config_spec_1.expect)((_c = cstmt.tokens.catch) === null || _c === void 0 ? void 0 : _c.text).to.eql('catch');
|
|
28
|
+
(0, chai_config_spec_1.expect)(cstmt.tokens.exceptionVariable.text).to.eql('e');
|
|
29
|
+
(0, chai_config_spec_1.expect)(cstmt.catchBranch).to.exist.and.ownProperty('statements').to.be.lengthOf(1);
|
|
30
|
+
(0, chai_config_spec_1.expect)((_d = stmt.tokens.endTry) === null || _d === void 0 ? void 0 : _d.text).to.eql('end try');
|
|
29
31
|
});
|
|
30
32
|
it('supports various configurations of try-catch', () => {
|
|
31
33
|
function expectNoParseErrors(text) {
|
|
@@ -35,7 +37,7 @@ describe('parser try/catch', () => {
|
|
|
35
37
|
${text}
|
|
36
38
|
end sub
|
|
37
39
|
`);
|
|
38
|
-
(0,
|
|
40
|
+
(0, chai_config_spec_1.expect)((_a = parser.diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).not.to.exist;
|
|
39
41
|
}
|
|
40
42
|
expectNoParseErrors(`
|
|
41
43
|
try : print a.b.c : catch e : print "error" : end try
|
|
@@ -104,7 +106,7 @@ describe('parser try/catch', () => {
|
|
|
104
106
|
end try
|
|
105
107
|
end sub
|
|
106
108
|
`);
|
|
107
|
-
(0,
|
|
109
|
+
(0, chai_config_spec_1.expect)((_a = parser.diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).not.to.exist;
|
|
108
110
|
});
|
|
109
111
|
it('recovers from missing end-try when reaching function boundary', () => {
|
|
110
112
|
const parser = Parser_1.Parser.parse(`
|
|
@@ -115,7 +117,7 @@ describe('parser try/catch', () => {
|
|
|
115
117
|
print "error"
|
|
116
118
|
end sub
|
|
117
119
|
`);
|
|
118
|
-
(0,
|
|
120
|
+
(0, chai_config_spec_1.expect)(parser.diagnostics).to.be.lengthOf(1);
|
|
119
121
|
});
|
|
120
122
|
it('recovers from missing catch', () => {
|
|
121
123
|
const parser = Parser_1.Parser.parse(`
|
|
@@ -126,7 +128,7 @@ describe('parser try/catch', () => {
|
|
|
126
128
|
end try
|
|
127
129
|
end sub
|
|
128
130
|
`);
|
|
129
|
-
(0,
|
|
131
|
+
(0, chai_config_spec_1.expect)(parser.diagnostics).to.be.lengthOf(1);
|
|
130
132
|
});
|
|
131
133
|
it('recovers from missing catch and end-try when reaching function boundary', () => {
|
|
132
134
|
const parser = Parser_1.Parser.parse(`
|
|
@@ -136,7 +138,7 @@ describe('parser try/catch', () => {
|
|
|
136
138
|
print "error"
|
|
137
139
|
end sub
|
|
138
140
|
`);
|
|
139
|
-
(0,
|
|
141
|
+
(0, chai_config_spec_1.expect)(parser.diagnostics).to.be.lengthOf(1);
|
|
140
142
|
});
|
|
141
143
|
});
|
|
142
144
|
//# sourceMappingURL=TryCatch.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TryCatch.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/statement/TryCatch.spec.ts"],"names":[],"mappings":";;AAAA
|
|
1
|
+
{"version":3,"file":"TryCatch.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/statement/TryCatch.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,4 +24,4 @@ export declare function parseManifest(contents: string): Map<string, string>;
|
|
|
24
24
|
* @returns a map of key to boolean value representing the `bs_const` attribute, or an empty map if
|
|
25
25
|
* no `bs_const` attribute is found.
|
|
26
26
|
*/
|
|
27
|
-
export declare function getBsConst(manifest: Manifest): Map<string, boolean>;
|
|
27
|
+
export declare function getBsConst(manifest: Manifest, toLowerKeys?: boolean): Map<string, boolean>;
|
|
@@ -55,7 +55,7 @@ exports.parseManifest = parseManifest;
|
|
|
55
55
|
* @returns a map of key to boolean value representing the `bs_const` attribute, or an empty map if
|
|
56
56
|
* no `bs_const` attribute is found.
|
|
57
57
|
*/
|
|
58
|
-
function getBsConst(manifest) {
|
|
58
|
+
function getBsConst(manifest, toLowerKeys = true) {
|
|
59
59
|
if (!manifest.has('bs_const')) {
|
|
60
60
|
return new Map();
|
|
61
61
|
}
|
|
@@ -77,7 +77,7 @@ function getBsConst(manifest) {
|
|
|
77
77
|
return [keyValuePair.slice(0, equals), keyValuePair.slice(equals + 1)];
|
|
78
78
|
})
|
|
79
79
|
// remove leading/trailing whitespace from keys and values, and force everything to lower case
|
|
80
|
-
.map(([key, value]) => [key.trim().toLowerCase(), value.trim().toLowerCase()])
|
|
80
|
+
.map(([key, value]) => [toLowerKeys ? key.trim().toLowerCase() : key.trim(), value.trim().toLowerCase()])
|
|
81
81
|
// convert value to boolean or throw
|
|
82
82
|
.map(([key, value]) => {
|
|
83
83
|
if (value.toLowerCase() === 'true') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Manifest.js","sourceRoot":"","sources":["../../src/preprocessor/Manifest.ts"],"names":[],"mappings":";;;AAAA,oCAAoC;AACpC,6BAA6B;AAO7B;;;;;;GAMG;AACI,KAAK,UAAU,WAAW,CAAC,OAAe;IAC7C,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAElD,IAAI,QAAgB,CAAC;IACrB,IAAI;QACA,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;KAC5D;IAAC,OAAO,GAAG,EAAE;QACV,OAAO,IAAI,GAAG,EAAE,CAAC;KACpB;IACD,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAVD,kCAUC;AAED;;;;;;GAMG;AACH,SAAgB,aAAa,CAAC,QAAgB;IAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,gCAAgC;QAChC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACnD,SAAS;SACZ;QAED,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;YACnB,MAAM,IAAI,KAAK,CACX,aAAa,CAAC,GAAG,CAAC,0EAA0E,CAC/F,CAAC;SACL;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KAC1B;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AArBD,sCAqBC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,QAAkB;
|
|
1
|
+
{"version":3,"file":"Manifest.js","sourceRoot":"","sources":["../../src/preprocessor/Manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const fsExtra = require("fs");
|
|
4
|
-
const
|
|
4
|
+
const chai_config_spec_1 = require("../chai-config.spec");
|
|
5
5
|
const Manifest_1 = require("./Manifest");
|
|
6
6
|
const sinon_1 = require("sinon");
|
|
7
7
|
const testHelpers_spec_1 = require("../testHelpers.spec");
|
|
@@ -16,7 +16,7 @@ describe('manifest support', () => {
|
|
|
16
16
|
describe('manifest parser', () => {
|
|
17
17
|
it('returns an empty map if manifest not found', async () => {
|
|
18
18
|
sinon.stub(fsExtra, 'readFile').returns(Promise.reject(new Error('File not found')));
|
|
19
|
-
return (0,
|
|
19
|
+
return (0, chai_config_spec_1.expect)(await (0, Manifest_1.getManifest)('/no/manifest/here')).to.eql(new Map());
|
|
20
20
|
});
|
|
21
21
|
it('rejects key-value pairs with no \'=\'', () => {
|
|
22
22
|
(0, testHelpers_spec_1.expectThrows)(() => {
|
|
@@ -24,15 +24,15 @@ describe('manifest support', () => {
|
|
|
24
24
|
});
|
|
25
25
|
});
|
|
26
26
|
it('ignores comments', () => {
|
|
27
|
-
return (0,
|
|
27
|
+
return (0, chai_config_spec_1.expect)((0, Manifest_1.parseManifest)('')).to.eql(new Map());
|
|
28
28
|
});
|
|
29
29
|
it('retains whitespace for keys and values', () => {
|
|
30
|
-
(0,
|
|
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
31
|
' leading interum and trailing key spaces ': ' value '
|
|
32
32
|
});
|
|
33
33
|
});
|
|
34
34
|
it('does not convert values to primitives', () => {
|
|
35
|
-
(0,
|
|
35
|
+
(0, chai_config_spec_1.expect)((0, testHelpers_spec_1.mapToObject)((0, Manifest_1.parseManifest)((0, testHelpers_spec_1.trim) `
|
|
36
36
|
name=bob
|
|
37
37
|
age=12
|
|
38
38
|
enabled=true
|
|
@@ -47,7 +47,7 @@ describe('manifest support', () => {
|
|
|
47
47
|
});
|
|
48
48
|
describe('bs_const parser', () => {
|
|
49
49
|
function test(manifest, expected) {
|
|
50
|
-
(0,
|
|
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
51
|
}
|
|
52
52
|
it('returns an empty map if \'bs_const\' isn\'t found', () => {
|
|
53
53
|
test('', new Map());
|
|
@@ -60,7 +60,7 @@ describe('manifest support', () => {
|
|
|
60
60
|
});
|
|
61
61
|
it('trims whitespace from keys and values', () => {
|
|
62
62
|
let manifest = new Map([['bs_const', ' key = true ']]);
|
|
63
|
-
(0,
|
|
63
|
+
(0, chai_config_spec_1.expect)((0, Manifest_1.getBsConst)(manifest)).to.eql(new Map([['key', true]]));
|
|
64
64
|
});
|
|
65
65
|
it('rejects non-boolean values', () => {
|
|
66
66
|
const manifest = new Map([['bs_const', 'string=word']]);
|
|
@@ -70,7 +70,7 @@ describe('manifest support', () => {
|
|
|
70
70
|
});
|
|
71
71
|
it('allows case-insensitive booleans', () => {
|
|
72
72
|
let manifest = new Map([['bs_const', 'foo=true;bar=FalSE']]);
|
|
73
|
-
(0,
|
|
73
|
+
(0, chai_config_spec_1.expect)((0, Manifest_1.getBsConst)(manifest)).to.eql(new Map([
|
|
74
74
|
['foo', true],
|
|
75
75
|
['bar', false]
|
|
76
76
|
]));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Manifest.spec.js","sourceRoot":"","sources":["../../src/preprocessor/Manifest.spec.ts"],"names":[],"mappings":";;AAAA,8BAA8B;AAC9B
|
|
1
|
+
{"version":3,"file":"Manifest.spec.js","sourceRoot":"","sources":["../../src/preprocessor/Manifest.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,8 +13,8 @@ export declare class Preprocessor implements CC.Visitor {
|
|
|
13
13
|
processedTokens: Token[];
|
|
14
14
|
/**
|
|
15
15
|
* Filters the tokens contained within a set of chunks based on a set of constants.
|
|
16
|
-
* @param
|
|
17
|
-
* @param
|
|
16
|
+
* @param tokens the tokens
|
|
17
|
+
* @param manifest a manifest used to extract bs_const properties from
|
|
18
18
|
* @returns an object containing an array of `errors` and an array of `processedTokens` filtered by conditional
|
|
19
19
|
* compilation directives included within
|
|
20
20
|
*/
|
|
@@ -52,9 +52,8 @@ export declare class Preprocessor implements CC.Visitor {
|
|
|
52
52
|
*/
|
|
53
53
|
visitIf(chunk: CC.HashIfStatement): Token[];
|
|
54
54
|
/**
|
|
55
|
-
* Resolves a token to a JavaScript boolean value, or
|
|
56
|
-
* @param token the token to resolve to either `true`, `false`, or
|
|
57
|
-
* @throws if attempting to reference an undefined `#const` or if `token` is neither `true`, `false`, nor an identifier.
|
|
55
|
+
* Resolves a token to a JavaScript boolean value, or logs a diagnostic error.
|
|
56
|
+
* @param token the token to resolve to either `true`, `false`, or `undefined`
|
|
58
57
|
*/
|
|
59
|
-
evaluateCondition(token: Token): boolean;
|
|
58
|
+
evaluateCondition(token: Token): boolean | undefined;
|
|
60
59
|
}
|
|
@@ -14,11 +14,12 @@ class Preprocessor {
|
|
|
14
14
|
this.constants = new Map();
|
|
15
15
|
/** The set of errors encountered when pre-processing conditional compilation directives. */
|
|
16
16
|
this.diagnostics = [];
|
|
17
|
+
this.processedTokens = [];
|
|
17
18
|
}
|
|
18
19
|
/**
|
|
19
20
|
* Filters the tokens contained within a set of chunks based on a set of constants.
|
|
20
|
-
* @param
|
|
21
|
-
* @param
|
|
21
|
+
* @param tokens the tokens
|
|
22
|
+
* @param manifest a manifest used to extract bs_const properties from
|
|
22
23
|
* @returns an object containing an array of `errors` and an array of `processedTokens` filtered by conditional
|
|
23
24
|
* compilation directives included within
|
|
24
25
|
*/
|
|
@@ -133,9 +134,8 @@ class Preprocessor {
|
|
|
133
134
|
return [];
|
|
134
135
|
}
|
|
135
136
|
/**
|
|
136
|
-
* Resolves a token to a JavaScript boolean value, or
|
|
137
|
-
* @param token the token to resolve to either `true`, `false`, or
|
|
138
|
-
* @throws if attempting to reference an undefined `#const` or if `token` is neither `true`, `false`, nor an identifier.
|
|
137
|
+
* Resolves a token to a JavaScript boolean value, or logs a diagnostic error.
|
|
138
|
+
* @param token the token to resolve to either `true`, `false`, or `undefined`
|
|
139
139
|
*/
|
|
140
140
|
evaluateCondition(token) {
|
|
141
141
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Preprocessor.js","sourceRoot":"","sources":["../../src/preprocessor/Preprocessor.ts"],"names":[],"mappings":";;;AACA,kDAA+C;AAG/C,8DAA2D;AAC3D,6DAA0D;AAE1D,yCAAwC;AAExC;;;GAGG;AACH,MAAa,YAAY;IAAzB;QACY,cAAS,GAAG,IAAI,GAAG,EAAmB,CAAC;QAE/C,4FAA4F;QACrF,gBAAW,GAAG,EAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"Preprocessor.js","sourceRoot":"","sources":["../../src/preprocessor/Preprocessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ const Parser_spec_1 = require("../parser/tests/Parser.spec");
|
|
|
4
4
|
const TokenKind_1 = require("../lexer/TokenKind");
|
|
5
5
|
const Preprocessor_1 = require("./Preprocessor");
|
|
6
6
|
const Chunk_1 = require("./Chunk");
|
|
7
|
-
const
|
|
7
|
+
const chai_config_spec_1 = require("../chai-config.spec");
|
|
8
8
|
const sinon_1 = require("sinon");
|
|
9
9
|
let sinon = (0, sinon_1.createSandbox)();
|
|
10
10
|
describe('preprocessor', () => {
|
|
@@ -20,40 +20,40 @@ describe('preprocessor', () => {
|
|
|
20
20
|
Parser_spec_1.EOF
|
|
21
21
|
];
|
|
22
22
|
let { processedTokens } = new Preprocessor_1.Preprocessor().filter([new Chunk_1.BrightScriptChunk(unprocessed)]);
|
|
23
|
-
(0,
|
|
23
|
+
(0, chai_config_spec_1.expect)(processedTokens).to.eql(unprocessed);
|
|
24
24
|
});
|
|
25
25
|
describe('#const', () => {
|
|
26
26
|
it('removes #const declarations from output', () => {
|
|
27
27
|
let { processedTokens } = new Preprocessor_1.Preprocessor().filter([
|
|
28
28
|
new Chunk_1.DeclarationChunk((0, Parser_spec_1.identifier)('lorem'), (0, Parser_spec_1.token)(TokenKind_1.TokenKind.False, 'false'))
|
|
29
29
|
]);
|
|
30
|
-
(0,
|
|
30
|
+
(0, chai_config_spec_1.expect)(processedTokens).to.eql([]);
|
|
31
31
|
});
|
|
32
32
|
describe('values', () => {
|
|
33
33
|
it('allows `true`', () => {
|
|
34
|
-
(0,
|
|
34
|
+
(0, chai_config_spec_1.expect)(() => new Preprocessor_1.Preprocessor().filter([
|
|
35
35
|
new Chunk_1.DeclarationChunk((0, Parser_spec_1.identifier)('lorem'), (0, Parser_spec_1.token)(TokenKind_1.TokenKind.True, 'true'))
|
|
36
36
|
])).not.to.throw;
|
|
37
37
|
});
|
|
38
38
|
it('allows `false`', () => {
|
|
39
|
-
(0,
|
|
39
|
+
(0, chai_config_spec_1.expect)(() => new Preprocessor_1.Preprocessor().filter([
|
|
40
40
|
new Chunk_1.DeclarationChunk((0, Parser_spec_1.identifier)('ipsum'), (0, Parser_spec_1.token)(TokenKind_1.TokenKind.False, 'false'))
|
|
41
41
|
])).not.to.throw;
|
|
42
42
|
});
|
|
43
43
|
it('allows identifiers', () => {
|
|
44
|
-
(0,
|
|
44
|
+
(0, chai_config_spec_1.expect)(() => new Preprocessor_1.Preprocessor().filter([
|
|
45
45
|
// 'ipsum' must be defined before it's referenced
|
|
46
46
|
new Chunk_1.DeclarationChunk((0, Parser_spec_1.identifier)('ipsum'), (0, Parser_spec_1.token)(TokenKind_1.TokenKind.False, 'false')),
|
|
47
47
|
new Chunk_1.DeclarationChunk((0, Parser_spec_1.identifier)('dolor'), (0, Parser_spec_1.token)(TokenKind_1.TokenKind.True, 'true'))
|
|
48
48
|
])).not.to.throw;
|
|
49
49
|
});
|
|
50
50
|
it('disallows strings', () => {
|
|
51
|
-
(0,
|
|
51
|
+
(0, chai_config_spec_1.expect)(() => new Preprocessor_1.Preprocessor().filter([
|
|
52
52
|
new Chunk_1.DeclarationChunk((0, Parser_spec_1.identifier)('sit'), (0, Parser_spec_1.token)(TokenKind_1.TokenKind.String, 'good boy!'))
|
|
53
53
|
])).to.throw; //('#const declarations can only have');
|
|
54
54
|
});
|
|
55
55
|
it('disallows re-declaration of values', () => {
|
|
56
|
-
(0,
|
|
56
|
+
(0, chai_config_spec_1.expect)(() => new Preprocessor_1.Preprocessor().filter([
|
|
57
57
|
new Chunk_1.DeclarationChunk((0, Parser_spec_1.identifier)('lorem'), (0, Parser_spec_1.token)(TokenKind_1.TokenKind.False, 'false')),
|
|
58
58
|
new Chunk_1.DeclarationChunk((0, Parser_spec_1.identifier)('lorem'), (0, Parser_spec_1.token)(TokenKind_1.TokenKind.True, 'true'))
|
|
59
59
|
])).to.throw;
|
|
@@ -62,12 +62,12 @@ describe('preprocessor', () => {
|
|
|
62
62
|
});
|
|
63
63
|
describe('#error', () => {
|
|
64
64
|
it('throws error when #error directives encountered', () => {
|
|
65
|
-
(0,
|
|
65
|
+
(0, chai_config_spec_1.expect)(() => new Preprocessor_1.Preprocessor().filter([
|
|
66
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
67
|
])).to.throw;
|
|
68
68
|
});
|
|
69
69
|
it('doesn\'t throw when branched around', () => {
|
|
70
|
-
(0,
|
|
70
|
+
(0, chai_config_spec_1.expect)(() => new Preprocessor_1.Preprocessor().filter([
|
|
71
71
|
new Chunk_1.HashIfStatement((0, Parser_spec_1.token)(TokenKind_1.TokenKind.False, 'false'), [
|
|
72
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
73
|
], [] // no else-ifs necessary
|
|
@@ -96,9 +96,9 @@ describe('preprocessor', () => {
|
|
|
96
96
|
}
|
|
97
97
|
], [elseChunk])
|
|
98
98
|
]);
|
|
99
|
-
(0,
|
|
100
|
-
(0,
|
|
101
|
-
(0,
|
|
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
102
|
});
|
|
103
103
|
it('enters #else if branch', () => {
|
|
104
104
|
new Preprocessor_1.Preprocessor().filter([
|
|
@@ -109,9 +109,9 @@ describe('preprocessor', () => {
|
|
|
109
109
|
}
|
|
110
110
|
], [elseChunk])
|
|
111
111
|
]);
|
|
112
|
-
(0,
|
|
113
|
-
(0,
|
|
114
|
-
(0,
|
|
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
115
|
});
|
|
116
116
|
it('enters #else branch', () => {
|
|
117
117
|
new Preprocessor_1.Preprocessor().filter([
|
|
@@ -122,9 +122,9 @@ describe('preprocessor', () => {
|
|
|
122
122
|
}
|
|
123
123
|
], [elseChunk])
|
|
124
124
|
]);
|
|
125
|
-
(0,
|
|
126
|
-
(0,
|
|
127
|
-
(0,
|
|
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
128
|
});
|
|
129
129
|
it('enters no branches if none pass', () => {
|
|
130
130
|
new Preprocessor_1.Preprocessor().filter([
|
|
@@ -132,9 +132,9 @@ describe('preprocessor', () => {
|
|
|
132
132
|
// NOTE: no 'else" chunk!
|
|
133
133
|
)
|
|
134
134
|
]);
|
|
135
|
-
(0,
|
|
136
|
-
(0,
|
|
137
|
-
(0,
|
|
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
138
|
});
|
|
139
139
|
it('uses #const values to determine truth', () => {
|
|
140
140
|
new Preprocessor_1.Preprocessor().filter([
|
|
@@ -143,9 +143,9 @@ describe('preprocessor', () => {
|
|
|
143
143
|
// NOTE: no 'else" chunk!
|
|
144
144
|
)
|
|
145
145
|
]);
|
|
146
|
-
(0,
|
|
147
|
-
(0,
|
|
148
|
-
(0,
|
|
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
149
|
});
|
|
150
150
|
});
|
|
151
151
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Preprocessor.spec.js","sourceRoot":"","sources":["../../src/preprocessor/Preprocessor.spec.ts"],"names":[],"mappings":";;AAAA,6DAAqE;AACrE,kDAA+C;AAC/C,iDAA8C;AAC9C,mCAA2F;AAC3F
|
|
1
|
+
{"version":3,"file":"Preprocessor.spec.js","sourceRoot":"","sources":["../../src/preprocessor/Preprocessor.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ export declare class PreprocessorParser {
|
|
|
14
14
|
* Parses an array of tokens into an array of "chunks" - conditional compilation directives and their
|
|
15
15
|
* associated BrightScript.
|
|
16
16
|
*
|
|
17
|
-
* @param
|
|
17
|
+
* @param tokens the array of tokens to parse
|
|
18
18
|
*/
|
|
19
19
|
parse(tokens: Token[]): this;
|
|
20
20
|
static parse(tokens: Token[]): PreprocessorParser;
|
|
@@ -7,13 +7,19 @@ const DiagnosticMessages_1 = require("../DiagnosticMessages");
|
|
|
7
7
|
/** * Parses `Tokens` into chunks of tokens, excluding conditional compilation directives. */
|
|
8
8
|
class PreprocessorParser {
|
|
9
9
|
constructor() {
|
|
10
|
+
this.diagnostics = [];
|
|
11
|
+
this.tokens = [];
|
|
10
12
|
this.current = 0;
|
|
13
|
+
/**
|
|
14
|
+
* an array of chunks (conditional compilation directives and the associated BrightScript)
|
|
15
|
+
*/
|
|
16
|
+
this.chunks = [];
|
|
11
17
|
}
|
|
12
18
|
/**
|
|
13
19
|
* Parses an array of tokens into an array of "chunks" - conditional compilation directives and their
|
|
14
20
|
* associated BrightScript.
|
|
15
21
|
*
|
|
16
|
-
* @param
|
|
22
|
+
* @param tokens the array of tokens to parse
|
|
17
23
|
*/
|
|
18
24
|
parse(tokens) {
|
|
19
25
|
this.tokens = tokens;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PreprocessorParser.js","sourceRoot":"","sources":["../../src/preprocessor/PreprocessorParser.ts"],"names":[],"mappings":";;;AACA,kDAAsI;AACtI,8BAA8B;AAG9B,8DAA2D;AAE3D,6FAA6F;AAC7F,MAAa,kBAAkB;IAA/B;
|
|
1
|
+
{"version":3,"file":"PreprocessorParser.js","sourceRoot":"","sources":["../../src/preprocessor/PreprocessorParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const PreprocessorParser_1 = require("./PreprocessorParser");
|
|
4
4
|
const Parser_spec_1 = require("../parser/tests/Parser.spec");
|
|
5
5
|
const TokenKind_1 = require("../lexer/TokenKind");
|
|
6
|
-
const
|
|
6
|
+
const chai_config_spec_1 = require("../chai-config.spec");
|
|
7
7
|
describe('preprocessor parser', () => {
|
|
8
8
|
let parser;
|
|
9
9
|
beforeEach(() => {
|
|
@@ -17,8 +17,8 @@ describe('preprocessor parser', () => {
|
|
|
17
17
|
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Newline, '\n'),
|
|
18
18
|
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Eof, '\0')
|
|
19
19
|
]);
|
|
20
|
-
(0,
|
|
21
|
-
(0,
|
|
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
22
|
TokenKind_1.TokenKind.Identifier,
|
|
23
23
|
TokenKind_1.TokenKind.LeftParen,
|
|
24
24
|
TokenKind_1.TokenKind.RightParen,
|
|
@@ -34,8 +34,8 @@ describe('preprocessor parser', () => {
|
|
|
34
34
|
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Newline, '\n'),
|
|
35
35
|
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Eof, '\0')
|
|
36
36
|
]);
|
|
37
|
-
(0,
|
|
38
|
-
(0,
|
|
37
|
+
(0, chai_config_spec_1.expect)(diagnostics).to.be.empty;
|
|
38
|
+
(0, chai_config_spec_1.expect)(chunks).to.exist;
|
|
39
39
|
});
|
|
40
40
|
it('parses #error', () => {
|
|
41
41
|
let { chunks, diagnostics } = parser.parse([
|
|
@@ -43,8 +43,8 @@ describe('preprocessor parser', () => {
|
|
|
43
43
|
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.HashErrorMessage, 'I\'m an error message!'),
|
|
44
44
|
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Eof, '\0')
|
|
45
45
|
]);
|
|
46
|
-
(0,
|
|
47
|
-
(0,
|
|
46
|
+
(0, chai_config_spec_1.expect)(diagnostics).to.eql([]);
|
|
47
|
+
(0, chai_config_spec_1.expect)(chunks).to.exist;
|
|
48
48
|
});
|
|
49
49
|
describe('conditionals', () => {
|
|
50
50
|
it('#if only', () => {
|
|
@@ -59,8 +59,8 @@ describe('preprocessor parser', () => {
|
|
|
59
59
|
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.HashEndIf, '#endif'),
|
|
60
60
|
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Eof, '\0')
|
|
61
61
|
]);
|
|
62
|
-
(0,
|
|
63
|
-
(0,
|
|
62
|
+
(0, chai_config_spec_1.expect)(diagnostics).to.eql([]);
|
|
63
|
+
(0, chai_config_spec_1.expect)(chunks).to.exist;
|
|
64
64
|
});
|
|
65
65
|
it('#if and #else', () => {
|
|
66
66
|
let { chunks, diagnostics } = parser.parse([
|
|
@@ -80,8 +80,8 @@ describe('preprocessor parser', () => {
|
|
|
80
80
|
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.HashEndIf, '#endif'),
|
|
81
81
|
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Eof, '\0')
|
|
82
82
|
]);
|
|
83
|
-
(0,
|
|
84
|
-
(0,
|
|
83
|
+
(0, chai_config_spec_1.expect)(diagnostics).to.eql([]);
|
|
84
|
+
(0, chai_config_spec_1.expect)(chunks).to.exist;
|
|
85
85
|
});
|
|
86
86
|
it('#if #else if and #else', () => {
|
|
87
87
|
let { chunks, diagnostics } = parser.parse([
|
|
@@ -108,8 +108,8 @@ describe('preprocessor parser', () => {
|
|
|
108
108
|
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.HashEndIf, '#endif'),
|
|
109
109
|
(0, Parser_spec_1.token)(TokenKind_1.TokenKind.Eof, '\0')
|
|
110
110
|
]);
|
|
111
|
-
(0,
|
|
112
|
-
(0,
|
|
111
|
+
(0, chai_config_spec_1.expect)(diagnostics).to.eql([]);
|
|
112
|
+
(0, chai_config_spec_1.expect)(chunks).to.exist;
|
|
113
113
|
});
|
|
114
114
|
});
|
|
115
115
|
});
|