brighterscript 1.0.0-alpha.27 → 1.0.0-alpha.28
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 +61 -0
- package/README.md +1 -1
- package/dist/AstValidationSegmenter.d.ts +1 -1
- package/dist/AstValidationSegmenter.js +2 -2
- package/dist/AstValidationSegmenter.js.map +1 -1
- package/dist/DiagnosticFilterer.d.ts +7 -4
- package/dist/DiagnosticFilterer.js +67 -37
- package/dist/DiagnosticFilterer.js.map +1 -1
- package/dist/DiagnosticMessages.d.ts +1 -1
- package/dist/PluginInterface.js +1 -1
- package/dist/PluginInterface.js.map +1 -1
- package/dist/Program.d.ts +1 -1
- package/dist/Program.js +10 -6
- package/dist/Program.js.map +1 -1
- package/dist/Scope.d.ts +6 -27
- package/dist/Scope.js +40 -298
- package/dist/Scope.js.map +1 -1
- package/dist/SymbolTable.d.ts +1 -1
- package/dist/{SymbolTableFlag.js → SymbolTypeFlag.js} +1 -1
- package/dist/SymbolTypeFlag.js.map +1 -0
- package/dist/XmlScope.d.ts +0 -8
- package/dist/XmlScope.js +0 -77
- package/dist/XmlScope.js.map +1 -1
- package/dist/astUtils/CachedLookups.js +4 -8
- package/dist/astUtils/CachedLookups.js.map +1 -1
- package/dist/astUtils/creators.d.ts +1 -0
- package/dist/astUtils/creators.js +3 -2
- package/dist/astUtils/creators.js.map +1 -1
- package/dist/astUtils/creators.spec.js +0 -10
- package/dist/astUtils/creators.spec.js.map +1 -1
- package/dist/astUtils/reflection.d.ts +1 -2
- package/dist/astUtils/reflection.js +3 -7
- package/dist/astUtils/reflection.js.map +1 -1
- package/dist/astUtils/reflection.spec.js +10 -15
- package/dist/astUtils/reflection.spec.js.map +1 -1
- package/dist/astUtils/visitors.d.ts +1 -2
- package/dist/astUtils/visitors.js.map +1 -1
- package/dist/astUtils/visitors.spec.js +1 -5
- package/dist/astUtils/visitors.spec.js.map +1 -1
- package/dist/bscPlugin/BscPlugin.d.ts +2 -1
- package/dist/bscPlugin/BscPlugin.js +4 -0
- package/dist/bscPlugin/BscPlugin.js.map +1 -1
- package/dist/bscPlugin/SignatureHelpUtil.js +4 -3
- package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +1 -0
- package/dist/bscPlugin/completions/CompletionsProcessor.js +26 -9
- package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +39 -0
- package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/hover/HoverProcessor.js +5 -5
- package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
- package/dist/bscPlugin/hover/HoverProcessor.spec.js +51 -5
- package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/references/ReferencesProvider.d.ts +12 -0
- package/dist/bscPlugin/references/ReferencesProvider.js +56 -0
- package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -0
- package/dist/bscPlugin/references/ReferencesProvider.spec.d.ts +1 -0
- package/dist/bscPlugin/references/ReferencesProvider.spec.js +51 -0
- package/dist/bscPlugin/references/ReferencesProvider.spec.js.map +1 -0
- package/dist/bscPlugin/validation/BrsFileValidator.js +1 -6
- package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.d.ts +28 -1
- package/dist/bscPlugin/validation/ScopeValidator.js +365 -7
- package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.spec.js +89 -3
- package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -1
- package/dist/files/BrsFile.Class.spec.js +11 -4
- package/dist/files/BrsFile.Class.spec.js.map +1 -1
- package/dist/files/BrsFile.d.ts +12 -2
- package/dist/files/BrsFile.js +64 -38
- package/dist/files/BrsFile.js.map +1 -1
- package/dist/files/BrsFile.spec.js +373 -6
- package/dist/files/BrsFile.spec.js.map +1 -1
- package/dist/files/XmlFile.js +1 -1
- package/dist/files/XmlFile.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 +41 -3
- package/dist/interfaces.js.map +1 -1
- package/dist/lexer/Lexer.d.ts +9 -3
- package/dist/lexer/Lexer.js +36 -15
- package/dist/lexer/Lexer.js.map +1 -1
- package/dist/lexer/Lexer.spec.js +76 -38
- package/dist/lexer/Lexer.spec.js.map +1 -1
- package/dist/lexer/Token.js +1 -1
- package/dist/lexer/Token.js.map +1 -1
- package/dist/lexer/TokenKind.d.ts +1 -0
- package/dist/lexer/TokenKind.js +4 -1
- package/dist/lexer/TokenKind.js.map +1 -1
- package/dist/parser/AstNode.d.ts +1 -2
- package/dist/parser/AstNode.js +0 -1
- package/dist/parser/AstNode.js.map +1 -1
- package/dist/parser/BrsTranspileState.d.ts +1 -1
- package/dist/parser/Expression.d.ts +71 -47
- package/dist/parser/Expression.js +155 -87
- package/dist/parser/Expression.js.map +1 -1
- package/dist/parser/Parser.d.ts +7 -2
- package/dist/parser/Parser.js +40 -87
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/Parser.spec.js +21 -44
- package/dist/parser/Parser.spec.js.map +1 -1
- package/dist/parser/SGTypes.js +5 -5
- package/dist/parser/SGTypes.js.map +1 -1
- package/dist/parser/Statement.d.ts +92 -84
- package/dist/parser/Statement.js +199 -133
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/Statement.spec.js +0 -13
- package/dist/parser/Statement.spec.js.map +1 -1
- package/dist/parser/TranspileState.d.ts +17 -8
- package/dist/parser/TranspileState.js +64 -6
- package/dist/parser/TranspileState.js.map +1 -1
- package/dist/parser/tests/Parser.spec.d.ts +1 -1
- package/dist/parser/tests/Parser.spec.js +1 -2
- package/dist/parser/tests/Parser.spec.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/AssociativeArrayLiterals.spec.js +1 -3
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +44 -0
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js +6 -6
- package/dist/parser/tests/expression/TernaryExpression.spec.js +47 -0
- package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
- package/dist/parser/tests/statement/ConstStatement.spec.js +2 -2
- package/dist/parser/tests/statement/InterfaceStatement.spec.js +8 -1
- package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Misc.spec.js +25 -5
- package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
- package/dist/preprocessor/Chunk.js +1 -2
- package/dist/preprocessor/Chunk.js.map +1 -1
- package/dist/preprocessor/PreprocessorParser.js +2 -1
- package/dist/preprocessor/PreprocessorParser.js.map +1 -1
- package/dist/types/AssociativeArrayType.d.ts +3 -0
- package/dist/types/AssociativeArrayType.js +9 -0
- package/dist/types/AssociativeArrayType.js.map +1 -1
- package/dist/types/BscType.d.ts +1 -1
- package/dist/types/BscType.js +1 -0
- package/dist/types/BscType.js.map +1 -1
- package/dist/types/ComponentType.d.ts +1 -1
- package/dist/types/ReferenceType.d.ts +1 -1
- package/dist/util.d.ts +18 -8
- package/dist/util.js +96 -18
- package/dist/util.js.map +1 -1
- package/package.json +6 -3
- package/dist/SymbolTableFlag.js.map +0 -1
- /package/dist/{SymbolTableFlag.d.ts → SymbolTypeFlag.d.ts} +0 -0
|
@@ -80,8 +80,9 @@ class PreprocessorParser {
|
|
|
80
80
|
* @returns an "if" chunk if one is detected, otherwise whatever `hashError` returns
|
|
81
81
|
*/
|
|
82
82
|
hashIf() {
|
|
83
|
+
var _a, _b;
|
|
83
84
|
if (this.match(TokenKind_1.TokenKind.HashIf)) {
|
|
84
|
-
let startingLine = this.previous().range.start.line;
|
|
85
|
+
let startingLine = (_b = (_a = this.previous().range) === null || _a === void 0 ? void 0 : _a.start) === null || _b === void 0 ? void 0 : _b.line;
|
|
85
86
|
let elseChunk;
|
|
86
87
|
let ifCondition = this.advance();
|
|
87
88
|
this.match(TokenKind_1.TokenKind.Newline);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PreprocessorParser.js","sourceRoot":"","sources":["../../src/preprocessor/PreprocessorParser.ts"],"names":[],"mappings":";;;AACA,kDAAsI;AACtI,8BAA8B;AAG9B,8DAA2D;AAE3D,6FAA6F;AAC7F,MAAa,kBAAkB;IAA/B;QACW,gBAAW,GAAiB,EAAE,CAAC;QAE/B,WAAM,GAAY,EAAE,CAAC;QAEpB,YAAO,GAAG,CAAC,CAAC;QAEpB;;WAEG;QACI,WAAM,GAAe,EAAE,CAAC;IAiPnC,CAAC;IA/OG;;;;;OAKG;IACI,KAAK,CAAC,MAAe;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QAEjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAe;QAC/B,OAAO,IAAI,kBAAkB,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAED;;;OAGG;IACK,OAAO;QACX,IAAI,MAAM,GAAe,EAAE,CAAC;QAE5B,OAAO,IAAI,EAAE;YACT,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,EAAE;gBACH,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAClB;YAED,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1B,IAAI,QAAQ,EAAE;gBACV,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtB,MAAM;aACT;iBAAM,IAAI,CAAC,CAAC,EAAE;gBACX,MAAM;aACT;SACJ;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACK,SAAS;QACb,IAAI,IAAI,CAAC,KAAK,CAAC,qBAAS,CAAC,SAAS,CAAC,EAAE;YACjC,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CACnB,uCAAkB,CAAC,8BAA8B,CAAC,QAAQ,CAAC,EAC3D,qBAAS,CAAC,UAAU;YACpB,mFAAmF;YACnF,GAAG,mCAAuB,EAC1B,GAAG,6BAAiB,EACpB,GAAG,sCAA0B,CAChC,CAAC;YAEF,yCAAyC;YACzC,IAAI,yBAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE;gBAC5C,IAAI,CAAC,WAAW,CAAC,IAAI,iCACd,uCAAkB,CAAC,6BAA6B,EAAE,KACrD,KAAK,EAAE,IAAI,CAAC,KAAK,IACnB,CAAC;aACN;YAED,IAAI,CAAC,OAAO,CACR,uCAAkB,CAAC,2BAA2B,EAAE,EAChD,qBAAS,CAAC,KAAK,CAClB,CAAC;YACF,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,2BAA2B;YAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,qBAAS,CAAC,OAAO,CAAC,EAAE,GAAG;YACzC,OAAO,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC/C;QAED,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACK,MAAM
|
|
1
|
+
{"version":3,"file":"PreprocessorParser.js","sourceRoot":"","sources":["../../src/preprocessor/PreprocessorParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SymbolTable } from '../SymbolTable';
|
|
1
2
|
import type { GetTypeOptions, TypeCompatibilityData } from '../interfaces';
|
|
2
3
|
import { BscType } from './BscType';
|
|
3
4
|
import { BscTypeKind } from './BscTypeKind';
|
|
@@ -8,4 +9,6 @@ export declare class AssociativeArrayType extends BscType {
|
|
|
8
9
|
toTypeString(): string;
|
|
9
10
|
getMemberType(name: string, options: GetTypeOptions): BscType;
|
|
10
11
|
isEqual(otherType: BscType): any;
|
|
12
|
+
private builtInMemberTable;
|
|
13
|
+
getBuiltInMemberTable(): SymbolTable;
|
|
11
14
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AssociativeArrayType = void 0;
|
|
4
|
+
const SymbolTable_1 = require("../SymbolTable");
|
|
4
5
|
const reflection_1 = require("../astUtils/reflection");
|
|
5
6
|
const BscType_1 = require("./BscType");
|
|
6
7
|
const BscTypeKind_1 = require("./BscTypeKind");
|
|
@@ -46,6 +47,14 @@ class AssociativeArrayType extends BscType_1.BscType {
|
|
|
46
47
|
isEqual(otherType) {
|
|
47
48
|
return (0, reflection_1.isAssociativeArrayType)(otherType) && this.checkCompatibilityBasedOnMembers(otherType, 1 /* SymbolTypeFlag.runtime */);
|
|
48
49
|
}
|
|
50
|
+
getBuiltInMemberTable() {
|
|
51
|
+
if (this.builtInMemberTable) {
|
|
52
|
+
return this.builtInMemberTable;
|
|
53
|
+
}
|
|
54
|
+
this.builtInMemberTable = new SymbolTable_1.SymbolTable(`${this.__identifier} Built-in Members`);
|
|
55
|
+
this.pushMemberProvider(() => this.builtInMemberTable);
|
|
56
|
+
return this.builtInMemberTable;
|
|
57
|
+
}
|
|
49
58
|
}
|
|
50
59
|
exports.AssociativeArrayType = AssociativeArrayType;
|
|
51
60
|
//# sourceMappingURL=AssociativeArrayType.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssociativeArrayType.js","sourceRoot":"","sources":["../../src/types/AssociativeArrayType.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"AssociativeArrayType.js","sourceRoot":"","sources":["../../src/types/AssociativeArrayType.ts"],"names":[],"mappings":";;;AAAA,gDAA6C;AAE7C,uDAA0G;AAE1G,uCAAoC;AACpC,+CAA4C;AAC5C,+CAA4C;AAC5C,uCAAkD;AAElD,MAAa,oBAAqB,SAAQ,iBAAO;IAAjD;;QAGoB,SAAI,GAAG,yBAAW,CAAC,oBAAoB,CAAC;IA+C5D,CAAC;IA7CU,gBAAgB,CAAC,UAAmB,EAAE,IAA4B;QACrE,IAAI,IAAA,0BAAa,EAAC,UAAU,CAAC,EAAE;YAC3B,OAAO,IAAI,CAAC;SACf;aAAM,IAAI,IAAA,yBAAY,EAAC,UAAU,CAAC,EAAE;YACjC,OAAO,IAAI,CAAC;SACf;aAAM,IAAI,IAAA,+BAAqB,EAAC,IAAI,EAAE,UAAU,CAAC,EAAE;YAChD,OAAO,IAAI,CAAC;SACf;aAAM,IAAI,IAAA,mCAAsB,EAAC,UAAU,CAAC,EAAE;YAC3C,OAAO,IAAI,CAAC;SACf;aAAM,IAAI,IAAI,CAAC,gCAAgC,CAAC,UAAU,kCAA0B,IAAI,CAAC,EAAE;YACxF,OAAO,IAAI,CAAC;SACf;aAAM,IAAI,IAAA,wBAAW,EAAC,UAAU,CAAC,EAAE;YAChC,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,QAAQ;QACX,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAEM,YAAY;QACf,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,aAAa,CAAC,IAAY,EAAE,OAAuB;;QAC/C,2EAA2E;QAC3E,OAAO,MAAA,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,mCAAI,yBAAW,CAAC,QAAQ,CAAC;IACtE,CAAC;IAED,OAAO,CAAC,SAAkB;QACtB,OAAO,IAAA,mCAAsB,EAAC,SAAS,CAAC,IAAI,IAAI,CAAC,gCAAgC,CAAC,SAAS,iCAAyB,CAAC;IACzH,CAAC;IAID,qBAAqB;QACjB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,OAAO,IAAI,CAAC,kBAAkB,CAAC;SAClC;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,yBAAW,CAAC,GAAG,IAAI,CAAC,YAAY,mBAAmB,CAAC,CAAC;QACnF,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,kBAAkB,CAAC;IAEnC,CAAC;CACJ;AAlDD,oDAkDC"}
|
package/dist/types/BscType.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { GetSymbolTypeOptions, SymbolTableProvider } from '../SymbolTable';
|
|
2
2
|
import { SymbolTable } from '../SymbolTable';
|
|
3
|
-
import { SymbolTypeFlag } from '../
|
|
3
|
+
import { SymbolTypeFlag } from '../SymbolTypeFlag';
|
|
4
4
|
import type { ExtraSymbolData, TypeCompatibilityData } from '../interfaces';
|
|
5
5
|
export declare abstract class BscType {
|
|
6
6
|
readonly memberTable: SymbolTable;
|
package/dist/types/BscType.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BscType.js","sourceRoot":"","sources":["../../src/types/BscType.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"BscType.js","sourceRoot":"","sources":["../../src/types/BscType.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { GetSymbolTypeOptions } from '../SymbolTable';
|
|
2
|
-
import type { SymbolTypeFlag } from '../
|
|
2
|
+
import type { SymbolTypeFlag } from '../SymbolTypeFlag';
|
|
3
3
|
import { SymbolTable } from '../SymbolTable';
|
|
4
4
|
import type { ExtraSymbolData, TypeCompatibilityData } from '../interfaces';
|
|
5
5
|
import type { BaseFunctionType } from './BaseFunctionType';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SymbolTypeGetterProvider } from '../SymbolTable';
|
|
2
|
-
import type { SymbolTypeFlag } from '../
|
|
2
|
+
import type { SymbolTypeFlag } from '../SymbolTypeFlag';
|
|
3
3
|
import { BscType } from './BscType';
|
|
4
4
|
import { BscTypeKind } from './BscTypeKind';
|
|
5
5
|
import type { Token } from '../lexer/Token';
|
package/dist/util.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Diagnostic, Position, Location } from 'vscode-languageserver';
|
|
2
2
|
import { Range } from 'vscode-languageserver';
|
|
3
3
|
import type { BsConfig, FinalizedBsConfig } from './BsConfig';
|
|
4
|
-
import type { CallableContainer, BsDiagnostic, FileReference, CallableContainerMap, CompilerPlugin, ExpressionInfo, TypeChainEntry, TypeChainProcessResult } from './interfaces';
|
|
4
|
+
import type { CallableContainer, BsDiagnostic, FileReference, CallableContainerMap, CompilerPlugin, ExpressionInfo, TranspileResult, TypeChainEntry, TypeChainProcessResult, GetTypeOptions } from './interfaces';
|
|
5
5
|
import { BooleanType } from './types/BooleanType';
|
|
6
6
|
import { DoubleType } from './types/DoubleType';
|
|
7
7
|
import { DynamicType } from './types/DynamicType';
|
|
@@ -13,7 +13,7 @@ import { StringType } from './types/StringType';
|
|
|
13
13
|
import { VoidType } from './types/VoidType';
|
|
14
14
|
import { ParseMode } from './parser/Parser';
|
|
15
15
|
import type { DottedGetExpression, VariableExpression } from './parser/Expression';
|
|
16
|
-
import type
|
|
16
|
+
import { type Identifier, type Locatable, type Token } from './lexer/Token';
|
|
17
17
|
import { SourceNode } from 'source-map';
|
|
18
18
|
import type { BrsFile } from './files/BrsFile';
|
|
19
19
|
import type { XmlFile } from './files/XmlFile';
|
|
@@ -155,7 +155,7 @@ export declare class Util {
|
|
|
155
155
|
/**
|
|
156
156
|
* Combine all the documentation found before a token (i.e. comment tokens)
|
|
157
157
|
*/
|
|
158
|
-
getTokenDocumentation(
|
|
158
|
+
getTokenDocumentation(token?: Token | AstNode): string;
|
|
159
159
|
/**
|
|
160
160
|
* Combine all the documentation for a node - uses the AstNode's leadingTrivia property
|
|
161
161
|
*/
|
|
@@ -253,9 +253,9 @@ export declare class Util {
|
|
|
253
253
|
* If the two items have lines that touch
|
|
254
254
|
*/
|
|
255
255
|
linesTouch(first: {
|
|
256
|
-
range
|
|
256
|
+
range?: Range | undefined;
|
|
257
257
|
}, second: {
|
|
258
|
-
range
|
|
258
|
+
range?: Range | undefined;
|
|
259
259
|
}): boolean;
|
|
260
260
|
/**
|
|
261
261
|
* Given text with (or without) dots separating text, get the rightmost word.
|
|
@@ -298,7 +298,7 @@ export declare class Util {
|
|
|
298
298
|
*/
|
|
299
299
|
createBoundingRange(...locatables: Array<{
|
|
300
300
|
range?: Range;
|
|
301
|
-
} | Range>): Range | undefined;
|
|
301
|
+
} | Range | undefined>): Range | undefined;
|
|
302
302
|
/**
|
|
303
303
|
* Gets the bounding range of an object that contains a bunch of tokens
|
|
304
304
|
* @param tokens Object with tokens in it
|
|
@@ -354,8 +354,8 @@ export declare class Util {
|
|
|
354
354
|
* Gathers expressions, variables, and unique names from an expression.
|
|
355
355
|
* This is mostly used for the ternary expression
|
|
356
356
|
*/
|
|
357
|
-
getExpressionInfo(expression: Expression): ExpressionInfo;
|
|
358
|
-
concatAnnotationLeadingTrivia(stmt: Statement, otherTrivia
|
|
357
|
+
getExpressionInfo(expression: Expression, file: BrsFile): ExpressionInfo;
|
|
358
|
+
concatAnnotationLeadingTrivia(stmt: Statement, otherTrivia?: Token[]): Token[];
|
|
359
359
|
/**
|
|
360
360
|
* Create a SourceNode that maps every line to itself. Useful for creating maps for files
|
|
361
361
|
* that haven't changed at all, but we still need the map
|
|
@@ -422,6 +422,10 @@ export declare class Util {
|
|
|
422
422
|
*/
|
|
423
423
|
rangeToString(range: Range): string;
|
|
424
424
|
validateTooDeepFile(file: (BrsFile | XmlFile)): void;
|
|
425
|
+
/**
|
|
426
|
+
* Wraps SourceNode's constructor to be compatible with the TranspileResult type
|
|
427
|
+
*/
|
|
428
|
+
sourceNodeFromTranspileResult(line: number | null, column: number | null, source: string | null, chunks?: string | SourceNode | TranspileResult, name?: string): SourceNode;
|
|
425
429
|
/**
|
|
426
430
|
* Find the index of the last item in the array that matches.
|
|
427
431
|
*/
|
|
@@ -438,6 +442,12 @@ export declare class Util {
|
|
|
438
442
|
partBuilder?: (item: T) => string;
|
|
439
443
|
}): string;
|
|
440
444
|
getAstNodeFriendlyName(node: AstNode): string;
|
|
445
|
+
hasLeadingComments(input: Token | AstNode): boolean;
|
|
446
|
+
getLeadingComments(input: Token | AstNode): Token[];
|
|
447
|
+
isLeadingCommentOnSameLine(line: {
|
|
448
|
+
range?: Range;
|
|
449
|
+
}, input: Token | AstNode): boolean;
|
|
450
|
+
isClassUsedAsFunction(potentialClassType: BscType, expression: Expression, options: GetTypeOptions): boolean;
|
|
441
451
|
}
|
|
442
452
|
/**
|
|
443
453
|
* A tagged template literal function for standardizing the path. This has to be defined as standalone function since it's a tagged template literal function,
|
package/dist/util.js
CHANGED
|
@@ -21,6 +21,7 @@ const StringType_1 = require("./types/StringType");
|
|
|
21
21
|
const VoidType_1 = require("./types/VoidType");
|
|
22
22
|
const Parser_1 = require("./parser/Parser");
|
|
23
23
|
const Logger_1 = require("./Logger");
|
|
24
|
+
const Token_1 = require("./lexer/Token");
|
|
24
25
|
const TokenKind_1 = require("./lexer/TokenKind");
|
|
25
26
|
const reflection_1 = require("./astUtils/reflection");
|
|
26
27
|
const visitors_1 = require("./astUtils/visitors");
|
|
@@ -578,29 +579,50 @@ class Util {
|
|
|
578
579
|
/**
|
|
579
580
|
* Combine all the documentation found before a token (i.e. comment tokens)
|
|
580
581
|
*/
|
|
581
|
-
getTokenDocumentation(
|
|
582
|
+
getTokenDocumentation(token) {
|
|
583
|
+
var _a;
|
|
584
|
+
const leadingTrivia = (0, Token_1.isToken)(token) ? token.leadingTrivia : (_a = token === null || token === void 0 ? void 0 : token.getLeadingTrivia()) !== null && _a !== void 0 ? _a : [];
|
|
585
|
+
const tokens = leadingTrivia === null || leadingTrivia === void 0 ? void 0 : leadingTrivia.filter(t => t.kind === TokenKind_1.TokenKind.Newline || t.kind === TokenKind_1.TokenKind.Comment);
|
|
582
586
|
const comments = [];
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
return undefined;
|
|
586
|
-
}
|
|
587
|
-
for (let i = idx - 1; i >= 0; i--) {
|
|
587
|
+
let newLinesInRow = 0;
|
|
588
|
+
for (let i = tokens.length - 1; i >= 0; i--) {
|
|
588
589
|
const token = tokens[i];
|
|
589
590
|
//skip whitespace and newline chars
|
|
590
591
|
if (token.kind === TokenKind_1.TokenKind.Comment) {
|
|
591
592
|
comments.push(token);
|
|
593
|
+
newLinesInRow = 0;
|
|
592
594
|
}
|
|
593
|
-
else if (token.kind === TokenKind_1.TokenKind.Newline
|
|
595
|
+
else if (token.kind === TokenKind_1.TokenKind.Newline) {
|
|
594
596
|
//skip these tokens
|
|
595
|
-
|
|
597
|
+
newLinesInRow++;
|
|
598
|
+
if (newLinesInRow > 1) {
|
|
599
|
+
// stop processing on empty line.
|
|
600
|
+
break;
|
|
601
|
+
}
|
|
596
602
|
//any other token means there are no more comments
|
|
597
603
|
}
|
|
598
604
|
else {
|
|
599
605
|
break;
|
|
600
606
|
}
|
|
601
607
|
}
|
|
608
|
+
const jsDocCommentBlockLine = /(\/\*{2,}|\*{1,}\/)/i;
|
|
609
|
+
let usesjsDocCommentBlock = false;
|
|
602
610
|
if (comments.length > 0) {
|
|
603
|
-
return comments.reverse()
|
|
611
|
+
return comments.reverse()
|
|
612
|
+
.map(x => x.text.replace(/^('|rem)/i, '').trim())
|
|
613
|
+
.filter(line => {
|
|
614
|
+
if (jsDocCommentBlockLine.exec(line)) {
|
|
615
|
+
usesjsDocCommentBlock = true;
|
|
616
|
+
return false;
|
|
617
|
+
}
|
|
618
|
+
return true;
|
|
619
|
+
}).map(line => {
|
|
620
|
+
if (usesjsDocCommentBlock) {
|
|
621
|
+
if (line.startsWith('*')) {
|
|
622
|
+
//remove jsDoc leading '*'
|
|
623
|
+
line = line.slice(1).trim();
|
|
624
|
+
}
|
|
625
|
+
}
|
|
604
626
|
if (line.startsWith('@')) {
|
|
605
627
|
// Handle jsdoc/brightscriptdoc tags specially
|
|
606
628
|
// make sure they are on their own markdown line, and add italics
|
|
@@ -622,8 +644,7 @@ class Util {
|
|
|
622
644
|
if (!node) {
|
|
623
645
|
return;
|
|
624
646
|
}
|
|
625
|
-
|
|
626
|
-
return this.getTokenDocumentation(leadingTrivia, leadingTrivia[leadingTrivia.length - 1]);
|
|
647
|
+
return this.getTokenDocumentation(node);
|
|
627
648
|
}
|
|
628
649
|
/**
|
|
629
650
|
* Prefixes a component name so it can be used as type in the symbol table, without polluting available symbols
|
|
@@ -857,7 +878,11 @@ class Util {
|
|
|
857
878
|
* Get a location object back by extracting location information from other objects that contain location
|
|
858
879
|
*/
|
|
859
880
|
getRange(startObj, endObj) {
|
|
860
|
-
|
|
881
|
+
var _a, _b;
|
|
882
|
+
if (!(startObj === null || startObj === void 0 ? void 0 : startObj.range) || !(endObj === null || endObj === void 0 ? void 0 : endObj.range)) {
|
|
883
|
+
return undefined;
|
|
884
|
+
}
|
|
885
|
+
return exports.util.createRangeFromPositions((_a = startObj.range) === null || _a === void 0 ? void 0 : _a.start, (_b = endObj.range) === null || _b === void 0 ? void 0 : _b.end);
|
|
861
886
|
}
|
|
862
887
|
/**
|
|
863
888
|
* If the two items both start on the same line
|
|
@@ -874,7 +899,7 @@ class Util {
|
|
|
874
899
|
* If the two items have lines that touch
|
|
875
900
|
*/
|
|
876
901
|
linesTouch(first, second) {
|
|
877
|
-
if (first && second && (first.range.start.line === second.range.start.line ||
|
|
902
|
+
if (first && second && (first.range !== undefined) && (second.range !== undefined) && (first.range.start.line === second.range.start.line ||
|
|
878
903
|
first.range.start.line === second.range.end.line ||
|
|
879
904
|
first.range.end.line === second.range.start.line ||
|
|
880
905
|
first.range.end.line === second.range.end.line)) {
|
|
@@ -1371,10 +1396,19 @@ class Util {
|
|
|
1371
1396
|
return BooleanType_1.BooleanType.instance;
|
|
1372
1397
|
}
|
|
1373
1398
|
break;
|
|
1374
|
-
// Logical operators
|
|
1399
|
+
// Logical or bitwise operators
|
|
1375
1400
|
case TokenKind_1.TokenKind.Or:
|
|
1376
1401
|
case TokenKind_1.TokenKind.And:
|
|
1377
|
-
if (
|
|
1402
|
+
if (bothNumbers) {
|
|
1403
|
+
// "and"/"or" represent bitwise operators
|
|
1404
|
+
if (hasLongInteger && !hasDouble && !hasFloat) {
|
|
1405
|
+
// 2 long ints or long int and int
|
|
1406
|
+
return LongIntegerType_1.LongIntegerType.instance;
|
|
1407
|
+
}
|
|
1408
|
+
return IntegerType_1.IntegerType.instance;
|
|
1409
|
+
}
|
|
1410
|
+
else if (eitherBooleanOrNum) {
|
|
1411
|
+
// "and"/"or" represent logical operators
|
|
1378
1412
|
return BooleanType_1.BooleanType.instance;
|
|
1379
1413
|
}
|
|
1380
1414
|
break;
|
|
@@ -1469,7 +1503,7 @@ class Util {
|
|
|
1469
1503
|
* Gathers expressions, variables, and unique names from an expression.
|
|
1470
1504
|
* This is mostly used for the ternary expression
|
|
1471
1505
|
*/
|
|
1472
|
-
getExpressionInfo(expression) {
|
|
1506
|
+
getExpressionInfo(expression, file) {
|
|
1473
1507
|
const expressions = [expression];
|
|
1474
1508
|
const variableExpressions = [];
|
|
1475
1509
|
const uniqueVarNames = new Set();
|
|
@@ -1489,9 +1523,16 @@ class Util {
|
|
|
1489
1523
|
});
|
|
1490
1524
|
//handle the expression itself (for situations when expression is a VariableExpression)
|
|
1491
1525
|
expressionWalker(expression);
|
|
1492
|
-
|
|
1526
|
+
const scope = file.program.getFirstScopeForFile(file);
|
|
1527
|
+
const filteredVarNames = [...uniqueVarNames].filter((varName) => {
|
|
1528
|
+
const varNameLower = varName.toLowerCase();
|
|
1529
|
+
// TODO: include namespaces in this filter
|
|
1530
|
+
return !scope.getEnumMap().has(varNameLower) &&
|
|
1531
|
+
!scope.getConstMap().has(varNameLower);
|
|
1532
|
+
});
|
|
1533
|
+
return { expressions: expressions, varExpressions: variableExpressions, uniqueVarNames: filteredVarNames };
|
|
1493
1534
|
}
|
|
1494
|
-
concatAnnotationLeadingTrivia(stmt, otherTrivia) {
|
|
1535
|
+
concatAnnotationLeadingTrivia(stmt, otherTrivia = []) {
|
|
1495
1536
|
var _a, _b;
|
|
1496
1537
|
return [...((_b = (_a = stmt.annotations) === null || _a === void 0 ? void 0 : _a.map(anno => anno.getLeadingTrivia()).flat()) !== null && _b !== void 0 ? _b : []), ...otherTrivia];
|
|
1497
1538
|
}
|
|
@@ -1797,6 +1838,14 @@ class Util {
|
|
|
1797
1838
|
file.addDiagnostics([Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.detectedTooDeepFileSource(fileDepth)), { file: file, range: this.createRange(0, 0, 0, Number.MAX_VALUE) })]);
|
|
1798
1839
|
}
|
|
1799
1840
|
}
|
|
1841
|
+
/**
|
|
1842
|
+
* Wraps SourceNode's constructor to be compatible with the TranspileResult type
|
|
1843
|
+
*/
|
|
1844
|
+
sourceNodeFromTranspileResult(line, column, source, chunks, name) {
|
|
1845
|
+
// we can use a typecast rather than actually transforming the data because SourceNode
|
|
1846
|
+
// accepts a more permissive type than its typedef states
|
|
1847
|
+
return new source_map_1.SourceNode(line, column, source, chunks, name);
|
|
1848
|
+
}
|
|
1800
1849
|
/**
|
|
1801
1850
|
* Find the index of the last item in the array that matches.
|
|
1802
1851
|
*/
|
|
@@ -1934,6 +1983,35 @@ class Util {
|
|
|
1934
1983
|
getAstNodeFriendlyName(node) {
|
|
1935
1984
|
return node === null || node === void 0 ? void 0 : node.kind.replace(/Statement|Expression/g, '');
|
|
1936
1985
|
}
|
|
1986
|
+
hasLeadingComments(input) {
|
|
1987
|
+
var _a;
|
|
1988
|
+
const leadingTrivia = (0, Token_1.isToken)(input) ? input === null || input === void 0 ? void 0 : input.leadingTrivia : (_a = input === null || input === void 0 ? void 0 : input.getLeadingTrivia()) !== null && _a !== void 0 ? _a : [];
|
|
1989
|
+
return !!leadingTrivia.find(t => t.kind === TokenKind_1.TokenKind.Comment);
|
|
1990
|
+
}
|
|
1991
|
+
getLeadingComments(input) {
|
|
1992
|
+
var _a;
|
|
1993
|
+
const leadingTrivia = (0, Token_1.isToken)(input) ? input === null || input === void 0 ? void 0 : input.leadingTrivia : (_a = input === null || input === void 0 ? void 0 : input.getLeadingTrivia()) !== null && _a !== void 0 ? _a : [];
|
|
1994
|
+
return leadingTrivia.filter(t => t.kind === TokenKind_1.TokenKind.Comment);
|
|
1995
|
+
}
|
|
1996
|
+
isLeadingCommentOnSameLine(line, input) {
|
|
1997
|
+
var _a;
|
|
1998
|
+
const leadingCommentRange = (_a = this.getLeadingComments(input)) === null || _a === void 0 ? void 0 : _a[0];
|
|
1999
|
+
if (leadingCommentRange) {
|
|
2000
|
+
return this.linesTouch(line, leadingCommentRange);
|
|
2001
|
+
}
|
|
2002
|
+
return false;
|
|
2003
|
+
}
|
|
2004
|
+
isClassUsedAsFunction(potentialClassType, expression, options) {
|
|
2005
|
+
// eslint-disable-next-line no-bitwise
|
|
2006
|
+
if (options.flags & 1 /* SymbolTypeFlag.runtime */ &&
|
|
2007
|
+
(0, reflection_1.isClassType)(potentialClassType) &&
|
|
2008
|
+
!options.isExistenceTest &&
|
|
2009
|
+
potentialClassType.name.toLowerCase() === this.getAllDottedGetPartsAsString(expression).toLowerCase() &&
|
|
2010
|
+
!expression.findAncestor(reflection_1.isNewExpression)) {
|
|
2011
|
+
return true;
|
|
2012
|
+
}
|
|
2013
|
+
return false;
|
|
2014
|
+
}
|
|
1937
2015
|
}
|
|
1938
2016
|
exports.Util = Util;
|
|
1939
2017
|
/**
|