brighterscript 0.57.2 → 0.58.0
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 +19 -0
- package/README.md +2 -0
- package/dist/Program.d.ts +7 -1
- package/dist/Program.js +49 -18
- package/dist/Program.js.map +1 -1
- package/dist/Scope.d.ts +2 -1
- package/dist/Scope.js +8 -8
- package/dist/Scope.js.map +1 -1
- package/dist/astUtils/AstEditor.d.ts +2 -3
- package/dist/astUtils/AstEditor.js.map +1 -1
- package/dist/astUtils/creators.d.ts +4 -4
- package/dist/astUtils/creators.js +6 -6
- package/dist/astUtils/creators.js.map +1 -1
- package/dist/astUtils/reflection.d.ts +65 -64
- package/dist/astUtils/reflection.js.map +1 -1
- package/dist/astUtils/reflection.spec.js +3 -3
- package/dist/astUtils/reflection.spec.js.map +1 -1
- package/dist/astUtils/visitors.d.ts +32 -31
- package/dist/astUtils/visitors.js.map +1 -1
- package/dist/astUtils/visitors.spec.js.map +1 -1
- package/dist/bscPlugin/BscPlugin.js +4 -0
- package/dist/bscPlugin/BscPlugin.js.map +1 -1
- package/dist/bscPlugin/hover/HoverProcessor.spec.js +6 -0
- package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +2 -2
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
- package/dist/bscPlugin/validation/BrsFileValidator.d.ts +1 -0
- package/dist/bscPlugin/validation/BrsFileValidator.js +118 -6
- package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.d.ts +21 -19
- package/dist/bscPlugin/validation/ScopeValidator.js +164 -179
- package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
- package/dist/bscPlugin/validation/XmlFileValidator.d.ts +8 -0
- package/dist/bscPlugin/validation/XmlFileValidator.js +44 -0
- package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -0
- package/dist/files/BrsFile.Class.spec.js.map +1 -1
- package/dist/files/BrsFile.d.ts +11 -5
- package/dist/files/BrsFile.js +15 -47
- package/dist/files/BrsFile.js.map +1 -1
- package/dist/files/BrsFile.spec.js +29 -0
- package/dist/files/BrsFile.spec.js.map +1 -1
- package/dist/files/XmlFile.d.ts +9 -4
- package/dist/files/XmlFile.js +6 -30
- package/dist/files/XmlFile.js.map +1 -1
- package/dist/files/tests/optionalChaning.spec.js +2 -1
- package/dist/files/tests/optionalChaning.spec.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +2 -3
- package/dist/parser/AstNode.d.ts +65 -0
- package/dist/parser/AstNode.js +93 -0
- package/dist/parser/AstNode.js.map +1 -0
- package/dist/parser/AstNode.spec.d.ts +1 -0
- package/dist/parser/AstNode.spec.js +44 -0
- package/dist/parser/AstNode.spec.js.map +1 -0
- package/dist/parser/Expression.d.ts +6 -43
- package/dist/parser/Expression.js +53 -81
- package/dist/parser/Expression.js.map +1 -1
- package/dist/parser/Parser.d.ts +11 -12
- package/dist/parser/Parser.js +118 -117
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/Parser.spec.d.ts +1 -1
- package/dist/parser/Parser.spec.js.map +1 -1
- package/dist/parser/Statement.d.ts +15 -44
- package/dist/parser/Statement.js +91 -102
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/Statement.spec.js +14 -7
- package/dist/parser/Statement.spec.js.map +1 -1
- package/dist/parser/tests/expression/ArrayLiterals.spec.js +37 -0
- package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +41 -0
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
- package/dist/parser/tests/expression/Call.spec.js +109 -1
- package/dist/parser/tests/expression/Call.spec.js.map +1 -1
- package/dist/parser/tests/expression/Indexing.spec.js +49 -4
- package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
- package/dist/parser/tests/statement/Enum.spec.js +7 -4
- package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
- package/dist/util.d.ts +11 -5
- package/dist/util.js +50 -0
- package/dist/util.js.map +1 -1
- package/dist/validators/ClassValidator.js +22 -19
- package/dist/validators/ClassValidator.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,43 +1,17 @@
|
|
|
1
1
|
import type { Token, Identifier } from '../lexer/Token';
|
|
2
2
|
import { TokenKind } from '../lexer/TokenKind';
|
|
3
|
-
import type {
|
|
3
|
+
import type { NamespacedVariableNameExpression, FunctionExpression, FunctionParameterExpression } 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
|
-
import { InternalWalkMode } from '../astUtils/visitors';
|
|
9
8
|
import type { TranspileResult, TypedefProvider } from '../interfaces';
|
|
10
9
|
import type { BscType } from '../types/BscType';
|
|
11
10
|
import type { SourceNode } from 'source-map';
|
|
12
11
|
import type { TranspileState } from './TranspileState';
|
|
13
12
|
import { SymbolTable } from '../SymbolTable';
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
*/
|
|
17
|
-
export declare abstract class Statement {
|
|
18
|
-
/**
|
|
19
|
-
* The starting and ending location of the statement.
|
|
20
|
-
**/
|
|
21
|
-
abstract range: Range;
|
|
22
|
-
/**
|
|
23
|
-
* Statement annotations
|
|
24
|
-
*/
|
|
25
|
-
annotations: AnnotationExpression[];
|
|
26
|
-
abstract transpile(state: BrsTranspileState): TranspileResult;
|
|
27
|
-
/**
|
|
28
|
-
* When being considered by the walk visitor, this describes what type of element the current class is.
|
|
29
|
-
*/
|
|
30
|
-
visitMode: InternalWalkMode;
|
|
31
|
-
abstract walk(visitor: WalkVisitor, options: WalkOptions): any;
|
|
32
|
-
/**
|
|
33
|
-
* The parent node for this statement. This is set dynamically during `onFileValidate`, and should not be set directly.
|
|
34
|
-
*/
|
|
35
|
-
parent?: Statement | Expression;
|
|
36
|
-
/**
|
|
37
|
-
* Get the closest symbol table for this node. Should be overridden in children that directly contain a symbol table
|
|
38
|
-
*/
|
|
39
|
-
getSymbolTable(): SymbolTable;
|
|
40
|
-
}
|
|
13
|
+
import type { Expression } from './AstNode';
|
|
14
|
+
import { Statement } from './AstNode';
|
|
41
15
|
export declare class EmptyStatement extends Statement {
|
|
42
16
|
/**
|
|
43
17
|
* Create a negative range to indicate this is an interpolated location
|
|
@@ -56,9 +30,8 @@ export declare class EmptyStatement extends Statement {
|
|
|
56
30
|
*/
|
|
57
31
|
export declare class Body extends Statement implements TypedefProvider {
|
|
58
32
|
statements: Statement[];
|
|
33
|
+
constructor(statements?: Statement[]);
|
|
59
34
|
symbolTable: SymbolTable;
|
|
60
|
-
constructor(statements?: Statement[], symbolTable?: SymbolTable);
|
|
61
|
-
getSymbolTable(): SymbolTable;
|
|
62
35
|
get range(): Range;
|
|
63
36
|
transpile(state: BrsTranspileState): TranspileResult;
|
|
64
37
|
getTypedef(state: BrsTranspileState): any[];
|
|
@@ -79,6 +52,7 @@ export declare class Block extends Statement {
|
|
|
79
52
|
readonly startingRange: Range;
|
|
80
53
|
constructor(statements: Statement[], startingRange: Range);
|
|
81
54
|
readonly range: Range;
|
|
55
|
+
symbolTable: SymbolTable;
|
|
82
56
|
transpile(state: BrsTranspileState): TranspileResult;
|
|
83
57
|
walk(visitor: WalkVisitor, options: WalkOptions): void;
|
|
84
58
|
}
|
|
@@ -123,8 +97,7 @@ export declare class ExitWhileStatement extends Statement {
|
|
|
123
97
|
export declare class FunctionStatement extends Statement implements TypedefProvider {
|
|
124
98
|
name: Identifier;
|
|
125
99
|
func: FunctionExpression;
|
|
126
|
-
|
|
127
|
-
constructor(name: Identifier, func: FunctionExpression, namespaceName: NamespacedVariableNameExpression);
|
|
100
|
+
constructor(name: Identifier, func: FunctionExpression);
|
|
128
101
|
readonly range: Range;
|
|
129
102
|
/**
|
|
130
103
|
* Get the name of this expression based on the parse mode
|
|
@@ -348,9 +321,7 @@ export declare class NamespaceStatement extends Statement implements TypedefProv
|
|
|
348
321
|
nameExpression: NamespacedVariableNameExpression;
|
|
349
322
|
body: Body;
|
|
350
323
|
endKeyword: Token;
|
|
351
|
-
|
|
352
|
-
constructor(keyword: Token, nameExpression: NamespacedVariableNameExpression, body: Body, endKeyword: Token, parentSymbolTable?: SymbolTable);
|
|
353
|
-
symbolTable: SymbolTable;
|
|
324
|
+
constructor(keyword: Token, nameExpression: NamespacedVariableNameExpression, body: Body, endKeyword: Token);
|
|
354
325
|
getSymbolTable(): SymbolTable;
|
|
355
326
|
/**
|
|
356
327
|
* The string name for this namespace
|
|
@@ -380,8 +351,7 @@ export declare class ImportStatement extends Statement implements TypedefProvide
|
|
|
380
351
|
export declare class InterfaceStatement extends Statement implements TypedefProvider {
|
|
381
352
|
parentInterfaceName: NamespacedVariableNameExpression;
|
|
382
353
|
body: Statement[];
|
|
383
|
-
|
|
384
|
-
constructor(interfaceToken: Token, name: Identifier, extendsToken: Token, parentInterfaceName: NamespacedVariableNameExpression, body: Statement[], endInterfaceToken: Token, namespaceName: NamespacedVariableNameExpression);
|
|
354
|
+
constructor(interfaceToken: Token, name: Identifier, extendsToken: Token, parentInterfaceName: NamespacedVariableNameExpression, body: Statement[], endInterfaceToken: Token);
|
|
385
355
|
tokens: {
|
|
386
356
|
interface: Token;
|
|
387
357
|
name: Identifier;
|
|
@@ -448,12 +418,11 @@ export declare class ClassStatement extends Statement implements TypedefProvider
|
|
|
448
418
|
readonly end: Token;
|
|
449
419
|
readonly extendsKeyword?: Token;
|
|
450
420
|
readonly parentClassName?: NamespacedVariableNameExpression;
|
|
451
|
-
readonly namespaceName?: NamespacedVariableNameExpression;
|
|
452
421
|
constructor(classKeyword: Token,
|
|
453
422
|
/**
|
|
454
423
|
* The name of the class (without namespace prefix)
|
|
455
424
|
*/
|
|
456
|
-
name: Identifier, body: Statement[], end: Token, extendsKeyword?: Token, parentClassName?: NamespacedVariableNameExpression
|
|
425
|
+
name: Identifier, body: Statement[], end: Token, extendsKeyword?: Token, parentClassName?: NamespacedVariableNameExpression);
|
|
457
426
|
getName(parseMode: ParseMode): string;
|
|
458
427
|
memberMap: Record<string, MemberStatement>;
|
|
459
428
|
methods: MethodStatement[];
|
|
@@ -502,6 +471,10 @@ export declare class MethodStatement extends FunctionStatement {
|
|
|
502
471
|
modifiers: Token[];
|
|
503
472
|
get accessModifier(): Token;
|
|
504
473
|
readonly range: Range;
|
|
474
|
+
/**
|
|
475
|
+
* Get the name of this method.
|
|
476
|
+
*/
|
|
477
|
+
getName(parseMode: ParseMode): string;
|
|
505
478
|
transpile(state: BrsTranspileState): any[];
|
|
506
479
|
getTypedef(state: BrsTranspileState): string[];
|
|
507
480
|
/**
|
|
@@ -591,12 +564,11 @@ export declare class EnumStatement extends Statement implements TypedefProvider
|
|
|
591
564
|
endEnum: Token;
|
|
592
565
|
};
|
|
593
566
|
body: Array<EnumMemberStatement | CommentStatement>;
|
|
594
|
-
namespaceName?: NamespacedVariableNameExpression;
|
|
595
567
|
constructor(tokens: {
|
|
596
568
|
enum: Token;
|
|
597
569
|
name: Identifier;
|
|
598
570
|
endEnum: Token;
|
|
599
|
-
}, body: Array<EnumMemberStatement | CommentStatement
|
|
571
|
+
}, body: Array<EnumMemberStatement | CommentStatement>);
|
|
600
572
|
get range(): Range;
|
|
601
573
|
getMembers(): EnumMemberStatement[];
|
|
602
574
|
/**
|
|
@@ -643,12 +615,11 @@ export declare class ConstStatement extends Statement implements TypedefProvider
|
|
|
643
615
|
equals: Token;
|
|
644
616
|
};
|
|
645
617
|
value: Expression;
|
|
646
|
-
readonly namespaceName?: NamespacedVariableNameExpression;
|
|
647
618
|
constructor(tokens: {
|
|
648
619
|
const: Token;
|
|
649
620
|
name: Identifier;
|
|
650
621
|
equals: Token;
|
|
651
|
-
}, value: Expression
|
|
622
|
+
}, value: Expression);
|
|
652
623
|
range: Range;
|
|
653
624
|
get name(): string;
|
|
654
625
|
/**
|