brighterscript 1.0.0-alpha.5 → 1.0.0-alpha.51
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 +79 -138
- package/bsconfig.schema.json +196 -5
- 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 +45 -0
- package/dist/AstValidationSegmenter.js +322 -0
- package/dist/AstValidationSegmenter.js.map +1 -0
- package/dist/BsConfig.d.ts +161 -43
- package/dist/BusyStatusTracker.d.ts +61 -0
- package/dist/BusyStatusTracker.js +148 -0
- package/dist/BusyStatusTracker.js.map +1 -0
- package/dist/Cache.d.ts +3 -8
- package/dist/Cache.js +9 -14
- 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 +29 -4
- package/dist/CodeActionUtil.js +22 -5
- package/dist/CodeActionUtil.js.map +1 -1
- package/dist/CommentFlagProcessor.d.ts +20 -15
- package/dist/CommentFlagProcessor.js +143 -58
- package/dist/CommentFlagProcessor.js.map +1 -1
- package/dist/CrossScopeValidator.d.ts +68 -0
- package/dist/CrossScopeValidator.js +650 -0
- package/dist/CrossScopeValidator.js.map +1 -0
- package/dist/DependencyGraph.d.ts +8 -3
- package/dist/DependencyGraph.js +49 -16
- package/dist/DependencyGraph.js.map +1 -1
- package/dist/DiagnosticCollection.d.ts +21 -5
- package/dist/DiagnosticCollection.js +77 -24
- package/dist/DiagnosticCollection.js.map +1 -1
- package/dist/DiagnosticFilterer.d.ts +27 -6
- package/dist/DiagnosticFilterer.js +273 -60
- package/dist/DiagnosticFilterer.js.map +1 -1
- package/dist/DiagnosticManager.d.ts +83 -0
- package/dist/DiagnosticManager.js +422 -0
- package/dist/DiagnosticManager.js.map +1 -0
- package/dist/DiagnosticMessages.d.ts +602 -196
- package/dist/DiagnosticMessages.js +926 -342
- package/dist/DiagnosticMessages.js.map +1 -1
- package/dist/DiagnosticSeverityAdjuster.d.ts +7 -0
- package/dist/DiagnosticSeverityAdjuster.js +45 -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 +136 -104
- package/dist/LanguageServer.js +577 -741
- package/dist/LanguageServer.js.map +1 -1
- package/dist/Logger.d.ts +17 -13
- package/dist/Logger.js +64 -34
- package/dist/Logger.js.map +1 -1
- package/dist/PluginInterface.d.ts +32 -10
- package/dist/PluginInterface.js +117 -7
- package/dist/PluginInterface.js.map +1 -1
- package/dist/Program.d.ts +302 -98
- package/dist/Program.js +1613 -726
- package/dist/Program.js.map +1 -1
- package/dist/ProgramBuilder.d.ts +39 -22
- package/dist/ProgramBuilder.js +245 -179
- package/dist/ProgramBuilder.js.map +1 -1
- package/dist/Scope.d.ts +227 -106
- package/dist/Scope.js +609 -557
- package/dist/Scope.js.map +1 -1
- package/dist/ScopeNamespaceLookup.d.ts +73 -0
- package/dist/ScopeNamespaceLookup.js +242 -0
- package/dist/ScopeNamespaceLookup.js.map +1 -0
- package/dist/SemanticTokenUtils.js +5 -1
- package/dist/SemanticTokenUtils.js.map +1 -1
- package/dist/Stopwatch.d.ts +4 -0
- package/dist/Stopwatch.js +8 -1
- package/dist/Stopwatch.js.map +1 -1
- package/dist/SymbolTable.d.ts +145 -26
- package/dist/SymbolTable.js +575 -64
- package/dist/SymbolTable.js.map +1 -1
- package/dist/SymbolTypeFlag.d.ts +9 -0
- package/dist/SymbolTypeFlag.js +14 -0
- package/dist/SymbolTypeFlag.js.map +1 -0
- 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 +5 -15
- package/dist/XmlScope.js +34 -90
- package/dist/XmlScope.js.map +1 -1
- package/dist/astUtils/CachedLookups.d.ts +50 -0
- package/dist/astUtils/CachedLookups.js +337 -0
- package/dist/astUtils/CachedLookups.js.map +1 -0
- package/dist/astUtils/Editor.d.ts +69 -0
- package/dist/astUtils/Editor.js +245 -0
- package/dist/astUtils/Editor.js.map +1 -0
- package/dist/astUtils/creators.d.ts +54 -19
- package/dist/astUtils/creators.js +242 -42
- package/dist/astUtils/creators.js.map +1 -1
- package/dist/astUtils/reflection.d.ts +199 -85
- package/dist/astUtils/reflection.js +518 -145
- package/dist/astUtils/reflection.js.map +1 -1
- package/dist/astUtils/stackedVisitor.js.map +1 -1
- package/dist/astUtils/visitors.d.ts +117 -53
- package/dist/astUtils/visitors.js +95 -15
- package/dist/astUtils/visitors.js.map +1 -1
- package/dist/astUtils/xml.d.ts +9 -8
- package/dist/astUtils/xml.js +12 -7
- package/dist/astUtils/xml.js.map +1 -1
- package/dist/bscPlugin/BscPlugin.d.ts +26 -4
- package/dist/bscPlugin/BscPlugin.js +96 -4
- package/dist/bscPlugin/BscPlugin.js.map +1 -1
- package/dist/bscPlugin/CallExpressionInfo.d.ts +36 -0
- package/dist/bscPlugin/CallExpressionInfo.js +142 -0
- package/dist/bscPlugin/CallExpressionInfo.js.map +1 -0
- package/dist/bscPlugin/FileWriter.d.ts +19 -0
- package/dist/bscPlugin/FileWriter.js +79 -0
- package/dist/bscPlugin/FileWriter.js.map +1 -0
- package/dist/bscPlugin/SignatureHelpUtil.d.ts +10 -0
- package/dist/bscPlugin/SignatureHelpUtil.js +137 -0
- package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -0
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.d.ts +109 -7
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +676 -26
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
- package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.d.ts +17 -0
- package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.js +66 -0
- package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.js.map +1 -0
- package/dist/bscPlugin/codeActions/codeActionHelpers.d.ts +18 -0
- package/dist/bscPlugin/codeActions/codeActionHelpers.js +31 -0
- package/dist/bscPlugin/codeActions/codeActionHelpers.js.map +1 -0
- package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +65 -0
- package/dist/bscPlugin/completions/CompletionsProcessor.js +633 -0
- package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -0
- package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
- package/dist/bscPlugin/definition/DefinitionProvider.js +220 -0
- package/dist/bscPlugin/definition/DefinitionProvider.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 +18 -0
- package/dist/bscPlugin/hover/HoverProcessor.js +238 -0
- package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -0
- package/dist/bscPlugin/references/ReferencesProvider.d.ts +12 -0
- package/dist/bscPlugin/references/ReferencesProvider.js +57 -0
- package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -0
- package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.d.ts +7 -0
- package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.js +77 -0
- package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.js.map +1 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +14 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +164 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -0
- package/dist/bscPlugin/serialize/BslibManager.d.ts +12 -0
- package/dist/bscPlugin/serialize/BslibManager.js +46 -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 +80 -0
- package/dist/bscPlugin/serialize/FileSerializer.js.map +1 -0
- package/dist/bscPlugin/symbols/DocumentSymbolProcessor.d.ts +7 -0
- package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js +22 -0
- package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js.map +1 -0
- package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.d.ts +7 -0
- package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js +26 -0
- package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js.map +1 -0
- package/dist/bscPlugin/symbols/symbolUtils.d.ts +5 -0
- package/dist/bscPlugin/symbols/symbolUtils.js +141 -0
- package/dist/bscPlugin/symbols/symbolUtils.js.map +1 -0
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.d.ts +34 -0
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +504 -0
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.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/BrsFileAfterValidator.d.ts +7 -0
- package/dist/bscPlugin/validation/BrsFileAfterValidator.js +18 -0
- package/dist/bscPlugin/validation/BrsFileAfterValidator.js.map +1 -0
- package/dist/bscPlugin/validation/BrsFileValidator.d.ts +51 -0
- package/dist/bscPlugin/validation/BrsFileValidator.js +714 -0
- package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -0
- package/dist/bscPlugin/validation/ProgramValidator.d.ts +11 -0
- package/dist/bscPlugin/validation/ProgramValidator.js +33 -0
- package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -0
- package/dist/bscPlugin/validation/ScopeValidator.d.ts +158 -0
- package/dist/bscPlugin/validation/ScopeValidator.js +1481 -0
- package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -0
- package/dist/bscPlugin/validation/XmlFileValidator.d.ts +8 -0
- package/dist/bscPlugin/validation/XmlFileValidator.js +50 -0
- package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -0
- package/dist/cli.js +140 -28
- package/dist/cli.js.map +1 -1
- package/dist/common/Sequencer.d.ts +53 -0
- package/dist/common/Sequencer.js +233 -0
- package/dist/common/Sequencer.js.map +1 -0
- package/dist/deferred.d.ts +5 -3
- package/dist/deferred.js +10 -0
- package/dist/deferred.js.map +1 -1
- package/dist/diagnosticUtils.d.ts +61 -4
- package/dist/diagnosticUtils.js +285 -25
- package/dist/diagnosticUtils.js.map +1 -1
- package/dist/examples/plugins/removePrint.d.ts +2 -2
- package/dist/examples/plugins/removePrint.js +8 -12
- package/dist/examples/plugins/removePrint.js.map +1 -1
- package/dist/files/AssetFile.d.ts +24 -0
- package/dist/files/AssetFile.js +25 -0
- package/dist/files/AssetFile.js.map +1 -0
- package/dist/files/BrsFile.d.ts +161 -87
- package/dist/files/BrsFile.js +919 -936
- package/dist/files/BrsFile.js.map +1 -1
- package/dist/files/BscFile.d.ts +102 -0
- package/dist/files/BscFile.js +15 -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 +21 -0
- package/dist/files/LazyFileData.js +54 -0
- package/dist/files/LazyFileData.js.map +1 -0
- package/dist/files/XmlFile.d.ts +80 -41
- package/dist/files/XmlFile.js +162 -137
- package/dist/files/XmlFile.js.map +1 -1
- package/dist/globalCallables.d.ts +3 -1
- package/dist/globalCallables.js +424 -184
- package/dist/globalCallables.js.map +1 -1
- package/dist/index.d.ts +32 -4
- package/dist/index.js +54 -7
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +987 -125
- package/dist/interfaces.js +21 -0
- package/dist/interfaces.js.map +1 -1
- package/dist/lexer/Lexer.d.ts +51 -12
- package/dist/lexer/Lexer.js +214 -65
- package/dist/lexer/Lexer.js.map +1 -1
- package/dist/lexer/Token.d.ts +27 -11
- package/dist/lexer/Token.js +10 -2
- package/dist/lexer/Token.js.map +1 -1
- package/dist/lexer/TokenKind.d.ts +48 -2
- package/dist/lexer/TokenKind.js +167 -10
- package/dist/lexer/TokenKind.js.map +1 -1
- package/dist/logging.d.ts +14 -0
- package/dist/logging.js +29 -0
- package/dist/logging.js.map +1 -0
- package/dist/lsp/ActionQueue.d.ts +35 -0
- package/dist/lsp/ActionQueue.js +115 -0
- package/dist/lsp/ActionQueue.js.map +1 -0
- package/dist/lsp/DocumentManager.d.ts +63 -0
- package/dist/lsp/DocumentManager.js +122 -0
- package/dist/lsp/DocumentManager.js.map +1 -0
- package/dist/lsp/LspProject.d.ts +287 -0
- package/dist/lsp/LspProject.js +3 -0
- package/dist/lsp/LspProject.js.map +1 -0
- package/dist/lsp/PathFilterer.d.ts +75 -0
- package/dist/lsp/PathFilterer.js +196 -0
- package/dist/lsp/PathFilterer.js.map +1 -0
- package/dist/lsp/Project.d.ts +200 -0
- package/dist/lsp/Project.js +562 -0
- package/dist/lsp/Project.js.map +1 -0
- package/dist/lsp/ProjectManager.d.ts +288 -0
- package/dist/lsp/ProjectManager.js +967 -0
- package/dist/lsp/ProjectManager.js.map +1 -0
- package/dist/lsp/ReaderWriterManager.d.ts +21 -0
- package/dist/lsp/ReaderWriterManager.js +60 -0
- package/dist/lsp/ReaderWriterManager.js.map +1 -0
- package/dist/lsp/worker/MessageHandler.d.ts +99 -0
- package/dist/lsp/worker/MessageHandler.js +138 -0
- package/dist/lsp/worker/MessageHandler.js.map +1 -0
- package/dist/lsp/worker/WorkerPool.d.ts +38 -0
- package/dist/lsp/worker/WorkerPool.js +78 -0
- package/dist/lsp/worker/WorkerPool.js.map +1 -0
- package/dist/lsp/worker/WorkerThreadProject.d.ts +168 -0
- package/dist/lsp/worker/WorkerThreadProject.js +205 -0
- package/dist/lsp/worker/WorkerThreadProject.js.map +1 -0
- package/dist/lsp/worker/WorkerThreadProjectRunner.d.ts +15 -0
- package/dist/lsp/worker/WorkerThreadProjectRunner.js +58 -0
- package/dist/lsp/worker/WorkerThreadProjectRunner.js.map +1 -0
- package/dist/lsp/worker/run.js +14 -0
- package/dist/lsp/worker/run.js.map +1 -0
- package/dist/parser/AstNode.d.ts +205 -0
- package/dist/parser/AstNode.js +305 -0
- package/dist/parser/AstNode.js.map +1 -0
- package/dist/parser/BrightScriptDocParser.d.ts +56 -0
- package/dist/parser/BrightScriptDocParser.js +294 -0
- package/dist/parser/BrightScriptDocParser.js.map +1 -0
- package/dist/parser/BrsTranspileState.d.ts +22 -3
- package/dist/parser/BrsTranspileState.js +19 -0
- package/dist/parser/BrsTranspileState.js.map +1 -1
- package/dist/parser/Expression.d.ts +601 -220
- package/dist/parser/Expression.js +1516 -502
- package/dist/parser/Expression.js.map +1 -1
- package/dist/parser/Parser.d.ts +137 -121
- package/dist/parser/Parser.js +1808 -982
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/SGParser.d.ts +30 -13
- package/dist/parser/SGParser.js +94 -56
- package/dist/parser/SGParser.js.map +1 -1
- package/dist/parser/SGTypes.d.ts +134 -46
- package/dist/parser/SGTypes.js +206 -115
- package/dist/parser/SGTypes.js.map +1 -1
- package/dist/parser/Statement.d.ts +854 -267
- package/dist/parser/Statement.js +2416 -621
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/TranspileState.d.ts +30 -14
- package/dist/parser/TranspileState.js +124 -27
- package/dist/parser/TranspileState.js.map +1 -1
- package/dist/preprocessor/Manifest.d.ts +6 -6
- package/dist/preprocessor/Manifest.js +17 -38
- package/dist/preprocessor/Manifest.js.map +1 -1
- package/dist/roku-types/data.json +20554 -0
- package/dist/roku-types/index.d.ts +5726 -0
- package/dist/roku-types/index.js +11 -0
- package/dist/roku-types/index.js.map +1 -0
- package/dist/types/ArrayType.d.ts +12 -5
- package/dist/types/ArrayType.js +95 -25
- package/dist/types/ArrayType.js.map +1 -1
- package/dist/types/AssociativeArrayType.d.ts +15 -0
- package/dist/types/AssociativeArrayType.js +64 -0
- package/dist/types/AssociativeArrayType.js.map +1 -0
- package/dist/types/BaseFunctionType.d.ts +10 -0
- package/dist/types/BaseFunctionType.js +26 -0
- package/dist/types/BaseFunctionType.js.map +1 -0
- package/dist/types/BooleanType.d.ts +9 -5
- package/dist/types/BooleanType.js +19 -8
- package/dist/types/BooleanType.js.map +1 -1
- package/dist/types/BscType.d.ts +41 -3
- package/dist/types/BscType.js +152 -0
- package/dist/types/BscType.js.map +1 -1
- package/dist/types/BscTypeKind.d.ts +28 -0
- package/dist/types/BscTypeKind.js +33 -0
- package/dist/types/BscTypeKind.js.map +1 -0
- package/dist/types/BuiltInInterfaceAdder.d.ts +28 -0
- package/dist/types/BuiltInInterfaceAdder.js +212 -0
- package/dist/types/BuiltInInterfaceAdder.js.map +1 -0
- package/dist/types/CallFuncableType.d.ts +24 -0
- package/dist/types/CallFuncableType.js +91 -0
- package/dist/types/CallFuncableType.js.map +1 -0
- package/dist/types/ClassType.d.ts +17 -0
- package/dist/types/ClassType.js +63 -0
- package/dist/types/ClassType.js.map +1 -0
- package/dist/types/ComponentType.d.ts +22 -0
- package/dist/types/ComponentType.js +110 -0
- package/dist/types/ComponentType.js.map +1 -0
- package/dist/types/DoubleType.d.ts +10 -5
- package/dist/types/DoubleType.js +21 -17
- package/dist/types/DoubleType.js.map +1 -1
- package/dist/types/DynamicType.d.ts +13 -5
- package/dist/types/DynamicType.js +26 -5
- package/dist/types/DynamicType.js.map +1 -1
- package/dist/types/EnumType.d.ts +42 -0
- package/dist/types/EnumType.js +101 -0
- package/dist/types/EnumType.js.map +1 -0
- package/dist/types/FloatType.d.ts +10 -5
- package/dist/types/FloatType.js +21 -17
- package/dist/types/FloatType.js.map +1 -1
- package/dist/types/FunctionType.d.ts +8 -22
- package/dist/types/FunctionType.js +25 -63
- package/dist/types/FunctionType.js.map +1 -1
- package/dist/types/InheritableType.d.ts +29 -0
- package/dist/types/InheritableType.js +173 -0
- package/dist/types/InheritableType.js.map +1 -0
- package/dist/types/InlineInterfaceType.d.ts +5 -0
- package/dist/types/InlineInterfaceType.js +17 -0
- package/dist/types/InlineInterfaceType.js.map +1 -0
- package/dist/types/IntegerType.d.ts +10 -5
- package/dist/types/IntegerType.js +21 -17
- package/dist/types/IntegerType.js.map +1 -1
- package/dist/types/InterfaceType.d.ts +14 -6
- package/dist/types/InterfaceType.js +30 -15
- package/dist/types/InterfaceType.js.map +1 -1
- package/dist/types/IntersectionType.d.ts +29 -0
- package/dist/types/IntersectionType.js +256 -0
- package/dist/types/IntersectionType.js.map +1 -0
- package/dist/types/InvalidType.d.ts +10 -5
- package/dist/types/InvalidType.js +21 -9
- package/dist/types/InvalidType.js.map +1 -1
- package/dist/types/LongIntegerType.d.ts +10 -5
- package/dist/types/LongIntegerType.js +21 -17
- package/dist/types/LongIntegerType.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 +12 -5
- package/dist/types/ObjectType.js +25 -8
- package/dist/types/ObjectType.js.map +1 -1
- package/dist/types/ReferenceType.d.ts +123 -0
- package/dist/types/ReferenceType.js +726 -0
- package/dist/types/ReferenceType.js.map +1 -0
- package/dist/types/StringType.d.ts +12 -5
- package/dist/types/StringType.js +23 -8
- package/dist/types/StringType.js.map +1 -1
- package/dist/types/TypeStatementType.d.ts +19 -0
- package/dist/types/TypeStatementType.js +56 -0
- package/dist/types/TypeStatementType.js.map +1 -0
- package/dist/types/TypedFunctionType.d.ts +34 -0
- package/dist/types/TypedFunctionType.js +157 -0
- package/dist/types/TypedFunctionType.js.map +1 -0
- package/dist/types/UninitializedType.d.ts +11 -6
- package/dist/types/UninitializedType.js +20 -11
- package/dist/types/UninitializedType.js.map +1 -1
- package/dist/types/UnionType.d.ts +27 -0
- package/dist/types/UnionType.js +196 -0
- package/dist/types/UnionType.js.map +1 -0
- package/dist/types/VoidType.d.ts +11 -5
- package/dist/types/VoidType.js +22 -8
- package/dist/types/VoidType.js.map +1 -1
- package/dist/types/helpers.d.ts +51 -0
- package/dist/types/helpers.js +329 -0
- package/dist/types/helpers.js.map +1 -0
- 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/types/roFunctionType.d.ts +11 -0
- package/dist/types/roFunctionType.js +37 -0
- package/dist/types/roFunctionType.js.map +1 -0
- package/dist/util.d.ts +325 -185
- package/dist/util.js +2135 -568
- package/dist/util.js.map +1 -1
- package/dist/validators/ClassValidator.d.ts +9 -15
- package/dist/validators/ClassValidator.js +93 -138
- package/dist/validators/ClassValidator.js.map +1 -1
- package/package.json +183 -138
- package/CHANGELOG.md +0 -1188
- package/dist/astUtils/creators.spec.js +0 -21
- package/dist/astUtils/creators.spec.js.map +0 -1
- package/dist/astUtils/index.d.ts +0 -7
- package/dist/astUtils/index.js +0 -26
- package/dist/astUtils/index.js.map +0 -1
- package/dist/astUtils/reflection.spec.d.ts +0 -1
- package/dist/astUtils/reflection.spec.js +0 -292
- 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 -854
- 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 -194
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +0 -1
- package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.d.ts +0 -7
- package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js +0 -63
- package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js.map +0 -1
- package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.d.ts +0 -1
- package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js +0 -45
- package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js.map +0 -1
- package/dist/files/BrsFile.Class.spec.d.ts +0 -1
- package/dist/files/BrsFile.Class.spec.js +0 -1081
- 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 -2524
- 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 -1065
- 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/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 -1101
- package/dist/lexer/Lexer.spec.js.map +0 -1
- package/dist/lexer/index.d.ts +0 -3
- package/dist/lexer/index.js +0 -17
- package/dist/lexer/index.js.map +0 -1
- package/dist/parser/Parser.Class.spec.d.ts +0 -1
- package/dist/parser/Parser.Class.spec.js +0 -390
- 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 -1216
- 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 -145
- package/dist/parser/SGParser.spec.js.map +0 -1
- package/dist/parser/SGTypes.spec.d.ts +0 -1
- package/dist/parser/SGTypes.spec.js +0 -351
- package/dist/parser/SGTypes.spec.js.map +0 -1
- package/dist/parser/Statement.spec.d.ts +0 -1
- package/dist/parser/Statement.spec.js +0 -94
- package/dist/parser/Statement.spec.js.map +0 -1
- package/dist/parser/index.d.ts +0 -3
- package/dist/parser/index.js +0 -16
- package/dist/parser/index.js.map +0 -1
- package/dist/parser/tests/Parser.spec.d.ts +0 -18
- package/dist/parser/tests/Parser.spec.js +0 -35
- 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 -161
- 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 -106
- 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 -551
- 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 -107
- 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 -254
- 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 -266
- 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 -134
- 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 -219
- 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 -201
- 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/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 -202
- 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 -323
- package/dist/parser/tests/expression/TernaryExpression.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/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/Function.spec.d.ts +0 -1
- package/dist/parser/tests/statement/Function.spec.js +0 -332
- 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 -50
- 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/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 -333
- 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 -181
- 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 -37
- 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 -140
- package/dist/parser/tests/statement/TryCatch.spec.js.map +0 -1
- package/dist/preprocessor/Chunk.d.ts +0 -82
- package/dist/preprocessor/Chunk.js +0 -77
- package/dist/preprocessor/Chunk.js.map +0 -1
- package/dist/preprocessor/Manifest.spec.d.ts +0 -0
- package/dist/preprocessor/Manifest.spec.js +0 -105
- package/dist/preprocessor/Manifest.spec.js.map +0 -1
- package/dist/preprocessor/Preprocessor.d.ts +0 -60
- package/dist/preprocessor/Preprocessor.js +0 -156
- package/dist/preprocessor/Preprocessor.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.d.ts +0 -61
- package/dist/preprocessor/PreprocessorParser.js +0 -194
- package/dist/preprocessor/PreprocessorParser.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/preprocessor/index.d.ts +0 -3
- package/dist/preprocessor/index.js +0 -16
- package/dist/preprocessor/index.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/CustomType.d.ts +0 -10
- package/dist/types/CustomType.js +0 -35
- package/dist/types/CustomType.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 -29
- 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/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/LazyType.d.ts +0 -15
- package/dist/types/LazyType.js +0 -32
- package/dist/types/LazyType.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
- /package/dist/{astUtils/creators.spec.d.ts → lsp/worker/run.d.ts} +0 -0
package/dist/parser/Parser.d.ts
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import type { Token
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import type {
|
|
6
|
-
import {
|
|
7
|
-
import type { Diagnostic, Position } from 'vscode-languageserver';
|
|
8
|
-
import { Logger } from '../Logger';
|
|
9
|
-
import type { BscType } from '../types/BscType';
|
|
10
|
-
import { SymbolTable } from '../SymbolTable';
|
|
1
|
+
import type { Token } from '../lexer/Token';
|
|
2
|
+
import { Body } from './Statement';
|
|
3
|
+
import { AnnotationExpression } from './Expression';
|
|
4
|
+
import type { Logger } from '../logging';
|
|
5
|
+
import type { Statement } from './AstNode';
|
|
6
|
+
import type { BsDiagnostic } from '../interfaces';
|
|
11
7
|
export declare class Parser {
|
|
8
|
+
/**
|
|
9
|
+
* The minimum Roku firmware version that added native support for multi-line expressions
|
|
10
|
+
* (line continuation) in plain BrightScript (`.brs`) files.
|
|
11
|
+
*/
|
|
12
|
+
private static readonly LINE_CONTINUATION_MIN_FIRMWARE_VERSION;
|
|
12
13
|
/**
|
|
13
14
|
* The array of tokens passed to `parse()`
|
|
14
15
|
*/
|
|
@@ -21,26 +22,15 @@ export declare class Parser {
|
|
|
21
22
|
* The list of statements for the parsed file
|
|
22
23
|
*/
|
|
23
24
|
ast: Body;
|
|
24
|
-
get
|
|
25
|
-
symbolTable: SymbolTable;
|
|
26
|
-
private get currentSymbolTable();
|
|
27
|
-
/**
|
|
28
|
-
* References for significant statements/expressions in the parser.
|
|
29
|
-
* These are initially extracted during parse-time to improve performance, but will also be dynamically regenerated if need be.
|
|
30
|
-
*
|
|
31
|
-
* If a plugin modifies the AST, then the plugin should call Parser#invalidateReferences() to force this object to refresh
|
|
32
|
-
*/
|
|
33
|
-
get references(): References;
|
|
34
|
-
private _references;
|
|
25
|
+
get eofToken(): Token;
|
|
35
26
|
/**
|
|
36
|
-
*
|
|
27
|
+
* The top-level symbol table for the body of this file.
|
|
37
28
|
*/
|
|
38
|
-
|
|
39
|
-
private addPropertyHints;
|
|
29
|
+
get symbolTable(): import("..").SymbolTable;
|
|
40
30
|
/**
|
|
41
31
|
* The list of diagnostics found during the parse process
|
|
42
32
|
*/
|
|
43
|
-
diagnostics:
|
|
33
|
+
diagnostics: BsDiagnostic[];
|
|
44
34
|
/**
|
|
45
35
|
* The depth of the calls to function declarations. Helps some checks know if they are at the root or not.
|
|
46
36
|
*/
|
|
@@ -49,19 +39,17 @@ export declare class Parser {
|
|
|
49
39
|
* The options used to parse the file
|
|
50
40
|
*/
|
|
51
41
|
options: ParseOptions;
|
|
52
|
-
private globalTerminators;
|
|
53
42
|
/**
|
|
54
|
-
*
|
|
55
|
-
*
|
|
43
|
+
* Whether line continuation after binary operators is allowed.
|
|
44
|
+
* Enabled in BrighterScript mode, or when minFirmwareVersion >= 15.3.
|
|
56
45
|
*/
|
|
57
|
-
private
|
|
58
|
-
private get currentNamespaceName();
|
|
46
|
+
private allowLineContinuation;
|
|
59
47
|
/**
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* by function later on.
|
|
48
|
+
* If line continuation is enabled, consumes all immediately following Newline tokens.
|
|
49
|
+
* Call this after matching a binary operator to allow the right-hand operand on the next line.
|
|
63
50
|
*/
|
|
64
|
-
private
|
|
51
|
+
private consumeNewlinesIfAllowed;
|
|
52
|
+
private globalTerminators;
|
|
65
53
|
/**
|
|
66
54
|
* A list of identifiers that are permitted to be used as local variables. We store this in a property because we augment the list in the constructor
|
|
67
55
|
* based on the parse mode
|
|
@@ -78,14 +66,13 @@ export declare class Parser {
|
|
|
78
66
|
/**
|
|
79
67
|
* Static wrapper around creating a new parser and parsing a list of tokens
|
|
80
68
|
*/
|
|
81
|
-
static parse(
|
|
82
|
-
static parse(tokens: Token[], options?: ParseOptions): Parser;
|
|
69
|
+
static parse(toParse: Token[] | string, options?: ParseOptions): Parser;
|
|
83
70
|
/**
|
|
84
71
|
* Parses an array of `Token`s into an abstract syntax tree
|
|
85
72
|
* @param toParse the array of tokens to parse. May not contain any whitespace tokens
|
|
86
73
|
* @returns the same instance of the parser which contains the diagnostics and statements
|
|
87
74
|
*/
|
|
88
|
-
parse(
|
|
75
|
+
parse(toParse: Token[] | string, options?: ParseOptions): this;
|
|
89
76
|
private logger;
|
|
90
77
|
private body;
|
|
91
78
|
private sanitizeParseOptions;
|
|
@@ -102,53 +89,86 @@ export declare class Parser {
|
|
|
102
89
|
*/
|
|
103
90
|
private lastDiagnosticAsError;
|
|
104
91
|
private declaration;
|
|
92
|
+
/**
|
|
93
|
+
* Try to get an identifier. If not found, add diagnostic and return undefined
|
|
94
|
+
*/
|
|
95
|
+
private tryIdentifier;
|
|
96
|
+
private identifier;
|
|
97
|
+
private enumMemberStatement;
|
|
98
|
+
/**
|
|
99
|
+
* Create a new InterfaceMethodStatement. This should only be called from within `interfaceDeclaration`
|
|
100
|
+
*/
|
|
101
|
+
private interfaceFieldStatement;
|
|
102
|
+
private consumeAsTokenAndTypeExpression;
|
|
103
|
+
/**
|
|
104
|
+
* Create a new InterfaceMethodStatement. This should only be called from within `interfaceDeclaration()`
|
|
105
|
+
*/
|
|
106
|
+
private interfaceMethodStatement;
|
|
107
|
+
private interfaceDeclaration;
|
|
108
|
+
private enumDeclaration;
|
|
105
109
|
/**
|
|
106
110
|
* A BrighterScript class declaration
|
|
107
111
|
*/
|
|
108
112
|
private classDeclaration;
|
|
109
|
-
private
|
|
113
|
+
private fieldDeclaration;
|
|
110
114
|
/**
|
|
111
115
|
* An array of CallExpression for the current function body
|
|
112
116
|
*/
|
|
113
117
|
private callExpressions;
|
|
114
118
|
private functionDeclaration;
|
|
115
|
-
private identifier;
|
|
116
119
|
private functionParameter;
|
|
117
120
|
private assignment;
|
|
121
|
+
private augmentedAssignment;
|
|
118
122
|
private checkLibrary;
|
|
123
|
+
private checkAlias;
|
|
124
|
+
private checkTypeStatement;
|
|
119
125
|
private statement;
|
|
120
126
|
private whileStatement;
|
|
121
|
-
private
|
|
127
|
+
private exitStatement;
|
|
122
128
|
private forStatement;
|
|
123
129
|
private forEachStatement;
|
|
124
|
-
private exitFor;
|
|
125
|
-
private commentStatement;
|
|
126
130
|
private namespaceStatement;
|
|
127
131
|
/**
|
|
128
132
|
* Get an expression with identifiers separated by periods. Useful for namespaces and class extends
|
|
129
133
|
*/
|
|
130
|
-
private
|
|
134
|
+
private identifyingExpression;
|
|
131
135
|
/**
|
|
132
136
|
* Add an 'unexpected token' diagnostic for any token found between current and the first stopToken found.
|
|
133
137
|
*/
|
|
134
138
|
private flagUntil;
|
|
135
139
|
/**
|
|
136
140
|
* Consume tokens until one of the `stopTokenKinds` is encountered
|
|
137
|
-
* @param tokenKinds
|
|
138
|
-
* @
|
|
141
|
+
* @param stopTokenKinds a list of tokenKinds where any tokenKind in this list will result in a match
|
|
142
|
+
* @returns - the list of tokens consumed, EXCLUDING the `stopTokenKind` (you can use `this.peek()` to see which one it was)
|
|
139
143
|
*/
|
|
140
144
|
private consumeUntil;
|
|
145
|
+
private constDeclaration;
|
|
141
146
|
private libraryStatement;
|
|
142
147
|
private importStatement;
|
|
148
|
+
private typecastStatement;
|
|
149
|
+
private aliasStatement;
|
|
150
|
+
private typeStatement;
|
|
143
151
|
private annotationExpression;
|
|
144
152
|
private ternaryExpression;
|
|
145
153
|
private nullCoalescingExpression;
|
|
154
|
+
private regexLiteralExpression;
|
|
146
155
|
private templateString;
|
|
147
156
|
private tryCatchStatement;
|
|
148
157
|
private throwStatement;
|
|
149
158
|
private dimStatement;
|
|
159
|
+
private nestedInlineConditionalCount;
|
|
150
160
|
private ifStatement;
|
|
151
161
|
private blockConditionalBranch;
|
|
162
|
+
private conditionalCompileStatement;
|
|
163
|
+
private blockConditionalCompileBranch;
|
|
164
|
+
/**
|
|
165
|
+
* Parses a block, looking for a specific terminating TokenKind to denote completion.
|
|
166
|
+
* Always looks for `#end if` or `#else`
|
|
167
|
+
*/
|
|
168
|
+
private conditionalCompileBlock;
|
|
169
|
+
private conditionalCompileConstStatement;
|
|
170
|
+
private conditionalCompileErrorStatement;
|
|
171
|
+
private ensureNewLine;
|
|
152
172
|
private ensureNewLineOrColon;
|
|
153
173
|
private ensureInline;
|
|
154
174
|
private inlineConditionalBranch;
|
|
@@ -165,6 +185,10 @@ export declare class Parser {
|
|
|
165
185
|
* @returns an AST representation of an `label` statement.
|
|
166
186
|
*/
|
|
167
187
|
private labelStatement;
|
|
188
|
+
/**
|
|
189
|
+
* Parses a `continue` statement
|
|
190
|
+
*/
|
|
191
|
+
private continueStatement;
|
|
168
192
|
/**
|
|
169
193
|
* Parses a `goto` statement
|
|
170
194
|
* @returns an AST representation of an `goto` statement.
|
|
@@ -211,33 +235,60 @@ export declare class Parser {
|
|
|
211
235
|
private call;
|
|
212
236
|
private finishCall;
|
|
213
237
|
/**
|
|
214
|
-
*
|
|
215
|
-
|
|
216
|
-
|
|
238
|
+
* Creates a TypeExpression, which wraps standard ASTNodes that represent a BscType
|
|
239
|
+
*/
|
|
240
|
+
private typeExpression;
|
|
241
|
+
/**
|
|
242
|
+
* Gets a single "part" of a type of a potential Union type
|
|
243
|
+
* Note: this does not NEED to be part of a union type, but the logic is the same
|
|
244
|
+
*
|
|
245
|
+
* @param changedTokens an array that is modified with any tokens that have been changed from their default kind to identifiers - eg. when a keyword is used as type
|
|
246
|
+
* @returns an expression that was successfully parsed
|
|
217
247
|
*/
|
|
218
|
-
private
|
|
248
|
+
private getTypeExpressionPart;
|
|
249
|
+
private typedFunctionTypeExpression;
|
|
250
|
+
private inlineInterface;
|
|
251
|
+
private inlineInterfaceMember;
|
|
219
252
|
private primary;
|
|
253
|
+
private arrayLiteral;
|
|
254
|
+
private aaLiteral;
|
|
220
255
|
/**
|
|
221
256
|
* Pop token if we encounter specified token
|
|
222
257
|
*/
|
|
223
258
|
private match;
|
|
224
259
|
/**
|
|
225
260
|
* Pop token if we encounter a token in the specified list
|
|
226
|
-
* @param tokenKinds
|
|
261
|
+
* @param tokenKinds a list of tokenKinds where any tokenKind in this list will result in a match
|
|
227
262
|
*/
|
|
228
263
|
private matchAny;
|
|
264
|
+
/**
|
|
265
|
+
* If the next series of tokens matches the given set of tokens, pop them all
|
|
266
|
+
* @param tokenKinds a list of tokenKinds used to match the next set of tokens
|
|
267
|
+
*/
|
|
268
|
+
private matchSequence;
|
|
229
269
|
/**
|
|
230
270
|
* Get next token matching a specified list, or fail with an error
|
|
231
271
|
*/
|
|
232
272
|
private consume;
|
|
273
|
+
/**
|
|
274
|
+
* Consume next token IF it matches the specified kind. Otherwise, do nothing and return undefined
|
|
275
|
+
*/
|
|
276
|
+
private consumeTokenIf;
|
|
277
|
+
private consumeToken;
|
|
233
278
|
/**
|
|
234
279
|
* Consume, or add a message if not found. But then continue and return undefined
|
|
235
280
|
*/
|
|
236
281
|
private tryConsume;
|
|
282
|
+
private tryConsumeToken;
|
|
237
283
|
private consumeStatementSeparators;
|
|
238
284
|
private advance;
|
|
239
285
|
private checkEndOfStatement;
|
|
240
286
|
private checkPrevious;
|
|
287
|
+
/**
|
|
288
|
+
* Check that the next token kind is the expected kind
|
|
289
|
+
* @param tokenKind the expected next kind
|
|
290
|
+
* @returns true if the next tokenKind is the expected value
|
|
291
|
+
*/
|
|
241
292
|
private check;
|
|
242
293
|
private checkAny;
|
|
243
294
|
private checkNext;
|
|
@@ -246,29 +297,25 @@ export declare class Parser {
|
|
|
246
297
|
private peekNext;
|
|
247
298
|
private peek;
|
|
248
299
|
private previous;
|
|
249
|
-
private synchronize;
|
|
250
300
|
/**
|
|
251
|
-
*
|
|
252
|
-
*
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
* Get the token closest to the position. if no token is found, the previous token is returned
|
|
257
|
-
* @param position
|
|
258
|
-
* @param tokens
|
|
301
|
+
* Sometimes we catch an error that is a diagnostic.
|
|
302
|
+
* If that's the case, we want to continue parsing.
|
|
303
|
+
* Otherwise, re-throw the error
|
|
304
|
+
*
|
|
305
|
+
* @param error error caught in a try/catch
|
|
259
306
|
*/
|
|
260
|
-
|
|
261
|
-
isPositionNextToTokenKind(position: Position, tokenKind: TokenKind): boolean;
|
|
262
|
-
getTokenBefore(currentToken: Token, tokenKind: TokenKind): Token;
|
|
263
|
-
tokenFollows(currentToken: Token, tokenKind: TokenKind): boolean;
|
|
264
|
-
getTokensUntil(currentToken: Token, tokenKind: TokenKind, direction?: -1 | 1): any[];
|
|
265
|
-
getPreviousToken(token: Token): Token;
|
|
307
|
+
private rethrowNonDiagnosticError;
|
|
266
308
|
/**
|
|
267
|
-
*
|
|
268
|
-
*
|
|
269
|
-
*
|
|
309
|
+
* Get the token that is {offset} indexes away from {this.current}
|
|
310
|
+
* @param offset the number of index steps away from current index to fetch
|
|
311
|
+
* @param tokenKinds the desired token must match one of these
|
|
312
|
+
* @example
|
|
313
|
+
* getToken(-1); //returns the previous token.
|
|
314
|
+
* getToken(0); //returns current token.
|
|
315
|
+
* getToken(1); //returns next token
|
|
270
316
|
*/
|
|
271
|
-
private
|
|
317
|
+
private getMatchingTokenAtOffset;
|
|
318
|
+
private synchronize;
|
|
272
319
|
dispose(): void;
|
|
273
320
|
}
|
|
274
321
|
export declare enum ParseMode {
|
|
@@ -279,60 +326,29 @@ export interface ParseOptions {
|
|
|
279
326
|
/**
|
|
280
327
|
* The parse mode. When in 'BrightScript' mode, no BrighterScript syntax is allowed, and will emit diagnostics.
|
|
281
328
|
*/
|
|
282
|
-
mode
|
|
329
|
+
mode?: ParseMode;
|
|
283
330
|
/**
|
|
284
331
|
* A logger that should be used for logging. If omitted, a default logger is used
|
|
285
332
|
*/
|
|
286
333
|
logger?: Logger;
|
|
334
|
+
/**
|
|
335
|
+
* Path to the file where this source code originated
|
|
336
|
+
*/
|
|
337
|
+
srcPath?: string;
|
|
338
|
+
/**
|
|
339
|
+
* Should locations be tracked. If false, the `range` property will be omitted
|
|
340
|
+
* @default true
|
|
341
|
+
*/
|
|
342
|
+
trackLocations?: boolean;
|
|
343
|
+
/**
|
|
344
|
+
* A map of BrightScript constants. If a constant is present in this map, it will be treated as a compile-time constant.
|
|
345
|
+
*/
|
|
346
|
+
bsConsts?: Map<string, boolean>;
|
|
347
|
+
/**
|
|
348
|
+
* The minimum Roku firmware version required to run this project.
|
|
349
|
+
* When set to '15.3' or higher, line continuation (multi-line expressions in `.brs` files)
|
|
350
|
+
* is enabled even in BrightScript mode because Roku OS 15.3 added native support for it.
|
|
351
|
+
* Should be a semver-compatible string (e.g. '15.3.0').
|
|
352
|
+
*/
|
|
353
|
+
minFirmwareVersion?: string;
|
|
287
354
|
}
|
|
288
|
-
export declare class References {
|
|
289
|
-
assignmentStatements: AssignmentStatement[];
|
|
290
|
-
classStatements: ClassStatement[];
|
|
291
|
-
get classStatementLookup(): Map<string, ClassStatement>;
|
|
292
|
-
private _classStatementLookup;
|
|
293
|
-
functionExpressions: FunctionExpression[];
|
|
294
|
-
functionStatements: FunctionStatement[];
|
|
295
|
-
/**
|
|
296
|
-
* A map of function statements, indexed by fully-namespaced lower function name.
|
|
297
|
-
*/
|
|
298
|
-
get functionStatementLookup(): Map<string, FunctionStatement>;
|
|
299
|
-
private _functionStatementLookup;
|
|
300
|
-
importStatements: ImportStatement[];
|
|
301
|
-
libraryStatements: LibraryStatement[];
|
|
302
|
-
namespaceStatements: NamespaceStatement[];
|
|
303
|
-
newExpressions: NewExpression[];
|
|
304
|
-
propertyHints: Record<string, string>;
|
|
305
|
-
}
|
|
306
|
-
export interface LocalVarEntry {
|
|
307
|
-
lowerName: string;
|
|
308
|
-
nameToken: Identifier;
|
|
309
|
-
type: BscType;
|
|
310
|
-
}
|
|
311
|
-
/**
|
|
312
|
-
* Gets the type of an expression. If it can not be processed, will return DynamicType
|
|
313
|
-
*
|
|
314
|
-
* @param expression the Expression to process
|
|
315
|
-
* @param functionExpression the wrapping function expression
|
|
316
|
-
* @return the best guess type of that expression
|
|
317
|
-
*/
|
|
318
|
-
export declare function getBscTypeFromExpression(expression: Expression, functionExpression: FunctionExpression): BscType;
|
|
319
|
-
/**
|
|
320
|
-
* Gets the return type of a function, taking into account that the function may not have been declared yet
|
|
321
|
-
* If the callee already exists in symbol table, use that return type
|
|
322
|
-
* otherwise, make a lazy type which will not compute its type until the file is done parsing
|
|
323
|
-
*
|
|
324
|
-
* @param call the Expression to process
|
|
325
|
-
* @param functionExpression the wrapping function expression
|
|
326
|
-
* @return the best guess type of that expression
|
|
327
|
-
*/
|
|
328
|
-
export declare function getTypeFromCallExpression(call: CallExpression, functionExpression: FunctionExpression): BscType;
|
|
329
|
-
/**
|
|
330
|
-
* Gets the type of a variable
|
|
331
|
-
* if it already exists in symbol table, use that type
|
|
332
|
-
* otherwise defer the type until first read, which will allow us to derive types from variables defined after this one (like from a loop perhaps)
|
|
333
|
-
*
|
|
334
|
-
* @param variable the Expression to process
|
|
335
|
-
* @param functionExpression the wrapping function expression
|
|
336
|
-
* @return the best guess type of that expression
|
|
337
|
-
*/
|
|
338
|
-
export declare function getTypeFromVariableExpression(variable: VariableExpression, functionExpression: FunctionExpression): BscType;
|