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
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import type { WalkVisitor, WalkOptions } from '../astUtils/visitors';
|
|
2
|
+
import type { Location, Position } from 'vscode-languageserver';
|
|
3
|
+
import { CancellationTokenSource } from 'vscode-languageserver';
|
|
4
|
+
import { InternalWalkMode } from '../astUtils/visitors';
|
|
5
|
+
import type { SymbolTable } from '../SymbolTable';
|
|
6
|
+
import type { BrsTranspileState } from './BrsTranspileState';
|
|
7
|
+
import type { GetTypeOptions, TranspileResult } from '../interfaces';
|
|
8
|
+
import type { AnnotationExpression } from './Expression';
|
|
9
|
+
import type { BscType } from '../types/BscType';
|
|
10
|
+
import type { Token } from '../lexer/Token';
|
|
11
|
+
/**
|
|
12
|
+
* A BrightScript AST node
|
|
13
|
+
*/
|
|
14
|
+
export declare abstract class AstNode {
|
|
15
|
+
abstract kind: AstNodeKind;
|
|
16
|
+
/**
|
|
17
|
+
* The starting and ending location of the node.
|
|
18
|
+
*/
|
|
19
|
+
abstract location?: Location | undefined;
|
|
20
|
+
abstract transpile(state: BrsTranspileState): TranspileResult;
|
|
21
|
+
/**
|
|
22
|
+
* Optional property, set at the top level with a map of conditional compile consts and their values
|
|
23
|
+
*/
|
|
24
|
+
bsConsts?: Map<string, boolean>;
|
|
25
|
+
/**
|
|
26
|
+
* Get the typedef for this node. (defaults to transpiling the node, should be overridden by subclasses if there's a more specific typedef requirement)
|
|
27
|
+
*/
|
|
28
|
+
getTypedef(state: BrsTranspileState): TranspileResult;
|
|
29
|
+
/**
|
|
30
|
+
* When being considered by the walk visitor, this describes what type of element the current class is.
|
|
31
|
+
*/
|
|
32
|
+
visitMode: InternalWalkMode;
|
|
33
|
+
abstract walk(visitor: WalkVisitor, options: WalkOptions): any;
|
|
34
|
+
/**
|
|
35
|
+
* The parent node for this statement. This is set dynamically during `validateFile`, and should not be set directly.
|
|
36
|
+
*/
|
|
37
|
+
parent?: AstNode;
|
|
38
|
+
/**
|
|
39
|
+
* Certain expressions or statements can have a symbol table (such as blocks, functions, namespace bodies, etc).
|
|
40
|
+
* If you're interested in getting the closest SymbolTable, use `getSymbolTable` instead.
|
|
41
|
+
*/
|
|
42
|
+
symbolTable?: SymbolTable;
|
|
43
|
+
/**
|
|
44
|
+
* Get the closest symbol table for this node
|
|
45
|
+
*/
|
|
46
|
+
getSymbolTable(): SymbolTable;
|
|
47
|
+
/**
|
|
48
|
+
* Walk upward and return the first node that results in `true` from the matcher.
|
|
49
|
+
* @param matcher a function called for each node. If you return true, this function returns the specified node. If you return a node, that node is returned. all other return values continue the loop
|
|
50
|
+
* The function's second parameter is a cancellation token. If you'd like to short-circuit the walk, call `cancellationToken.cancel()`, then this function will return `undefined`
|
|
51
|
+
*/
|
|
52
|
+
findAncestor<TNode extends AstNode = AstNode>(matcher: (node: AstNode, cancellationToken: CancellationTokenSource) => boolean | AstNode | undefined | void): TNode | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* Find the first child where the matcher evaluates to true.
|
|
55
|
+
* @param matcher a function called for each node. If you return true, this function returns the specified node. If you return a node, that node is returned. all other return values continue the loop
|
|
56
|
+
*/
|
|
57
|
+
findChild<TNode = AstNode>(matcher: (node: AstNode, cancellationSource: any) => boolean | AstNode | undefined | void, options?: WalkOptions): TNode | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* Find a list of all children first child where the matcher evaluates to true.
|
|
60
|
+
* @param matcher a function called for each node. If you return true, the specified node is included in the results. If you return a node,
|
|
61
|
+
* that node is returned. all other return values exclude that value and continue the loop
|
|
62
|
+
*/
|
|
63
|
+
findChildren<TNode extends AstNode = AstNode>(matcher: (node: AstNode, cancellationSource: CancellationTokenSource) => boolean | AstNode | undefined | void, options?: WalkOptions): Array<TNode>;
|
|
64
|
+
/**
|
|
65
|
+
* FInd the deepest child that includes the given position
|
|
66
|
+
*/
|
|
67
|
+
findChildAtPosition<TNodeType extends AstNode = AstNode>(position: Position, options?: WalkOptions): TNodeType | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* Get the BscType of this node.
|
|
70
|
+
*/
|
|
71
|
+
getType(options: GetTypeOptions): BscType;
|
|
72
|
+
/**
|
|
73
|
+
* Links all child nodes to their parent AstNode, and the same with symbol tables. This performs a full AST walk, so you should use this sparingly
|
|
74
|
+
*/
|
|
75
|
+
link(): void;
|
|
76
|
+
/**
|
|
77
|
+
* Walk upward and return the root node
|
|
78
|
+
*/
|
|
79
|
+
getRoot(): AstNode;
|
|
80
|
+
/**
|
|
81
|
+
* Gets all the trivia (comments, whitespace) that is directly before the start of this node
|
|
82
|
+
* Note: this includes all trivia that might start on the line of the previous node
|
|
83
|
+
*/
|
|
84
|
+
get leadingTrivia(): Token[];
|
|
85
|
+
/**
|
|
86
|
+
* Gets any trivia that is directly before the end of the node
|
|
87
|
+
* For example, this would return all trivia before a `end function` token of a FunctionExpression
|
|
88
|
+
*/
|
|
89
|
+
get endTrivia(): Token[];
|
|
90
|
+
getBsConsts(): any;
|
|
91
|
+
/**
|
|
92
|
+
* Clone this node and all of its children. This creates a completely detached and identical copy of the AST.
|
|
93
|
+
* All tokens, statements, expressions, range, and location are cloned.
|
|
94
|
+
*/
|
|
95
|
+
abstract clone(): any;
|
|
96
|
+
/**
|
|
97
|
+
* Helper function for creating a clone. This will clone any attached annotations, as well as reparent the cloned node's children to the clone
|
|
98
|
+
*/
|
|
99
|
+
protected finalizeClone<T extends AstNode>(clone: T, propsToReparent?: Array<{
|
|
100
|
+
[K in keyof T]: T[K] extends AstNode | AstNode[] ? K : never;
|
|
101
|
+
}[keyof T]>): T;
|
|
102
|
+
/**
|
|
103
|
+
* The index of the statement containing this node (or in the case of a statement, itself) within the containing block.
|
|
104
|
+
*/
|
|
105
|
+
get statementIndex(): number;
|
|
106
|
+
}
|
|
107
|
+
export declare abstract class Statement extends AstNode {
|
|
108
|
+
/**
|
|
109
|
+
* When being considered by the walk visitor, this describes what type of element the current class is.
|
|
110
|
+
*/
|
|
111
|
+
visitMode: InternalWalkMode;
|
|
112
|
+
/**
|
|
113
|
+
* Annotations for this statement
|
|
114
|
+
*/
|
|
115
|
+
annotations?: AnnotationExpression[] | undefined;
|
|
116
|
+
}
|
|
117
|
+
/** A BrightScript expression */
|
|
118
|
+
export declare abstract class Expression extends AstNode {
|
|
119
|
+
/**
|
|
120
|
+
* When being considered by the walk visitor, this describes what type of element the current class is.
|
|
121
|
+
*/
|
|
122
|
+
visitMode: InternalWalkMode;
|
|
123
|
+
}
|
|
124
|
+
export declare enum AstNodeKind {
|
|
125
|
+
Body = "Body",
|
|
126
|
+
BinaryExpression = "BinaryExpression",
|
|
127
|
+
CallExpression = "CallExpression",
|
|
128
|
+
FunctionExpression = "FunctionExpression",
|
|
129
|
+
FunctionParameterExpression = "FunctionParameterExpression",
|
|
130
|
+
NamespacedVariableNameExpression = "NamespacedVariableNameExpression",
|
|
131
|
+
DottedGetExpression = "DottedGetExpression",
|
|
132
|
+
XmlAttributeGetExpression = "XmlAttributeGetExpression",
|
|
133
|
+
IndexedGetExpression = "IndexedGetExpression",
|
|
134
|
+
GroupingExpression = "GroupingExpression",
|
|
135
|
+
LiteralExpression = "LiteralExpression",
|
|
136
|
+
EscapedCharCodeLiteralExpression = "EscapedCharCodeLiteralExpression",
|
|
137
|
+
ArrayLiteralExpression = "ArrayLiteralExpression",
|
|
138
|
+
AAMemberExpression = "AAMemberExpression",
|
|
139
|
+
AALiteralExpression = "AALiteralExpression",
|
|
140
|
+
AAIndexedMemberExpression = "AAIndexedMemberExpression",
|
|
141
|
+
UnaryExpression = "UnaryExpression",
|
|
142
|
+
VariableExpression = "VariableExpression",
|
|
143
|
+
SourceLiteralExpression = "SourceLiteralExpression",
|
|
144
|
+
NewExpression = "NewExpression",
|
|
145
|
+
CallfuncExpression = "CallfuncExpression",
|
|
146
|
+
TemplateStringQuasiExpression = "TemplateStringQuasiExpression",
|
|
147
|
+
TemplateStringExpression = "TemplateStringExpression",
|
|
148
|
+
TaggedTemplateStringExpression = "TaggedTemplateStringExpression",
|
|
149
|
+
AnnotationExpression = "AnnotationExpression",
|
|
150
|
+
TernaryExpression = "TernaryExpression",
|
|
151
|
+
NullCoalescingExpression = "NullCoalescingExpression",
|
|
152
|
+
RegexLiteralExpression = "RegexLiteralExpression",
|
|
153
|
+
EmptyStatement = "EmptyStatement",
|
|
154
|
+
AssignmentStatement = "AssignmentStatement",
|
|
155
|
+
ExpressionStatement = "ExpressionStatement",
|
|
156
|
+
ExitStatement = "ExitStatement",
|
|
157
|
+
FunctionStatement = "FunctionStatement",
|
|
158
|
+
IfStatement = "IfStatement",
|
|
159
|
+
IncrementStatement = "IncrementStatement",
|
|
160
|
+
PrintStatement = "PrintStatement",
|
|
161
|
+
DimStatement = "DimStatement",
|
|
162
|
+
GotoStatement = "GotoStatement",
|
|
163
|
+
LabelStatement = "LabelStatement",
|
|
164
|
+
ReturnStatement = "ReturnStatement",
|
|
165
|
+
EndStatement = "EndStatement",
|
|
166
|
+
StopStatement = "StopStatement",
|
|
167
|
+
ForStatement = "ForStatement",
|
|
168
|
+
ForEachStatement = "ForEachStatement",
|
|
169
|
+
WhileStatement = "WhileStatement",
|
|
170
|
+
DottedSetStatement = "DottedSetStatement",
|
|
171
|
+
IndexedSetStatement = "IndexedSetStatement",
|
|
172
|
+
LibraryStatement = "LibraryStatement",
|
|
173
|
+
NamespaceStatement = "NamespaceStatement",
|
|
174
|
+
ImportStatement = "ImportStatement",
|
|
175
|
+
InterfaceStatement = "InterfaceStatement",
|
|
176
|
+
InterfaceFieldStatement = "InterfaceFieldStatement",
|
|
177
|
+
InterfaceMethodStatement = "InterfaceMethodStatement",
|
|
178
|
+
ClassStatement = "ClassStatement",
|
|
179
|
+
MethodStatement = "MethodStatement",
|
|
180
|
+
ClassMethodStatement = "ClassMethodStatement",
|
|
181
|
+
FieldStatement = "FieldStatement",
|
|
182
|
+
ClassFieldStatement = "ClassFieldStatement",
|
|
183
|
+
TryCatchStatement = "TryCatchStatement",
|
|
184
|
+
CatchStatement = "CatchStatement",
|
|
185
|
+
ThrowStatement = "ThrowStatement",
|
|
186
|
+
EnumStatement = "EnumStatement",
|
|
187
|
+
EnumMemberStatement = "EnumMemberStatement",
|
|
188
|
+
ConstStatement = "ConstStatement",
|
|
189
|
+
ContinueStatement = "ContinueStatement",
|
|
190
|
+
Block = "Block",
|
|
191
|
+
TypeExpression = "TypeExpression",
|
|
192
|
+
TypecastExpression = "TypecastExpression",
|
|
193
|
+
TypedArrayExpression = "TypedArrayExpression",
|
|
194
|
+
TypecastStatement = "TypecastStatement",
|
|
195
|
+
AliasStatement = "AliasStatement",
|
|
196
|
+
ConditionalCompileStatement = "ConditionalCompileStatement",
|
|
197
|
+
ConditionalCompileConstStatement = "ConditionalCompileConstStatement",
|
|
198
|
+
ConditionalCompileErrorStatement = "ConditionalCompileErrorStatement",
|
|
199
|
+
AugmentedAssignmentStatement = "AugmentedAssignmentStatement",
|
|
200
|
+
PrintSeparatorExpression = "PrintSeparatorExpression",
|
|
201
|
+
InlineInterfaceExpression = "InlineInterfaceExpression",
|
|
202
|
+
InlineInterfaceMemberExpression = "InlineInterfaceMemberExpression",
|
|
203
|
+
TypeStatement = "TypeStatement",
|
|
204
|
+
TypedFunctionTypeExpression = "TypedFunctionTypeExpression"
|
|
205
|
+
}
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AstNodeKind = exports.Expression = exports.Statement = exports.AstNode = void 0;
|
|
4
|
+
const visitors_1 = require("../astUtils/visitors");
|
|
5
|
+
const vscode_languageserver_1 = require("vscode-languageserver");
|
|
6
|
+
const visitors_2 = require("../astUtils/visitors");
|
|
7
|
+
const util_1 = require("../util");
|
|
8
|
+
const DynamicType_1 = require("../types/DynamicType");
|
|
9
|
+
const reflection_1 = require("../astUtils/reflection");
|
|
10
|
+
/**
|
|
11
|
+
* A BrightScript AST node
|
|
12
|
+
*/
|
|
13
|
+
class AstNode {
|
|
14
|
+
constructor() {
|
|
15
|
+
/**
|
|
16
|
+
* When being considered by the walk visitor, this describes what type of element the current class is.
|
|
17
|
+
*/
|
|
18
|
+
this.visitMode = visitors_2.InternalWalkMode.visitStatements;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Get the typedef for this node. (defaults to transpiling the node, should be overridden by subclasses if there's a more specific typedef requirement)
|
|
22
|
+
*/
|
|
23
|
+
getTypedef(state) {
|
|
24
|
+
return this.transpile(state);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get the closest symbol table for this node
|
|
28
|
+
*/
|
|
29
|
+
getSymbolTable() {
|
|
30
|
+
let node = this;
|
|
31
|
+
while (node) {
|
|
32
|
+
if (node.symbolTable) {
|
|
33
|
+
return node.symbolTable;
|
|
34
|
+
}
|
|
35
|
+
node = node.parent;
|
|
36
|
+
}
|
|
37
|
+
//justification: we are following a chain of nodes until we get to one with a SymbolTable,
|
|
38
|
+
//and the top-level node will always have a SymbolTable. So we'll never hit this undefined,
|
|
39
|
+
//but it is not so easy to convince the typechecker of this.
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Walk upward and return the first node that results in `true` from the matcher.
|
|
44
|
+
* @param matcher a function called for each node. If you return true, this function returns the specified node. If you return a node, that node is returned. all other return values continue the loop
|
|
45
|
+
* The function's second parameter is a cancellation token. If you'd like to short-circuit the walk, call `cancellationToken.cancel()`, then this function will return `undefined`
|
|
46
|
+
*/
|
|
47
|
+
findAncestor(matcher) {
|
|
48
|
+
let node = this.parent;
|
|
49
|
+
const cancel = new vscode_languageserver_1.CancellationTokenSource();
|
|
50
|
+
while (node) {
|
|
51
|
+
let matcherValue = matcher(node, cancel);
|
|
52
|
+
if (cancel.token.isCancellationRequested) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (matcherValue) {
|
|
56
|
+
cancel.cancel();
|
|
57
|
+
return (matcherValue === true ? node : matcherValue);
|
|
58
|
+
}
|
|
59
|
+
node = node.parent;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Find the first child where the matcher evaluates to true.
|
|
64
|
+
* @param matcher a function called for each node. If you return true, this function returns the specified node. If you return a node, that node is returned. all other return values continue the loop
|
|
65
|
+
*/
|
|
66
|
+
findChild(matcher, options) {
|
|
67
|
+
const cancel = new vscode_languageserver_1.CancellationTokenSource();
|
|
68
|
+
let result;
|
|
69
|
+
this.walk((node) => {
|
|
70
|
+
const matcherValue = matcher(node, cancel);
|
|
71
|
+
if (matcherValue) {
|
|
72
|
+
cancel.cancel();
|
|
73
|
+
result = matcherValue === true ? node : matcherValue;
|
|
74
|
+
}
|
|
75
|
+
}, Object.assign(Object.assign({ walkMode: visitors_1.WalkMode.visitAllRecursive }, options !== null && options !== void 0 ? options : {}), { cancel: cancel.token }));
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Find a list of all children first child where the matcher evaluates to true.
|
|
80
|
+
* @param matcher a function called for each node. If you return true, the specified node is included in the results. If you return a node,
|
|
81
|
+
* that node is returned. all other return values exclude that value and continue the loop
|
|
82
|
+
*/
|
|
83
|
+
findChildren(matcher, options) {
|
|
84
|
+
const cancel = new vscode_languageserver_1.CancellationTokenSource();
|
|
85
|
+
let result = [];
|
|
86
|
+
this.walk((node) => {
|
|
87
|
+
const matcherValue = matcher(node, cancel);
|
|
88
|
+
if (matcherValue) {
|
|
89
|
+
result.push(matcherValue === true ? node : matcherValue);
|
|
90
|
+
}
|
|
91
|
+
}, Object.assign(Object.assign({ walkMode: visitors_1.WalkMode.visitAllRecursive }, options !== null && options !== void 0 ? options : {}), { cancel: cancel.token }));
|
|
92
|
+
return result;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* FInd the deepest child that includes the given position
|
|
96
|
+
*/
|
|
97
|
+
findChildAtPosition(position, options) {
|
|
98
|
+
return this.findChild((node) => {
|
|
99
|
+
var _a;
|
|
100
|
+
//if the current node includes this range, keep that node
|
|
101
|
+
if (util_1.default.rangeContains(node === null || node === void 0 ? void 0 : node.location.range, position)) {
|
|
102
|
+
return (_a = node.findChildAtPosition(position, options)) !== null && _a !== void 0 ? _a : node;
|
|
103
|
+
}
|
|
104
|
+
}, options);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Get the BscType of this node.
|
|
108
|
+
*/
|
|
109
|
+
getType(options) {
|
|
110
|
+
return DynamicType_1.DynamicType.instance;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Links all child nodes to their parent AstNode, and the same with symbol tables. This performs a full AST walk, so you should use this sparingly
|
|
114
|
+
*/
|
|
115
|
+
link() {
|
|
116
|
+
//the act of walking causes the nodes to be linked
|
|
117
|
+
this.walk(() => { }, {
|
|
118
|
+
// eslint-disable-next-line no-bitwise
|
|
119
|
+
walkMode: visitors_1.WalkMode.visitAllRecursive | visitors_2.InternalWalkMode.visitFalseConditionalCompilationBlocks
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Walk upward and return the root node
|
|
124
|
+
*/
|
|
125
|
+
getRoot() {
|
|
126
|
+
let node = this;
|
|
127
|
+
while (node) {
|
|
128
|
+
if (!node.parent) {
|
|
129
|
+
return node;
|
|
130
|
+
}
|
|
131
|
+
node = node.parent;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Gets all the trivia (comments, whitespace) that is directly before the start of this node
|
|
136
|
+
* Note: this includes all trivia that might start on the line of the previous node
|
|
137
|
+
*/
|
|
138
|
+
get leadingTrivia() {
|
|
139
|
+
return [];
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Gets any trivia that is directly before the end of the node
|
|
143
|
+
* For example, this would return all trivia before a `end function` token of a FunctionExpression
|
|
144
|
+
*/
|
|
145
|
+
get endTrivia() {
|
|
146
|
+
return [];
|
|
147
|
+
}
|
|
148
|
+
getBsConsts() {
|
|
149
|
+
var _a, _b, _c;
|
|
150
|
+
return (_a = this.bsConsts) !== null && _a !== void 0 ? _a : (_c = (_b = this.parent) === null || _b === void 0 ? void 0 : _b.getBsConsts) === null || _c === void 0 ? void 0 : _c.call(_b);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Helper function for creating a clone. This will clone any attached annotations, as well as reparent the cloned node's children to the clone
|
|
154
|
+
*/
|
|
155
|
+
finalizeClone(clone, propsToReparent) {
|
|
156
|
+
var _a;
|
|
157
|
+
//clone the annotations if they exist
|
|
158
|
+
if (Array.isArray(this.annotations)) {
|
|
159
|
+
clone.annotations = (_a = this.annotations) === null || _a === void 0 ? void 0 : _a.map(x => x.clone());
|
|
160
|
+
}
|
|
161
|
+
//reparent all of the supplied props
|
|
162
|
+
for (let key of propsToReparent !== null && propsToReparent !== void 0 ? propsToReparent : []) {
|
|
163
|
+
const children = (Array.isArray(clone === null || clone === void 0 ? void 0 : clone[key]) ? clone[key] : [clone === null || clone === void 0 ? void 0 : clone[key]]);
|
|
164
|
+
for (let child of children !== null && children !== void 0 ? children : []) {
|
|
165
|
+
if (child) {
|
|
166
|
+
clone[key].parent = clone;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
//reapply the location if we have one but the clone doesn't
|
|
171
|
+
if (!clone.location && this.location) {
|
|
172
|
+
clone.location = util_1.default.cloneLocation(this.location);
|
|
173
|
+
}
|
|
174
|
+
return clone;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* The index of the statement containing this node (or in the case of a statement, itself) within the containing block.
|
|
178
|
+
*/
|
|
179
|
+
get statementIndex() {
|
|
180
|
+
if ((0, reflection_1.isBody)(this)) {
|
|
181
|
+
return 0;
|
|
182
|
+
}
|
|
183
|
+
if (!this.parent) {
|
|
184
|
+
return -1;
|
|
185
|
+
}
|
|
186
|
+
let currentNode = this;
|
|
187
|
+
if ((0, reflection_1.isFunctionParameterExpression)(currentNode)) {
|
|
188
|
+
// function parameters are not part of statement lists
|
|
189
|
+
return -1;
|
|
190
|
+
}
|
|
191
|
+
while (currentNode && !((0, reflection_1.isBlock)(currentNode === null || currentNode === void 0 ? void 0 : currentNode.parent) || (0, reflection_1.isBody)(currentNode === null || currentNode === void 0 ? void 0 : currentNode.parent))) {
|
|
192
|
+
currentNode = currentNode.parent;
|
|
193
|
+
}
|
|
194
|
+
if ((0, reflection_1.isBlock)(currentNode === null || currentNode === void 0 ? void 0 : currentNode.parent) || (0, reflection_1.isBody)(currentNode === null || currentNode === void 0 ? void 0 : currentNode.parent)) {
|
|
195
|
+
return currentNode.parent.statements.indexOf(currentNode);
|
|
196
|
+
}
|
|
197
|
+
return -1;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
exports.AstNode = AstNode;
|
|
201
|
+
class Statement extends AstNode {
|
|
202
|
+
constructor() {
|
|
203
|
+
super(...arguments);
|
|
204
|
+
/**
|
|
205
|
+
* When being considered by the walk visitor, this describes what type of element the current class is.
|
|
206
|
+
*/
|
|
207
|
+
this.visitMode = visitors_2.InternalWalkMode.visitStatements;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
exports.Statement = Statement;
|
|
211
|
+
/** A BrightScript expression */
|
|
212
|
+
class Expression extends AstNode {
|
|
213
|
+
constructor() {
|
|
214
|
+
super(...arguments);
|
|
215
|
+
/**
|
|
216
|
+
* When being considered by the walk visitor, this describes what type of element the current class is.
|
|
217
|
+
*/
|
|
218
|
+
this.visitMode = visitors_2.InternalWalkMode.visitExpressions;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
exports.Expression = Expression;
|
|
222
|
+
var AstNodeKind;
|
|
223
|
+
(function (AstNodeKind) {
|
|
224
|
+
AstNodeKind["Body"] = "Body";
|
|
225
|
+
AstNodeKind["BinaryExpression"] = "BinaryExpression";
|
|
226
|
+
AstNodeKind["CallExpression"] = "CallExpression";
|
|
227
|
+
AstNodeKind["FunctionExpression"] = "FunctionExpression";
|
|
228
|
+
AstNodeKind["FunctionParameterExpression"] = "FunctionParameterExpression";
|
|
229
|
+
AstNodeKind["NamespacedVariableNameExpression"] = "NamespacedVariableNameExpression";
|
|
230
|
+
AstNodeKind["DottedGetExpression"] = "DottedGetExpression";
|
|
231
|
+
AstNodeKind["XmlAttributeGetExpression"] = "XmlAttributeGetExpression";
|
|
232
|
+
AstNodeKind["IndexedGetExpression"] = "IndexedGetExpression";
|
|
233
|
+
AstNodeKind["GroupingExpression"] = "GroupingExpression";
|
|
234
|
+
AstNodeKind["LiteralExpression"] = "LiteralExpression";
|
|
235
|
+
AstNodeKind["EscapedCharCodeLiteralExpression"] = "EscapedCharCodeLiteralExpression";
|
|
236
|
+
AstNodeKind["ArrayLiteralExpression"] = "ArrayLiteralExpression";
|
|
237
|
+
AstNodeKind["AAMemberExpression"] = "AAMemberExpression";
|
|
238
|
+
AstNodeKind["AALiteralExpression"] = "AALiteralExpression";
|
|
239
|
+
AstNodeKind["AAIndexedMemberExpression"] = "AAIndexedMemberExpression";
|
|
240
|
+
AstNodeKind["UnaryExpression"] = "UnaryExpression";
|
|
241
|
+
AstNodeKind["VariableExpression"] = "VariableExpression";
|
|
242
|
+
AstNodeKind["SourceLiteralExpression"] = "SourceLiteralExpression";
|
|
243
|
+
AstNodeKind["NewExpression"] = "NewExpression";
|
|
244
|
+
AstNodeKind["CallfuncExpression"] = "CallfuncExpression";
|
|
245
|
+
AstNodeKind["TemplateStringQuasiExpression"] = "TemplateStringQuasiExpression";
|
|
246
|
+
AstNodeKind["TemplateStringExpression"] = "TemplateStringExpression";
|
|
247
|
+
AstNodeKind["TaggedTemplateStringExpression"] = "TaggedTemplateStringExpression";
|
|
248
|
+
AstNodeKind["AnnotationExpression"] = "AnnotationExpression";
|
|
249
|
+
AstNodeKind["TernaryExpression"] = "TernaryExpression";
|
|
250
|
+
AstNodeKind["NullCoalescingExpression"] = "NullCoalescingExpression";
|
|
251
|
+
AstNodeKind["RegexLiteralExpression"] = "RegexLiteralExpression";
|
|
252
|
+
AstNodeKind["EmptyStatement"] = "EmptyStatement";
|
|
253
|
+
AstNodeKind["AssignmentStatement"] = "AssignmentStatement";
|
|
254
|
+
AstNodeKind["ExpressionStatement"] = "ExpressionStatement";
|
|
255
|
+
AstNodeKind["ExitStatement"] = "ExitStatement";
|
|
256
|
+
AstNodeKind["FunctionStatement"] = "FunctionStatement";
|
|
257
|
+
AstNodeKind["IfStatement"] = "IfStatement";
|
|
258
|
+
AstNodeKind["IncrementStatement"] = "IncrementStatement";
|
|
259
|
+
AstNodeKind["PrintStatement"] = "PrintStatement";
|
|
260
|
+
AstNodeKind["DimStatement"] = "DimStatement";
|
|
261
|
+
AstNodeKind["GotoStatement"] = "GotoStatement";
|
|
262
|
+
AstNodeKind["LabelStatement"] = "LabelStatement";
|
|
263
|
+
AstNodeKind["ReturnStatement"] = "ReturnStatement";
|
|
264
|
+
AstNodeKind["EndStatement"] = "EndStatement";
|
|
265
|
+
AstNodeKind["StopStatement"] = "StopStatement";
|
|
266
|
+
AstNodeKind["ForStatement"] = "ForStatement";
|
|
267
|
+
AstNodeKind["ForEachStatement"] = "ForEachStatement";
|
|
268
|
+
AstNodeKind["WhileStatement"] = "WhileStatement";
|
|
269
|
+
AstNodeKind["DottedSetStatement"] = "DottedSetStatement";
|
|
270
|
+
AstNodeKind["IndexedSetStatement"] = "IndexedSetStatement";
|
|
271
|
+
AstNodeKind["LibraryStatement"] = "LibraryStatement";
|
|
272
|
+
AstNodeKind["NamespaceStatement"] = "NamespaceStatement";
|
|
273
|
+
AstNodeKind["ImportStatement"] = "ImportStatement";
|
|
274
|
+
AstNodeKind["InterfaceStatement"] = "InterfaceStatement";
|
|
275
|
+
AstNodeKind["InterfaceFieldStatement"] = "InterfaceFieldStatement";
|
|
276
|
+
AstNodeKind["InterfaceMethodStatement"] = "InterfaceMethodStatement";
|
|
277
|
+
AstNodeKind["ClassStatement"] = "ClassStatement";
|
|
278
|
+
AstNodeKind["MethodStatement"] = "MethodStatement";
|
|
279
|
+
AstNodeKind["ClassMethodStatement"] = "ClassMethodStatement";
|
|
280
|
+
AstNodeKind["FieldStatement"] = "FieldStatement";
|
|
281
|
+
AstNodeKind["ClassFieldStatement"] = "ClassFieldStatement";
|
|
282
|
+
AstNodeKind["TryCatchStatement"] = "TryCatchStatement";
|
|
283
|
+
AstNodeKind["CatchStatement"] = "CatchStatement";
|
|
284
|
+
AstNodeKind["ThrowStatement"] = "ThrowStatement";
|
|
285
|
+
AstNodeKind["EnumStatement"] = "EnumStatement";
|
|
286
|
+
AstNodeKind["EnumMemberStatement"] = "EnumMemberStatement";
|
|
287
|
+
AstNodeKind["ConstStatement"] = "ConstStatement";
|
|
288
|
+
AstNodeKind["ContinueStatement"] = "ContinueStatement";
|
|
289
|
+
AstNodeKind["Block"] = "Block";
|
|
290
|
+
AstNodeKind["TypeExpression"] = "TypeExpression";
|
|
291
|
+
AstNodeKind["TypecastExpression"] = "TypecastExpression";
|
|
292
|
+
AstNodeKind["TypedArrayExpression"] = "TypedArrayExpression";
|
|
293
|
+
AstNodeKind["TypecastStatement"] = "TypecastStatement";
|
|
294
|
+
AstNodeKind["AliasStatement"] = "AliasStatement";
|
|
295
|
+
AstNodeKind["ConditionalCompileStatement"] = "ConditionalCompileStatement";
|
|
296
|
+
AstNodeKind["ConditionalCompileConstStatement"] = "ConditionalCompileConstStatement";
|
|
297
|
+
AstNodeKind["ConditionalCompileErrorStatement"] = "ConditionalCompileErrorStatement";
|
|
298
|
+
AstNodeKind["AugmentedAssignmentStatement"] = "AugmentedAssignmentStatement";
|
|
299
|
+
AstNodeKind["PrintSeparatorExpression"] = "PrintSeparatorExpression";
|
|
300
|
+
AstNodeKind["InlineInterfaceExpression"] = "InlineInterfaceExpression";
|
|
301
|
+
AstNodeKind["InlineInterfaceMemberExpression"] = "InlineInterfaceMemberExpression";
|
|
302
|
+
AstNodeKind["TypeStatement"] = "TypeStatement";
|
|
303
|
+
AstNodeKind["TypedFunctionTypeExpression"] = "TypedFunctionTypeExpression";
|
|
304
|
+
})(AstNodeKind = exports.AstNodeKind || (exports.AstNodeKind = {}));
|
|
305
|
+
//# sourceMappingURL=AstNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AstNode.js","sourceRoot":"","sources":["../../src/parser/AstNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { GetSymbolTypeOptions } from '../SymbolTable';
|
|
2
|
+
import type { AstNode, Expression } from './AstNode';
|
|
3
|
+
import type { Location } from 'vscode-languageserver';
|
|
4
|
+
import type { Token } from '../lexer/Token';
|
|
5
|
+
export declare enum BrsDocTagKind {
|
|
6
|
+
Description = "description",
|
|
7
|
+
Param = "param",
|
|
8
|
+
Return = "return",
|
|
9
|
+
Type = "type"
|
|
10
|
+
}
|
|
11
|
+
export declare class BrightScriptDocParser {
|
|
12
|
+
parseNode(node: AstNode): BrightScriptDoc;
|
|
13
|
+
parse(documentation: string, matchingTokens?: Token[]): BrightScriptDoc;
|
|
14
|
+
getTypeLocationFromToken(token: Token): Location;
|
|
15
|
+
private parseLine;
|
|
16
|
+
private parseParam;
|
|
17
|
+
private parseReturn;
|
|
18
|
+
private parseType;
|
|
19
|
+
private getTypeExpressionFromTypeString;
|
|
20
|
+
}
|
|
21
|
+
export declare class BrightScriptDoc {
|
|
22
|
+
readonly documentation: string;
|
|
23
|
+
protected _description: string;
|
|
24
|
+
tags: BrsDocTag[];
|
|
25
|
+
constructor(documentation: string);
|
|
26
|
+
set description(value: string);
|
|
27
|
+
get description(): string;
|
|
28
|
+
getParam(name: string): BrsDocParamTag;
|
|
29
|
+
getReturn(): BrsDocWithDescription;
|
|
30
|
+
getTypeTag(): BrsDocWithType;
|
|
31
|
+
getTypeTagByName(name: string): BrsDocWithType;
|
|
32
|
+
getTag(tagName: string): BrsDocTag;
|
|
33
|
+
getAllTags(tagName: string): BrsDocTag[];
|
|
34
|
+
getParamBscType(name: string, options?: GetSymbolTypeOptions): import("..").BscType;
|
|
35
|
+
getReturnBscType(options?: GetSymbolTypeOptions): import("..").BscType;
|
|
36
|
+
getTypeTagBscType(options?: GetSymbolTypeOptions): import("..").BscType;
|
|
37
|
+
}
|
|
38
|
+
export interface BrsDocTag {
|
|
39
|
+
tagName: string;
|
|
40
|
+
detail?: string;
|
|
41
|
+
location?: Location;
|
|
42
|
+
token?: Token;
|
|
43
|
+
}
|
|
44
|
+
export interface BrsDocWithType extends BrsDocTag {
|
|
45
|
+
typeString?: string;
|
|
46
|
+
typeExpression?: Expression;
|
|
47
|
+
}
|
|
48
|
+
export interface BrsDocWithDescription extends BrsDocWithType {
|
|
49
|
+
description?: string;
|
|
50
|
+
}
|
|
51
|
+
export interface BrsDocParamTag extends BrsDocWithDescription {
|
|
52
|
+
name: string;
|
|
53
|
+
optional?: boolean;
|
|
54
|
+
}
|
|
55
|
+
export declare let brsDocParser: BrightScriptDocParser;
|
|
56
|
+
export default brsDocParser;
|