brighterscript 1.0.0-alpha.16 → 1.0.0-alpha.19

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 (158) hide show
  1. package/CHANGELOG.md +72 -1
  2. package/README.md +30 -9
  3. package/dist/BsConfig.d.ts +4 -0
  4. package/dist/DiagnosticMessages.d.ts +16 -1
  5. package/dist/DiagnosticMessages.js +15 -0
  6. package/dist/DiagnosticMessages.js.map +1 -1
  7. package/dist/Logger.js +5 -5
  8. package/dist/Logger.js.map +1 -1
  9. package/dist/Program.d.ts +2 -2
  10. package/dist/Program.js +3 -3
  11. package/dist/Program.js.map +1 -1
  12. package/dist/ProgramBuilder.d.ts +4 -0
  13. package/dist/ProgramBuilder.js +14 -4
  14. package/dist/ProgramBuilder.js.map +1 -1
  15. package/dist/Scope.d.ts +58 -8
  16. package/dist/Scope.js +141 -25
  17. package/dist/Scope.js.map +1 -1
  18. package/dist/XmlScope.js +1 -1
  19. package/dist/XmlScope.js.map +1 -1
  20. package/dist/astUtils/creators.d.ts +3 -3
  21. package/dist/astUtils/creators.js +8 -8
  22. package/dist/astUtils/creators.js.map +1 -1
  23. package/dist/astUtils/creators.spec.js +10 -0
  24. package/dist/astUtils/creators.spec.js.map +1 -1
  25. package/dist/astUtils/reflection.d.ts +8 -5
  26. package/dist/astUtils/reflection.js +18 -6
  27. package/dist/astUtils/reflection.js.map +1 -1
  28. package/dist/astUtils/reflection.spec.js +10 -0
  29. package/dist/astUtils/reflection.spec.js.map +1 -1
  30. package/dist/astUtils/visitors.d.ts +4 -1
  31. package/dist/astUtils/visitors.js.map +1 -1
  32. package/dist/astUtils/visitors.spec.js +2 -0
  33. package/dist/astUtils/visitors.spec.js.map +1 -1
  34. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +2 -2
  35. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
  36. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js +7 -3
  37. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +1 -1
  38. package/dist/{types/FunctionType.spec.d.ts → bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.d.ts} +0 -0
  39. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js +32 -0
  40. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js.map +1 -0
  41. package/dist/cli.js +9 -2
  42. package/dist/cli.js.map +1 -1
  43. package/dist/examples/plugins/removePrint.js +12 -14
  44. package/dist/examples/plugins/removePrint.js.map +1 -1
  45. package/dist/files/BrsFile.Class.spec.js +3 -3
  46. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  47. package/dist/files/BrsFile.d.ts +2 -2
  48. package/dist/files/BrsFile.js +89 -59
  49. package/dist/files/BrsFile.js.map +1 -1
  50. package/dist/files/BrsFile.spec.js +187 -67
  51. package/dist/files/BrsFile.spec.js.map +1 -1
  52. package/dist/globalCallables.js +79 -79
  53. package/dist/globalCallables.js.map +1 -1
  54. package/dist/interfaces.d.ts +43 -4
  55. package/dist/parser/Expression.d.ts +75 -8
  56. package/dist/parser/Expression.js +147 -22
  57. package/dist/parser/Expression.js.map +1 -1
  58. package/dist/parser/Parser.Class.spec.js +6 -6
  59. package/dist/parser/Parser.Class.spec.js.map +1 -1
  60. package/dist/parser/Parser.d.ts +3 -6
  61. package/dist/parser/Parser.js +145 -142
  62. package/dist/parser/Parser.js.map +1 -1
  63. package/dist/parser/Parser.spec.js +61 -6
  64. package/dist/parser/Parser.spec.js.map +1 -1
  65. package/dist/parser/SGTypes.d.ts +2 -2
  66. package/dist/parser/SGTypes.js +2 -2
  67. package/dist/parser/SGTypes.js.map +1 -1
  68. package/dist/parser/Statement.d.ts +63 -43
  69. package/dist/parser/Statement.js +135 -92
  70. package/dist/parser/Statement.js.map +1 -1
  71. package/dist/parser/tests/statement/InterfaceStatement.spec.js +181 -0
  72. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
  73. package/dist/parser/tests/statement/TryCatch.spec.js +7 -5
  74. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  75. package/dist/types/ArrayType.js +4 -1
  76. package/dist/types/ArrayType.js.map +1 -1
  77. package/dist/types/ArrayType.spec.js +3 -1
  78. package/dist/types/ArrayType.spec.js.map +1 -1
  79. package/dist/types/BooleanType.d.ts +4 -2
  80. package/dist/types/BooleanType.js +7 -2
  81. package/dist/types/BooleanType.js.map +1 -1
  82. package/dist/types/BooleanType.spec.js +3 -1
  83. package/dist/types/BooleanType.spec.js.map +1 -1
  84. package/dist/types/BscType.d.ts +1 -0
  85. package/dist/types/BscType.js +16 -1
  86. package/dist/types/BscType.js.map +1 -1
  87. package/dist/types/CustomType.js +10 -0
  88. package/dist/types/CustomType.js.map +1 -1
  89. package/dist/types/DoubleType.d.ts +2 -0
  90. package/dist/types/DoubleType.js +7 -2
  91. package/dist/types/DoubleType.js.map +1 -1
  92. package/dist/types/DoubleType.spec.js +3 -1
  93. package/dist/types/DoubleType.spec.js.map +1 -1
  94. package/dist/types/DynamicType.d.ts +2 -0
  95. package/dist/types/DynamicType.js +5 -1
  96. package/dist/types/DynamicType.js.map +1 -1
  97. package/dist/types/FloatType.d.ts +3 -1
  98. package/dist/types/FloatType.js +7 -2
  99. package/dist/types/FloatType.js.map +1 -1
  100. package/dist/types/FloatType.spec.js +2 -0
  101. package/dist/types/FloatType.spec.js.map +1 -1
  102. package/dist/types/FunctionType.d.ts +3 -22
  103. package/dist/types/FunctionType.js +8 -68
  104. package/dist/types/FunctionType.js.map +1 -1
  105. package/dist/types/IntegerType.d.ts +3 -1
  106. package/dist/types/IntegerType.js +7 -2
  107. package/dist/types/IntegerType.js.map +1 -1
  108. package/dist/types/IntegerType.spec.js +3 -1
  109. package/dist/types/IntegerType.spec.js.map +1 -1
  110. package/dist/types/InterfaceType.d.ts +13 -10
  111. package/dist/types/InterfaceType.js +33 -29
  112. package/dist/types/InterfaceType.js.map +1 -1
  113. package/dist/types/InterfaceType.spec.js +36 -16
  114. package/dist/types/InterfaceType.spec.js.map +1 -1
  115. package/dist/types/InvalidType.d.ts +4 -2
  116. package/dist/types/InvalidType.js +7 -2
  117. package/dist/types/InvalidType.js.map +1 -1
  118. package/dist/types/InvalidType.spec.js +2 -0
  119. package/dist/types/InvalidType.spec.js.map +1 -1
  120. package/dist/types/LazyType.js +4 -0
  121. package/dist/types/LazyType.js.map +1 -1
  122. package/dist/types/LongIntegerType.d.ts +3 -1
  123. package/dist/types/LongIntegerType.js +7 -2
  124. package/dist/types/LongIntegerType.js.map +1 -1
  125. package/dist/types/LongIntegerType.spec.js +2 -0
  126. package/dist/types/LongIntegerType.spec.js.map +1 -1
  127. package/dist/types/ObjectType.d.ts +2 -1
  128. package/dist/types/ObjectType.js +4 -2
  129. package/dist/types/ObjectType.js.map +1 -1
  130. package/dist/types/StringType.d.ts +4 -2
  131. package/dist/types/StringType.js +7 -2
  132. package/dist/types/StringType.js.map +1 -1
  133. package/dist/types/StringType.spec.js +2 -0
  134. package/dist/types/StringType.spec.js.map +1 -1
  135. package/dist/types/TypedFunctionType.d.ts +28 -0
  136. package/dist/types/TypedFunctionType.js +88 -0
  137. package/dist/types/TypedFunctionType.js.map +1 -0
  138. package/dist/types/TypedFunctionType.spec.d.ts +1 -0
  139. package/dist/types/TypedFunctionType.spec.js +37 -0
  140. package/dist/types/TypedFunctionType.spec.js.map +1 -0
  141. package/dist/types/UninitializedType.js.map +1 -1
  142. package/dist/types/VoidType.d.ts +4 -2
  143. package/dist/types/VoidType.js +5 -1
  144. package/dist/types/VoidType.js.map +1 -1
  145. package/dist/types/helpers.js +7 -2
  146. package/dist/types/helpers.js.map +1 -1
  147. package/dist/util.d.ts +6 -7
  148. package/dist/util.js +43 -55
  149. package/dist/util.js.map +1 -1
  150. package/dist/validators/ClassValidator.d.ts +14 -1
  151. package/dist/validators/ClassValidator.js +129 -82
  152. package/dist/validators/ClassValidator.js.map +1 -1
  153. package/package.json +3 -2
  154. package/dist/types/FunctionType.spec.js +0 -35
  155. package/dist/types/FunctionType.spec.js.map +0 -1
  156. package/dist/types/UniversalFunctionType.d.ts +0 -9
  157. package/dist/types/UniversalFunctionType.js +0 -25
  158. package/dist/types/UniversalFunctionType.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"globalCallables.js","sourceRoot":"","sources":["../src/globalCallables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"globalCallables.js","sourceRoot":"","sources":["../src/globalCallables.ts"],"names":[],"mappings":"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"}
@@ -2,17 +2,19 @@ import type { Range, Diagnostic, CodeAction, SemanticTokenTypes, SemanticTokenMo
2
2
  import type { Scope } from './Scope';
3
3
  import type { BrsFile } from './files/BrsFile';
4
4
  import type { XmlFile } from './files/XmlFile';
5
- import type { FunctionType } from './types/FunctionType';
5
+ import type { TypedFunctionType } from './types/TypedFunctionType';
6
6
  import type { ParseMode } from './parser/Parser';
7
7
  import type { Program } from './Program';
8
8
  import type { ProgramBuilder } from './ProgramBuilder';
9
- import type { FunctionStatement } from './parser/Statement';
9
+ import type { FunctionStatement, ClassStatement, InterfaceStatement } from './parser/Statement';
10
10
  import type { Expression, FunctionExpression } from './parser/Expression';
11
11
  import type { TranspileState } from './parser/TranspileState';
12
12
  import type { SourceMapGenerator, SourceNode } from 'source-map';
13
- import type { BscType } from './types/BscType';
13
+ import type { BscType, SymbolContainer } from './types/BscType';
14
14
  import type { Token } from './lexer/Token';
15
15
  import type { AstEditor } from './astUtils/AstEditor';
16
+ import type { CustomType } from './types/CustomType';
17
+ import type { InterfaceType } from './types/InterfaceType';
16
18
  export interface BsDiagnostic extends Diagnostic {
17
19
  file: BscFile;
18
20
  /**
@@ -28,7 +30,7 @@ export interface Callable {
28
30
  * Is the callable declared as "sub". If falsey, assumed declared as "function"
29
31
  */
30
32
  isSub: boolean;
31
- type: FunctionType;
33
+ type: TypedFunctionType;
32
34
  /**
33
35
  * A short description of the callable. Should be a short sentence.
34
36
  */
@@ -393,3 +395,40 @@ export interface FileLink<T> {
393
395
  item: T;
394
396
  file: BrsFile;
395
397
  }
398
+ /**
399
+ * Common interface to support Statements which define entities that have a member table
400
+ * e.g. Class, Interface
401
+ */
402
+ export interface MemberSymbolTableProvider extends SymbolContainer {
403
+ buildSymbolTable(parent?: InheritableStatement): void;
404
+ hasParent(): boolean;
405
+ getPossibleFullParentNames(): string[];
406
+ getName(parseMode: ParseMode): string;
407
+ getThisBscType(): BscType;
408
+ }
409
+ export declare type InheritableStatement = ClassStatement | InterfaceStatement;
410
+ export declare type InheritableType = CustomType | InterfaceType;
411
+ /**
412
+ * Options for the parser functionDeclaration() method
413
+ */
414
+ export interface FunctionDeclarationParseOptions {
415
+ /**
416
+ * Function should have a name. Add a diagnostic if it is not there
417
+ * False for for anonymous functions
418
+ */
419
+ hasName?: boolean;
420
+ /**
421
+ * Function should have a body. Add a diagnostic if it is not there
422
+ * False for for functions defined in Interfaces
423
+ */
424
+ hasBody?: boolean;
425
+ /**
426
+ * Function should have an end token. Add a diagnostic if it is not there
427
+ * False for for functions defined in Interfaces
428
+ */
429
+ hasEnd?: boolean;
430
+ /**
431
+ *This function is only callable as a member for a class or interface, etc.
432
+ */
433
+ onlyCallableAsMember?: boolean;
434
+ }
@@ -6,9 +6,12 @@ import { ParseMode } from './Parser';
6
6
  import type { WalkOptions, WalkVisitor } from '../astUtils/visitors';
7
7
  import { InternalWalkMode } from '../astUtils/visitors';
8
8
  import type { TranspileResult, TypedefProvider } from '../interfaces';
9
+ import { VoidType } from '../types/VoidType';
10
+ import { DynamicType } from '../types/DynamicType';
9
11
  import type { BscType, SymbolContainer } from '../types/BscType';
10
12
  import { SymbolTable } from '../SymbolTable';
11
- import { FunctionType } from '../types/FunctionType';
13
+ import { TypedFunctionType } from '../types/TypedFunctionType';
14
+ import { ArrayType } from '../types/ArrayType';
12
15
  export declare type ExpressionVisitor = (expression: Expression, parent: Expression) => void;
13
16
  /** A BrightScript expression */
14
17
  export declare abstract class Expression {
@@ -59,14 +62,14 @@ export declare class FunctionExpression extends Expression implements TypedefPro
59
62
  readonly leftParen: Token;
60
63
  readonly rightParen: Token;
61
64
  readonly asToken?: Token;
62
- readonly returnTypeToken?: Token;
65
+ readonly returnType?: TypeExpression;
63
66
  /**
64
67
  * If this function is enclosed within another function, this will reference that parent function
65
68
  */
66
69
  readonly parentFunction?: FunctionExpression;
67
70
  readonly namespaceName?: NamespacedVariableNameExpression;
68
71
  readonly parentSymbolTable?: SymbolTable;
69
- constructor(parameters: FunctionParameterExpression[], body: Block, functionType: Token | null, end: Token, leftParen: Token, rightParen: Token, asToken?: Token, returnTypeToken?: Token,
72
+ constructor(parameters: FunctionParameterExpression[], body: Block, functionType: Token | null, end: Token, leftParen: Token, rightParen: Token, asToken?: Token, returnType?: TypeExpression,
70
73
  /**
71
74
  * If this function is enclosed within another function, this will reference that parent function
72
75
  */
@@ -79,10 +82,11 @@ export declare class FunctionExpression extends Expression implements TypedefPro
79
82
  private _range;
80
83
  readonly symbolTable: SymbolTable;
81
84
  labelStatements: LabelStatement[];
85
+ private _returnType;
82
86
  /**
83
87
  * The type this function returns
84
88
  */
85
- returnType: BscType;
89
+ getReturnType(): BscType;
86
90
  /**
87
91
  * The list of function calls that are declared within this function scope. This excludes CallExpressions
88
92
  * declared in child functions
@@ -96,21 +100,27 @@ export declare class FunctionExpression extends Expression implements TypedefPro
96
100
  * A list of all child functions declared directly within this function
97
101
  */
98
102
  childFunctionExpressions: FunctionExpression[];
103
+ /**
104
+ * The range of the function declaration, starting at the 'f' in function or 's' in sub (or the open paren if the keyword is missing),
105
+ * and ending with the last character in the returnTypeToken, or the 's' in 'as', or the rightParen
106
+ */
107
+ get functionDeclarationRange(): Range;
99
108
  transpile(state: BrsTranspileState, name?: Identifier, includeBody?: boolean): any[];
100
109
  getTypedef(state: BrsTranspileState, name?: Identifier): any[];
101
110
  walk(visitor: WalkVisitor, options: WalkOptions): void;
102
- getFunctionType(): FunctionType;
111
+ getFunctionType(): TypedFunctionType;
103
112
  }
104
113
  export declare class FunctionParameterExpression extends Expression {
105
114
  name: Identifier;
106
- type: BscType;
115
+ private typeInContext;
107
116
  equalsToken?: Token;
108
117
  defaultValue?: Expression;
109
118
  asToken?: Token;
110
- typeToken?: Token;
119
+ type?: TypeExpression;
111
120
  readonly namespaceName?: NamespacedVariableNameExpression;
112
- constructor(name: Identifier, type: BscType, equalsToken?: Token, defaultValue?: Expression, asToken?: Token, typeToken?: Token, namespaceName?: NamespacedVariableNameExpression);
121
+ constructor(name: Identifier, typeInContext: BscType, equalsToken?: Token, defaultValue?: Expression, asToken?: Token, type?: TypeExpression, namespaceName?: NamespacedVariableNameExpression);
113
122
  readonly range: Range;
123
+ getType(): BscType;
114
124
  transpile(state: BrsTranspileState): any[];
115
125
  walk(visitor: WalkVisitor, options: WalkOptions): void;
116
126
  get isOptional(): boolean;
@@ -365,6 +375,63 @@ export declare class RegexLiteralExpression extends Expression {
365
375
  transpile(state: BrsTranspileState): TranspileResult;
366
376
  walk(visitor: WalkVisitor, options: WalkOptions): void;
367
377
  }
378
+ export declare class TypeExpression extends Expression {
379
+ private tokens;
380
+ namespaceName?: NamespacedVariableNameExpression;
381
+ constructor(tokens: {
382
+ type?: Token;
383
+ }, namespaceName?: NamespacedVariableNameExpression);
384
+ readonly range: Range;
385
+ private _type;
386
+ /**
387
+ * The this TypeExpression refers to
388
+ */
389
+ get type(): BscType;
390
+ /**
391
+ * Derive a BscType from the type token
392
+ * Can deal with multiple brackets to make multidimensional arrays, eg. float[][]
393
+ * Defaults to `DynamicType`
394
+ */
395
+ getType(parseMode?: ParseMode): DynamicType | BscType | import("../types/FloatType").FloatType | import("../types/IntegerType").IntegerType | import("../types/DoubleType").DoubleType | import("../types/LongIntegerType").LongIntegerType | import("../types/StringType").StringType | import("../types/BooleanType").BooleanType | import("../types/FunctionType").FunctionType | import("../types/InvalidType").InvalidType | VoidType;
396
+ /**
397
+ * Is this a valid, (eg. known) type?
398
+ */
399
+ isValidType(parseMode?: ParseMode): boolean;
400
+ /**
401
+ * Gives a human readable string that says the type
402
+ * @returns text to display to show the type
403
+ */
404
+ getText(): string;
405
+ transpile(state: BrsTranspileState): TranspileResult;
406
+ walk(visitor: WalkVisitor, options: WalkOptions): void;
407
+ }
408
+ export declare class ArrayTypeExpression extends TypeExpression {
409
+ innerTypes: TypeExpression[];
410
+ private bracketTokens;
411
+ namespaceName?: NamespacedVariableNameExpression;
412
+ constructor(innerTypes: TypeExpression[], // this is an array so that in the future when we support union types
413
+ bracketTokens: {
414
+ leftBracket?: Token;
415
+ rightBracket?: Token;
416
+ }, namespaceName?: NamespacedVariableNameExpression);
417
+ readonly range: Range;
418
+ private get defaultTypeExpression();
419
+ /**
420
+ * Derive a BscType from the type token
421
+ * Returns an array type with the inner types based on the inner type expressions
422
+ */
423
+ getType(parseMode?: ParseMode): ArrayType;
424
+ /**
425
+ * Is this a valid, (eg. known) type?
426
+ */
427
+ isValidType(parseMode?: ParseMode): boolean;
428
+ /**
429
+ * Gives a human readable string that says the type
430
+ * @returns text to display to show the type
431
+ */
432
+ getText(): string;
433
+ walk(visitor: WalkVisitor, options: WalkOptions): void;
434
+ }
368
435
  declare type ExpressionValue = string | number | boolean | Expression | ExpressionValue[] | {
369
436
  [key: string]: ExpressionValue;
370
437
  };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RegexLiteralExpression = exports.NullCoalescingExpression = exports.TernaryExpression = exports.AnnotationExpression = exports.TaggedTemplateStringExpression = exports.TemplateStringExpression = exports.TemplateStringQuasiExpression = exports.CallfuncExpression = exports.NewExpression = exports.SourceLiteralExpression = exports.VariableExpression = exports.UnaryExpression = exports.AALiteralExpression = exports.AAMemberExpression = exports.ArrayLiteralExpression = exports.EscapedCharCodeLiteralExpression = exports.LiteralExpression = exports.GroupingExpression = exports.IndexedGetExpression = exports.XmlAttributeGetExpression = exports.DottedGetExpression = exports.NamespacedVariableNameExpression = exports.FunctionParameterExpression = exports.FunctionExpression = exports.CallExpression = exports.BinaryExpression = exports.Expression = void 0;
3
+ exports.ArrayTypeExpression = exports.TypeExpression = exports.RegexLiteralExpression = exports.NullCoalescingExpression = exports.TernaryExpression = exports.AnnotationExpression = exports.TaggedTemplateStringExpression = exports.TemplateStringExpression = exports.TemplateStringQuasiExpression = exports.CallfuncExpression = exports.NewExpression = exports.SourceLiteralExpression = exports.VariableExpression = exports.UnaryExpression = exports.AALiteralExpression = exports.AAMemberExpression = exports.ArrayLiteralExpression = exports.EscapedCharCodeLiteralExpression = exports.LiteralExpression = exports.GroupingExpression = exports.IndexedGetExpression = exports.XmlAttributeGetExpression = exports.DottedGetExpression = exports.NamespacedVariableNameExpression = exports.FunctionParameterExpression = exports.FunctionExpression = exports.CallExpression = exports.BinaryExpression = exports.Expression = void 0;
4
4
  const TokenKind_1 = require("../lexer/TokenKind");
5
5
  const util_1 = require("../util");
6
6
  const Parser_1 = require("./Parser");
@@ -10,8 +10,9 @@ const reflection_1 = require("../astUtils/reflection");
10
10
  const VoidType_1 = require("../types/VoidType");
11
11
  const DynamicType_1 = require("../types/DynamicType");
12
12
  const SymbolTable_1 = require("../SymbolTable");
13
- const FunctionType_1 = require("../types/FunctionType");
13
+ const TypedFunctionType_1 = require("../types/TypedFunctionType");
14
14
  const ObjectType_1 = require("../types/ObjectType");
15
+ const ArrayType_1 = require("../types/ArrayType");
15
16
  /** A BrightScript expression */
16
17
  class Expression {
17
18
  constructor() {
@@ -94,7 +95,7 @@ class CallExpression extends Expression {
94
95
  exports.CallExpression = CallExpression;
95
96
  CallExpression.MaximumArguments = util_1.MAX_PARAM_COUNT;
96
97
  class FunctionExpression extends Expression {
97
- constructor(parameters, body, functionType, end, leftParen, rightParen, asToken, returnTypeToken,
98
+ constructor(parameters, body, functionType, end, leftParen, rightParen, asToken, returnType,
98
99
  /**
99
100
  * If this function is enclosed within another function, this will reference that parent function
100
101
  */
@@ -107,7 +108,7 @@ class FunctionExpression extends Expression {
107
108
  this.leftParen = leftParen;
108
109
  this.rightParen = rightParen;
109
110
  this.asToken = asToken;
110
- this.returnTypeToken = returnTypeToken;
111
+ this.returnType = returnType;
111
112
  this.parentFunction = parentFunction;
112
113
  this.namespaceName = namespaceName;
113
114
  this.parentSymbolTable = parentSymbolTable;
@@ -121,18 +122,18 @@ class FunctionExpression extends Expression {
121
122
  * A list of all child functions declared directly within this function
122
123
  */
123
124
  this.childFunctionExpressions = [];
124
- if (this.returnTypeToken) {
125
- this.returnType = util_1.default.tokenToBscType(this.returnTypeToken, true, namespaceName);
125
+ if (this.returnType) {
126
+ this._returnType = this.returnType.type;
126
127
  }
127
128
  else if (this.functionType.text.toLowerCase() === 'sub') {
128
- this.returnType = new VoidType_1.VoidType();
129
+ this._returnType = new VoidType_1.VoidType();
129
130
  }
130
131
  else {
131
- this.returnType = new DynamicType_1.DynamicType();
132
+ this._returnType = new DynamicType_1.DynamicType();
132
133
  }
133
134
  this.symbolTable = new SymbolTable_1.SymbolTable(parentSymbolTable);
134
135
  for (let param of parameters) {
135
- this.symbolTable.addSymbol(param.name.text, param.name.range, param.type);
136
+ this.symbolTable.addSymbol(param.name.text, param.name.range, param.getType());
136
137
  }
137
138
  }
138
139
  get range() {
@@ -144,10 +145,24 @@ class FunctionExpression extends Expression {
144
145
  cacheRange() {
145
146
  var _a;
146
147
  if (!this._range) {
147
- this._range = util_1.default.createBoundingRange(this.functionType, this.leftParen, ...((_a = this.parameters) !== null && _a !== void 0 ? _a : []), this.rightParen, this.asToken, this.returnTypeToken, this.body, this.end);
148
+ this._range = util_1.default.createBoundingRange(this.functionType, this.leftParen, ...((_a = this.parameters) !== null && _a !== void 0 ? _a : []), this.rightParen, this.asToken, this.returnType, this.body, this.end);
148
149
  }
149
150
  return this._range;
150
151
  }
152
+ /**
153
+ * The type this function returns
154
+ */
155
+ getReturnType() {
156
+ return this._returnType;
157
+ }
158
+ /**
159
+ * The range of the function declaration, starting at the 'f' in function or 's' in sub (or the open paren if the keyword is missing),
160
+ * and ending with the last character in the returnTypeToken, or the 's' in 'as', or the rightParen
161
+ */
162
+ get functionDeclarationRange() {
163
+ var _a;
164
+ return util_1.default.createBoundingRange(this.functionType, this.leftParen, ...((_a = this.parameters) !== null && _a !== void 0 ? _a : []), this.rightParen, this.asToken, this.returnType);
165
+ }
151
166
  transpile(state, name, includeBody = true) {
152
167
  let results = [];
153
168
  //'function'|'sub'
@@ -176,7 +191,7 @@ class FunctionExpression extends Expression {
176
191
  //as
177
192
  state.transpileToken(this.asToken), ' ',
178
193
  //return type
179
- state.sourceNode(this.returnTypeToken, this.returnType.toTypeString(state.typeContext)));
194
+ state.sourceNode(this.returnType, this.getReturnType().toTypeString(state.typeContext)));
180
195
  }
181
196
  if (includeBody) {
182
197
  state.lineage.unshift(this);
@@ -184,9 +199,11 @@ class FunctionExpression extends Expression {
184
199
  state.lineage.shift();
185
200
  results.push(...body);
186
201
  }
187
- results.push('\n');
188
- //'end sub'|'end function'
189
- results.push(state.indent(), state.transpileToken(this.end));
202
+ if (this.end) {
203
+ results.push('\n');
204
+ //'end sub'|'end function'
205
+ results.push(state.indent(), state.transpileToken(this.end));
206
+ }
190
207
  return results;
191
208
  }
192
209
  getTypedef(state, name) {
@@ -199,31 +216,35 @@ class FunctionExpression extends Expression {
199
216
  }
200
217
  //This is the core of full-program walking...it allows us to step into sub functions
201
218
  if (options.walkMode & visitors_1.InternalWalkMode.recurseChildFunctions) {
219
+ (0, visitors_1.walk)(this, 'returnType', visitor, options);
202
220
  (0, visitors_1.walk)(this, 'body', visitor, options);
203
221
  }
204
222
  }
205
223
  }
206
224
  getFunctionType() {
207
- let functionType = new FunctionType_1.FunctionType(this.returnType);
225
+ let functionType = new TypedFunctionType_1.TypedFunctionType(this.getReturnType());
208
226
  functionType.isSub = this.functionType.text === 'sub';
209
227
  for (let param of this.parameters) {
210
- functionType.addParameter(param.name.text, param.type, param.isOptional);
228
+ functionType.addParameter(param.name.text, param.getType(), param.isOptional);
211
229
  }
212
230
  return functionType;
213
231
  }
214
232
  }
215
233
  exports.FunctionExpression = FunctionExpression;
216
234
  class FunctionParameterExpression extends Expression {
217
- constructor(name, type, equalsToken, defaultValue, asToken, typeToken, namespaceName) {
235
+ constructor(name, typeInContext, equalsToken, defaultValue, asToken, type, namespaceName) {
218
236
  super();
219
237
  this.name = name;
220
- this.type = type;
238
+ this.typeInContext = typeInContext;
221
239
  this.equalsToken = equalsToken;
222
240
  this.defaultValue = defaultValue;
223
241
  this.asToken = asToken;
224
- this.typeToken = typeToken;
242
+ this.type = type;
225
243
  this.namespaceName = namespaceName;
226
- this.range = util_1.default.createBoundingRange(this.name, this.equalsToken, this.defaultValue, this.asToken, this.typeToken);
244
+ this.range = util_1.default.createBoundingRange(this.name, this.equalsToken, this.defaultValue, this.asToken, this.type);
245
+ }
246
+ getType() {
247
+ return this.typeInContext;
227
248
  }
228
249
  transpile(state) {
229
250
  let result = [
@@ -240,7 +261,7 @@ class FunctionParameterExpression extends Expression {
240
261
  result.push(' ');
241
262
  result.push(state.transpileToken(this.asToken));
242
263
  result.push(' ');
243
- result.push(state.sourceNode(this.typeToken, this.type.toTypeString(state.typeContext)));
264
+ result.push(state.sourceNode(this.type, this.getType().toTypeString(state.typeContext)));
244
265
  }
245
266
  return result;
246
267
  }
@@ -248,6 +269,7 @@ class FunctionParameterExpression extends Expression {
248
269
  // eslint-disable-next-line no-bitwise
249
270
  if (this.defaultValue && options.walkMode & visitors_1.InternalWalkMode.walkExpressions) {
250
271
  (0, visitors_1.walk)(this, 'defaultValue', visitor, options);
272
+ (0, visitors_1.walk)(this, 'type', visitor, options);
251
273
  }
252
274
  }
253
275
  get isOptional() {
@@ -543,7 +565,7 @@ class AALiteralExpression extends Expression {
543
565
  }
544
566
  buildSymbolTable() {
545
567
  this.symbolTable.clear();
546
- this.symbolTable.addSymbol('m', { start: this.open.range.start, end: this.close.range.end }, new ObjectType_1.ObjectType(this.memberTable));
568
+ this.symbolTable.addSymbol('m', { start: this.open.range.start, end: this.close.range.end }, new ObjectType_1.ObjectType('object', this.memberTable));
547
569
  for (const element of this.elements) {
548
570
  if ((0, reflection_1.isAAMemberExpression)(element)) {
549
571
  this.memberTable.addSymbol(element.keyToken.text, element.keyToken.range, (0, Parser_1.getBscTypeFromExpression)(element.value, this.functionExpression));
@@ -1128,6 +1150,109 @@ class RegexLiteralExpression extends Expression {
1128
1150
  }
1129
1151
  }
1130
1152
  exports.RegexLiteralExpression = RegexLiteralExpression;
1153
+ class TypeExpression extends Expression {
1154
+ constructor(tokens, namespaceName) {
1155
+ super();
1156
+ this.tokens = tokens;
1157
+ this.namespaceName = namespaceName;
1158
+ this.range = util_1.default.createBoundingRange(this.tokens.type);
1159
+ }
1160
+ /**
1161
+ * The this TypeExpression refers to
1162
+ */
1163
+ get type() {
1164
+ if (this._type) {
1165
+ return this._type;
1166
+ }
1167
+ this._type = this.getType(Parser_1.ParseMode.BrighterScript);
1168
+ return this._type;
1169
+ }
1170
+ /**
1171
+ * Derive a BscType from the type token
1172
+ * Can deal with multiple brackets to make multidimensional arrays, eg. float[][]
1173
+ * Defaults to `DynamicType`
1174
+ */
1175
+ getType(parseMode = Parser_1.ParseMode.BrighterScript) {
1176
+ let exprType = this.tokens.type
1177
+ ? util_1.default.tokenToBscType(this.tokens.type, parseMode === Parser_1.ParseMode.BrighterScript, this.namespaceName)
1178
+ : new DynamicType_1.DynamicType();
1179
+ return exprType;
1180
+ }
1181
+ /**
1182
+ * Is this a valid, (eg. known) type?
1183
+ */
1184
+ isValidType(parseMode = Parser_1.ParseMode.BrighterScript) {
1185
+ return !!util_1.default.tokenToBscType(this.tokens.type, parseMode === Parser_1.ParseMode.BrighterScript, this.namespaceName);
1186
+ }
1187
+ /**
1188
+ * Gives a human readable string that says the type
1189
+ * @returns text to display to show the type
1190
+ */
1191
+ getText() {
1192
+ let result = this.tokens.type.text;
1193
+ return result;
1194
+ }
1195
+ transpile(state) {
1196
+ let result = [];
1197
+ //type declaration
1198
+ result.push(state.sourceNode({ range: this.range }, this.type.toTypeString(state.typeContext)));
1199
+ return result;
1200
+ }
1201
+ walk(visitor, options) {
1202
+ //nothing to walk
1203
+ }
1204
+ }
1205
+ exports.TypeExpression = TypeExpression;
1206
+ class ArrayTypeExpression extends TypeExpression {
1207
+ constructor(innerTypes, // this is an array so that in the future when we support union types
1208
+ bracketTokens, namespaceName) {
1209
+ super({}, namespaceName);
1210
+ this.innerTypes = innerTypes;
1211
+ this.bracketTokens = bracketTokens;
1212
+ this.namespaceName = namespaceName;
1213
+ this.range = util_1.default.createBoundingRange(this.bracketTokens.leftBracket, this.bracketTokens.rightBracket, ...this.innerTypes);
1214
+ }
1215
+ /*
1216
+ * TODO - Support union types
1217
+ */
1218
+ get defaultTypeExpression() {
1219
+ return this.innerTypes[0];
1220
+ }
1221
+ /**
1222
+ * Derive a BscType from the type token
1223
+ * Returns an array type with the inner types based on the inner type expressions
1224
+ */
1225
+ getType(parseMode = Parser_1.ParseMode.BrighterScript) {
1226
+ const innerBscTypes = this.innerTypes.map(inner => inner.getType(parseMode));
1227
+ return new ArrayType_1.ArrayType(...innerBscTypes);
1228
+ }
1229
+ /**
1230
+ * Is this a valid, (eg. known) type?
1231
+ */
1232
+ isValidType(parseMode = Parser_1.ParseMode.BrighterScript) {
1233
+ if (parseMode === Parser_1.ParseMode.BrighterScript) {
1234
+ return this.innerTypes.reduce((validSoFar, innerType) => {
1235
+ return validSoFar && innerType.isValidType(parseMode);
1236
+ }, true);
1237
+ }
1238
+ return false;
1239
+ }
1240
+ /**
1241
+ * Gives a human readable string that says the type
1242
+ * @returns text to display to show the type
1243
+ */
1244
+ getText() {
1245
+ return this.defaultTypeExpression.getText() + '[]';
1246
+ }
1247
+ walk(visitor, options) {
1248
+ if (options.walkMode & visitors_1.InternalWalkMode.walkExpressions) {
1249
+ for (let i = 0; i < this.innerTypes.length; i++) {
1250
+ (0, visitors_1.walk)(this.innerTypes, i, visitor, options, this);
1251
+ }
1252
+ }
1253
+ }
1254
+ }
1255
+ exports.ArrayTypeExpression = ArrayTypeExpression;
1131
1256
  function expressionToValue(expr, strict) {
1132
1257
  if (!expr) {
1133
1258
  return null;