brighterscript 0.64.4 → 0.65.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
CHANGED
|
@@ -6,7 +6,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
## [0.
|
|
9
|
+
## [0.65.0](https://github.com/rokucommunity/brighterscript/compare/v0.64.4...v0.65.0) - 2023-05-17
|
|
10
|
+
### Changed
|
|
11
|
+
- npm audit fixes. upgrade to coveralls-next ([43756d8](https://github.com/rokucommunity/brighterscript/commit/43756d8))
|
|
12
|
+
- Improve findChild and findAncestor AST methods ([#807](https://github.com/rokucommunity/brighterscript/pull/807))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
## [0.64.4](https://github.com/rokucommunity/brighterscript/compare/v0.64.3...v0.64.4) - 2023-05-10
|
|
10
17
|
### Changed
|
|
11
18
|
- upgrade to [roku-deploy@3.10.2](https://github.com/rokucommunity/roku-deploy/blob/master/CHANGELOG.md#3102---2023-05-10). Notable changes since 3.10.1:
|
|
12
19
|
- Fix audit issues ([roku-deploy#116](https://github.com/rokucommunity/roku-deploy/pull/116))
|
package/dist/parser/AstNode.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { WalkVisitor, WalkOptions } from '../astUtils/visitors';
|
|
2
2
|
import type { Position, Range } from 'vscode-languageserver';
|
|
3
|
+
import { CancellationTokenSource } from 'vscode-languageserver';
|
|
3
4
|
import { InternalWalkMode } from '../astUtils/visitors';
|
|
4
5
|
import type { SymbolTable } from '../SymbolTable';
|
|
5
6
|
import type { BrsTranspileState } from './BrsTranspileState';
|
|
@@ -33,14 +34,16 @@ export declare abstract class AstNode {
|
|
|
33
34
|
*/
|
|
34
35
|
getSymbolTable(): SymbolTable;
|
|
35
36
|
/**
|
|
36
|
-
* Walk upward and return the first node that results in `true` from the matcher
|
|
37
|
+
* Walk upward and return the first node that results in `true` from the matcher.
|
|
38
|
+
* @param matcher a function called for each node. If you return true, this function returns the specified node. If you return a node, that node is returned. all other return values continue the loop
|
|
39
|
+
* The function's second parameter is a cancellation token. If you'd like to short-circuit the walk, call `cancellationToken.cancel()`, then this function will return `undefined`
|
|
37
40
|
*/
|
|
38
|
-
findAncestor<TNode extends AstNode = AstNode>(matcher: (node: AstNode) => boolean | undefined): TNode;
|
|
41
|
+
findAncestor<TNode extends AstNode = AstNode>(matcher: (node: AstNode, cancellationToken: CancellationTokenSource) => boolean | AstNode | undefined | void): TNode;
|
|
39
42
|
/**
|
|
40
43
|
* Find the first child where the matcher evaluates to true.
|
|
41
44
|
* @param matcher a function called for each node. If you return true, this function returns the specified node. If you return a node, that node is returned. all other return values continue the loop
|
|
42
45
|
*/
|
|
43
|
-
findChild<
|
|
46
|
+
findChild<TNode extends AstNode = AstNode>(matcher: (node: AstNode, cancellationSource: any) => boolean | AstNode | undefined | void, options?: WalkOptions): TNode;
|
|
44
47
|
/**
|
|
45
48
|
* FInd the deepest child that includes the given position
|
|
46
49
|
*/
|
package/dist/parser/AstNode.js
CHANGED
|
@@ -28,13 +28,21 @@ class AstNode {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
|
-
* Walk upward and return the first node that results in `true` from the matcher
|
|
31
|
+
* Walk upward and return the first node that results in `true` from the matcher.
|
|
32
|
+
* @param matcher a function called for each node. If you return true, this function returns the specified node. If you return a node, that node is returned. all other return values continue the loop
|
|
33
|
+
* The function's second parameter is a cancellation token. If you'd like to short-circuit the walk, call `cancellationToken.cancel()`, then this function will return `undefined`
|
|
32
34
|
*/
|
|
33
35
|
findAncestor(matcher) {
|
|
34
36
|
let node = this.parent;
|
|
37
|
+
const cancel = new vscode_languageserver_1.CancellationTokenSource();
|
|
35
38
|
while (node) {
|
|
36
|
-
|
|
37
|
-
|
|
39
|
+
let matcherValue = matcher(node, cancel);
|
|
40
|
+
if (cancel.token.isCancellationRequested) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (matcherValue) {
|
|
44
|
+
cancel.cancel();
|
|
45
|
+
return (matcherValue === true ? node : matcherValue);
|
|
38
46
|
}
|
|
39
47
|
node = node.parent;
|
|
40
48
|
}
|
|
@@ -47,7 +55,7 @@ class AstNode {
|
|
|
47
55
|
const cancel = new vscode_languageserver_1.CancellationTokenSource();
|
|
48
56
|
let result;
|
|
49
57
|
this.walk((node) => {
|
|
50
|
-
const matcherValue = matcher(node);
|
|
58
|
+
const matcherValue = matcher(node, cancel);
|
|
51
59
|
if (matcherValue) {
|
|
52
60
|
cancel.cancel();
|
|
53
61
|
result = matcherValue === true ? node : matcherValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AstNode.js","sourceRoot":"","sources":["../../src/parser/AstNode.ts"],"names":[],"mappings":";;;AACA,mDAAgD;AAEhD,iEAAgE;AAChE,mDAAwD;AAKxD,kCAA2B;AAE3B;;GAEG;AACH,MAAsB,OAAO;IAA7B;QAQI;;WAEG;QACI,cAAS,GAAG,2BAAgB,CAAC,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"AstNode.js","sourceRoot":"","sources":["../../src/parser/AstNode.ts"],"names":[],"mappings":";;;AACA,mDAAgD;AAEhD,iEAAgE;AAChE,mDAAwD;AAKxD,kCAA2B;AAE3B;;GAEG;AACH,MAAsB,OAAO;IAA7B;QAQI;;WAEG;QACI,cAAS,GAAG,2BAAgB,CAAC,eAAe,CAAC;IA6FxD,CAAC;IA9EG;;OAEG;IACI,cAAc;QACjB,IAAI,IAAI,GAAY,IAAI,CAAC;QACzB,OAAO,IAAI,EAAE;YACT,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,OAAO,IAAI,CAAC,WAAW,CAAC;aAC3B;YACD,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;SACtB;IACL,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAkC,OAA4G;QAC7J,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QAEvB,MAAM,MAAM,GAAG,IAAI,+CAAuB,EAAE,CAAC;QAC7C,OAAO,IAAI,EAAE;YACT,IAAI,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACzC,IAAI,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE;gBACtC,OAAO;aACV;YACD,IAAI,YAAY,EAAE;gBACd,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAU,CAAC;aAEjE;YACD,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;SACtB;IACL,CAAC;IAED;;;OAGG;IACI,SAAS,CAAkC,OAAoF,EAAE,OAAqB;QACzJ,MAAM,MAAM,GAAG,IAAI,+CAAuB,EAAE,CAAC;QAC7C,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACf,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC3C,IAAI,YAAY,EAAE;gBACd,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,GAAG,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;aACxD;QACL,CAAC,gCACG,QAAQ,EAAE,mBAAQ,CAAC,iBAAiB,IACjC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,KAChB,MAAM,EAAE,MAAM,CAAC,KAAK,IACtB,CAAC;QACH,OAAO,MAAe,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,mBAAmB,CAAsC,QAAkB,EAAE,OAAqB;QACrG,OAAO,IAAI,CAAC,SAAS,CAAY,CAAC,IAAI,EAAE,EAAE;;YACtC,yDAAyD;YACzD,IAAI,cAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;gBAC1C,OAAO,MAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,mCAAI,IAAI,CAAC;aAC9D;QACL,CAAC,EAAE,OAAO,CAAC,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,IAAI;QACP,kDAAkD;QAClD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YACjB,QAAQ,EAAE,mBAAQ,CAAC,iBAAiB;SACvC,CAAC,CAAC;IACP,CAAC;CACJ;AAxGD,0BAwGC;AAED,MAAsB,SAAU,SAAQ,OAAO;IAA/C;;QACI;;WAEG;QACI,cAAS,GAAG,2BAAgB,CAAC,eAAe,CAAC;IAKxD,CAAC;CAAA;AATD,8BASC;AAGD,gCAAgC;AAChC,MAAsB,UAAW,SAAQ,OAAO;IAAhD;;QACI;;WAEG;QACI,cAAS,GAAG,2BAAgB,CAAC,gBAAgB,CAAC;IACzD,CAAC;CAAA;AALD,gCAKC"}
|
|
@@ -6,7 +6,9 @@ const Program_1 = require("../Program");
|
|
|
6
6
|
const chai_config_spec_1 = require("../chai-config.spec");
|
|
7
7
|
const testHelpers_spec_1 = require("../testHelpers.spec");
|
|
8
8
|
const testHelpers_spec_2 = require("../testHelpers.spec");
|
|
9
|
-
|
|
9
|
+
const reflection_1 = require("../astUtils/reflection");
|
|
10
|
+
const Statement_1 = require("./Statement");
|
|
11
|
+
describe('AstNode', () => {
|
|
10
12
|
let program;
|
|
11
13
|
beforeEach(() => {
|
|
12
14
|
fsExtra.emptyDirSync(testHelpers_spec_2.tempDir);
|
|
@@ -20,22 +22,143 @@ describe('Program', () => {
|
|
|
20
22
|
fsExtra.emptyDirSync(testHelpers_spec_2.tempDir);
|
|
21
23
|
program.dispose();
|
|
22
24
|
});
|
|
23
|
-
describe('
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const file = program.setFile('source/main.brs', `
|
|
25
|
+
describe('findChildAtPosition', () => {
|
|
26
|
+
it('finds deepest AstNode that matches the position', () => {
|
|
27
|
+
const file = program.setFile('source/main.brs', `
|
|
27
28
|
sub main()
|
|
28
29
|
alpha = invalid
|
|
29
30
|
print alpha.beta.charlie.delta(alpha.echo.foxtrot())
|
|
30
31
|
end sub
|
|
31
32
|
`);
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
program.validate();
|
|
34
|
+
(0, testHelpers_spec_1.expectZeroDiagnostics)(program);
|
|
35
|
+
const delta = file.ast.findChildAtPosition(util_1.util.createPosition(3, 52));
|
|
36
|
+
(0, chai_config_spec_1.expect)(delta.name.text).to.eql('delta');
|
|
37
|
+
const foxtrot = file.ast.findChildAtPosition(util_1.util.createPosition(3, 71));
|
|
38
|
+
(0, chai_config_spec_1.expect)(foxtrot.name.text).to.eql('foxtrot');
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
describe('findChild', () => {
|
|
42
|
+
it('finds a child that matches the matcher', () => {
|
|
43
|
+
const file = program.setFile('source/main.brs', `
|
|
44
|
+
sub main()
|
|
45
|
+
alpha = invalid
|
|
46
|
+
print alpha.beta.charlie.delta(alpha.echo.foxtrot())
|
|
47
|
+
end sub
|
|
48
|
+
`);
|
|
49
|
+
(0, chai_config_spec_1.expect)(file.ast.findChild((node) => {
|
|
50
|
+
return (0, reflection_1.isAssignmentStatement)(node) && node.name.text === 'alpha';
|
|
51
|
+
})).instanceof(Statement_1.AssignmentStatement);
|
|
52
|
+
});
|
|
53
|
+
it('returns the exact node that matches', () => {
|
|
54
|
+
const file = program.setFile('source/main.brs', `
|
|
55
|
+
sub main()
|
|
56
|
+
alpha1 = invalid
|
|
57
|
+
alpha2 = invalid
|
|
58
|
+
end sub
|
|
59
|
+
`);
|
|
60
|
+
let count = 0;
|
|
61
|
+
const instance = file.ast.findChild((node) => {
|
|
62
|
+
if ((0, reflection_1.isAssignmentStatement)(node)) {
|
|
63
|
+
count++;
|
|
64
|
+
if (count === 2) {
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
const expected = file.ast.statements[0].func.body.statements[1];
|
|
70
|
+
(0, chai_config_spec_1.expect)(instance).to.equal(expected);
|
|
71
|
+
});
|
|
72
|
+
it('returns undefined when matcher never returned true', () => {
|
|
73
|
+
const file = program.setFile('source/main.brs', `
|
|
74
|
+
sub main()
|
|
75
|
+
alpha = invalid
|
|
76
|
+
print alpha.beta.charlie.delta(alpha.echo.foxtrot())
|
|
77
|
+
end sub
|
|
78
|
+
`);
|
|
79
|
+
(0, chai_config_spec_1.expect)(file.ast.findChild((node) => false)).not.to.exist;
|
|
80
|
+
});
|
|
81
|
+
it('returns the value returned from the matcher', () => {
|
|
82
|
+
const file = program.setFile('source/main.brs', `
|
|
83
|
+
sub main()
|
|
84
|
+
alpha = invalid
|
|
85
|
+
print alpha.beta.charlie.delta(alpha.echo.foxtrot())
|
|
86
|
+
end sub
|
|
87
|
+
`);
|
|
88
|
+
const secondStatement = file.ast.statements[0].func.body.statements[1];
|
|
89
|
+
(0, chai_config_spec_1.expect)(file.ast.findChild((node) => secondStatement)).to.equal(secondStatement);
|
|
90
|
+
});
|
|
91
|
+
it('cancels properly', () => {
|
|
92
|
+
const file = program.setFile('source/main.brs', `
|
|
93
|
+
sub main()
|
|
94
|
+
alpha = invalid
|
|
95
|
+
print alpha.beta.charlie.delta(alpha.echo.foxtrot())
|
|
96
|
+
end sub
|
|
97
|
+
`);
|
|
98
|
+
let count = 0;
|
|
99
|
+
file.ast.findChild((node, cancelToken) => {
|
|
100
|
+
count++;
|
|
101
|
+
cancelToken.cancel();
|
|
102
|
+
});
|
|
103
|
+
(0, chai_config_spec_1.expect)(count).to.eql(1);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
describe('findAncestor', () => {
|
|
107
|
+
it('returns node when matcher returns true', () => {
|
|
108
|
+
const file = program.setFile('source/main.brs', `
|
|
109
|
+
sub main()
|
|
110
|
+
alpha = invalid
|
|
111
|
+
print alpha.beta.charlie.delta(alpha.echo.foxtrot())
|
|
112
|
+
end sub
|
|
113
|
+
`);
|
|
114
|
+
const secondStatement = file.ast.statements[0].func.body.statements[1];
|
|
115
|
+
const foxtrot = file.ast.findChild((node) => {
|
|
116
|
+
var _a;
|
|
117
|
+
return (0, reflection_1.isDottedGetExpression)(node) && ((_a = node.name) === null || _a === void 0 ? void 0 : _a.text) === 'foxtrot';
|
|
118
|
+
});
|
|
119
|
+
(0, chai_config_spec_1.expect)(foxtrot.findAncestor(reflection_1.isPrintStatement)).to.equal(secondStatement);
|
|
120
|
+
});
|
|
121
|
+
it('returns undefined when no match found', () => {
|
|
122
|
+
const file = program.setFile('source/main.brs', `
|
|
123
|
+
sub main()
|
|
124
|
+
alpha = invalid
|
|
125
|
+
print alpha.beta.charlie.delta(alpha.echo.foxtrot())
|
|
126
|
+
end sub
|
|
127
|
+
`);
|
|
128
|
+
const foxtrot = file.ast.findChild((node) => {
|
|
129
|
+
var _a;
|
|
130
|
+
return (0, reflection_1.isDottedGetExpression)(node) && ((_a = node.name) === null || _a === void 0 ? void 0 : _a.text) === 'foxtrot';
|
|
131
|
+
});
|
|
132
|
+
(0, chai_config_spec_1.expect)(foxtrot.findAncestor(reflection_1.isClassStatement)).to.be.undefined;
|
|
133
|
+
});
|
|
134
|
+
it('returns overridden node when returned in matcher', () => {
|
|
135
|
+
const file = program.setFile('source/main.brs', `
|
|
136
|
+
sub main()
|
|
137
|
+
alpha = invalid
|
|
138
|
+
print alpha.beta.charlie.delta(alpha.echo.foxtrot())
|
|
139
|
+
end sub
|
|
140
|
+
`);
|
|
141
|
+
const firstStatement = file.ast.statements[0].func.body.statements[0];
|
|
142
|
+
const foxtrot = file.ast.findChild((node) => {
|
|
143
|
+
var _a;
|
|
144
|
+
return (0, reflection_1.isDottedGetExpression)(node) && ((_a = node.name) === null || _a === void 0 ? void 0 : _a.text) === 'foxtrot';
|
|
145
|
+
});
|
|
146
|
+
(0, chai_config_spec_1.expect)(foxtrot.findAncestor(node => firstStatement)).to.equal(firstStatement);
|
|
147
|
+
});
|
|
148
|
+
it('returns overridden node when returned in matcher', () => {
|
|
149
|
+
const file = program.setFile('source/main.brs', `
|
|
150
|
+
sub main()
|
|
151
|
+
alpha = invalid
|
|
152
|
+
print alpha.beta.charlie.delta(alpha.echo.foxtrot())
|
|
153
|
+
end sub
|
|
154
|
+
`);
|
|
155
|
+
let count = 0;
|
|
156
|
+
const firstStatement = file.ast.statements[0].func.body.statements[0];
|
|
157
|
+
firstStatement.findAncestor((node, cancel) => {
|
|
158
|
+
count++;
|
|
159
|
+
cancel.cancel();
|
|
38
160
|
});
|
|
161
|
+
(0, chai_config_spec_1.expect)(count).to.eql(1);
|
|
39
162
|
});
|
|
40
163
|
});
|
|
41
164
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AstNode.spec.js","sourceRoot":"","sources":["../../src/parser/AstNode.spec.ts"],"names":[],"mappings":";;AAAA,kCAA+B;AAC/B,oCAAoC;AACpC,wCAAqC;AAErC,0DAA6C;AAE7C,0DAA4D;AAC5D,0DAAmE;
|
|
1
|
+
{"version":3,"file":"AstNode.spec.js","sourceRoot":"","sources":["../../src/parser/AstNode.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "brighterscript",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.65.0",
|
|
4
4
|
"description": "A superset of Roku's BrightScript language.",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"preversion": "npm run build && npm run lint && npm run test",
|
|
@@ -92,7 +92,6 @@
|
|
|
92
92
|
"benchmark": "^2.1.4",
|
|
93
93
|
"chai": "^4.2.0",
|
|
94
94
|
"chai-files": "^1.4.0",
|
|
95
|
-
"coveralls": "^3.0.0",
|
|
96
95
|
"deepmerge": "^4.2.2",
|
|
97
96
|
"eslint": "^8.16.0",
|
|
98
97
|
"eslint-plugin-jsdoc": "^39.3.6",
|
|
@@ -129,6 +128,7 @@
|
|
|
129
128
|
"chevrotain": "^7.0.1",
|
|
130
129
|
"chokidar": "^3.5.1",
|
|
131
130
|
"clear": "^0.1.0",
|
|
131
|
+
"coveralls-next": "^4.2.0",
|
|
132
132
|
"cross-platform-clear-console": "^2.3.0",
|
|
133
133
|
"debounce-promise": "^3.1.0",
|
|
134
134
|
"eventemitter3": "^4.0.0",
|