brighterscript 1.0.0-alpha.2 → 1.0.0-alpha.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +542 -253
- package/README.md +30 -9
- package/bsconfig.schema.json +13 -1
- package/dist/BsConfig.d.ts +4 -0
- package/dist/Cache.d.ts +3 -8
- package/dist/Cache.js +9 -14
- package/dist/Cache.js.map +1 -1
- package/dist/CodeActionUtil.d.ts +11 -2
- package/dist/CodeActionUtil.js +17 -3
- package/dist/CodeActionUtil.js.map +1 -1
- package/dist/CommentFlagProcessor.d.ts +4 -4
- package/dist/CommentFlagProcessor.js +5 -3
- package/dist/CommentFlagProcessor.js.map +1 -1
- package/dist/DependencyGraph.js +5 -4
- package/dist/DependencyGraph.js.map +1 -1
- package/dist/DiagnosticFilterer.js +1 -1
- package/dist/DiagnosticFilterer.js.map +1 -1
- package/dist/DiagnosticMessages.d.ts +59 -4
- package/dist/DiagnosticMessages.js +65 -7
- package/dist/DiagnosticMessages.js.map +1 -1
- package/dist/LanguageServer.d.ts +4 -14
- package/dist/LanguageServer.js +40 -26
- package/dist/LanguageServer.js.map +1 -1
- package/dist/Logger.d.ts +2 -0
- package/dist/Logger.js +10 -8
- package/dist/Logger.js.map +1 -1
- package/dist/PluginInterface.d.ts +7 -3
- package/dist/PluginInterface.js +9 -0
- package/dist/PluginInterface.js.map +1 -1
- package/dist/Program.d.ts +43 -25
- package/dist/Program.js +180 -82
- package/dist/Program.js.map +1 -1
- package/dist/ProgramBuilder.d.ts +4 -0
- package/dist/ProgramBuilder.js +30 -14
- package/dist/ProgramBuilder.js.map +1 -1
- package/dist/Scope.d.ts +100 -28
- package/dist/Scope.js +382 -154
- package/dist/Scope.js.map +1 -1
- package/dist/SemanticTokenUtils.d.ts +14 -0
- package/dist/SemanticTokenUtils.js +81 -0
- package/dist/SemanticTokenUtils.js.map +1 -0
- package/dist/SymbolTable.d.ts +10 -4
- package/dist/SymbolTable.js +40 -13
- package/dist/SymbolTable.js.map +1 -1
- package/dist/XmlScope.d.ts +8 -3
- package/dist/XmlScope.js +65 -27
- package/dist/XmlScope.js.map +1 -1
- package/dist/astUtils/AstEditor.d.ts +33 -0
- package/dist/astUtils/AstEditor.js +107 -0
- package/dist/astUtils/AstEditor.js.map +1 -0
- package/dist/{types/FunctionType.spec.d.ts → astUtils/AstEditor.spec.d.ts} +0 -0
- package/dist/astUtils/AstEditor.spec.js +170 -0
- package/dist/astUtils/AstEditor.spec.js.map +1 -0
- package/dist/astUtils/creators.d.ts +24 -6
- package/dist/astUtils/creators.js +130 -19
- package/dist/astUtils/creators.js.map +1 -1
- package/dist/astUtils/creators.spec.js +14 -4
- package/dist/astUtils/creators.spec.js.map +1 -1
- package/dist/astUtils/reflection.d.ts +27 -8
- package/dist/astUtils/reflection.js +66 -1
- package/dist/astUtils/reflection.js.map +1 -1
- package/dist/astUtils/reflection.spec.js +130 -119
- package/dist/astUtils/reflection.spec.js.map +1 -1
- package/dist/astUtils/stackedVisitor.js.map +1 -1
- package/dist/astUtils/stackedVisitor.spec.js +13 -13
- package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
- package/dist/astUtils/visitors.d.ts +17 -2
- package/dist/astUtils/visitors.js +2 -2
- package/dist/astUtils/visitors.js.map +1 -1
- package/dist/astUtils/visitors.spec.js +31 -29
- package/dist/astUtils/visitors.spec.js.map +1 -1
- package/dist/astUtils/xml.d.ts +4 -3
- package/dist/astUtils/xml.js +8 -3
- package/dist/astUtils/xml.js.map +1 -1
- package/dist/bscPlugin/BscPlugin.d.ts +7 -1
- package/dist/bscPlugin/BscPlugin.js +28 -0
- package/dist/bscPlugin/BscPlugin.js.map +1 -1
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +4 -4
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +26 -26
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +9 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +97 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.d.ts +1 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +73 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -0
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.d.ts +8 -0
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js +52 -0
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +1 -0
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.d.ts +1 -0
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js +32 -0
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js.map +1 -0
- package/dist/bscPlugin/validation/BrsFileValidator.d.ts +9 -0
- package/dist/bscPlugin/validation/BrsFileValidator.js +66 -0
- package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -0
- package/dist/bscPlugin/validation/ScopeValidator.d.ts +29 -0
- package/dist/bscPlugin/validation/ScopeValidator.js +183 -0
- package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -0
- package/dist/cli.js +9 -3
- package/dist/cli.js.map +1 -1
- package/dist/diagnosticUtils.d.ts +1 -0
- package/dist/diagnosticUtils.js +15 -8
- package/dist/diagnosticUtils.js.map +1 -1
- package/dist/examples/plugins/removePrint.js +12 -14
- package/dist/examples/plugins/removePrint.js.map +1 -1
- package/dist/files/BrsFile.Class.spec.js +634 -145
- package/dist/files/BrsFile.Class.spec.js.map +1 -1
- package/dist/files/BrsFile.d.ts +62 -30
- package/dist/files/BrsFile.js +683 -335
- package/dist/files/BrsFile.js.map +1 -1
- package/dist/files/BrsFile.spec.js +1055 -449
- package/dist/files/BrsFile.spec.js.map +1 -1
- package/dist/files/XmlFile.d.ts +11 -10
- package/dist/files/XmlFile.js +33 -26
- package/dist/files/XmlFile.js.map +1 -1
- package/dist/files/XmlFile.spec.js +302 -237
- package/dist/files/XmlFile.spec.js.map +1 -1
- package/dist/files/tests/imports.spec.js +44 -42
- package/dist/files/tests/imports.spec.js.map +1 -1
- package/dist/files/tests/optionalChaning.spec.d.ts +1 -0
- package/dist/files/tests/optionalChaning.spec.js +88 -0
- package/dist/files/tests/optionalChaning.spec.js.map +1 -0
- package/dist/globalCallables.d.ts +3 -1
- package/dist/globalCallables.js +424 -152
- package/dist/globalCallables.js.map +1 -1
- package/dist/index.d.ts +13 -3
- package/dist/index.js +23 -4
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +129 -16
- package/dist/lexer/Lexer.d.ts +19 -1
- package/dist/lexer/Lexer.js +127 -21
- package/dist/lexer/Lexer.js.map +1 -1
- package/dist/lexer/Lexer.spec.js +657 -536
- package/dist/lexer/Lexer.spec.js.map +1 -1
- package/dist/lexer/Token.d.ts +2 -2
- package/dist/lexer/TokenKind.d.ts +13 -1
- package/dist/lexer/TokenKind.js +60 -3
- package/dist/lexer/TokenKind.js.map +1 -1
- package/dist/parser/BrsTranspileState.d.ts +7 -0
- package/dist/parser/BrsTranspileState.js +9 -0
- package/dist/parser/BrsTranspileState.js.map +1 -1
- package/dist/parser/Expression.d.ts +150 -34
- package/dist/parser/Expression.js +337 -150
- package/dist/parser/Expression.js.map +1 -1
- package/dist/parser/Parser.Class.spec.js +189 -89
- package/dist/parser/Parser.Class.spec.js.map +1 -1
- package/dist/parser/Parser.d.ts +152 -29
- package/dist/parser/Parser.js +1095 -501
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/Parser.spec.js +687 -266
- package/dist/parser/Parser.spec.js.map +1 -1
- package/dist/parser/SGParser.d.ts +41 -4
- package/dist/parser/SGParser.js +186 -175
- package/dist/parser/SGParser.js.map +1 -1
- package/dist/parser/SGParser.spec.js +35 -22
- package/dist/parser/SGParser.spec.js.map +1 -1
- package/dist/parser/SGTypes.d.ts +206 -38
- package/dist/parser/SGTypes.js +470 -161
- package/dist/parser/SGTypes.js.map +1 -1
- package/dist/parser/SGTypes.spec.d.ts +1 -0
- package/dist/parser/SGTypes.spec.js +351 -0
- package/dist/parser/SGTypes.spec.js.map +1 -0
- package/dist/parser/Statement.d.ts +194 -40
- package/dist/parser/Statement.js +597 -160
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/Statement.spec.js +11 -11
- package/dist/parser/Statement.spec.js.map +1 -1
- package/dist/parser/TranspileState.d.ts +1 -1
- package/dist/parser/TranspileState.js +15 -7
- package/dist/parser/TranspileState.js.map +1 -1
- package/dist/parser/tests/Parser.spec.d.ts +10 -9
- package/dist/parser/tests/Parser.spec.js +15 -11
- package/dist/parser/tests/Parser.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/For.spec.js +60 -60
- package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/ForEach.spec.js +40 -39
- package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/If.spec.js +213 -194
- package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/While.spec.js +37 -37
- package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
- package/dist/parser/tests/expression/Additive.spec.js +30 -30
- package/dist/parser/tests/expression/Additive.spec.js.map +1 -1
- package/dist/parser/tests/expression/ArrayLiterals.spec.js +119 -119
- package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +162 -138
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
- package/dist/parser/tests/expression/Boolean.spec.js +24 -24
- package/dist/parser/tests/expression/Boolean.spec.js.map +1 -1
- package/dist/parser/tests/expression/Call.spec.js +41 -40
- package/dist/parser/tests/expression/Call.spec.js.map +1 -1
- package/dist/parser/tests/expression/Exponential.spec.js +17 -17
- package/dist/parser/tests/expression/Exponential.spec.js.map +1 -1
- package/dist/parser/tests/expression/Function.spec.js +256 -256
- package/dist/parser/tests/expression/Function.spec.js.map +1 -1
- package/dist/parser/tests/expression/Indexing.spec.js +87 -87
- package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
- package/dist/parser/tests/expression/Multiplicative.spec.js +37 -37
- package/dist/parser/tests/expression/Multiplicative.spec.js.map +1 -1
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +75 -63
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/PrefixUnary.spec.js +41 -41
- package/dist/parser/tests/expression/PrefixUnary.spec.js.map +1 -1
- package/dist/parser/tests/expression/Primary.spec.js +41 -41
- package/dist/parser/tests/expression/Primary.spec.js.map +1 -1
- package/dist/parser/tests/expression/RegexLiteralExpression.spec.d.ts +1 -0
- package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +171 -0
- package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +1 -0
- package/dist/parser/tests/expression/Relational.spec.js +43 -43
- package/dist/parser/tests/expression/Relational.spec.js.map +1 -1
- package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +9 -9
- package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js +28 -28
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TernaryExpression.spec.js +102 -102
- package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
- package/dist/parser/tests/statement/AssignmentOperators.spec.js +36 -36
- package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +1 -1
- package/dist/parser/tests/statement/Declaration.spec.js +44 -44
- package/dist/parser/tests/statement/Declaration.spec.js.map +1 -1
- package/dist/parser/tests/statement/Dim.spec.js +21 -21
- package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
- package/dist/parser/tests/statement/Enum.spec.d.ts +1 -0
- package/dist/parser/tests/statement/Enum.spec.js +840 -0
- package/dist/parser/tests/statement/Enum.spec.js.map +1 -0
- package/dist/parser/tests/statement/For.spec.d.ts +1 -0
- package/dist/parser/tests/statement/For.spec.js +46 -0
- package/dist/parser/tests/statement/For.spec.js.map +1 -0
- package/dist/parser/tests/statement/ForEach.spec.d.ts +1 -0
- package/dist/parser/tests/statement/ForEach.spec.js +37 -0
- package/dist/parser/tests/statement/ForEach.spec.js.map +1 -0
- package/dist/parser/tests/statement/Function.spec.js +198 -197
- package/dist/parser/tests/statement/Function.spec.js.map +1 -1
- package/dist/parser/tests/statement/Goto.spec.js +15 -14
- package/dist/parser/tests/statement/Goto.spec.js.map +1 -1
- package/dist/parser/tests/statement/Increment.spec.js +50 -50
- package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
- package/dist/parser/tests/statement/InterfaceStatement.spec.d.ts +1 -0
- package/dist/parser/tests/statement/InterfaceStatement.spec.js +254 -0
- package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -0
- package/dist/parser/tests/statement/LibraryStatement.spec.js +17 -17
- package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Misc.spec.js +108 -106
- package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
- package/dist/parser/tests/statement/PrintStatement.spec.js +40 -40
- package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/ReturnStatement.spec.js +46 -46
- package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Set.spec.js +83 -83
- package/dist/parser/tests/statement/Set.spec.js.map +1 -1
- package/dist/parser/tests/statement/Stop.spec.js +12 -11
- package/dist/parser/tests/statement/Stop.spec.js.map +1 -1
- package/dist/parser/tests/statement/Throw.spec.js +5 -5
- package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
- package/dist/parser/tests/statement/TryCatch.spec.js +15 -13
- package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
- package/dist/preprocessor/Chunk.d.ts +1 -1
- package/dist/preprocessor/Chunk.js.map +1 -1
- package/dist/preprocessor/Manifest.d.ts +5 -5
- package/dist/preprocessor/Manifest.js +14 -35
- package/dist/preprocessor/Manifest.js.map +1 -1
- package/dist/preprocessor/Manifest.spec.d.ts +1 -0
- package/dist/preprocessor/Manifest.spec.js +78 -103
- package/dist/preprocessor/Manifest.spec.js.map +1 -1
- package/dist/preprocessor/Preprocessor.d.ts +1 -1
- package/dist/preprocessor/Preprocessor.js +8 -8
- package/dist/preprocessor/Preprocessor.js.map +1 -1
- package/dist/preprocessor/Preprocessor.spec.js +49 -49
- package/dist/preprocessor/Preprocessor.spec.js.map +1 -1
- package/dist/preprocessor/PreprocessorParser.spec.js +72 -72
- package/dist/preprocessor/PreprocessorParser.spec.js.map +1 -1
- package/dist/roku-types/data.json +21891 -0
- package/dist/roku-types/index.d.ts +6776 -0
- package/dist/roku-types/index.js +11 -0
- package/dist/roku-types/index.js.map +1 -0
- package/dist/types/ArrayType.d.ts +8 -5
- package/dist/types/ArrayType.js +52 -12
- package/dist/types/ArrayType.js.map +1 -1
- package/dist/types/ArrayType.spec.js +72 -11
- package/dist/types/ArrayType.spec.js.map +1 -1
- package/dist/types/BooleanType.d.ts +4 -2
- package/dist/types/BooleanType.js +9 -4
- package/dist/types/BooleanType.js.map +1 -1
- package/dist/types/BooleanType.spec.js +5 -3
- package/dist/types/BooleanType.spec.js.map +1 -1
- package/dist/types/BscType.d.ts +20 -5
- package/dist/types/BscType.js +24 -0
- package/dist/types/BscType.js.map +1 -1
- package/dist/types/CustomType.d.ts +8 -6
- package/dist/types/CustomType.js +20 -11
- package/dist/types/CustomType.js.map +1 -1
- package/dist/types/DoubleType.d.ts +2 -0
- package/dist/types/DoubleType.js +14 -9
- package/dist/types/DoubleType.js.map +1 -1
- package/dist/types/DoubleType.spec.js +5 -3
- package/dist/types/DoubleType.spec.js.map +1 -1
- package/dist/types/DynamicType.d.ts +2 -0
- package/dist/types/DynamicType.js +6 -2
- package/dist/types/DynamicType.js.map +1 -1
- package/dist/types/DynamicType.spec.js +2 -2
- package/dist/types/DynamicType.spec.js.map +1 -1
- package/dist/types/FloatType.d.ts +2 -0
- package/dist/types/FloatType.js +14 -9
- package/dist/types/FloatType.js.map +1 -1
- package/dist/types/FloatType.spec.js +4 -2
- package/dist/types/FloatType.spec.js.map +1 -1
- package/dist/types/FunctionType.d.ts +7 -31
- package/dist/types/FunctionType.js +11 -57
- package/dist/types/FunctionType.js.map +1 -1
- package/dist/types/IntegerType.d.ts +2 -0
- package/dist/types/IntegerType.js +14 -9
- package/dist/types/IntegerType.js.map +1 -1
- package/dist/types/IntegerType.spec.js +5 -3
- package/dist/types/IntegerType.spec.js.map +1 -1
- package/dist/types/InterfaceType.d.ts +13 -4
- package/dist/types/InterfaceType.js +48 -8
- package/dist/types/InterfaceType.js.map +1 -1
- package/dist/types/InterfaceType.spec.d.ts +1 -0
- package/dist/types/InterfaceType.spec.js +194 -0
- package/dist/types/InterfaceType.spec.js.map +1 -0
- package/dist/types/InvalidType.d.ts +4 -2
- package/dist/types/InvalidType.js +10 -5
- package/dist/types/InvalidType.js.map +1 -1
- package/dist/types/InvalidType.spec.js +4 -2
- package/dist/types/InvalidType.spec.js.map +1 -1
- package/dist/types/LazyType.d.ts +8 -7
- package/dist/types/LazyType.js +22 -10
- package/dist/types/LazyType.js.map +1 -1
- package/dist/types/LongIntegerType.d.ts +2 -0
- package/dist/types/LongIntegerType.js +14 -9
- package/dist/types/LongIntegerType.js.map +1 -1
- package/dist/types/LongIntegerType.spec.js +4 -2
- package/dist/types/LongIntegerType.spec.js.map +1 -1
- package/dist/types/ObjectType.d.ts +8 -4
- package/dist/types/ObjectType.js +9 -4
- package/dist/types/ObjectType.js.map +1 -1
- package/dist/types/ObjectType.spec.js +2 -2
- package/dist/types/ObjectType.spec.js.map +1 -1
- package/dist/types/StringType.d.ts +4 -2
- package/dist/types/StringType.js +9 -4
- package/dist/types/StringType.js.map +1 -1
- package/dist/types/StringType.spec.js +4 -2
- package/dist/types/StringType.spec.js.map +1 -1
- package/dist/types/TypedFunctionType.d.ts +28 -0
- package/dist/types/TypedFunctionType.js +88 -0
- package/dist/types/TypedFunctionType.js.map +1 -0
- package/dist/types/TypedFunctionType.spec.d.ts +1 -0
- package/dist/types/TypedFunctionType.spec.js +37 -0
- package/dist/types/TypedFunctionType.spec.js.map +1 -0
- package/dist/types/UninitializedType.js +3 -3
- package/dist/types/UninitializedType.js.map +1 -1
- package/dist/types/VoidType.d.ts +4 -2
- package/dist/types/VoidType.js +8 -4
- package/dist/types/VoidType.js.map +1 -1
- package/dist/types/VoidType.spec.js +2 -2
- package/dist/types/VoidType.spec.js.map +1 -1
- package/dist/types/helpers.d.ts +42 -0
- package/dist/types/helpers.js +118 -0
- package/dist/types/helpers.js.map +1 -0
- package/dist/util.d.ts +87 -16
- package/dist/util.js +339 -94
- package/dist/util.js.map +1 -1
- package/dist/validators/ClassValidator.d.ts +19 -2
- package/dist/validators/ClassValidator.js +163 -102
- package/dist/validators/ClassValidator.js.map +1 -1
- package/package.json +26 -15
- 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/lexer/index.d.ts +0 -3
- package/dist/lexer/index.js +0 -17
- package/dist/lexer/index.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/preprocessor/index.d.ts +0 -3
- package/dist/preprocessor/index.js +0 -16
- package/dist/preprocessor/index.js.map +0 -1
- package/dist/types/FunctionType.spec.js +0 -23
- package/dist/types/FunctionType.spec.js.map +0 -1
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
import type { Token, Identifier } from '../lexer';
|
|
2
|
-
import { TokenKind } from '../lexer';
|
|
3
|
-
import type { Expression, NamespacedVariableNameExpression, FunctionExpression, AnnotationExpression } from './Expression';
|
|
1
|
+
import type { Token, Identifier } from '../lexer/Token';
|
|
2
|
+
import { TokenKind } from '../lexer/TokenKind';
|
|
3
|
+
import type { Expression, NamespacedVariableNameExpression, FunctionExpression, AnnotationExpression, TypeExpression } from './Expression';
|
|
4
4
|
import type { Range } from 'vscode-languageserver';
|
|
5
5
|
import type { BrsTranspileState } from './BrsTranspileState';
|
|
6
6
|
import { ParseMode } from './Parser';
|
|
7
7
|
import type { WalkVisitor, WalkOptions } from '../astUtils/visitors';
|
|
8
8
|
import { InternalWalkMode } from '../astUtils/visitors';
|
|
9
|
-
import type { TranspileResult, TypedefProvider } from '../interfaces';
|
|
9
|
+
import type { TranspileResult, TypedefProvider, MemberSymbolTableProvider, InheritableStatement } from '../interfaces';
|
|
10
|
+
import { DynamicType } from '../types/DynamicType';
|
|
11
|
+
import type { SourceNode } from 'source-map';
|
|
12
|
+
import type { TranspileState } from './TranspileState';
|
|
10
13
|
import { SymbolTable } from '../SymbolTable';
|
|
14
|
+
import { CustomType } from '../types/CustomType';
|
|
15
|
+
import { InterfaceType } from '../types/InterfaceType';
|
|
11
16
|
/**
|
|
12
17
|
* A BrightScript statement
|
|
13
18
|
*/
|
|
@@ -15,7 +20,7 @@ export declare abstract class Statement {
|
|
|
15
20
|
/**
|
|
16
21
|
* The starting and ending location of the statement.
|
|
17
22
|
**/
|
|
18
|
-
abstract range: Range;
|
|
23
|
+
abstract readonly range: Range;
|
|
19
24
|
/**
|
|
20
25
|
* Statement annotations
|
|
21
26
|
*/
|
|
@@ -46,7 +51,7 @@ export declare class EmptyStatement extends Statement {
|
|
|
46
51
|
export declare class Body extends Statement implements TypedefProvider {
|
|
47
52
|
statements: Statement[];
|
|
48
53
|
constructor(statements?: Statement[]);
|
|
49
|
-
|
|
54
|
+
readonly range: Range;
|
|
50
55
|
transpile(state: BrsTranspileState): TranspileResult;
|
|
51
56
|
getTypedef(state: BrsTranspileState): any[];
|
|
52
57
|
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
@@ -79,10 +84,10 @@ export declare class ExpressionStatement extends Statement {
|
|
|
79
84
|
export declare class CommentStatement extends Statement implements Expression, TypedefProvider {
|
|
80
85
|
comments: Token[];
|
|
81
86
|
constructor(comments: Token[]);
|
|
82
|
-
range: Range;
|
|
87
|
+
readonly range: Range;
|
|
83
88
|
get text(): string;
|
|
84
89
|
transpile(state: BrsTranspileState): any[];
|
|
85
|
-
getTypedef(state:
|
|
90
|
+
getTypedef(state: TranspileState): any[];
|
|
86
91
|
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
87
92
|
}
|
|
88
93
|
export declare class ExitForStatement extends Statement {
|
|
@@ -93,7 +98,7 @@ export declare class ExitForStatement extends Statement {
|
|
|
93
98
|
exitFor: Token;
|
|
94
99
|
});
|
|
95
100
|
readonly range: Range;
|
|
96
|
-
transpile(state: BrsTranspileState):
|
|
101
|
+
transpile(state: BrsTranspileState): SourceNode[];
|
|
97
102
|
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
98
103
|
}
|
|
99
104
|
export declare class ExitWhileStatement extends Statement {
|
|
@@ -104,7 +109,7 @@ export declare class ExitWhileStatement extends Statement {
|
|
|
104
109
|
exitWhile: Token;
|
|
105
110
|
});
|
|
106
111
|
readonly range: Range;
|
|
107
|
-
transpile(state: BrsTranspileState):
|
|
112
|
+
transpile(state: BrsTranspileState): SourceNode[];
|
|
108
113
|
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
109
114
|
}
|
|
110
115
|
export declare class FunctionStatement extends Statement implements TypedefProvider {
|
|
@@ -112,7 +117,9 @@ export declare class FunctionStatement extends Statement implements TypedefProvi
|
|
|
112
117
|
func: FunctionExpression;
|
|
113
118
|
namespaceName: NamespacedVariableNameExpression;
|
|
114
119
|
constructor(name: Identifier, func: FunctionExpression, namespaceName: NamespacedVariableNameExpression);
|
|
115
|
-
|
|
120
|
+
get range(): Range;
|
|
121
|
+
cacheRange(): Range;
|
|
122
|
+
protected _range: Range;
|
|
116
123
|
/**
|
|
117
124
|
* Get the name of this expression based on the parse mode
|
|
118
125
|
*/
|
|
@@ -147,7 +154,7 @@ export declare class IncrementStatement extends Statement {
|
|
|
147
154
|
readonly operator: Token;
|
|
148
155
|
constructor(value: Expression, operator: Token);
|
|
149
156
|
readonly range: Range;
|
|
150
|
-
transpile(state: BrsTranspileState): (string |
|
|
157
|
+
transpile(state: BrsTranspileState): (string | SourceNode)[];
|
|
151
158
|
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
152
159
|
}
|
|
153
160
|
/** Used to indent the current `print` position to the next 16-character-width output zone. */
|
|
@@ -175,7 +182,7 @@ export declare class PrintStatement extends Statement {
|
|
|
175
182
|
print: Token;
|
|
176
183
|
}, expressions: Array<Expression | PrintSeparatorTab | PrintSeparatorSpace>);
|
|
177
184
|
readonly range: Range;
|
|
178
|
-
transpile(state: BrsTranspileState): (string |
|
|
185
|
+
transpile(state: BrsTranspileState): (string | SourceNode)[];
|
|
179
186
|
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
180
187
|
}
|
|
181
188
|
export declare class DimStatement extends Statement {
|
|
@@ -185,8 +192,8 @@ export declare class DimStatement extends Statement {
|
|
|
185
192
|
dimensions?: Expression[];
|
|
186
193
|
closingSquare?: Token;
|
|
187
194
|
constructor(dimToken: Token, identifier?: Identifier, openingSquare?: Token, dimensions?: Expression[], closingSquare?: Token);
|
|
188
|
-
range: Range;
|
|
189
|
-
transpile(state: BrsTranspileState): (string |
|
|
195
|
+
readonly range: Range;
|
|
196
|
+
transpile(state: BrsTranspileState): (string | SourceNode)[];
|
|
190
197
|
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
191
198
|
}
|
|
192
199
|
export declare class GotoStatement extends Statement {
|
|
@@ -199,7 +206,7 @@ export declare class GotoStatement extends Statement {
|
|
|
199
206
|
label: Token;
|
|
200
207
|
});
|
|
201
208
|
readonly range: Range;
|
|
202
|
-
transpile(state: BrsTranspileState): (string |
|
|
209
|
+
transpile(state: BrsTranspileState): (string | SourceNode)[];
|
|
203
210
|
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
204
211
|
}
|
|
205
212
|
export declare class LabelStatement extends Statement {
|
|
@@ -212,7 +219,7 @@ export declare class LabelStatement extends Statement {
|
|
|
212
219
|
colon: Token;
|
|
213
220
|
});
|
|
214
221
|
readonly range: Range;
|
|
215
|
-
transpile(state: BrsTranspileState):
|
|
222
|
+
transpile(state: BrsTranspileState): SourceNode[];
|
|
216
223
|
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
217
224
|
}
|
|
218
225
|
export declare class ReturnStatement extends Statement {
|
|
@@ -235,7 +242,7 @@ export declare class EndStatement extends Statement {
|
|
|
235
242
|
end: Token;
|
|
236
243
|
});
|
|
237
244
|
readonly range: Range;
|
|
238
|
-
transpile(state: BrsTranspileState):
|
|
245
|
+
transpile(state: BrsTranspileState): SourceNode[];
|
|
239
246
|
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
240
247
|
}
|
|
241
248
|
export declare class StopStatement extends Statement {
|
|
@@ -246,7 +253,7 @@ export declare class StopStatement extends Statement {
|
|
|
246
253
|
stop: Token;
|
|
247
254
|
});
|
|
248
255
|
readonly range: Range;
|
|
249
|
-
transpile(state: BrsTranspileState):
|
|
256
|
+
transpile(state: BrsTranspileState): SourceNode[];
|
|
250
257
|
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
251
258
|
}
|
|
252
259
|
export declare class ForStatement extends Statement {
|
|
@@ -294,7 +301,9 @@ export declare class DottedSetStatement extends Statement {
|
|
|
294
301
|
readonly obj: Expression;
|
|
295
302
|
readonly name: Identifier;
|
|
296
303
|
readonly value: Expression;
|
|
297
|
-
|
|
304
|
+
dot: Token;
|
|
305
|
+
operator: Token;
|
|
306
|
+
constructor(obj: Expression, name: Identifier, value: Expression, dot: Token, operator: Token);
|
|
298
307
|
readonly range: Range;
|
|
299
308
|
transpile(state: BrsTranspileState): TranspileResult;
|
|
300
309
|
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
@@ -305,7 +314,8 @@ export declare class IndexedSetStatement extends Statement {
|
|
|
305
314
|
readonly value: Expression;
|
|
306
315
|
readonly openingSquare: Token;
|
|
307
316
|
readonly closingSquare: Token;
|
|
308
|
-
|
|
317
|
+
operator: Token;
|
|
318
|
+
constructor(obj: Expression, index: Expression, value: Expression, openingSquare: Token, closingSquare: Token, operator: Token);
|
|
309
319
|
readonly range: Range;
|
|
310
320
|
transpile(state: BrsTranspileState): TranspileResult;
|
|
311
321
|
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
@@ -332,11 +342,13 @@ export declare class NamespaceStatement extends Statement implements TypedefProv
|
|
|
332
342
|
readonly parentSymbolTable?: SymbolTable;
|
|
333
343
|
readonly symbolTable: SymbolTable;
|
|
334
344
|
constructor(keyword: Token, nameExpression: NamespacedVariableNameExpression, body: Body, endKeyword: Token, parentSymbolTable?: SymbolTable);
|
|
345
|
+
get range(): Range;
|
|
346
|
+
cacheRange(): Range;
|
|
347
|
+
private _range;
|
|
335
348
|
/**
|
|
336
349
|
* The string name for this namespace
|
|
337
350
|
*/
|
|
338
351
|
name: string;
|
|
339
|
-
get range(): Range;
|
|
340
352
|
getName(parseMode: ParseMode): string;
|
|
341
353
|
transpile(state: BrsTranspileState): TranspileResult;
|
|
342
354
|
getTypedef(state: BrsTranspileState): string[];
|
|
@@ -347,15 +359,69 @@ export declare class ImportStatement extends Statement implements TypedefProvide
|
|
|
347
359
|
readonly filePathToken: Token;
|
|
348
360
|
constructor(importToken: Token, filePathToken: Token);
|
|
349
361
|
filePath: string;
|
|
350
|
-
range: Range;
|
|
351
|
-
transpile(state: BrsTranspileState): (string |
|
|
362
|
+
readonly range: Range;
|
|
363
|
+
transpile(state: BrsTranspileState): (string | SourceNode)[];
|
|
352
364
|
/**
|
|
353
365
|
* Get the typedef for this statement
|
|
354
366
|
*/
|
|
355
367
|
getTypedef(state: BrsTranspileState): string[];
|
|
356
368
|
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
357
369
|
}
|
|
358
|
-
export declare class
|
|
370
|
+
export declare class InterfaceStatement extends Statement implements TypedefProvider, MemberSymbolTableProvider {
|
|
371
|
+
name: Identifier;
|
|
372
|
+
parentInterfaceName: NamespacedVariableNameExpression;
|
|
373
|
+
body: Statement[];
|
|
374
|
+
namespaceName: NamespacedVariableNameExpression;
|
|
375
|
+
readonly memberTable: SymbolTable;
|
|
376
|
+
constructor(interfaceToken: Token, name: Identifier, extendsToken: Token, parentInterfaceName: NamespacedVariableNameExpression, body: Statement[], endInterfaceToken: Token, namespaceName: NamespacedVariableNameExpression);
|
|
377
|
+
tokens: {
|
|
378
|
+
interface: Token;
|
|
379
|
+
name: Identifier;
|
|
380
|
+
extends: Token;
|
|
381
|
+
endInterface: Token;
|
|
382
|
+
};
|
|
383
|
+
readonly range: Range;
|
|
384
|
+
memberMap: Record<string, InterfaceMemberStatement>;
|
|
385
|
+
methods: InterfaceMethodStatement[];
|
|
386
|
+
fields: InterfaceFieldStatement[];
|
|
387
|
+
/**
|
|
388
|
+
* The name of the interface WITH its leading namespace (if applicable)
|
|
389
|
+
*/
|
|
390
|
+
getName(parseMode: ParseMode): string;
|
|
391
|
+
buildSymbolTable(parentIface?: InheritableStatement): void;
|
|
392
|
+
hasParent(): boolean;
|
|
393
|
+
getParentName(): boolean;
|
|
394
|
+
/**
|
|
395
|
+
* Gets an array of possible parent interface names, taking into account the namespace this interface was created under
|
|
396
|
+
* @returns array of possible parent interface names
|
|
397
|
+
*/
|
|
398
|
+
getPossibleFullParentNames(): string[];
|
|
399
|
+
getThisBscType(): InterfaceType;
|
|
400
|
+
transpile(state: BrsTranspileState): TranspileResult;
|
|
401
|
+
getTypedef(state: BrsTranspileState): TranspileResult;
|
|
402
|
+
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
403
|
+
}
|
|
404
|
+
export declare class InterfaceFieldStatement extends Statement implements TypedefProvider {
|
|
405
|
+
type?: TypeExpression;
|
|
406
|
+
namespaceName?: NamespacedVariableNameExpression;
|
|
407
|
+
transpile(state: BrsTranspileState): TranspileResult;
|
|
408
|
+
constructor(nameToken: Identifier, asToken: Token, type?: TypeExpression, namespaceName?: NamespacedVariableNameExpression);
|
|
409
|
+
readonly range: Range;
|
|
410
|
+
tokens: {
|
|
411
|
+
name: Identifier;
|
|
412
|
+
as: Token;
|
|
413
|
+
};
|
|
414
|
+
getType(): import("../types/BscType").BscType;
|
|
415
|
+
get name(): Identifier;
|
|
416
|
+
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
417
|
+
getTypedef(state: BrsTranspileState): (string | SourceNode)[];
|
|
418
|
+
}
|
|
419
|
+
export declare class InterfaceMethodStatement extends FunctionStatement implements TypedefProvider {
|
|
420
|
+
transpile(state: BrsTranspileState): TranspileResult;
|
|
421
|
+
constructor(name: Identifier, func: FunctionExpression);
|
|
422
|
+
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
423
|
+
}
|
|
424
|
+
export declare class ClassStatement extends Statement implements TypedefProvider, MemberSymbolTableProvider {
|
|
359
425
|
readonly classKeyword: Token;
|
|
360
426
|
/**
|
|
361
427
|
* The name of the class (without namespace prefix)
|
|
@@ -366,16 +432,22 @@ export declare class ClassStatement extends Statement implements TypedefProvider
|
|
|
366
432
|
readonly extendsKeyword?: Token;
|
|
367
433
|
readonly parentClassName?: NamespacedVariableNameExpression;
|
|
368
434
|
readonly namespaceName?: NamespacedVariableNameExpression;
|
|
435
|
+
readonly currentSymbolTable?: SymbolTable;
|
|
436
|
+
readonly symbolTable: SymbolTable;
|
|
437
|
+
readonly memberTable: SymbolTable;
|
|
369
438
|
constructor(classKeyword: Token,
|
|
370
439
|
/**
|
|
371
440
|
* The name of the class (without namespace prefix)
|
|
372
441
|
*/
|
|
373
|
-
name: Identifier, body: Statement[], end: Token, extendsKeyword?: Token, parentClassName?: NamespacedVariableNameExpression, namespaceName?: NamespacedVariableNameExpression);
|
|
442
|
+
name: Identifier, body: Statement[], end: Token, extendsKeyword?: Token, parentClassName?: NamespacedVariableNameExpression, namespaceName?: NamespacedVariableNameExpression, currentSymbolTable?: SymbolTable);
|
|
374
443
|
getName(parseMode: ParseMode): string;
|
|
375
444
|
memberMap: Record<string, ClassMemberStatement>;
|
|
376
445
|
methods: ClassMethodStatement[];
|
|
377
446
|
fields: ClassFieldStatement[];
|
|
378
447
|
readonly range: Range;
|
|
448
|
+
getThisBscType(): CustomType;
|
|
449
|
+
getConstructorFunctionType(): import("../types/TypedFunctionType").TypedFunctionType;
|
|
450
|
+
buildSymbolTable(parentClass?: InheritableStatement): void;
|
|
379
451
|
transpile(state: BrsTranspileState): any[];
|
|
380
452
|
getTypedef(state: BrsTranspileState): TranspileResult;
|
|
381
453
|
/**
|
|
@@ -384,7 +456,12 @@ export declare class ClassStatement extends Statement implements TypedefProvider
|
|
|
384
456
|
* The base class is index 0, its child is index 1, and so on.
|
|
385
457
|
*/
|
|
386
458
|
getParentClassIndex(state: BrsTranspileState): number;
|
|
387
|
-
|
|
459
|
+
hasParent(): boolean;
|
|
460
|
+
/**
|
|
461
|
+
* Gets an array of possible parent class names, taking into account the namespace this class was created under
|
|
462
|
+
* @returns array of possible parent class names
|
|
463
|
+
*/
|
|
464
|
+
getPossibleFullParentNames(): string[];
|
|
388
465
|
/**
|
|
389
466
|
* Get all ancestor classes, in closest-to-furthest order (i.e. 0 is parent, 1 is grandparent, etc...).
|
|
390
467
|
* This will return an empty array if no ancestors were found
|
|
@@ -396,6 +473,10 @@ export declare class ClassStatement extends Statement implements TypedefProvider
|
|
|
396
473
|
*/
|
|
397
474
|
private getConstructorFunction;
|
|
398
475
|
private getEmptyNewFunction;
|
|
476
|
+
/**
|
|
477
|
+
* Create an empty `new` function if class is missing it (simplifies transpile logic)
|
|
478
|
+
*/
|
|
479
|
+
private ensureConstructorFunctionExists;
|
|
399
480
|
/**
|
|
400
481
|
* Determine if the specified field was declared in one of the ancestor classes
|
|
401
482
|
*/
|
|
@@ -415,10 +496,11 @@ export declare class ClassStatement extends Statement implements TypedefProvider
|
|
|
415
496
|
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
416
497
|
}
|
|
417
498
|
export declare class ClassMethodStatement extends FunctionStatement {
|
|
418
|
-
|
|
419
|
-
|
|
499
|
+
accessModifier: Token;
|
|
500
|
+
override: Token;
|
|
420
501
|
constructor(accessModifier: Token, name: Identifier, func: FunctionExpression, override: Token);
|
|
421
|
-
|
|
502
|
+
get range(): Range;
|
|
503
|
+
cacheRange(): Range;
|
|
422
504
|
transpile(state: BrsTranspileState): any[];
|
|
423
505
|
getTypedef(state: BrsTranspileState): string[];
|
|
424
506
|
/**
|
|
@@ -436,29 +518,49 @@ export declare class ClassFieldStatement extends Statement implements TypedefPro
|
|
|
436
518
|
readonly accessModifier?: Token;
|
|
437
519
|
readonly name?: Identifier;
|
|
438
520
|
readonly as?: Token;
|
|
439
|
-
readonly type?:
|
|
521
|
+
readonly type?: TypeExpression;
|
|
440
522
|
readonly equal?: Token;
|
|
441
523
|
readonly initialValue?: Expression;
|
|
442
|
-
|
|
524
|
+
readonly namespaceName?: NamespacedVariableNameExpression;
|
|
525
|
+
constructor(accessModifier?: Token, name?: Identifier, as?: Token, type?: TypeExpression, equal?: Token, initialValue?: Expression, namespaceName?: NamespacedVariableNameExpression);
|
|
526
|
+
readonly range: Range;
|
|
443
527
|
/**
|
|
444
528
|
* Derive a ValueKind from the type token, or the initial value.
|
|
445
529
|
* Defaults to `DynamicType`
|
|
446
530
|
*/
|
|
447
|
-
getType():
|
|
448
|
-
readonly range: Range;
|
|
531
|
+
getType(parseMode?: ParseMode): DynamicType | import("../types/BscType").BscType;
|
|
449
532
|
transpile(state: BrsTranspileState): TranspileResult;
|
|
450
533
|
getTypedef(state: BrsTranspileState): any[];
|
|
451
534
|
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
452
535
|
}
|
|
453
536
|
export declare type ClassMemberStatement = ClassFieldStatement | ClassMethodStatement;
|
|
537
|
+
export declare type InterfaceMemberStatement = InterfaceFieldStatement | InterfaceMethodStatement;
|
|
538
|
+
export declare type MemberFieldStatement = ClassFieldStatement | InterfaceFieldStatement;
|
|
539
|
+
export declare type MemberMethodStatement = ClassMethodStatement | InterfaceMethodStatement;
|
|
454
540
|
export declare class TryCatchStatement extends Statement {
|
|
455
|
-
|
|
541
|
+
tokens: {
|
|
542
|
+
try: Token;
|
|
543
|
+
endTry?: Token;
|
|
544
|
+
};
|
|
456
545
|
tryBranch?: Block;
|
|
457
|
-
|
|
546
|
+
catchStatement?: CatchStatement;
|
|
547
|
+
constructor(tokens: {
|
|
548
|
+
try: Token;
|
|
549
|
+
endTry?: Token;
|
|
550
|
+
}, tryBranch?: Block, catchStatement?: CatchStatement);
|
|
551
|
+
readonly range: Range;
|
|
552
|
+
transpile(state: BrsTranspileState): TranspileResult;
|
|
553
|
+
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
554
|
+
}
|
|
555
|
+
export declare class CatchStatement extends Statement {
|
|
556
|
+
tokens: {
|
|
557
|
+
catch: Token;
|
|
558
|
+
};
|
|
458
559
|
exceptionVariable?: Identifier;
|
|
459
560
|
catchBranch?: Block;
|
|
460
|
-
|
|
461
|
-
|
|
561
|
+
constructor(tokens: {
|
|
562
|
+
catch: Token;
|
|
563
|
+
}, exceptionVariable?: Identifier, catchBranch?: Block);
|
|
462
564
|
get range(): Range;
|
|
463
565
|
transpile(state: BrsTranspileState): TranspileResult;
|
|
464
566
|
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
@@ -467,7 +569,59 @@ export declare class ThrowStatement extends Statement {
|
|
|
467
569
|
throwToken: Token;
|
|
468
570
|
expression?: Expression;
|
|
469
571
|
constructor(throwToken: Token, expression?: Expression);
|
|
470
|
-
range: Range;
|
|
471
|
-
transpile(state: BrsTranspileState): (string |
|
|
572
|
+
readonly range: Range;
|
|
573
|
+
transpile(state: BrsTranspileState): (string | SourceNode)[];
|
|
574
|
+
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
575
|
+
}
|
|
576
|
+
export declare class EnumStatement extends Statement implements TypedefProvider {
|
|
577
|
+
tokens: {
|
|
578
|
+
enum: Token;
|
|
579
|
+
name: Identifier;
|
|
580
|
+
endEnum: Token;
|
|
581
|
+
};
|
|
582
|
+
body: Array<EnumMemberStatement | CommentStatement>;
|
|
583
|
+
namespaceName?: NamespacedVariableNameExpression;
|
|
584
|
+
constructor(tokens: {
|
|
585
|
+
enum: Token;
|
|
586
|
+
name: Identifier;
|
|
587
|
+
endEnum: Token;
|
|
588
|
+
}, body: Array<EnumMemberStatement | CommentStatement>, namespaceName?: NamespacedVariableNameExpression);
|
|
589
|
+
readonly range: Range;
|
|
590
|
+
getMembers(): EnumMemberStatement[];
|
|
591
|
+
/**
|
|
592
|
+
* Get a map of member names and their values.
|
|
593
|
+
* All values are stored as their AST LiteralExpression representation (i.e. string enum values include the wrapping quotes)
|
|
594
|
+
*/
|
|
595
|
+
getMemberValueMap(): Map<string, string>;
|
|
596
|
+
getMemberValue(name: string): string;
|
|
597
|
+
/**
|
|
598
|
+
* The name of the enum (without the namespace prefix)
|
|
599
|
+
*/
|
|
600
|
+
get name(): string;
|
|
601
|
+
/**
|
|
602
|
+
* The name of the enum WITH its leading namespace (if applicable)
|
|
603
|
+
*/
|
|
604
|
+
get fullName(): string;
|
|
605
|
+
transpile(state: BrsTranspileState): any[];
|
|
606
|
+
getTypedef(state: BrsTranspileState): TranspileResult;
|
|
607
|
+
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
608
|
+
}
|
|
609
|
+
export declare class EnumMemberStatement extends Statement implements TypedefProvider {
|
|
610
|
+
tokens: {
|
|
611
|
+
name: Identifier;
|
|
612
|
+
equal?: Token;
|
|
613
|
+
};
|
|
614
|
+
value?: Expression;
|
|
615
|
+
constructor(tokens: {
|
|
616
|
+
name: Identifier;
|
|
617
|
+
equal?: Token;
|
|
618
|
+
}, value?: Expression);
|
|
619
|
+
readonly range: Range;
|
|
620
|
+
/**
|
|
621
|
+
* The name of the member
|
|
622
|
+
*/
|
|
623
|
+
get name(): string;
|
|
624
|
+
transpile(state: BrsTranspileState): TranspileResult;
|
|
625
|
+
getTypedef(state: BrsTranspileState): (string | SourceNode)[];
|
|
472
626
|
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
473
627
|
}
|