brighterscript 1.0.0-alpha.40 → 1.0.0-alpha.42
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 +67 -1
- 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 +4 -2
- package/dist/astUtils/reflection.js +12 -3
- 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 +80 -9
- package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.d.ts +9 -0
- package/dist/bscPlugin/validation/ScopeValidator.js +155 -79
- package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.spec.js +1269 -35
- 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 +76 -48
- 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 +430 -235
- package/dist/roku-types/index.d.ts +30 -37
- package/dist/types/ArrayType.d.ts +2 -0
- package/dist/types/ArrayType.js +14 -4
- 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 +12 -3
- 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 +2 -0
- 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 +2 -0
- package/dist/types/FloatType.js.map +1 -1
- package/dist/types/InheritableType.d.ts +1 -0
- package/dist/types/InheritableType.js +14 -1
- package/dist/types/InheritableType.js.map +1 -1
- package/dist/types/IntegerType.d.ts +2 -0
- package/dist/types/IntegerType.js +2 -0
- 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 +1 -0
- package/dist/types/InvalidType.js.map +1 -1
- package/dist/types/LongIntegerType.d.ts +2 -0
- package/dist/types/LongIntegerType.js +2 -0
- 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 +1 -0
- 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 +15 -5
- package/dist/util.js +281 -14
- 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
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isConditionalCompileErrorStatement = exports.isConditionalCompileConstStatement = exports.isConditionalCompileStatement = exports.isTypecastStatement = exports.isThrowStatement = exports.isCatchStatement = exports.isTryCatchStatement = exports.isContinueStatement = exports.isConstStatement = exports.isEnumMemberStatement = exports.isEnumStatement = exports.isMemberMethod = exports.isMemberField = exports.isInterfaceFieldStatement = exports.isInterfaceMethodStatement = exports.isInterfaceStatement = exports.isFieldStatement = exports.isMethodStatement = exports.isImportStatement = exports.isClassStatement = exports.isNamespaceStatement = exports.isLibraryStatement = exports.isIndexedSetStatement = exports.isDottedSetStatement = exports.isDimStatement = exports.isWhileStatement = exports.isForEachStatement = exports.isForStatement = exports.isStopStatement = exports.isEndStatement = exports.isNullCoalescingExpression = exports.isTernaryExpression = exports.isReturnStatement = exports.isLabelStatement = exports.isGotoStatement = exports.isPrintStatement = exports.isIncrementStatement = exports.isIfStatement = exports.isFunctionStatement = exports.isExitStatement = exports.isExpressionStatement = exports.isBlock = exports.isAssignmentStatement = exports.isBody = exports.isStatement = exports.isXmlScope = exports.isBscFile = exports.isAssetFile = exports.isXmlFile = exports.isBrsFile = void 0;
|
|
4
|
-
exports.
|
|
5
|
-
exports.isBsDiagnostic = exports.isLiteralDouble = exports.isLiteralFloat = exports.isLiteralLongInteger = exports.isLiteralInteger = exports.isLiteralNumber = exports.isLiteralString = exports.isLiteralBoolean = exports.isLiteralInvalid = exports.isNativeType = exports.isPrimitiveType = exports.isNumberType = exports.isAnyReferenceType = exports.isCallableType = exports.isInheritableType = exports.isAssociativeArrayType = exports.isArrayType = exports.isUninitializedType = exports.isUnionType = exports.isNamespaceType = void 0;
|
|
4
|
+
exports.isBinaryOperatorReferenceType = exports.isTypePropertyReferenceType = exports.isEnumMemberType = exports.isEnumType = exports.isReferenceType = exports.isObjectType = exports.isInterfaceType = exports.isDynamicType = exports.isComponentType = exports.isClassType = exports.isVoidType = exports.isInvalidType = exports.isDoubleType = exports.isFloatType = exports.isLongIntegerType = exports.isIntegerType = exports.isBooleanType = exports.isFunctionType = exports.isTypedFunctionType = exports.isStringType = exports.isPrintSeparatorExpression = exports.isTypedArrayExpression = exports.isTypecastExpression = exports.isTypeExpression = exports.isTypedefProvider = exports.isAnnotationExpression = exports.isFunctionParameterExpression = exports.isTaggedTemplateStringExpression = exports.isTemplateStringExpression = exports.isTemplateStringQuasiExpression = exports.isCallfuncExpression = exports.isNewExpression = exports.isSourceLiteralExpression = exports.isVariableExpression = exports.isUnaryExpression = exports.isAAMemberExpression = exports.isAALiteralExpression = exports.isArrayLiteralExpression = exports.isEscapedCharCodeLiteralExpression = exports.isLiteralExpression = exports.isGroupingExpression = exports.isIndexedGetExpression = exports.isXmlAttributeGetExpression = exports.isDottedGetExpression = exports.isFunctionExpression = exports.isCallExpression = exports.isBinaryExpression = exports.isExpression = exports.isAugmentedAssignmentStatement = exports.isAliasStatement = void 0;
|
|
5
|
+
exports.isBsDiagnostic = exports.isLiteralDouble = exports.isLiteralFloat = exports.isLiteralLongInteger = exports.isLiteralInteger = exports.isLiteralNumber = exports.isLiteralString = exports.isLiteralBoolean = exports.isLiteralInvalid = exports.isNativeType = exports.isPrimitiveType = exports.isNumberType = exports.isAnyReferenceType = exports.isCallableType = exports.isInheritableType = exports.isAssociativeArrayType = exports.isArrayType = exports.isUninitializedType = exports.isUnionType = exports.isNamespaceType = exports.isParamTypeFromValueReferenceType = exports.isArrayDefaultTypeReferenceType = void 0;
|
|
6
6
|
const visitors_1 = require("./visitors");
|
|
7
7
|
const AstNode_1 = require("../parser/AstNode");
|
|
8
8
|
const BscTypeKind_1 = require("../types/BscTypeKind");
|
|
@@ -346,6 +346,10 @@ function isTypedArrayExpression(element) {
|
|
|
346
346
|
return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TypedArrayExpression;
|
|
347
347
|
}
|
|
348
348
|
exports.isTypedArrayExpression = isTypedArrayExpression;
|
|
349
|
+
function isPrintSeparatorExpression(element) {
|
|
350
|
+
return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.PrintSeparatorExpression;
|
|
351
|
+
}
|
|
352
|
+
exports.isPrintSeparatorExpression = isPrintSeparatorExpression;
|
|
349
353
|
// BscType reflection
|
|
350
354
|
function isStringType(value) {
|
|
351
355
|
return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.StringType;
|
|
@@ -435,6 +439,11 @@ function isArrayDefaultTypeReferenceType(value) {
|
|
|
435
439
|
return ((_a = value === null || value === void 0 ? void 0 : value.__reflection) === null || _a === void 0 ? void 0 : _a.name) === 'ArrayDefaultTypeReferenceType';
|
|
436
440
|
}
|
|
437
441
|
exports.isArrayDefaultTypeReferenceType = isArrayDefaultTypeReferenceType;
|
|
442
|
+
function isParamTypeFromValueReferenceType(value) {
|
|
443
|
+
var _a;
|
|
444
|
+
return ((_a = value === null || value === void 0 ? void 0 : value.__reflection) === null || _a === void 0 ? void 0 : _a.name) === 'ParamTypeFromValueReferenceType';
|
|
445
|
+
}
|
|
446
|
+
exports.isParamTypeFromValueReferenceType = isParamTypeFromValueReferenceType;
|
|
438
447
|
function isNamespaceType(value) {
|
|
439
448
|
return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.NamespaceType;
|
|
440
449
|
}
|
|
@@ -466,7 +475,7 @@ exports.isCallableType = isCallableType;
|
|
|
466
475
|
function isAnyReferenceType(target) {
|
|
467
476
|
var _a;
|
|
468
477
|
const name = (_a = target === null || target === void 0 ? void 0 : target.__reflection) === null || _a === void 0 ? void 0 : _a.name;
|
|
469
|
-
return name === 'ReferenceType' || name === 'TypePropertyReferenceType' || name === 'BinaryOperatorReferenceType' || name === 'ArrayDefaultTypeReferenceType';
|
|
478
|
+
return name === 'ReferenceType' || name === 'TypePropertyReferenceType' || name === 'BinaryOperatorReferenceType' || name === 'ArrayDefaultTypeReferenceType' || name === 'ParamTypeFromValueReferenceType';
|
|
470
479
|
}
|
|
471
480
|
exports.isAnyReferenceType = isAnyReferenceType;
|
|
472
481
|
const numberTypeKinds = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reflection.js","sourceRoot":"","sources":["../../src/astUtils/reflection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reflection.js","sourceRoot":"","sources":["../../src/astUtils/reflection.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,9 @@ export declare function walkStatements(statement: Statement, visitor: (statement
|
|
|
10
10
|
export declare type WalkVisitor = <T = AstNode>(node: AstNode, parent?: AstNode, owner?: any, key?: any) => void | T;
|
|
11
11
|
/**
|
|
12
12
|
* A helper function for Statement and Expression `walkAll` calls.
|
|
13
|
+
* @returns a new AstNode if it was changed by returning from the visitor, or undefined if not
|
|
13
14
|
*/
|
|
14
|
-
export declare function walk<T>(owner: T, key: keyof T, visitor: WalkVisitor, options: WalkOptions, parent?: AstNode): void;
|
|
15
|
+
export declare function walk<T>(owner: T, key: keyof T, visitor: WalkVisitor, options: WalkOptions, parent?: AstNode): AstNode | void;
|
|
15
16
|
/**
|
|
16
17
|
* Helper for AST elements to walk arrays when visitors might change the array size (to delete/insert items).
|
|
17
18
|
* @param array the array to walk
|
|
@@ -20,7 +21,7 @@ export declare function walk<T>(owner: T, key: keyof T, visitor: WalkVisitor, op
|
|
|
20
21
|
* @param parent the parent AstNode of each item in the array
|
|
21
22
|
* @param filter a function used to filter items from the array. return true if that item should be walked
|
|
22
23
|
*/
|
|
23
|
-
export declare function walkArray<T = AstNode>(array: Array<T>, visitor: WalkVisitor, options: WalkOptions, parent?: AstNode, filter?: <T>(element: T) => boolean): void;
|
|
24
|
+
export declare function walkArray<T extends AstNode = AstNode>(array: Array<T>, visitor: WalkVisitor, options: WalkOptions, parent?: AstNode, filter?: <T>(element: T) => boolean): void;
|
|
24
25
|
/**
|
|
25
26
|
* Creates an optimized visitor function.
|
|
26
27
|
* Conventional visitors will need to inspect each incoming Statement/Expression, leading to many if statements.
|
|
@@ -14,53 +14,64 @@ function walkStatements(statement, visitor, cancel) {
|
|
|
14
14
|
exports.walkStatements = walkStatements;
|
|
15
15
|
/**
|
|
16
16
|
* A helper function for Statement and Expression `walkAll` calls.
|
|
17
|
+
* @returns a new AstNode if it was changed by returning from the visitor, or undefined if not
|
|
17
18
|
*/
|
|
18
19
|
function walk(owner, key, visitor, options, parent) {
|
|
19
20
|
var _a, _b, _c;
|
|
21
|
+
let returnValue;
|
|
20
22
|
//stop processing if canceled
|
|
21
23
|
if ((_a = options.cancel) === null || _a === void 0 ? void 0 : _a.isCancellationRequested) {
|
|
22
|
-
return;
|
|
24
|
+
return returnValue;
|
|
23
25
|
}
|
|
24
26
|
//the object we're visiting
|
|
25
27
|
let element = owner[key];
|
|
26
28
|
if (!element) {
|
|
27
|
-
return;
|
|
29
|
+
return returnValue;
|
|
28
30
|
}
|
|
29
31
|
//link this node to its parent
|
|
30
|
-
|
|
32
|
+
parent = parent !== null && parent !== void 0 ? parent : owner;
|
|
33
|
+
element.parent = parent;
|
|
31
34
|
//get current bsConsts
|
|
32
35
|
if (!options.bsConsts) {
|
|
33
36
|
options.bsConsts = element.getBsConsts();
|
|
34
37
|
}
|
|
35
38
|
//notify the visitor of this element
|
|
36
39
|
if (element.visitMode & options.walkMode) {
|
|
37
|
-
|
|
40
|
+
returnValue = visitor === null || visitor === void 0 ? void 0 : visitor(element, element.parent, owner, key);
|
|
38
41
|
//replace the value on the parent if the visitor returned a Statement or Expression (this is how visitors can edit AST)
|
|
39
|
-
if (
|
|
42
|
+
if (returnValue && ((0, reflection_1.isExpression)(returnValue) || (0, reflection_1.isStatement)(returnValue))) {
|
|
43
|
+
//if we have an editor, use that to modify the AST
|
|
40
44
|
if (options.editor) {
|
|
41
|
-
options.editor.setProperty(owner, key,
|
|
45
|
+
options.editor.setProperty(owner, key, returnValue);
|
|
46
|
+
//we don't have an editor, modify the AST directly
|
|
42
47
|
}
|
|
43
48
|
else {
|
|
44
|
-
owner[key] =
|
|
45
|
-
//don't walk the new element
|
|
46
|
-
return;
|
|
49
|
+
owner[key] = returnValue;
|
|
47
50
|
}
|
|
48
51
|
}
|
|
49
52
|
}
|
|
50
53
|
//stop processing if canceled
|
|
51
54
|
if ((_b = options.cancel) === null || _b === void 0 ? void 0 : _b.isCancellationRequested) {
|
|
52
|
-
return;
|
|
55
|
+
return returnValue;
|
|
53
56
|
}
|
|
54
57
|
//do not walk children if skipped
|
|
55
58
|
if ((_c = options.skipChildren) === null || _c === void 0 ? void 0 : _c.shouldSkipChildren) {
|
|
56
59
|
options.skipChildren.reset();
|
|
57
60
|
return;
|
|
58
61
|
}
|
|
62
|
+
//get the element again in case it was replaced by the visitor
|
|
63
|
+
element = owner[key];
|
|
64
|
+
if (!element) {
|
|
65
|
+
return returnValue;
|
|
66
|
+
}
|
|
67
|
+
//set the parent of this new expression
|
|
68
|
+
element.parent = parent;
|
|
59
69
|
if (!element.walk) {
|
|
60
70
|
throw new Error(`${owner.constructor.name}["${String(key)}"]${parent ? ` for ${parent.constructor.name}` : ''} does not contain a "walk" method`);
|
|
61
71
|
}
|
|
62
72
|
//walk the child expressions
|
|
63
73
|
element.walk(visitor, options);
|
|
74
|
+
return returnValue;
|
|
64
75
|
}
|
|
65
76
|
exports.walk = walk;
|
|
66
77
|
/**
|
|
@@ -72,12 +83,24 @@ exports.walk = walk;
|
|
|
72
83
|
* @param filter a function used to filter items from the array. return true if that item should be walked
|
|
73
84
|
*/
|
|
74
85
|
function walkArray(array, visitor, options, parent, filter) {
|
|
86
|
+
let processedNodes = new Set();
|
|
75
87
|
for (let i = 0; i < (array === null || array === void 0 ? void 0 : array.length); i++) {
|
|
76
88
|
if (!filter || filter(array[i])) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
89
|
+
let item = array[i];
|
|
90
|
+
//skip already processed nodes for this array walk
|
|
91
|
+
if (processedNodes.has(item)) {
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
processedNodes.add(item);
|
|
95
|
+
//if the walk produced a new node, we will assume the original node was handled, and the new node's children were walked, so we can skip it if we enter recovery mode
|
|
96
|
+
const newNode = walk(array, i, visitor, options, parent);
|
|
97
|
+
if (newNode) {
|
|
98
|
+
processedNodes.add(newNode);
|
|
99
|
+
}
|
|
100
|
+
//if the current item changed, restart the entire loop (we'll skip any already-processed items)
|
|
101
|
+
if (array[i] !== item) {
|
|
102
|
+
i = -1;
|
|
103
|
+
}
|
|
81
104
|
}
|
|
82
105
|
}
|
|
83
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visitors.js","sourceRoot":"","sources":["../../src/astUtils/visitors.ts"],"names":[],"mappings":";;;AAIA,6CAAyD;AAIzD;;GAEG;AACH,SAAgB,cAAc,CAC1B,SAAoB,EACpB,OAA+F,EAC/F,MAA0B;IAE1B,SAAS,CAAC,IAAI,CAAC,OAAc,EAAE;QAC3B,QAAQ,EAAE,QAAQ,CAAC,eAAe;QAClC,MAAM,EAAE,MAAM;KACjB,CAAC,CAAC;AACP,CAAC;AATD,wCASC;AAID
|
|
1
|
+
{"version":3,"file":"visitors.js","sourceRoot":"","sources":["../../src/astUtils/visitors.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ const stackedVisitor_1 = require("./stackedVisitor");
|
|
|
13
13
|
const Editor_1 = require("./Editor");
|
|
14
14
|
const Parser_1 = require("../parser/Parser");
|
|
15
15
|
const testHelpers_spec_1 = require("../testHelpers.spec");
|
|
16
|
+
const Expression_1 = require("../parser/Expression");
|
|
16
17
|
describe('astUtils visitors', () => {
|
|
17
18
|
const rootDir = process.cwd();
|
|
18
19
|
let program;
|
|
@@ -318,6 +319,7 @@ describe('astUtils visitors', () => {
|
|
|
318
319
|
program.setFile('source/main.brs', EXPRESSIONS_SRC);
|
|
319
320
|
(0, chai_config_spec_1.expect)(actual).to.deep.equal([
|
|
320
321
|
'PrintStatement:1:LiteralExpression',
|
|
322
|
+
'PrintStatement:1:PrintSeparatorExpression',
|
|
321
323
|
'PrintStatement:1:LiteralExpression',
|
|
322
324
|
'PrintStatement:1:TemplateStringExpression',
|
|
323
325
|
'PrintStatement:1:TemplateStringQuasiExpression',
|
|
@@ -1045,6 +1047,78 @@ describe('astUtils visitors', () => {
|
|
|
1045
1047
|
(0, chai_config_spec_1.expect)(callCount).to.eql(3);
|
|
1046
1048
|
(0, chai_config_spec_1.expect)(ast.statements[0].func.body.statements).to.be.lengthOf(0);
|
|
1047
1049
|
});
|
|
1050
|
+
it('walks everything when the first element is replaced', () => {
|
|
1051
|
+
const { ast } = Parser_1.Parser.parse(`
|
|
1052
|
+
sub main()
|
|
1053
|
+
print 1
|
|
1054
|
+
print 2
|
|
1055
|
+
print 3
|
|
1056
|
+
end sub
|
|
1057
|
+
`);
|
|
1058
|
+
const target = ast.findChild(reflection_1.isBlock).statements[0];
|
|
1059
|
+
let callCount = 0;
|
|
1060
|
+
ast.walk((astNode, parent, owner, key) => {
|
|
1061
|
+
if ((0, reflection_1.isPrintStatement)(astNode)) {
|
|
1062
|
+
callCount++;
|
|
1063
|
+
}
|
|
1064
|
+
if (astNode === target) {
|
|
1065
|
+
owner.splice(key, 1);
|
|
1066
|
+
}
|
|
1067
|
+
}, {
|
|
1068
|
+
walkMode: visitors_1.WalkMode.visitAllRecursive
|
|
1069
|
+
});
|
|
1070
|
+
//the visitor should have been called for every statement
|
|
1071
|
+
(0, chai_config_spec_1.expect)(callCount).to.eql(3);
|
|
1072
|
+
(0, chai_config_spec_1.expect)(ast.statements[0].func.body.statements).not.to.include(target);
|
|
1073
|
+
});
|
|
1074
|
+
it('walks everything when the middle element is replaced', () => {
|
|
1075
|
+
const { ast } = Parser_1.Parser.parse(`
|
|
1076
|
+
sub main()
|
|
1077
|
+
print 1
|
|
1078
|
+
print 2
|
|
1079
|
+
print 3
|
|
1080
|
+
end sub
|
|
1081
|
+
`);
|
|
1082
|
+
const target = ast.findChild(reflection_1.isBlock).statements[1];
|
|
1083
|
+
let callCount = 0;
|
|
1084
|
+
ast.walk((astNode, parent, owner, key) => {
|
|
1085
|
+
if ((0, reflection_1.isPrintStatement)(astNode)) {
|
|
1086
|
+
callCount++;
|
|
1087
|
+
}
|
|
1088
|
+
if (astNode === target) {
|
|
1089
|
+
owner.splice(key, 1);
|
|
1090
|
+
}
|
|
1091
|
+
}, {
|
|
1092
|
+
walkMode: visitors_1.WalkMode.visitAllRecursive
|
|
1093
|
+
});
|
|
1094
|
+
//the visitor should have been called for every statement
|
|
1095
|
+
(0, chai_config_spec_1.expect)(callCount).to.eql(3);
|
|
1096
|
+
(0, chai_config_spec_1.expect)(ast.statements[0].func.body.statements).not.to.include(target);
|
|
1097
|
+
});
|
|
1098
|
+
it('walks everything when the end element is replaced', () => {
|
|
1099
|
+
const { ast } = Parser_1.Parser.parse(`
|
|
1100
|
+
sub main()
|
|
1101
|
+
print 1
|
|
1102
|
+
print 2
|
|
1103
|
+
print 3
|
|
1104
|
+
end sub
|
|
1105
|
+
`);
|
|
1106
|
+
const target = ast.findChild(reflection_1.isBlock).statements[2];
|
|
1107
|
+
let callCount = 0;
|
|
1108
|
+
ast.walk((astNode, parent, owner, key) => {
|
|
1109
|
+
if ((0, reflection_1.isPrintStatement)(astNode)) {
|
|
1110
|
+
callCount++;
|
|
1111
|
+
}
|
|
1112
|
+
if (astNode === target) {
|
|
1113
|
+
owner.splice(key, 1);
|
|
1114
|
+
}
|
|
1115
|
+
}, {
|
|
1116
|
+
walkMode: visitors_1.WalkMode.visitAllRecursive
|
|
1117
|
+
});
|
|
1118
|
+
//the visitor should have been called for every statement
|
|
1119
|
+
(0, chai_config_spec_1.expect)(callCount).to.eql(3);
|
|
1120
|
+
(0, chai_config_spec_1.expect)(ast.statements[0].func.body.statements).not.to.include(target);
|
|
1121
|
+
});
|
|
1048
1122
|
it('can be used to insert statements', () => {
|
|
1049
1123
|
const { ast } = Parser_1.Parser.parse(`
|
|
1050
1124
|
sub main()
|
|
@@ -1061,19 +1135,23 @@ describe('astUtils visitors', () => {
|
|
|
1061
1135
|
printStatementCount++;
|
|
1062
1136
|
//add another expression to the list every time. This should result in 1 the first time, 2 the second, 3 the third.
|
|
1063
1137
|
calls.push(new Statement_1.ExpressionStatement({
|
|
1064
|
-
expression: (0, creators_1.createCall)((0, creators_1.createVariableExpression)('doSomethingBeforePrint')
|
|
1138
|
+
expression: (0, creators_1.createCall)((0, creators_1.createVariableExpression)('doSomethingBeforePrint'), [
|
|
1139
|
+
(0, creators_1.createIntegerLiteral)(callExpressionCount.toString())
|
|
1140
|
+
])
|
|
1065
1141
|
}));
|
|
1066
|
-
owner.splice(key, 0, ...calls);
|
|
1142
|
+
owner.splice(key + 1, 0, ...calls.map(x => x.clone()));
|
|
1067
1143
|
},
|
|
1068
|
-
CallExpression: () => {
|
|
1144
|
+
CallExpression: (call) => {
|
|
1069
1145
|
callExpressionCount++;
|
|
1146
|
+
console.log('call visitor for', call.args[0].tokens.value.text);
|
|
1070
1147
|
}
|
|
1071
1148
|
}), {
|
|
1072
1149
|
walkMode: visitors_1.WalkMode.visitAllRecursive
|
|
1073
1150
|
});
|
|
1074
1151
|
//the visitor should have been called for every statement
|
|
1075
1152
|
(0, chai_config_spec_1.expect)(printStatementCount).to.eql(3);
|
|
1076
|
-
|
|
1153
|
+
//since the calls were injected after each print statement, we should have 1 call for the first print, 2 for the second, and 3 for the third
|
|
1154
|
+
(0, chai_config_spec_1.expect)(callExpressionCount).to.eql(6);
|
|
1077
1155
|
(0, chai_config_spec_1.expect)(ast.statements[0].func.body.statements).to.be.lengthOf(9);
|
|
1078
1156
|
});
|
|
1079
1157
|
it('skips children when requested', () => {
|
|
@@ -1176,7 +1254,31 @@ describe('astUtils visitors', () => {
|
|
|
1176
1254
|
}), {
|
|
1177
1255
|
walkMode: visitors_1.WalkMode.visitAllRecursive
|
|
1178
1256
|
});
|
|
1179
|
-
|
|
1257
|
+
});
|
|
1258
|
+
it('walks a new child when returned from a visitor', () => {
|
|
1259
|
+
let walkedLiterals = [];
|
|
1260
|
+
Parser_1.Parser.parse(`
|
|
1261
|
+
sub main()
|
|
1262
|
+
print 1 + 2
|
|
1263
|
+
end sub
|
|
1264
|
+
`).ast.walk((0, visitors_1.createVisitor)({
|
|
1265
|
+
BinaryExpression: (node, parent, owner, key) => {
|
|
1266
|
+
//replace the `1 + 2` binary expression with a new binary expression
|
|
1267
|
+
if ((0, reflection_1.isLiteralExpression)(node.left) && node.left.tokens.value.text === '1') {
|
|
1268
|
+
return new Expression_1.BinaryExpression({
|
|
1269
|
+
left: (0, creators_1.createIntegerLiteral)('3'),
|
|
1270
|
+
operator: (0, creators_1.createToken)(TokenKind_1.TokenKind.Plus),
|
|
1271
|
+
right: (0, creators_1.createIntegerLiteral)('4')
|
|
1272
|
+
});
|
|
1273
|
+
}
|
|
1274
|
+
},
|
|
1275
|
+
LiteralExpression: (node) => {
|
|
1276
|
+
walkedLiterals.push(node.tokens.value.text);
|
|
1277
|
+
}
|
|
1278
|
+
}), {
|
|
1279
|
+
walkMode: visitors_1.WalkMode.visitAllRecursive
|
|
1280
|
+
});
|
|
1281
|
+
(0, chai_config_spec_1.expect)(walkedLiterals).to.eql(['3', '4']);
|
|
1180
1282
|
});
|
|
1181
1283
|
it('can set bsConst in walk', () => {
|
|
1182
1284
|
const { ast } = program.setFile('source/main.brs', `
|
|
@@ -1234,7 +1336,7 @@ describe('astUtils visitors', () => {
|
|
|
1234
1336
|
// did walk false block
|
|
1235
1337
|
(0, chai_config_spec_1.expect)(foundMainFunc).to.be.true;
|
|
1236
1338
|
});
|
|
1237
|
-
it('will
|
|
1339
|
+
it('will correctly walk `not condition` cc blocks', () => {
|
|
1238
1340
|
const { ast } = program.setFile('source/main.brs', `
|
|
1239
1341
|
#const DEBUG = false
|
|
1240
1342
|
#if not DEBUG
|
|
@@ -1261,6 +1363,70 @@ describe('astUtils visitors', () => {
|
|
|
1261
1363
|
(0, chai_config_spec_1.expect)(functionsFound.has('notDebug')).to.be.true;
|
|
1262
1364
|
(0, chai_config_spec_1.expect)(functionsFound.has('notFalse')).to.be.true;
|
|
1263
1365
|
});
|
|
1366
|
+
it('walks a new child when returned from a visitor and using an AstEditor', () => {
|
|
1367
|
+
let walkedLiterals = [];
|
|
1368
|
+
Parser_1.Parser.parse(`
|
|
1369
|
+
sub main()
|
|
1370
|
+
print 1 + 2
|
|
1371
|
+
end sub
|
|
1372
|
+
`).ast.walk((0, visitors_1.createVisitor)({
|
|
1373
|
+
BinaryExpression: (node, parent, owner, key) => {
|
|
1374
|
+
//replace the `1 + 2` binary expression with a new binary expression
|
|
1375
|
+
if ((0, reflection_1.isLiteralExpression)(node.left) && node.left.tokens.value.text === '1') {
|
|
1376
|
+
return new Expression_1.BinaryExpression({
|
|
1377
|
+
left: (0, creators_1.createIntegerLiteral)('3'),
|
|
1378
|
+
operator: (0, creators_1.createToken)(TokenKind_1.TokenKind.Plus),
|
|
1379
|
+
right: (0, creators_1.createIntegerLiteral)('4')
|
|
1380
|
+
});
|
|
1381
|
+
}
|
|
1382
|
+
},
|
|
1383
|
+
LiteralExpression: (node) => {
|
|
1384
|
+
walkedLiterals.push(node.tokens.value.text);
|
|
1385
|
+
}
|
|
1386
|
+
}), {
|
|
1387
|
+
walkMode: visitors_1.WalkMode.visitAllRecursive,
|
|
1388
|
+
editor: new Editor_1.Editor()
|
|
1389
|
+
});
|
|
1390
|
+
(0, chai_config_spec_1.expect)(walkedLiterals).to.eql(['3', '4']);
|
|
1391
|
+
});
|
|
1392
|
+
});
|
|
1393
|
+
describe('walkArray', () => {
|
|
1394
|
+
const one = (0, creators_1.createVariableExpression)('one');
|
|
1395
|
+
const two = (0, creators_1.createVariableExpression)('two');
|
|
1396
|
+
const three = (0, creators_1.createVariableExpression)('three');
|
|
1397
|
+
const four = (0, creators_1.createVariableExpression)('four');
|
|
1398
|
+
const five = (0, creators_1.createVariableExpression)('five');
|
|
1399
|
+
function doTest(startingArray, expected, visitor) {
|
|
1400
|
+
const visitedItems = [];
|
|
1401
|
+
(0, visitors_1.walkArray)(startingArray, (item, parent, owner, key) => {
|
|
1402
|
+
visitedItems.push(item);
|
|
1403
|
+
return visitor === null || visitor === void 0 ? void 0 : visitor(item, parent, owner, key);
|
|
1404
|
+
}, { walkMode: visitors_1.WalkMode.visitAllRecursive });
|
|
1405
|
+
(0, chai_config_spec_1.expect)(visitedItems.map(x => x.tokens.name.text)).to.eql(expected.map(x => x.tokens.name.text));
|
|
1406
|
+
}
|
|
1407
|
+
it('walks every element in the array', () => {
|
|
1408
|
+
doTest([one, two, three, four, five], [one, two, three, four, five]);
|
|
1409
|
+
});
|
|
1410
|
+
it('walks new items added to the array', () => {
|
|
1411
|
+
doTest([one, two], [one, three, two, four], (item, parent, owner, key) => {
|
|
1412
|
+
//insert a value after one
|
|
1413
|
+
if (item === one) {
|
|
1414
|
+
owner.splice(key + 1, 0, three);
|
|
1415
|
+
//insert a value after one
|
|
1416
|
+
}
|
|
1417
|
+
else if (item === two) {
|
|
1418
|
+
owner.splice(key + 1, 0, four);
|
|
1419
|
+
}
|
|
1420
|
+
});
|
|
1421
|
+
});
|
|
1422
|
+
it('triggers on nodes that were skiped due to insertions', () => {
|
|
1423
|
+
doTest([one, two, three], [one, two, four, three], (item, parent, owner, key) => {
|
|
1424
|
+
//insert a value after one
|
|
1425
|
+
if (item === two) {
|
|
1426
|
+
owner.splice(key, 0, four);
|
|
1427
|
+
}
|
|
1428
|
+
});
|
|
1429
|
+
});
|
|
1264
1430
|
});
|
|
1265
1431
|
});
|
|
1266
1432
|
//# sourceMappingURL=visitors.spec.js.map
|