brighterscript 1.0.0-alpha.41 → 1.0.0-alpha.43
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 +78 -2
- package/dist/AstValidationSegmenter.d.ts +3 -0
- package/dist/AstValidationSegmenter.js +62 -2
- package/dist/AstValidationSegmenter.js.map +1 -1
- package/dist/BsConfig.d.ts +7 -7
- package/dist/CrossScopeValidator.js +3 -3
- package/dist/CrossScopeValidator.js.map +1 -1
- package/dist/DiagnosticFilterer.d.ts +5 -1
- package/dist/DiagnosticFilterer.js +92 -33
- package/dist/DiagnosticFilterer.js.map +1 -1
- package/dist/DiagnosticManager.js +12 -9
- package/dist/DiagnosticManager.js.map +1 -1
- package/dist/DiagnosticMessages.d.ts +374 -225
- package/dist/DiagnosticMessages.js +641 -424
- package/dist/DiagnosticMessages.js.map +1 -1
- package/dist/DiagnosticSeverityAdjuster.js +4 -0
- package/dist/DiagnosticSeverityAdjuster.js.map +1 -1
- package/dist/LanguageServer.js +0 -7
- package/dist/LanguageServer.js.map +1 -1
- package/dist/PluginInterface.js +2 -0
- package/dist/PluginInterface.js.map +1 -1
- package/dist/Program.d.ts +22 -1
- package/dist/Program.js +206 -49
- package/dist/Program.js.map +1 -1
- package/dist/SymbolTable.d.ts +3 -0
- package/dist/SymbolTable.js +19 -1
- package/dist/SymbolTable.js.map +1 -1
- package/dist/XmlScope.js +3 -6
- package/dist/XmlScope.js.map +1 -1
- package/dist/astUtils/creators.d.ts +35 -3
- package/dist/astUtils/creators.js +52 -1
- package/dist/astUtils/creators.js.map +1 -1
- package/dist/astUtils/reflection.d.ts +24 -5
- package/dist/astUtils/reflection.js +89 -19
- package/dist/astUtils/reflection.js.map +1 -1
- package/dist/astUtils/visitors.d.ts +3 -2
- package/dist/astUtils/visitors.js +37 -14
- package/dist/astUtils/visitors.js.map +1 -1
- package/dist/astUtils/visitors.spec.js +172 -6
- package/dist/astUtils/visitors.spec.js.map +1 -1
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.d.ts +0 -1
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +0 -13
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +2 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.js +5 -5
- package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +106 -2
- package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/hover/HoverProcessor.spec.js +51 -3
- package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.d.ts +1 -0
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +149 -0
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -1
- package/dist/bscPlugin/validation/BrsFileValidator.js +15 -8
- package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
- package/dist/bscPlugin/validation/BrsFileValidator.spec.js +170 -24
- package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.d.ts +7 -0
- package/dist/bscPlugin/validation/ScopeValidator.js +150 -80
- package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.spec.js +1341 -29
- package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -1
- package/dist/bscPlugin/validation/XmlFileValidator.js +0 -8
- package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -1
- package/dist/diagnosticUtils.js +6 -5
- package/dist/diagnosticUtils.js.map +1 -1
- package/dist/files/BrsFile.Class.spec.js +87 -28
- package/dist/files/BrsFile.Class.spec.js.map +1 -1
- package/dist/files/BrsFile.d.ts +1 -0
- package/dist/files/BrsFile.js +20 -8
- package/dist/files/BrsFile.js.map +1 -1
- package/dist/files/BrsFile.spec.js +133 -34
- package/dist/files/BrsFile.spec.js.map +1 -1
- package/dist/files/XmlFile.js +2 -2
- package/dist/files/XmlFile.js.map +1 -1
- package/dist/files/XmlFile.spec.js +3 -20
- package/dist/files/XmlFile.spec.js.map +1 -1
- package/dist/globalCallables.js +1 -1
- package/dist/index.d.ts +8 -3
- package/dist/index.js +24 -16
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +18 -0
- package/dist/interfaces.js.map +1 -1
- package/dist/lexer/Lexer.js +17 -11
- package/dist/lexer/Lexer.js.map +1 -1
- package/dist/lexer/Lexer.spec.js +21 -3
- package/dist/lexer/Lexer.spec.js.map +1 -1
- package/dist/lexer/TokenKind.d.ts +9 -0
- package/dist/lexer/TokenKind.js +11 -1
- package/dist/lexer/TokenKind.js.map +1 -1
- package/dist/parser/AstNode.d.ts +2 -1
- package/dist/parser/AstNode.js +3 -2
- package/dist/parser/AstNode.js.map +1 -1
- package/dist/parser/Expression.d.ts +22 -2
- package/dist/parser/Expression.js +84 -49
- package/dist/parser/Expression.js.map +1 -1
- package/dist/parser/Parser.Class.spec.js +3 -3
- package/dist/parser/Parser.Class.spec.js.map +1 -1
- package/dist/parser/Parser.js +73 -61
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/Parser.spec.js +198 -15
- package/dist/parser/Parser.spec.js.map +1 -1
- package/dist/parser/SGParser.js +9 -9
- package/dist/parser/SGParser.js.map +1 -1
- package/dist/parser/SGParser.spec.js +3 -2
- package/dist/parser/SGParser.spec.js.map +1 -1
- package/dist/parser/Statement.d.ts +16 -18
- package/dist/parser/Statement.js +136 -82
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/tests/controlFlow/If.spec.js +1 -1
- package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
- package/dist/parser/tests/expression/ArrayLiterals.spec.js +3 -3
- package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +3 -3
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
- package/dist/parser/tests/expression/Call.spec.js +9 -9
- package/dist/parser/tests/expression/Call.spec.js.map +1 -1
- package/dist/parser/tests/expression/Indexing.spec.js +3 -3
- package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js +1 -1
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TernaryExpression.spec.js +353 -71
- package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
- package/dist/parser/tests/statement/Dim.spec.js +10 -3
- package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
- package/dist/parser/tests/statement/Enum.spec.js +2 -2
- package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
- package/dist/parser/tests/statement/Increment.spec.js +3 -5
- package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
- package/dist/parser/tests/statement/PrintStatement.spec.js +3 -3
- package/dist/parser/tests/statement/TryCatch.spec.js +1 -1
- package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
- package/dist/roku-types/data.json +567 -247
- package/dist/roku-types/index.d.ts +72 -42
- package/dist/types/ArrayType.d.ts +3 -0
- package/dist/types/ArrayType.js +18 -5
- package/dist/types/ArrayType.js.map +1 -1
- package/dist/types/AssociativeArrayType.d.ts +1 -0
- package/dist/types/AssociativeArrayType.js +1 -0
- package/dist/types/AssociativeArrayType.js.map +1 -1
- package/dist/types/BaseFunctionType.d.ts +1 -0
- package/dist/types/BaseFunctionType.js +1 -0
- package/dist/types/BaseFunctionType.js.map +1 -1
- package/dist/types/BooleanType.d.ts +1 -0
- package/dist/types/BooleanType.js +1 -0
- package/dist/types/BooleanType.js.map +1 -1
- package/dist/types/BscType.d.ts +8 -1
- package/dist/types/BscType.js +22 -6
- package/dist/types/BscType.js.map +1 -1
- package/dist/types/BuiltInInterfaceAdder.js +10 -6
- package/dist/types/BuiltInInterfaceAdder.js.map +1 -1
- package/dist/types/ClassType.d.ts +1 -0
- package/dist/types/ClassType.js +5 -2
- package/dist/types/ClassType.js.map +1 -1
- package/dist/types/ComponentType.d.ts +11 -4
- package/dist/types/ComponentType.js +100 -8
- package/dist/types/ComponentType.js.map +1 -1
- package/dist/types/DoubleType.d.ts +2 -0
- package/dist/types/DoubleType.js +4 -5
- package/dist/types/DoubleType.js.map +1 -1
- package/dist/types/DynamicType.d.ts +1 -0
- package/dist/types/DynamicType.js +4 -0
- package/dist/types/DynamicType.js.map +1 -1
- package/dist/types/EnumType.d.ts +2 -0
- package/dist/types/EnumType.js +20 -2
- package/dist/types/EnumType.js.map +1 -1
- package/dist/types/FloatType.d.ts +2 -0
- package/dist/types/FloatType.js +4 -5
- package/dist/types/FloatType.js.map +1 -1
- package/dist/types/FunctionType.js +2 -1
- package/dist/types/FunctionType.js.map +1 -1
- package/dist/types/InheritableType.js +8 -0
- package/dist/types/InheritableType.js.map +1 -1
- package/dist/types/IntegerType.d.ts +2 -0
- package/dist/types/IntegerType.js +4 -5
- package/dist/types/IntegerType.js.map +1 -1
- package/dist/types/InterfaceType.js +4 -1
- package/dist/types/InterfaceType.js.map +1 -1
- package/dist/types/InvalidType.d.ts +2 -1
- package/dist/types/InvalidType.js +3 -2
- package/dist/types/InvalidType.js.map +1 -1
- package/dist/types/LongIntegerType.d.ts +2 -0
- package/dist/types/LongIntegerType.js +4 -5
- package/dist/types/LongIntegerType.js.map +1 -1
- package/dist/types/ObjectType.d.ts +1 -0
- package/dist/types/ObjectType.js +1 -0
- package/dist/types/ObjectType.js.map +1 -1
- package/dist/types/ReferenceType.d.ts +20 -2
- package/dist/types/ReferenceType.js +106 -5
- package/dist/types/ReferenceType.js.map +1 -1
- package/dist/types/StringType.d.ts +1 -0
- package/dist/types/StringType.js +3 -2
- package/dist/types/StringType.js.map +1 -1
- package/dist/types/TypedFunctionType.d.ts +1 -1
- package/dist/types/TypedFunctionType.js +8 -2
- package/dist/types/TypedFunctionType.js.map +1 -1
- package/dist/types/UninitializedType.d.ts +2 -0
- package/dist/types/UninitializedType.js +5 -6
- package/dist/types/UninitializedType.js.map +1 -1
- package/dist/types/UnionType.js +8 -2
- package/dist/types/UnionType.js.map +1 -1
- package/dist/types/VoidType.d.ts +4 -1
- package/dist/types/VoidType.js +5 -0
- package/dist/types/VoidType.js.map +1 -1
- package/dist/types/helpers.js +8 -1
- package/dist/types/helpers.js.map +1 -1
- package/dist/util.d.ts +17 -6
- package/dist/util.js +320 -24
- package/dist/util.js.map +1 -1
- package/dist/validators/ClassValidator.js +13 -5
- package/dist/validators/ClassValidator.js.map +1 -1
- package/package.json +2 -2
package/dist/parser/Statement.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ConditionalCompileConstStatement = exports.ConditionalCompileStatement = exports.AliasStatement = exports.ConditionalCompileErrorStatement = exports.TypecastStatement = exports.ContinueStatement = exports.ConstStatement = exports.EnumMemberStatement = exports.EnumStatement = exports.ThrowStatement = exports.CatchStatement = exports.TryCatchStatement = exports.FieldStatement = exports.MethodStatement = exports.ClassStatement = exports.InterfaceMethodStatement = exports.InterfaceFieldStatement = exports.InterfaceStatement = exports.ImportStatement = exports.NamespaceStatement = exports.LibraryStatement = exports.IndexedSetStatement = exports.DottedSetStatement = exports.WhileStatement = exports.ForEachStatement = exports.ForStatement = exports.StopStatement = exports.EndStatement = exports.ReturnStatement = exports.LabelStatement = exports.GotoStatement = exports.DimStatement = exports.PrintStatement = exports.IncrementStatement = exports.IfStatement = exports.FunctionStatement = exports.ExitStatement = exports.ExpressionStatement = exports.Block = exports.AugmentedAssignmentStatement = exports.AssignmentStatement = exports.Body = exports.EmptyStatement = void 0;
|
|
4
4
|
const TokenKind_1 = require("../lexer/TokenKind");
|
|
5
5
|
const Expression_1 = require("./Expression");
|
|
6
|
+
const Expression_2 = require("./Expression");
|
|
6
7
|
const util_1 = require("../util");
|
|
7
8
|
const Parser_1 = require("./Parser");
|
|
8
9
|
const visitors_1 = require("../astUtils/visitors");
|
|
@@ -12,7 +13,6 @@ const creators_1 = require("../astUtils/creators");
|
|
|
12
13
|
const DynamicType_1 = require("../types/DynamicType");
|
|
13
14
|
const SymbolTable_1 = require("../SymbolTable");
|
|
14
15
|
const AstNode_1 = require("./AstNode");
|
|
15
|
-
const AstNode_2 = require("./AstNode");
|
|
16
16
|
const ClassType_1 = require("../types/ClassType");
|
|
17
17
|
const EnumType_1 = require("../types/EnumType");
|
|
18
18
|
const NamespaceType_1 = require("../types/NamespaceType");
|
|
@@ -21,7 +21,7 @@ const VoidType_1 = require("../types/VoidType");
|
|
|
21
21
|
const TypedFunctionType_1 = require("../types/TypedFunctionType");
|
|
22
22
|
const ArrayType_1 = require("../types/ArrayType");
|
|
23
23
|
const BrightScriptDocParser_1 = require("./BrightScriptDocParser");
|
|
24
|
-
class EmptyStatement extends
|
|
24
|
+
class EmptyStatement extends AstNode_1.Statement {
|
|
25
25
|
constructor(options) {
|
|
26
26
|
super();
|
|
27
27
|
this.kind = AstNode_1.AstNodeKind.EmptyStatement;
|
|
@@ -43,7 +43,7 @@ exports.EmptyStatement = EmptyStatement;
|
|
|
43
43
|
/**
|
|
44
44
|
* This is a top-level statement. Consider this the root of the AST
|
|
45
45
|
*/
|
|
46
|
-
class Body extends
|
|
46
|
+
class Body extends AstNode_1.Statement {
|
|
47
47
|
constructor(options) {
|
|
48
48
|
var _a;
|
|
49
49
|
super();
|
|
@@ -116,7 +116,7 @@ class Body extends AstNode_2.Statement {
|
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
118
|
exports.Body = Body;
|
|
119
|
-
class AssignmentStatement extends
|
|
119
|
+
class AssignmentStatement extends AstNode_1.Statement {
|
|
120
120
|
constructor(options) {
|
|
121
121
|
super();
|
|
122
122
|
this.kind = AstNode_1.AstNodeKind.AssignmentStatement;
|
|
@@ -134,7 +134,7 @@ class AssignmentStatement extends AstNode_2.Statement {
|
|
|
134
134
|
return [
|
|
135
135
|
state.transpileToken(this.tokens.name),
|
|
136
136
|
' ',
|
|
137
|
-
state.transpileToken((_a = this.tokens.equals) !== null && _a !== void 0 ? _a : (0, creators_1.createToken)(TokenKind_1.TokenKind.Equal)),
|
|
137
|
+
state.transpileToken((_a = this.tokens.equals) !== null && _a !== void 0 ? _a : (0, creators_1.createToken)(TokenKind_1.TokenKind.Equal), '='),
|
|
138
138
|
' ',
|
|
139
139
|
...this.value.transpile(state)
|
|
140
140
|
];
|
|
@@ -171,7 +171,7 @@ class AssignmentStatement extends AstNode_2.Statement {
|
|
|
171
171
|
}
|
|
172
172
|
}
|
|
173
173
|
exports.AssignmentStatement = AssignmentStatement;
|
|
174
|
-
class AugmentedAssignmentStatement extends
|
|
174
|
+
class AugmentedAssignmentStatement extends AstNode_1.Statement {
|
|
175
175
|
constructor(options) {
|
|
176
176
|
super();
|
|
177
177
|
this.kind = AstNode_1.AstNodeKind.AugmentedAssignmentStatement;
|
|
@@ -219,7 +219,7 @@ class AugmentedAssignmentStatement extends AstNode_2.Statement {
|
|
|
219
219
|
}
|
|
220
220
|
}
|
|
221
221
|
exports.AugmentedAssignmentStatement = AugmentedAssignmentStatement;
|
|
222
|
-
class Block extends
|
|
222
|
+
class Block extends AstNode_1.Statement {
|
|
223
223
|
constructor(options) {
|
|
224
224
|
super();
|
|
225
225
|
this.kind = AstNode_1.AstNodeKind.Block;
|
|
@@ -333,7 +333,7 @@ class Block extends AstNode_2.Statement {
|
|
|
333
333
|
}
|
|
334
334
|
}
|
|
335
335
|
exports.Block = Block;
|
|
336
|
-
class ExpressionStatement extends
|
|
336
|
+
class ExpressionStatement extends AstNode_1.Statement {
|
|
337
337
|
constructor(options) {
|
|
338
338
|
var _a;
|
|
339
339
|
super();
|
|
@@ -363,7 +363,7 @@ class ExpressionStatement extends AstNode_2.Statement {
|
|
|
363
363
|
}
|
|
364
364
|
}
|
|
365
365
|
exports.ExpressionStatement = ExpressionStatement;
|
|
366
|
-
class ExitStatement extends
|
|
366
|
+
class ExitStatement extends AstNode_1.Statement {
|
|
367
367
|
constructor(options) {
|
|
368
368
|
super();
|
|
369
369
|
this.kind = AstNode_1.AstNodeKind.ExitStatement;
|
|
@@ -396,7 +396,7 @@ class ExitStatement extends AstNode_2.Statement {
|
|
|
396
396
|
}
|
|
397
397
|
}
|
|
398
398
|
exports.ExitStatement = ExitStatement;
|
|
399
|
-
class FunctionStatement extends
|
|
399
|
+
class FunctionStatement extends AstNode_1.Statement {
|
|
400
400
|
constructor(options) {
|
|
401
401
|
var _a, _b;
|
|
402
402
|
super();
|
|
@@ -467,7 +467,7 @@ class FunctionStatement extends AstNode_2.Statement {
|
|
|
467
467
|
}
|
|
468
468
|
}
|
|
469
469
|
exports.FunctionStatement = FunctionStatement;
|
|
470
|
-
class IfStatement extends
|
|
470
|
+
class IfStatement extends AstNode_1.Statement {
|
|
471
471
|
constructor(options) {
|
|
472
472
|
super();
|
|
473
473
|
this.kind = AstNode_1.AstNodeKind.IfStatement;
|
|
@@ -504,7 +504,7 @@ class IfStatement extends AstNode_2.Statement {
|
|
|
504
504
|
//then
|
|
505
505
|
if (this.tokens.then) {
|
|
506
506
|
results.push(' ');
|
|
507
|
-
results.push(state.transpileToken(this.tokens.then));
|
|
507
|
+
results.push(state.transpileToken(this.tokens.then, 'then'));
|
|
508
508
|
}
|
|
509
509
|
state.lineage.unshift(this);
|
|
510
510
|
//if statement body
|
|
@@ -580,7 +580,7 @@ class IfStatement extends AstNode_2.Statement {
|
|
|
580
580
|
}
|
|
581
581
|
}
|
|
582
582
|
exports.IfStatement = IfStatement;
|
|
583
|
-
class IncrementStatement extends
|
|
583
|
+
class IncrementStatement extends AstNode_1.Statement {
|
|
584
584
|
constructor(options) {
|
|
585
585
|
super();
|
|
586
586
|
this.kind = AstNode_1.AstNodeKind.IncrementStatement;
|
|
@@ -617,12 +617,12 @@ exports.IncrementStatement = IncrementStatement;
|
|
|
617
617
|
/**
|
|
618
618
|
* Represents a `print` statement within BrightScript.
|
|
619
619
|
*/
|
|
620
|
-
class PrintStatement extends
|
|
620
|
+
class PrintStatement extends AstNode_1.Statement {
|
|
621
621
|
/**
|
|
622
622
|
* Creates a new internal representation of a BrightScript `print` statement.
|
|
623
623
|
* @param options the options for this statement
|
|
624
624
|
* @param options.print a print token
|
|
625
|
-
* @param options.expressions an array of expressions
|
|
625
|
+
* @param options.expressions an array of expressions to be evaluated and printed. Wrap PrintSeparator tokens (`;` or `,`) in `PrintSeparatorExpression`
|
|
626
626
|
*/
|
|
627
627
|
constructor(options) {
|
|
628
628
|
var _a;
|
|
@@ -637,28 +637,30 @@ class PrintStatement extends AstNode_2.Statement {
|
|
|
637
637
|
transpile(state) {
|
|
638
638
|
var _a;
|
|
639
639
|
let result = [
|
|
640
|
-
state.transpileToken(this.tokens.print)
|
|
641
|
-
' '
|
|
640
|
+
state.transpileToken(this.tokens.print, 'print')
|
|
642
641
|
];
|
|
642
|
+
//if the first expression has no leading whitespace, add a single space between the `print` and the expression
|
|
643
|
+
if (this.expressions.length > 0 && !this.expressions[0].leadingTrivia.find(t => t.kind === TokenKind_1.TokenKind.Whitespace)) {
|
|
644
|
+
result.push(' ');
|
|
645
|
+
}
|
|
646
|
+
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
|
643
647
|
for (let i = 0; i < this.expressions.length; i++) {
|
|
644
|
-
const
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
result.push(state.tokenToSourceNode(expressionOrSeparator));
|
|
648
|
+
const expression = this.expressions[i];
|
|
649
|
+
let leadingWhitespace = (_a = expression.leadingTrivia.find(t => t.kind === TokenKind_1.TokenKind.Whitespace)) === null || _a === void 0 ? void 0 : _a.text;
|
|
650
|
+
if (leadingWhitespace) {
|
|
651
|
+
result.push(leadingWhitespace);
|
|
652
|
+
//if the previous expression was NOT a separator, and this one is not also, add a space between them
|
|
650
653
|
}
|
|
651
|
-
|
|
652
|
-
if ((_a = this.expressions[i + 1]) === null || _a === void 0 ? void 0 : _a.transpile) {
|
|
654
|
+
else if (i > 0 && !(0, reflection_1.isPrintSeparatorExpression)(this.expressions[i - 1]) && !(0, reflection_1.isPrintSeparatorExpression)(expression) && !leadingWhitespace) {
|
|
653
655
|
result.push(' ');
|
|
654
656
|
}
|
|
657
|
+
result.push(...expression.transpile(state));
|
|
655
658
|
}
|
|
656
659
|
return result;
|
|
657
660
|
}
|
|
658
661
|
walk(visitor, options) {
|
|
659
662
|
if (options.walkMode & visitors_1.InternalWalkMode.walkExpressions) {
|
|
660
|
-
|
|
661
|
-
(0, visitors_1.walkArray)(this.expressions, visitor, options, this, (item) => (0, reflection_1.isExpression)(item));
|
|
663
|
+
(0, visitors_1.walkArray)(this.expressions, visitor, options, this);
|
|
662
664
|
}
|
|
663
665
|
}
|
|
664
666
|
get leadingTrivia() {
|
|
@@ -669,19 +671,12 @@ class PrintStatement extends AstNode_2.Statement {
|
|
|
669
671
|
var _a;
|
|
670
672
|
return this.finalizeClone(new PrintStatement({
|
|
671
673
|
print: util_1.util.cloneToken(this.tokens.print),
|
|
672
|
-
expressions: (_a = this.expressions) === null || _a === void 0 ? void 0 : _a.map(e =>
|
|
673
|
-
if ((0, reflection_1.isExpression)(e)) {
|
|
674
|
-
return e.clone();
|
|
675
|
-
}
|
|
676
|
-
else {
|
|
677
|
-
return util_1.util.cloneToken(e);
|
|
678
|
-
}
|
|
679
|
-
})
|
|
674
|
+
expressions: (_a = this.expressions) === null || _a === void 0 ? void 0 : _a.map(e => e === null || e === void 0 ? void 0 : e.clone())
|
|
680
675
|
}), ['expressions']);
|
|
681
676
|
}
|
|
682
677
|
}
|
|
683
678
|
exports.PrintStatement = PrintStatement;
|
|
684
|
-
class DimStatement extends
|
|
679
|
+
class DimStatement extends AstNode_1.Statement {
|
|
685
680
|
constructor(options) {
|
|
686
681
|
var _a;
|
|
687
682
|
super();
|
|
@@ -742,7 +737,7 @@ class DimStatement extends AstNode_2.Statement {
|
|
|
742
737
|
}
|
|
743
738
|
}
|
|
744
739
|
exports.DimStatement = DimStatement;
|
|
745
|
-
class GotoStatement extends
|
|
740
|
+
class GotoStatement extends AstNode_1.Statement {
|
|
746
741
|
constructor(options) {
|
|
747
742
|
super();
|
|
748
743
|
this.kind = AstNode_1.AstNodeKind.GotoStatement;
|
|
@@ -774,7 +769,7 @@ class GotoStatement extends AstNode_2.Statement {
|
|
|
774
769
|
}
|
|
775
770
|
}
|
|
776
771
|
exports.GotoStatement = GotoStatement;
|
|
777
|
-
class LabelStatement extends
|
|
772
|
+
class LabelStatement extends AstNode_1.Statement {
|
|
778
773
|
constructor(options) {
|
|
779
774
|
super();
|
|
780
775
|
this.kind = AstNode_1.AstNodeKind.LabelStatement;
|
|
@@ -804,7 +799,7 @@ class LabelStatement extends AstNode_2.Statement {
|
|
|
804
799
|
}
|
|
805
800
|
}
|
|
806
801
|
exports.LabelStatement = LabelStatement;
|
|
807
|
-
class ReturnStatement extends
|
|
802
|
+
class ReturnStatement extends AstNode_1.Statement {
|
|
808
803
|
constructor(options) {
|
|
809
804
|
super();
|
|
810
805
|
this.kind = AstNode_1.AstNodeKind.ReturnStatement;
|
|
@@ -841,7 +836,7 @@ class ReturnStatement extends AstNode_2.Statement {
|
|
|
841
836
|
}
|
|
842
837
|
}
|
|
843
838
|
exports.ReturnStatement = ReturnStatement;
|
|
844
|
-
class EndStatement extends
|
|
839
|
+
class EndStatement extends AstNode_1.Statement {
|
|
845
840
|
constructor(options) {
|
|
846
841
|
var _a;
|
|
847
842
|
super();
|
|
@@ -870,7 +865,7 @@ class EndStatement extends AstNode_2.Statement {
|
|
|
870
865
|
}
|
|
871
866
|
}
|
|
872
867
|
exports.EndStatement = EndStatement;
|
|
873
|
-
class StopStatement extends
|
|
868
|
+
class StopStatement extends AstNode_1.Statement {
|
|
874
869
|
constructor(options) {
|
|
875
870
|
var _a, _b;
|
|
876
871
|
super();
|
|
@@ -897,7 +892,7 @@ class StopStatement extends AstNode_2.Statement {
|
|
|
897
892
|
}
|
|
898
893
|
}
|
|
899
894
|
exports.StopStatement = StopStatement;
|
|
900
|
-
class ForStatement extends
|
|
895
|
+
class ForStatement extends AstNode_1.Statement {
|
|
901
896
|
constructor(options) {
|
|
902
897
|
super();
|
|
903
898
|
this.kind = AstNode_1.AstNodeKind.ForStatement;
|
|
@@ -970,7 +965,7 @@ class ForStatement extends AstNode_2.Statement {
|
|
|
970
965
|
}
|
|
971
966
|
}
|
|
972
967
|
exports.ForStatement = ForStatement;
|
|
973
|
-
class ForEachStatement extends
|
|
968
|
+
class ForEachStatement extends AstNode_1.Statement {
|
|
974
969
|
constructor(options) {
|
|
975
970
|
super();
|
|
976
971
|
this.kind = AstNode_1.AstNodeKind.ForEachStatement;
|
|
@@ -1034,7 +1029,7 @@ class ForEachStatement extends AstNode_2.Statement {
|
|
|
1034
1029
|
}
|
|
1035
1030
|
}
|
|
1036
1031
|
exports.ForEachStatement = ForEachStatement;
|
|
1037
|
-
class WhileStatement extends
|
|
1032
|
+
class WhileStatement extends AstNode_1.Statement {
|
|
1038
1033
|
constructor(options) {
|
|
1039
1034
|
super();
|
|
1040
1035
|
this.kind = AstNode_1.AstNodeKind.WhileStatement;
|
|
@@ -1087,7 +1082,7 @@ class WhileStatement extends AstNode_2.Statement {
|
|
|
1087
1082
|
}
|
|
1088
1083
|
}
|
|
1089
1084
|
exports.WhileStatement = WhileStatement;
|
|
1090
|
-
class DottedSetStatement extends
|
|
1085
|
+
class DottedSetStatement extends AstNode_1.Statement {
|
|
1091
1086
|
constructor(options) {
|
|
1092
1087
|
super();
|
|
1093
1088
|
this.kind = AstNode_1.AstNodeKind.DottedSetStatement;
|
|
@@ -1098,7 +1093,7 @@ class DottedSetStatement extends AstNode_2.Statement {
|
|
|
1098
1093
|
};
|
|
1099
1094
|
this.obj = options.obj;
|
|
1100
1095
|
this.value = options.value;
|
|
1101
|
-
this.location = util_1.util.createBoundingLocation(this.obj, this.tokens.dot, this.tokens.name, this.value);
|
|
1096
|
+
this.location = util_1.util.createBoundingLocation(this.obj, this.tokens.dot, this.tokens.equals, this.tokens.name, this.value);
|
|
1102
1097
|
}
|
|
1103
1098
|
transpile(state) {
|
|
1104
1099
|
//if the value is a compound assignment, don't add the obj, dot, name, or operator...the expression will handle that
|
|
@@ -1148,7 +1143,7 @@ class DottedSetStatement extends AstNode_2.Statement {
|
|
|
1148
1143
|
}
|
|
1149
1144
|
}
|
|
1150
1145
|
exports.DottedSetStatement = DottedSetStatement;
|
|
1151
|
-
class IndexedSetStatement extends
|
|
1146
|
+
class IndexedSetStatement extends AstNode_1.Statement {
|
|
1152
1147
|
constructor(options) {
|
|
1153
1148
|
var _a;
|
|
1154
1149
|
super();
|
|
@@ -1159,9 +1154,9 @@ class IndexedSetStatement extends AstNode_2.Statement {
|
|
|
1159
1154
|
equals: options.equals
|
|
1160
1155
|
};
|
|
1161
1156
|
this.obj = options.obj;
|
|
1162
|
-
this.indexes = options.indexes;
|
|
1157
|
+
this.indexes = (_a = options.indexes) !== null && _a !== void 0 ? _a : [];
|
|
1163
1158
|
this.value = options.value;
|
|
1164
|
-
this.location = util_1.util.createBoundingLocation(this.obj, this.tokens.openingSquare, ...
|
|
1159
|
+
this.location = util_1.util.createBoundingLocation(this.obj, this.tokens.openingSquare, ...this.indexes, this.tokens.closingSquare, this.value);
|
|
1165
1160
|
}
|
|
1166
1161
|
transpile(state) {
|
|
1167
1162
|
var _a;
|
|
@@ -1198,14 +1193,14 @@ class IndexedSetStatement extends AstNode_2.Statement {
|
|
|
1198
1193
|
obj: (_a = this.obj) === null || _a === void 0 ? void 0 : _a.clone(),
|
|
1199
1194
|
openingSquare: util_1.util.cloneToken(this.tokens.openingSquare),
|
|
1200
1195
|
indexes: (_b = this.indexes) === null || _b === void 0 ? void 0 : _b.map(x => x === null || x === void 0 ? void 0 : x.clone()),
|
|
1196
|
+
closingSquare: util_1.util.cloneToken(this.tokens.closingSquare),
|
|
1201
1197
|
equals: util_1.util.cloneToken(this.tokens.equals),
|
|
1202
|
-
value: (_c = this.value) === null || _c === void 0 ? void 0 : _c.clone()
|
|
1203
|
-
closingSquare: util_1.util.cloneToken(this.tokens.closingSquare)
|
|
1198
|
+
value: (_c = this.value) === null || _c === void 0 ? void 0 : _c.clone()
|
|
1204
1199
|
}), ['obj', 'indexes', 'value']);
|
|
1205
1200
|
}
|
|
1206
1201
|
}
|
|
1207
1202
|
exports.IndexedSetStatement = IndexedSetStatement;
|
|
1208
|
-
class LibraryStatement extends
|
|
1203
|
+
class LibraryStatement extends AstNode_1.Statement {
|
|
1209
1204
|
constructor(options) {
|
|
1210
1205
|
super();
|
|
1211
1206
|
this.kind = AstNode_1.AstNodeKind.LibraryStatement;
|
|
@@ -1243,7 +1238,7 @@ class LibraryStatement extends AstNode_2.Statement {
|
|
|
1243
1238
|
}
|
|
1244
1239
|
}
|
|
1245
1240
|
exports.LibraryStatement = LibraryStatement;
|
|
1246
|
-
class NamespaceStatement extends
|
|
1241
|
+
class NamespaceStatement extends AstNode_1.Statement {
|
|
1247
1242
|
constructor(options) {
|
|
1248
1243
|
super();
|
|
1249
1244
|
this.kind = AstNode_1.AstNodeKind.NamespaceStatement;
|
|
@@ -1342,7 +1337,7 @@ class NamespaceStatement extends AstNode_2.Statement {
|
|
|
1342
1337
|
}
|
|
1343
1338
|
}
|
|
1344
1339
|
exports.NamespaceStatement = NamespaceStatement;
|
|
1345
|
-
class ImportStatement extends
|
|
1340
|
+
class ImportStatement extends AstNode_1.Statement {
|
|
1346
1341
|
constructor(options) {
|
|
1347
1342
|
var _a, _b;
|
|
1348
1343
|
super();
|
|
@@ -1397,7 +1392,7 @@ class ImportStatement extends AstNode_2.Statement {
|
|
|
1397
1392
|
}
|
|
1398
1393
|
}
|
|
1399
1394
|
exports.ImportStatement = ImportStatement;
|
|
1400
|
-
class InterfaceStatement extends
|
|
1395
|
+
class InterfaceStatement extends AstNode_1.Statement {
|
|
1401
1396
|
constructor(options) {
|
|
1402
1397
|
var _a;
|
|
1403
1398
|
super();
|
|
@@ -1552,7 +1547,7 @@ class InterfaceStatement extends AstNode_2.Statement {
|
|
|
1552
1547
|
}
|
|
1553
1548
|
}
|
|
1554
1549
|
exports.InterfaceStatement = InterfaceStatement;
|
|
1555
|
-
class InterfaceFieldStatement extends
|
|
1550
|
+
class InterfaceFieldStatement extends AstNode_1.Statement {
|
|
1556
1551
|
constructor(options) {
|
|
1557
1552
|
super();
|
|
1558
1553
|
this.kind = AstNode_1.AstNodeKind.InterfaceFieldStatement;
|
|
@@ -1617,7 +1612,7 @@ class InterfaceFieldStatement extends AstNode_2.Statement {
|
|
|
1617
1612
|
exports.InterfaceFieldStatement = InterfaceFieldStatement;
|
|
1618
1613
|
//TODO: there is much that is similar with this and FunctionExpression.
|
|
1619
1614
|
//It would be nice to refactor this so there is less duplicated code
|
|
1620
|
-
class InterfaceMethodStatement extends
|
|
1615
|
+
class InterfaceMethodStatement extends AstNode_1.Statement {
|
|
1621
1616
|
constructor(options) {
|
|
1622
1617
|
var _a;
|
|
1623
1618
|
super();
|
|
@@ -1726,7 +1721,7 @@ class InterfaceMethodStatement extends AstNode_2.Statement {
|
|
|
1726
1721
|
}
|
|
1727
1722
|
}
|
|
1728
1723
|
exports.InterfaceMethodStatement = InterfaceMethodStatement;
|
|
1729
|
-
class ClassStatement extends
|
|
1724
|
+
class ClassStatement extends AstNode_1.Statement {
|
|
1730
1725
|
constructor(options) {
|
|
1731
1726
|
var _a, _b, _c, _d, _e;
|
|
1732
1727
|
super();
|
|
@@ -1870,7 +1865,7 @@ class ClassStatement extends AstNode_2.Statement {
|
|
|
1870
1865
|
let stmt = this;
|
|
1871
1866
|
while (stmt) {
|
|
1872
1867
|
if (stmt.parentClassName) {
|
|
1873
|
-
const namespace =
|
|
1868
|
+
const namespace = stmt.findAncestor(reflection_1.isNamespaceStatement);
|
|
1874
1869
|
stmt = (_a = state.file.getClassFileLink(stmt.parentClassName.getName(), namespace === null || namespace === void 0 ? void 0 : namespace.getName(Parser_1.ParseMode.BrighterScript))) === null || _a === void 0 ? void 0 : _a.item;
|
|
1875
1870
|
ancestors.push(stmt);
|
|
1876
1871
|
}
|
|
@@ -1901,6 +1896,20 @@ class ClassStatement extends AstNode_2.Statement {
|
|
|
1901
1896
|
return ((_b = (_a = stmt === null || stmt === void 0 ? void 0 : stmt.tokens.name) === null || _a === void 0 ? void 0 : _a.text) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === 'new';
|
|
1902
1897
|
});
|
|
1903
1898
|
}
|
|
1899
|
+
/**
|
|
1900
|
+
* Return the parameters for the first constructor function for this class
|
|
1901
|
+
* @param ancestors The list of ancestors for this class
|
|
1902
|
+
* @returns The parameters for the first constructor function for this class
|
|
1903
|
+
*/
|
|
1904
|
+
getConstructorParams(ancestors) {
|
|
1905
|
+
for (let ancestor of ancestors) {
|
|
1906
|
+
const ctor = ancestor === null || ancestor === void 0 ? void 0 : ancestor.getConstructorFunction();
|
|
1907
|
+
if (ctor) {
|
|
1908
|
+
return ctor.func.parameters;
|
|
1909
|
+
}
|
|
1910
|
+
}
|
|
1911
|
+
return [];
|
|
1912
|
+
}
|
|
1904
1913
|
/**
|
|
1905
1914
|
* Determine if the specified field was declared in one of the ancestor classes
|
|
1906
1915
|
*/
|
|
@@ -1943,10 +1952,43 @@ class ClassStatement extends AstNode_2.Statement {
|
|
|
1943
1952
|
let body = this.body;
|
|
1944
1953
|
//inject an empty "new" method if missing
|
|
1945
1954
|
if (!this.getConstructorFunction()) {
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
|
|
1955
|
+
if (ancestors.length === 0) {
|
|
1956
|
+
body = [
|
|
1957
|
+
(0, creators_1.createMethodStatement)('new', TokenKind_1.TokenKind.Sub),
|
|
1958
|
+
...this.body
|
|
1959
|
+
];
|
|
1960
|
+
}
|
|
1961
|
+
else {
|
|
1962
|
+
const params = this.getConstructorParams(ancestors);
|
|
1963
|
+
const call = new ExpressionStatement({
|
|
1964
|
+
expression: new Expression_2.CallExpression({
|
|
1965
|
+
callee: new Expression_2.VariableExpression({
|
|
1966
|
+
name: (0, creators_1.createToken)(TokenKind_1.TokenKind.Identifier, 'super')
|
|
1967
|
+
}),
|
|
1968
|
+
openingParen: (0, creators_1.createToken)(TokenKind_1.TokenKind.LeftParen),
|
|
1969
|
+
args: params.map(x => new Expression_2.VariableExpression({
|
|
1970
|
+
name: util_1.util.cloneToken(x.tokens.name)
|
|
1971
|
+
})),
|
|
1972
|
+
closingParen: (0, creators_1.createToken)(TokenKind_1.TokenKind.RightParen)
|
|
1973
|
+
})
|
|
1974
|
+
});
|
|
1975
|
+
body = [
|
|
1976
|
+
new MethodStatement({
|
|
1977
|
+
name: (0, creators_1.createIdentifier)('new'),
|
|
1978
|
+
func: new Expression_1.FunctionExpression({
|
|
1979
|
+
parameters: params.map(x => x.clone()),
|
|
1980
|
+
body: new Block({
|
|
1981
|
+
statements: [call]
|
|
1982
|
+
}),
|
|
1983
|
+
functionType: (0, creators_1.createToken)(TokenKind_1.TokenKind.Sub),
|
|
1984
|
+
endFunctionType: (0, creators_1.createToken)(TokenKind_1.TokenKind.EndSub),
|
|
1985
|
+
leftParen: (0, creators_1.createToken)(TokenKind_1.TokenKind.LeftParen),
|
|
1986
|
+
rightParen: (0, creators_1.createToken)(TokenKind_1.TokenKind.RightParen)
|
|
1987
|
+
})
|
|
1988
|
+
}),
|
|
1989
|
+
...this.body
|
|
1990
|
+
];
|
|
1991
|
+
}
|
|
1950
1992
|
}
|
|
1951
1993
|
for (let statement of body) {
|
|
1952
1994
|
//is field statement
|
|
@@ -1994,7 +2036,13 @@ class ClassStatement extends AstNode_2.Statement {
|
|
|
1994
2036
|
getTranspiledClassFunction(state) {
|
|
1995
2037
|
let result = state.transpileAnnotations(this);
|
|
1996
2038
|
const constructorFunction = this.getConstructorFunction();
|
|
1997
|
-
|
|
2039
|
+
let constructorParams = [];
|
|
2040
|
+
if (constructorFunction) {
|
|
2041
|
+
constructorParams = constructorFunction.func.parameters;
|
|
2042
|
+
}
|
|
2043
|
+
else {
|
|
2044
|
+
constructorParams = this.getConstructorParams(this.getAncestors(state));
|
|
2045
|
+
}
|
|
1998
2046
|
result.push(state.transpileLeadingComments(this.tokens.class), state.sourceNode(this.tokens.class, 'function'), state.sourceNode(this.tokens.class, ' '), state.sourceNode(this.tokens.name, this.getName(Parser_1.ParseMode.BrightScript)), `(`);
|
|
1999
2047
|
let i = 0;
|
|
2000
2048
|
for (let param of constructorParams) {
|
|
@@ -2184,8 +2232,8 @@ class MethodStatement extends FunctionStatement {
|
|
|
2184
2232
|
}
|
|
2185
2233
|
//this is a child class, and the constructor doesn't contain a call to super. Inject one
|
|
2186
2234
|
const superCall = new ExpressionStatement({
|
|
2187
|
-
expression: new
|
|
2188
|
-
callee: new
|
|
2235
|
+
expression: new Expression_2.CallExpression({
|
|
2236
|
+
callee: new Expression_2.VariableExpression({
|
|
2189
2237
|
name: {
|
|
2190
2238
|
kind: TokenKind_1.TokenKind.Identifier,
|
|
2191
2239
|
text: 'super',
|
|
@@ -2261,7 +2309,7 @@ class MethodStatement extends FunctionStatement {
|
|
|
2261
2309
|
}
|
|
2262
2310
|
}
|
|
2263
2311
|
exports.MethodStatement = MethodStatement;
|
|
2264
|
-
class FieldStatement extends
|
|
2312
|
+
class FieldStatement extends AstNode_1.Statement {
|
|
2265
2313
|
constructor(options) {
|
|
2266
2314
|
super();
|
|
2267
2315
|
this.kind = AstNode_1.AstNodeKind.FieldStatement;
|
|
@@ -2282,7 +2330,11 @@ class FieldStatement extends AstNode_2.Statement {
|
|
|
2282
2330
|
*/
|
|
2283
2331
|
getType(options) {
|
|
2284
2332
|
var _a, _b, _c, _d;
|
|
2285
|
-
|
|
2333
|
+
let initialValueType = (_a = this.initialValue) === null || _a === void 0 ? void 0 : _a.getType(Object.assign(Object.assign({}, options), { flags: 1 /* SymbolTypeFlag.runtime */ }));
|
|
2334
|
+
if ((0, reflection_1.isInvalidType)(initialValueType) || (0, reflection_1.isVoidType)(initialValueType) || (0, reflection_1.isUninitializedType)(initialValueType)) {
|
|
2335
|
+
initialValueType = undefined;
|
|
2336
|
+
}
|
|
2337
|
+
return (_d = (_c = (_b = this.typeExpression) === null || _b === void 0 ? void 0 : _b.getType(Object.assign(Object.assign({}, options), { flags: 2 /* SymbolTypeFlag.typetime */ }))) !== null && _c !== void 0 ? _c : util_1.util.getDefaultTypeFromValueType(initialValueType)) !== null && _d !== void 0 ? _d : DynamicType_1.DynamicType.instance;
|
|
2286
2338
|
}
|
|
2287
2339
|
get leadingTrivia() {
|
|
2288
2340
|
var _a, _b, _c, _d;
|
|
@@ -2305,7 +2357,7 @@ class FieldStatement extends AstNode_2.Statement {
|
|
|
2305
2357
|
result.push(...annotation.getTypedef(state), state.newline, state.indent());
|
|
2306
2358
|
}
|
|
2307
2359
|
let type = this.getType({ flags: 2 /* SymbolTypeFlag.typetime */ });
|
|
2308
|
-
if ((0, reflection_1.isInvalidType)(type) || (0, reflection_1.isVoidType)(type)) {
|
|
2360
|
+
if ((0, reflection_1.isInvalidType)(type) || (0, reflection_1.isVoidType)(type) || (0, reflection_1.isUninitializedType)(type)) {
|
|
2309
2361
|
type = new DynamicType_1.DynamicType();
|
|
2310
2362
|
}
|
|
2311
2363
|
result.push((_d = (_c = this.tokens.accessModifier) === null || _c === void 0 ? void 0 : _c.text) !== null && _d !== void 0 ? _d : 'public', ' ');
|
|
@@ -2336,7 +2388,7 @@ class FieldStatement extends AstNode_2.Statement {
|
|
|
2336
2388
|
}
|
|
2337
2389
|
}
|
|
2338
2390
|
exports.FieldStatement = FieldStatement;
|
|
2339
|
-
class TryCatchStatement extends
|
|
2391
|
+
class TryCatchStatement extends AstNode_1.Statement {
|
|
2340
2392
|
constructor(options) {
|
|
2341
2393
|
super();
|
|
2342
2394
|
this.kind = AstNode_1.AstNodeKind.TryCatchStatement;
|
|
@@ -2386,7 +2438,7 @@ class TryCatchStatement extends AstNode_2.Statement {
|
|
|
2386
2438
|
}
|
|
2387
2439
|
}
|
|
2388
2440
|
exports.TryCatchStatement = TryCatchStatement;
|
|
2389
|
-
class CatchStatement extends
|
|
2441
|
+
class CatchStatement extends AstNode_1.Statement {
|
|
2390
2442
|
constructor(options) {
|
|
2391
2443
|
super();
|
|
2392
2444
|
this.kind = AstNode_1.AstNodeKind.CatchStatement;
|
|
@@ -2430,7 +2482,7 @@ class CatchStatement extends AstNode_2.Statement {
|
|
|
2430
2482
|
}
|
|
2431
2483
|
}
|
|
2432
2484
|
exports.CatchStatement = CatchStatement;
|
|
2433
|
-
class ThrowStatement extends
|
|
2485
|
+
class ThrowStatement extends AstNode_1.Statement {
|
|
2434
2486
|
constructor(options) {
|
|
2435
2487
|
super();
|
|
2436
2488
|
this.kind = AstNode_1.AstNodeKind.ThrowStatement;
|
|
@@ -2473,7 +2525,7 @@ class ThrowStatement extends AstNode_2.Statement {
|
|
|
2473
2525
|
}
|
|
2474
2526
|
}
|
|
2475
2527
|
exports.ThrowStatement = ThrowStatement;
|
|
2476
|
-
class EnumStatement extends
|
|
2528
|
+
class EnumStatement extends AstNode_1.Statement {
|
|
2477
2529
|
constructor(options) {
|
|
2478
2530
|
var _a;
|
|
2479
2531
|
super();
|
|
@@ -2612,7 +2664,9 @@ class EnumStatement extends AstNode_2.Statement {
|
|
|
2612
2664
|
const resultType = new EnumType_1.EnumType(this.fullName, (_a = members[0]) === null || _a === void 0 ? void 0 : _a.getType(options).underlyingType);
|
|
2613
2665
|
resultType.pushMemberProvider(() => this.getSymbolTable());
|
|
2614
2666
|
for (const statement of members) {
|
|
2615
|
-
|
|
2667
|
+
const memberType = statement.getType(Object.assign(Object.assign({}, options), { typeChain: undefined }));
|
|
2668
|
+
memberType.parentEnumType = resultType;
|
|
2669
|
+
resultType.addMember((_c = (_b = statement === null || statement === void 0 ? void 0 : statement.tokens) === null || _b === void 0 ? void 0 : _b.name) === null || _c === void 0 ? void 0 : _c.text, { definingNode: statement }, memberType, 1 /* SymbolTypeFlag.runtime */);
|
|
2616
2670
|
}
|
|
2617
2671
|
return resultType;
|
|
2618
2672
|
}
|
|
@@ -2627,7 +2681,7 @@ class EnumStatement extends AstNode_2.Statement {
|
|
|
2627
2681
|
}
|
|
2628
2682
|
}
|
|
2629
2683
|
exports.EnumStatement = EnumStatement;
|
|
2630
|
-
class EnumMemberStatement extends
|
|
2684
|
+
class EnumMemberStatement extends AstNode_1.Statement {
|
|
2631
2685
|
constructor(options) {
|
|
2632
2686
|
super();
|
|
2633
2687
|
this.kind = AstNode_1.AstNodeKind.EnumMemberStatement;
|
|
@@ -2686,7 +2740,7 @@ class EnumMemberStatement extends AstNode_2.Statement {
|
|
|
2686
2740
|
}
|
|
2687
2741
|
}
|
|
2688
2742
|
exports.EnumMemberStatement = EnumMemberStatement;
|
|
2689
|
-
class ConstStatement extends
|
|
2743
|
+
class ConstStatement extends AstNode_1.Statement {
|
|
2690
2744
|
constructor(options) {
|
|
2691
2745
|
super();
|
|
2692
2746
|
this.kind = AstNode_1.AstNodeKind.ConstStatement;
|
|
@@ -2761,7 +2815,7 @@ class ConstStatement extends AstNode_2.Statement {
|
|
|
2761
2815
|
}
|
|
2762
2816
|
}
|
|
2763
2817
|
exports.ConstStatement = ConstStatement;
|
|
2764
|
-
class ContinueStatement extends
|
|
2818
|
+
class ContinueStatement extends AstNode_1.Statement {
|
|
2765
2819
|
constructor(options) {
|
|
2766
2820
|
super();
|
|
2767
2821
|
this.kind = AstNode_1.AstNodeKind.ContinueStatement;
|
|
@@ -2794,7 +2848,7 @@ class ContinueStatement extends AstNode_2.Statement {
|
|
|
2794
2848
|
}
|
|
2795
2849
|
}
|
|
2796
2850
|
exports.ContinueStatement = ContinueStatement;
|
|
2797
|
-
class TypecastStatement extends
|
|
2851
|
+
class TypecastStatement extends AstNode_1.Statement {
|
|
2798
2852
|
constructor(options) {
|
|
2799
2853
|
super();
|
|
2800
2854
|
this.kind = AstNode_1.AstNodeKind.TypecastStatement;
|
|
@@ -2837,7 +2891,7 @@ class TypecastStatement extends AstNode_2.Statement {
|
|
|
2837
2891
|
}
|
|
2838
2892
|
}
|
|
2839
2893
|
exports.TypecastStatement = TypecastStatement;
|
|
2840
|
-
class ConditionalCompileErrorStatement extends
|
|
2894
|
+
class ConditionalCompileErrorStatement extends AstNode_1.Statement {
|
|
2841
2895
|
constructor(options) {
|
|
2842
2896
|
super();
|
|
2843
2897
|
this.kind = AstNode_1.AstNodeKind.ConditionalCompileErrorStatement;
|
|
@@ -2869,7 +2923,7 @@ class ConditionalCompileErrorStatement extends AstNode_2.Statement {
|
|
|
2869
2923
|
}
|
|
2870
2924
|
}
|
|
2871
2925
|
exports.ConditionalCompileErrorStatement = ConditionalCompileErrorStatement;
|
|
2872
|
-
class AliasStatement extends
|
|
2926
|
+
class AliasStatement extends AstNode_1.Statement {
|
|
2873
2927
|
constructor(options) {
|
|
2874
2928
|
super();
|
|
2875
2929
|
this.kind = AstNode_1.AstNodeKind.AliasStatement;
|
|
@@ -2916,7 +2970,7 @@ class AliasStatement extends AstNode_2.Statement {
|
|
|
2916
2970
|
}
|
|
2917
2971
|
}
|
|
2918
2972
|
exports.AliasStatement = AliasStatement;
|
|
2919
|
-
class ConditionalCompileStatement extends
|
|
2973
|
+
class ConditionalCompileStatement extends AstNode_1.Statement {
|
|
2920
2974
|
constructor(options) {
|
|
2921
2975
|
super();
|
|
2922
2976
|
this.kind = AstNode_1.AstNodeKind.ConditionalCompileStatement;
|
|
@@ -3028,7 +3082,7 @@ class ConditionalCompileStatement extends AstNode_2.Statement {
|
|
|
3028
3082
|
}
|
|
3029
3083
|
}
|
|
3030
3084
|
exports.ConditionalCompileStatement = ConditionalCompileStatement;
|
|
3031
|
-
class ConditionalCompileConstStatement extends
|
|
3085
|
+
class ConditionalCompileConstStatement extends AstNode_1.Statement {
|
|
3032
3086
|
constructor(options) {
|
|
3033
3087
|
super();
|
|
3034
3088
|
this.kind = AstNode_1.AstNodeKind.ConditionalCompileConstStatement;
|