brighterscript 0.39.2 → 0.40.1

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.
Files changed (54) hide show
  1. package/CHANGELOG.md +32 -3
  2. package/dist/DiagnosticMessages.d.ts +4 -4
  3. package/dist/DiagnosticMessages.js +6 -6
  4. package/dist/DiagnosticMessages.js.map +1 -1
  5. package/dist/ProgramBuilder.js +6 -0
  6. package/dist/ProgramBuilder.js.map +1 -1
  7. package/dist/astUtils/reflection.d.ts +8 -1
  8. package/dist/astUtils/reflection.js +21 -1
  9. package/dist/astUtils/reflection.js.map +1 -1
  10. package/dist/files/BrsFile.spec.js +10 -0
  11. package/dist/files/BrsFile.spec.js.map +1 -1
  12. package/dist/globalCallables.js +156 -0
  13. package/dist/globalCallables.js.map +1 -1
  14. package/dist/lexer/Token.d.ts +2 -2
  15. package/dist/lexer/TokenKind.d.ts +2 -1
  16. package/dist/lexer/TokenKind.js +6 -2
  17. package/dist/lexer/TokenKind.js.map +1 -1
  18. package/dist/parser/Expression.d.ts +1 -0
  19. package/dist/parser/Expression.js.map +1 -1
  20. package/dist/parser/Parser.Class.spec.js +1 -1
  21. package/dist/parser/Parser.Class.spec.js.map +1 -1
  22. package/dist/parser/Parser.d.ts +18 -4
  23. package/dist/parser/Parser.js +154 -19
  24. package/dist/parser/Parser.js.map +1 -1
  25. package/dist/parser/Parser.spec.js +1 -1
  26. package/dist/parser/Parser.spec.js.map +1 -1
  27. package/dist/parser/Statement.d.ts +74 -14
  28. package/dist/parser/Statement.js +173 -1
  29. package/dist/parser/Statement.js.map +1 -1
  30. package/dist/parser/tests/Parser.spec.d.ts +8 -7
  31. package/dist/parser/tests/Parser.spec.js +12 -8
  32. package/dist/parser/tests/Parser.spec.js.map +1 -1
  33. package/dist/parser/tests/controlFlow/For.spec.js +2 -2
  34. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  35. package/dist/parser/tests/controlFlow/If.spec.js +18 -0
  36. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  37. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +24 -0
  38. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  39. package/dist/parser/tests/expression/Call.spec.js +4 -4
  40. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  41. package/dist/parser/tests/statement/InterfaceStatement.spec.d.ts +1 -0
  42. package/dist/parser/tests/statement/InterfaceStatement.spec.js +61 -0
  43. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -0
  44. package/dist/parser/tests/statement/Misc.spec.js +18 -17
  45. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  46. package/dist/parser/tests/statement/ReturnStatement.spec.js +1 -1
  47. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
  48. package/dist/types/InterfaceType.d.ts +7 -0
  49. package/dist/types/InterfaceType.js +45 -6
  50. package/dist/types/InterfaceType.js.map +1 -1
  51. package/dist/types/InterfaceType.spec.d.ts +1 -0
  52. package/dist/types/InterfaceType.spec.js +174 -0
  53. package/dist/types/InterfaceType.spec.js.map +1 -0
  54. package/package.json +2 -2
@@ -622,7 +622,7 @@ describe('parser', () => {
622
622
  sub main()
623
623
  end sub
624
624
  `, Parser_1.ParseMode.BrighterScript);
625
- chai_1.expect((_a = diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).to.equal(DiagnosticMessages_1.DiagnosticMessages.foundUnexpectedToken('@').message);
625
+ chai_1.expect((_a = diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).to.equal(DiagnosticMessages_1.DiagnosticMessages.unexpectedToken('@').message);
626
626
  });
627
627
  it('properly handles empty annotation above class method', () => {
628
628
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"Parser.spec.js","sourceRoot":"","sources":["../../src/parser/Parser.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Parser.spec.js","sourceRoot":"","sources":["../../src/parser/Parser.spec.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,15 @@
1
1
  import type { Token, Identifier } from '../lexer';
2
2
  import { TokenKind } from '../lexer';
3
- import type { Expression, NamespacedVariableNameExpression, FunctionExpression, AnnotationExpression } from './Expression';
3
+ import type { Expression, NamespacedVariableNameExpression, FunctionExpression, AnnotationExpression, 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
8
  import { InternalWalkMode } from '../astUtils/visitors';
9
9
  import type { TranspileResult, TypedefProvider } from '../interfaces';
10
+ import type { BscType } from '../types/BscType';
11
+ import type { SourceNode } from 'source-map';
12
+ import type { TranspileState } from './TranspileState';
10
13
  /**
11
14
  * A BrightScript statement
12
15
  */
@@ -81,7 +84,7 @@ export declare class CommentStatement extends Statement implements Expression, T
81
84
  range: Range;
82
85
  get text(): string;
83
86
  transpile(state: BrsTranspileState): any[];
84
- getTypedef(state: BrsTranspileState): any[];
87
+ getTypedef(state: TranspileState): any[];
85
88
  walk(visitor: WalkVisitor, options: WalkOptions): void;
86
89
  }
87
90
  export declare class ExitForStatement extends Statement {
@@ -92,7 +95,7 @@ export declare class ExitForStatement extends Statement {
92
95
  exitFor: Token;
93
96
  });
94
97
  readonly range: Range;
95
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
98
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
96
99
  walk(visitor: WalkVisitor, options: WalkOptions): void;
97
100
  }
98
101
  export declare class ExitWhileStatement extends Statement {
@@ -103,7 +106,7 @@ export declare class ExitWhileStatement extends Statement {
103
106
  exitWhile: Token;
104
107
  });
105
108
  readonly range: Range;
106
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
109
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
107
110
  walk(visitor: WalkVisitor, options: WalkOptions): void;
108
111
  }
109
112
  export declare class FunctionStatement extends Statement implements TypedefProvider {
@@ -146,7 +149,7 @@ export declare class IncrementStatement extends Statement {
146
149
  readonly operator: Token;
147
150
  constructor(value: Expression, operator: Token);
148
151
  readonly range: Range;
149
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
152
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
150
153
  walk(visitor: WalkVisitor, options: WalkOptions): void;
151
154
  }
152
155
  /** Used to indent the current `print` position to the next 16-character-width output zone. */
@@ -174,7 +177,7 @@ export declare class PrintStatement extends Statement {
174
177
  print: Token;
175
178
  }, expressions: Array<Expression | PrintSeparatorTab | PrintSeparatorSpace>);
176
179
  readonly range: Range;
177
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
180
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
178
181
  walk(visitor: WalkVisitor, options: WalkOptions): void;
179
182
  }
180
183
  export declare class DimStatement extends Statement {
@@ -185,7 +188,7 @@ export declare class DimStatement extends Statement {
185
188
  closingSquare?: Token;
186
189
  constructor(dimToken: Token, identifier?: Identifier, openingSquare?: Token, dimensions?: Expression[], closingSquare?: Token);
187
190
  range: Range;
188
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
191
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
189
192
  walk(visitor: WalkVisitor, options: WalkOptions): void;
190
193
  }
191
194
  export declare class GotoStatement extends Statement {
@@ -198,7 +201,7 @@ export declare class GotoStatement extends Statement {
198
201
  label: Token;
199
202
  });
200
203
  readonly range: Range;
201
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
204
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
202
205
  walk(visitor: WalkVisitor, options: WalkOptions): void;
203
206
  }
204
207
  export declare class LabelStatement extends Statement {
@@ -211,7 +214,7 @@ export declare class LabelStatement extends Statement {
211
214
  colon: Token;
212
215
  });
213
216
  readonly range: Range;
214
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
217
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
215
218
  walk(visitor: WalkVisitor, options: WalkOptions): void;
216
219
  }
217
220
  export declare class ReturnStatement extends Statement {
@@ -234,7 +237,7 @@ export declare class EndStatement extends Statement {
234
237
  end: Token;
235
238
  });
236
239
  readonly range: Range;
237
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
240
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
238
241
  walk(visitor: WalkVisitor, options: WalkOptions): void;
239
242
  }
240
243
  export declare class StopStatement extends Statement {
@@ -245,7 +248,7 @@ export declare class StopStatement extends Statement {
245
248
  stop: Token;
246
249
  });
247
250
  readonly range: Range;
248
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
251
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
249
252
  walk(visitor: WalkVisitor, options: WalkOptions): void;
250
253
  }
251
254
  export declare class ForStatement extends Statement {
@@ -351,13 +354,70 @@ export declare class ImportStatement extends Statement implements TypedefProvide
351
354
  constructor(importToken: Token, filePathToken: Token);
352
355
  filePath: string;
353
356
  range: Range;
354
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
357
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
355
358
  /**
356
359
  * Get the typedef for this statement
357
360
  */
358
361
  getTypedef(state: BrsTranspileState): string[];
359
362
  walk(visitor: WalkVisitor, options: WalkOptions): void;
360
363
  }
364
+ export declare class InterfaceStatement extends Statement implements TypedefProvider {
365
+ parentInterfaceName: NamespacedVariableNameExpression;
366
+ body: Statement[];
367
+ namespaceName: NamespacedVariableNameExpression;
368
+ constructor(interfaceToken: Token, name: Identifier, extendsToken: Token, parentInterfaceName: NamespacedVariableNameExpression, body: Statement[], endInterfaceToken: Token, namespaceName: NamespacedVariableNameExpression);
369
+ tokens: {
370
+ interface: Token;
371
+ name: Identifier;
372
+ extends: Token;
373
+ endInterface: Token;
374
+ };
375
+ range: Range;
376
+ get fields(): Statement[];
377
+ get methods(): Statement[];
378
+ /**
379
+ * The name of the interface WITH its leading namespace (if applicable)
380
+ */
381
+ get fullName(): string;
382
+ /**
383
+ * The name of the interface (without the namespace prefix)
384
+ */
385
+ get name(): string;
386
+ transpile(state: BrsTranspileState): TranspileResult;
387
+ getTypedef(state: BrsTranspileState): TranspileResult;
388
+ walk(visitor: WalkVisitor, options: WalkOptions): void;
389
+ }
390
+ export declare class InterfaceFieldStatement extends Statement implements TypedefProvider {
391
+ type: BscType;
392
+ transpile(state: BrsTranspileState): TranspileResult;
393
+ constructor(nameToken: Identifier, asToken: Token, typeToken: Token, type: BscType);
394
+ get range(): Range;
395
+ tokens: {
396
+ name: Identifier;
397
+ as: Token;
398
+ type: Token;
399
+ };
400
+ get name(): string;
401
+ walk(visitor: WalkVisitor, options: WalkOptions): void;
402
+ getTypedef(state: BrsTranspileState): (string | SourceNode)[];
403
+ }
404
+ export declare class InterfaceMethodStatement extends Statement implements TypedefProvider {
405
+ params: FunctionParameterExpression[];
406
+ returnType?: BscType;
407
+ transpile(state: BrsTranspileState): TranspileResult;
408
+ constructor(functionTypeToken: Token, nameToken: Identifier, leftParen: Token, params: FunctionParameterExpression[], rightParen: Token, asToken?: Token, returnTypeToken?: Token, returnType?: BscType);
409
+ get range(): Range;
410
+ tokens: {
411
+ functionType: Token;
412
+ name: Identifier;
413
+ leftParen: Token;
414
+ rightParen: Token;
415
+ as: Token;
416
+ returnType: Token;
417
+ };
418
+ walk(visitor: WalkVisitor, options: WalkOptions): void;
419
+ getTypedef(state: BrsTranspileState): TranspileResult;
420
+ }
361
421
  export declare class ClassStatement extends Statement implements TypedefProvider {
362
422
  readonly classKeyword: Token;
363
423
  /**
@@ -447,7 +507,7 @@ export declare class ClassFieldStatement extends Statement implements TypedefPro
447
507
  * Derive a ValueKind from the type token, or the initial value.
448
508
  * Defaults to `DynamicType`
449
509
  */
450
- getType(): import("../types/BscType").BscType;
510
+ getType(): BscType;
451
511
  readonly range: Range;
452
512
  transpile(state: BrsTranspileState): TranspileResult;
453
513
  getTypedef(state: BrsTranspileState): any[];
@@ -471,6 +531,6 @@ export declare class ThrowStatement extends Statement {
471
531
  expression?: Expression;
472
532
  constructor(throwToken: Token, expression?: Expression);
473
533
  range: Range;
474
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
534
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
475
535
  walk(visitor: WalkVisitor, options: WalkOptions): void;
476
536
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ThrowStatement = exports.TryCatchStatement = exports.ClassFieldStatement = exports.ClassMethodStatement = exports.ClassStatement = exports.ImportStatement = exports.NamespaceStatement = exports.LibraryStatement = exports.IndexedSetStatement = exports.DottedSetStatement = exports.WhileStatement = exports.ForEachStatement = exports.ForStatement = exports.StopStatement = exports.EndStatement = exports.ReturnStatement = exports.LabelStatement = exports.GotoStatement = exports.DimStatement = exports.PrintStatement = exports.IncrementStatement = exports.IfStatement = exports.FunctionStatement = exports.ExitWhileStatement = exports.ExitForStatement = exports.CommentStatement = exports.ExpressionStatement = exports.Block = exports.AssignmentStatement = exports.Body = exports.EmptyStatement = exports.Statement = void 0;
3
+ exports.ThrowStatement = exports.TryCatchStatement = exports.ClassFieldStatement = exports.ClassMethodStatement = exports.ClassStatement = exports.InterfaceMethodStatement = exports.InterfaceFieldStatement = exports.InterfaceStatement = exports.ImportStatement = exports.NamespaceStatement = exports.LibraryStatement = exports.IndexedSetStatement = exports.DottedSetStatement = exports.WhileStatement = exports.ForEachStatement = exports.ForStatement = exports.StopStatement = exports.EndStatement = exports.ReturnStatement = exports.LabelStatement = exports.GotoStatement = exports.DimStatement = exports.PrintStatement = exports.IncrementStatement = exports.IfStatement = exports.FunctionStatement = exports.ExitWhileStatement = exports.ExitForStatement = exports.CommentStatement = exports.ExpressionStatement = exports.Block = exports.AssignmentStatement = exports.Body = exports.EmptyStatement = exports.Statement = void 0;
4
4
  const lexer_1 = require("../lexer");
5
5
  const Expression_1 = require("./Expression");
6
6
  const util_1 = require("../util");
@@ -901,6 +901,178 @@ class ImportStatement extends Statement {
901
901
  }
902
902
  }
903
903
  exports.ImportStatement = ImportStatement;
904
+ class InterfaceStatement extends Statement {
905
+ constructor(interfaceToken, name, extendsToken, parentInterfaceName, body, endInterfaceToken, namespaceName) {
906
+ super();
907
+ this.parentInterfaceName = parentInterfaceName;
908
+ this.body = body;
909
+ this.namespaceName = namespaceName;
910
+ this.tokens = {};
911
+ this.tokens.interface = interfaceToken;
912
+ this.tokens.name = name;
913
+ this.tokens.extends = extendsToken;
914
+ this.tokens.endInterface = endInterfaceToken;
915
+ }
916
+ get fields() {
917
+ return this.body.filter(x => reflection_1.isInterfaceFieldStatement(x));
918
+ }
919
+ get methods() {
920
+ return this.body.filter(x => reflection_1.isInterfaceMethodStatement(x));
921
+ }
922
+ /**
923
+ * The name of the interface WITH its leading namespace (if applicable)
924
+ */
925
+ get fullName() {
926
+ var _a;
927
+ const name = (_a = this.tokens.name) === null || _a === void 0 ? void 0 : _a.text;
928
+ if (name) {
929
+ if (this.namespaceName) {
930
+ let namespaceName = this.namespaceName.getName(Parser_1.ParseMode.BrighterScript);
931
+ return `${namespaceName}.${name}`;
932
+ }
933
+ else {
934
+ return name;
935
+ }
936
+ }
937
+ else {
938
+ //return undefined which will allow outside callers to know that this interface doesn't have a name
939
+ return undefined;
940
+ }
941
+ }
942
+ /**
943
+ * The name of the interface (without the namespace prefix)
944
+ */
945
+ get name() {
946
+ var _a;
947
+ return (_a = this.tokens.name) === null || _a === void 0 ? void 0 : _a.text;
948
+ }
949
+ transpile(state) {
950
+ //interfaces should completely disappear at runtime
951
+ return [];
952
+ }
953
+ getTypedef(state) {
954
+ var _a, _b, _c;
955
+ const result = [];
956
+ for (let annotation of (_a = this.annotations) !== null && _a !== void 0 ? _a : []) {
957
+ result.push(...annotation.getTypedef(state), state.newline, state.indent());
958
+ }
959
+ result.push(this.tokens.interface.text, ' ', this.tokens.name.text);
960
+ const parentInterfaceName = (_b = this.parentInterfaceName) === null || _b === void 0 ? void 0 : _b.getName(Parser_1.ParseMode.BrighterScript);
961
+ if (parentInterfaceName) {
962
+ result.push(' extends ', parentInterfaceName);
963
+ }
964
+ const body = (_c = this.body) !== null && _c !== void 0 ? _c : [];
965
+ if (body.length > 0) {
966
+ state.blockDepth++;
967
+ }
968
+ for (const statement of body) {
969
+ if (reflection_1.isInterfaceMethodStatement(statement) || reflection_1.isInterfaceFieldStatement(statement)) {
970
+ result.push(state.newline, state.indent(), ...statement.getTypedef(state));
971
+ }
972
+ else {
973
+ result.push(state.newline, state.indent(), ...statement.transpile(state));
974
+ }
975
+ }
976
+ if (body.length > 0) {
977
+ state.blockDepth--;
978
+ }
979
+ result.push(state.newline, state.indent(), 'end interface', state.newline);
980
+ return result;
981
+ }
982
+ walk(visitor, options) {
983
+ if (options.walkMode & visitors_1.InternalWalkMode.walkStatements) {
984
+ for (let i = 0; i < this.body.length; i++) {
985
+ visitors_1.walk(this.body, i, visitor, options, this);
986
+ }
987
+ }
988
+ }
989
+ }
990
+ exports.InterfaceStatement = InterfaceStatement;
991
+ class InterfaceFieldStatement extends Statement {
992
+ constructor(nameToken, asToken, typeToken, type) {
993
+ super();
994
+ this.type = type;
995
+ this.tokens = {};
996
+ this.tokens.name = nameToken;
997
+ this.tokens.as = asToken;
998
+ this.tokens.type = typeToken;
999
+ }
1000
+ transpile(state) {
1001
+ throw new Error('Method not implemented.');
1002
+ }
1003
+ get range() {
1004
+ var _a, _b;
1005
+ return util_1.util.createRangeFromPositions(this.tokens.name.range.start, ((_b = (_a = this.tokens.type) !== null && _a !== void 0 ? _a : this.tokens.as) !== null && _b !== void 0 ? _b : this.tokens.name).range.end);
1006
+ }
1007
+ get name() {
1008
+ return this.tokens.name.text;
1009
+ }
1010
+ walk(visitor, options) {
1011
+ //nothing to walk
1012
+ }
1013
+ getTypedef(state) {
1014
+ var _a, _b, _c;
1015
+ const result = [];
1016
+ for (let annotation of (_a = this.annotations) !== null && _a !== void 0 ? _a : []) {
1017
+ result.push(...annotation.getTypedef(state), state.newline, state.indent());
1018
+ }
1019
+ result.push(this.tokens.name.text);
1020
+ if (((_c = (_b = this.tokens.type) === null || _b === void 0 ? void 0 : _b.text) === null || _c === void 0 ? void 0 : _c.length) > 0) {
1021
+ result.push(' as ', this.tokens.type.text);
1022
+ }
1023
+ return result;
1024
+ }
1025
+ }
1026
+ exports.InterfaceFieldStatement = InterfaceFieldStatement;
1027
+ class InterfaceMethodStatement extends Statement {
1028
+ constructor(functionTypeToken, nameToken, leftParen, params, rightParen, asToken, returnTypeToken, returnType) {
1029
+ super();
1030
+ this.params = params;
1031
+ this.returnType = returnType;
1032
+ this.tokens = {};
1033
+ this.tokens.functionType = functionTypeToken;
1034
+ this.tokens.name = nameToken;
1035
+ this.tokens.leftParen = leftParen;
1036
+ this.tokens.rightParen = rightParen;
1037
+ this.tokens.as = asToken;
1038
+ this.tokens.returnType = returnTypeToken;
1039
+ }
1040
+ transpile(state) {
1041
+ throw new Error('Method not implemented.');
1042
+ }
1043
+ get range() {
1044
+ var _a, _b, _c, _d, _e, _f, _g, _h;
1045
+ return util_1.util.createRangeFromPositions(this.tokens.name.range.start, ((_h = (_g = (_f = (_c = (_b = (_a = this.tokens.returnType) !== null && _a !== void 0 ? _a : this.tokens.as) !== null && _b !== void 0 ? _b : this.tokens.rightParen) !== null && _c !== void 0 ? _c : (_d = this.params) === null || _d === void 0 ? void 0 : _d[((_e = this.params) === null || _e === void 0 ? void 0 : _e.length) - 1]) !== null && _f !== void 0 ? _f : this.tokens.leftParen) !== null && _g !== void 0 ? _g : this.tokens.name) !== null && _h !== void 0 ? _h : this.tokens.functionType).range.end);
1046
+ }
1047
+ walk(visitor, options) {
1048
+ //nothing to walk
1049
+ }
1050
+ getTypedef(state) {
1051
+ var _a, _b, _c, _d, _e;
1052
+ const result = [];
1053
+ for (let annotation of (_a = this.annotations) !== null && _a !== void 0 ? _a : []) {
1054
+ result.push(...annotation.getTypedef(state), state.newline, state.indent());
1055
+ }
1056
+ result.push(this.tokens.functionType.text, ' ', this.tokens.name.text, '(');
1057
+ const params = (_b = this.params) !== null && _b !== void 0 ? _b : [];
1058
+ for (let i = 0; i < params.length; i++) {
1059
+ if (i > 0) {
1060
+ result.push(', ');
1061
+ }
1062
+ const param = params[i];
1063
+ result.push(param.name.text);
1064
+ if (((_d = (_c = param.typeToken) === null || _c === void 0 ? void 0 : _c.text) === null || _d === void 0 ? void 0 : _d.length) > 0) {
1065
+ result.push(' as ', param.typeToken.text);
1066
+ }
1067
+ }
1068
+ result.push(')');
1069
+ if (((_e = this.tokens.returnType) === null || _e === void 0 ? void 0 : _e.text.length) > 0) {
1070
+ result.push(' as ', this.tokens.returnType.text);
1071
+ }
1072
+ return result;
1073
+ }
1074
+ }
1075
+ exports.InterfaceMethodStatement = InterfaceMethodStatement;
904
1076
  class ClassStatement extends Statement {
905
1077
  constructor(classKeyword,
906
1078
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Statement.js","sourceRoot":"","sources":["../../src/parser/Statement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Statement.js","sourceRoot":"","sources":["../../src/parser/Statement.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,19 @@
1
1
  import type { Token } from '../../lexer';
2
2
  import { TokenKind } from '../../lexer';
3
+ import type { Range } from '../../astUtils';
3
4
  /**
4
5
  * Creates a token with the given `kind` and (optional) `literal` value.
5
- * @param {TokenKind} kind the tokenKind the produced token should represent.
6
- * @param {string} text the text represented by this token.
7
- * @param {*} [literal] the literal value that the produced token should contain, if any
8
- * @returns {object} a token of `kind` representing `text` with value `literal`.
9
6
  */
10
7
  export declare function token(kind: TokenKind, text?: string): Token;
11
8
  /**
12
9
  * Creates an Identifier token with the given `text`.
13
- * @param {string} text
14
- * @returns {object} a token with the provided `text`.
15
10
  */
16
- export declare function identifier(text: any): any;
11
+ export declare function identifier(text: string): Token;
12
+ /**
13
+ * Test whether a range matches a group of elements with a `range`
14
+ */
15
+ export declare function rangeMatch(range: Range, elements: ({
16
+ range: Range;
17
+ })[]): boolean;
17
18
  /** An end-of-file token. */
18
19
  export declare const EOF: Token;
@@ -1,15 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EOF = exports.identifier = exports.token = void 0;
3
+ exports.EOF = exports.rangeMatch = exports.identifier = exports.token = void 0;
4
4
  const lexer_1 = require("../../lexer");
5
5
  const creators_1 = require("../../astUtils/creators");
6
6
  /* A set of utilities to be used while writing tests for the BRS parser. */
7
7
  /**
8
8
  * Creates a token with the given `kind` and (optional) `literal` value.
9
- * @param {TokenKind} kind the tokenKind the produced token should represent.
10
- * @param {string} text the text represented by this token.
11
- * @param {*} [literal] the literal value that the produced token should contain, if any
12
- * @returns {object} a token of `kind` representing `text` with value `literal`.
13
9
  */
14
10
  function token(kind, text) {
15
11
  return {
@@ -23,13 +19,21 @@ function token(kind, text) {
23
19
  exports.token = token;
24
20
  /**
25
21
  * Creates an Identifier token with the given `text`.
26
- * @param {string} text
27
- * @returns {object} a token with the provided `text`.
28
22
  */
29
23
  function identifier(text) {
30
- return exports.token(lexer_1.TokenKind.Identifier, text);
24
+ return token(lexer_1.TokenKind.Identifier, text);
31
25
  }
32
26
  exports.identifier = identifier;
27
+ /**
28
+ * Test whether a range matches a group of elements with a `range`
29
+ */
30
+ function rangeMatch(range, elements) {
31
+ return range.start.line === elements[0].range.start.line &&
32
+ range.start.character === elements[0].range.start.character &&
33
+ range.end.line === elements[elements.length - 1].range.end.line &&
34
+ range.end.character === elements[elements.length - 1].range.end.character;
35
+ }
36
+ exports.rangeMatch = rangeMatch;
33
37
  /** An end-of-file token. */
34
38
  exports.EOF = token(lexer_1.TokenKind.Eof, '\0');
35
39
  //# sourceMappingURL=Parser.spec.js.map