brighterscript 1.0.0-alpha.11 → 1.0.0-alpha.15

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 (228) hide show
  1. package/CHANGELOG.md +253 -268
  2. package/README.md +2 -2
  3. package/dist/Cache.d.ts +3 -8
  4. package/dist/Cache.js +9 -14
  5. package/dist/Cache.js.map +1 -1
  6. package/dist/CommentFlagProcessor.js +5 -3
  7. package/dist/CommentFlagProcessor.js.map +1 -1
  8. package/dist/DiagnosticMessages.d.ts +21 -1
  9. package/dist/DiagnosticMessages.js +21 -1
  10. package/dist/DiagnosticMessages.js.map +1 -1
  11. package/dist/LanguageServer.d.ts +1 -6
  12. package/dist/LanguageServer.js +0 -9
  13. package/dist/LanguageServer.js.map +1 -1
  14. package/dist/PluginInterface.d.ts +3 -3
  15. package/dist/PluginInterface.js +3 -0
  16. package/dist/PluginInterface.js.map +1 -1
  17. package/dist/Program.d.ts +30 -16
  18. package/dist/Program.js +110 -45
  19. package/dist/Program.js.map +1 -1
  20. package/dist/ProgramBuilder.js +3 -3
  21. package/dist/ProgramBuilder.js.map +1 -1
  22. package/dist/Scope.d.ts +31 -17
  23. package/dist/Scope.js +86 -48
  24. package/dist/Scope.js.map +1 -1
  25. package/dist/SymbolTable.d.ts +1 -1
  26. package/dist/XmlScope.d.ts +3 -3
  27. package/dist/astUtils/AstEditor.d.ts +33 -0
  28. package/dist/astUtils/AstEditor.js +107 -0
  29. package/dist/astUtils/AstEditor.js.map +1 -0
  30. package/dist/{bscPlugin/semanticTokens/SemanticTokensProcessor.spec.d.ts → astUtils/AstEditor.spec.d.ts} +0 -0
  31. package/dist/astUtils/AstEditor.spec.js +170 -0
  32. package/dist/astUtils/AstEditor.spec.js.map +1 -0
  33. package/dist/astUtils/reflection.d.ts +3 -1
  34. package/dist/astUtils/reflection.js +10 -2
  35. package/dist/astUtils/reflection.js.map +1 -1
  36. package/dist/astUtils/reflection.spec.js +6 -6
  37. package/dist/astUtils/reflection.spec.js.map +1 -1
  38. package/dist/astUtils/visitors.d.ts +3 -1
  39. package/dist/astUtils/visitors.js.map +1 -1
  40. package/dist/astUtils/visitors.spec.js +8 -8
  41. package/dist/astUtils/visitors.spec.js.map +1 -1
  42. package/dist/astUtils/xml.d.ts +1 -0
  43. package/dist/astUtils/xml.js +6 -1
  44. package/dist/astUtils/xml.js.map +1 -1
  45. package/dist/bscPlugin/BscPlugin.d.ts +4 -1
  46. package/dist/bscPlugin/BscPlugin.js +21 -2
  47. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  48. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +3 -3
  49. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  50. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
  51. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +9 -0
  52. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +97 -0
  53. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -0
  54. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.d.ts +1 -0
  55. package/dist/bscPlugin/semanticTokens/{SemanticTokensProcessor.spec.js → BrsFileSemanticTokensProcessor.spec.js} +30 -2
  56. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -0
  57. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.d.ts +8 -0
  58. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js +36 -0
  59. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +1 -0
  60. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +9 -0
  61. package/dist/bscPlugin/validation/BrsFileValidator.js +66 -0
  62. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -0
  63. package/dist/bscPlugin/validation/ScopeValidator.d.ts +11 -0
  64. package/dist/bscPlugin/validation/ScopeValidator.js +94 -0
  65. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -0
  66. package/dist/files/BrsFile.Class.spec.js +404 -230
  67. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  68. package/dist/files/BrsFile.d.ts +26 -12
  69. package/dist/files/BrsFile.js +265 -127
  70. package/dist/files/BrsFile.js.map +1 -1
  71. package/dist/files/BrsFile.spec.js +586 -169
  72. package/dist/files/BrsFile.spec.js.map +1 -1
  73. package/dist/files/XmlFile.d.ts +11 -10
  74. package/dist/files/XmlFile.js +13 -8
  75. package/dist/files/XmlFile.js.map +1 -1
  76. package/dist/files/XmlFile.spec.js +106 -59
  77. package/dist/files/XmlFile.spec.js.map +1 -1
  78. package/dist/files/tests/imports.spec.js +8 -6
  79. package/dist/files/tests/imports.spec.js.map +1 -1
  80. package/dist/globalCallables.d.ts +3 -1
  81. package/dist/globalCallables.js +198 -99
  82. package/dist/globalCallables.js.map +1 -1
  83. package/dist/index.d.ts +12 -3
  84. package/dist/index.js +21 -4
  85. package/dist/index.js.map +1 -1
  86. package/dist/interfaces.d.ts +68 -15
  87. package/dist/lexer/Lexer.js +1 -2
  88. package/dist/lexer/Lexer.js.map +1 -1
  89. package/dist/lexer/Lexer.spec.js +470 -462
  90. package/dist/lexer/Lexer.spec.js.map +1 -1
  91. package/dist/lexer/TokenKind.d.ts +2 -0
  92. package/dist/lexer/TokenKind.js +5 -0
  93. package/dist/lexer/TokenKind.js.map +1 -1
  94. package/dist/parser/Expression.d.ts +1 -1
  95. package/dist/parser/Expression.js +10 -10
  96. package/dist/parser/Expression.js.map +1 -1
  97. package/dist/parser/Parser.Class.spec.js +33 -32
  98. package/dist/parser/Parser.Class.spec.js.map +1 -1
  99. package/dist/parser/Parser.d.ts +28 -7
  100. package/dist/parser/Parser.js +494 -290
  101. package/dist/parser/Parser.js.map +1 -1
  102. package/dist/parser/Parser.spec.js +157 -35
  103. package/dist/parser/Parser.spec.js.map +1 -1
  104. package/dist/parser/SGParser.js +1 -1
  105. package/dist/parser/SGParser.js.map +1 -1
  106. package/dist/parser/SGTypes.d.ts +3 -0
  107. package/dist/parser/SGTypes.js +8 -3
  108. package/dist/parser/SGTypes.js.map +1 -1
  109. package/dist/parser/SGTypes.spec.js +9 -9
  110. package/dist/parser/SGTypes.spec.js.map +1 -1
  111. package/dist/parser/Statement.d.ts +55 -3
  112. package/dist/parser/Statement.js +162 -9
  113. package/dist/parser/Statement.js.map +1 -1
  114. package/dist/parser/tests/Parser.spec.d.ts +3 -3
  115. package/dist/parser/tests/Parser.spec.js +4 -4
  116. package/dist/parser/tests/Parser.spec.js.map +1 -1
  117. package/dist/parser/tests/controlFlow/For.spec.js +40 -40
  118. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  119. package/dist/parser/tests/controlFlow/ForEach.spec.js +22 -21
  120. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  121. package/dist/parser/tests/controlFlow/If.spec.js +100 -99
  122. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  123. package/dist/parser/tests/controlFlow/While.spec.js +25 -25
  124. package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
  125. package/dist/parser/tests/expression/Additive.spec.js +21 -21
  126. package/dist/parser/tests/expression/Additive.spec.js.map +1 -1
  127. package/dist/parser/tests/expression/ArrayLiterals.spec.js +91 -91
  128. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
  129. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +102 -102
  130. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  131. package/dist/parser/tests/expression/Boolean.spec.js +15 -15
  132. package/dist/parser/tests/expression/Boolean.spec.js.map +1 -1
  133. package/dist/parser/tests/expression/Call.spec.js +22 -21
  134. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  135. package/dist/parser/tests/expression/Exponential.spec.js +11 -11
  136. package/dist/parser/tests/expression/Exponential.spec.js.map +1 -1
  137. package/dist/parser/tests/expression/Function.spec.js +171 -171
  138. package/dist/parser/tests/expression/Function.spec.js.map +1 -1
  139. package/dist/parser/tests/expression/Indexing.spec.js +50 -50
  140. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  141. package/dist/parser/tests/expression/Multiplicative.spec.js +25 -25
  142. package/dist/parser/tests/expression/Multiplicative.spec.js.map +1 -1
  143. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +30 -18
  144. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  145. package/dist/parser/tests/expression/PrefixUnary.spec.js +26 -26
  146. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +1 -1
  147. package/dist/parser/tests/expression/Primary.spec.js +27 -27
  148. package/dist/parser/tests/expression/Primary.spec.js.map +1 -1
  149. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +3 -2
  150. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +1 -1
  151. package/dist/parser/tests/expression/Relational.spec.js +25 -25
  152. package/dist/parser/tests/expression/Relational.spec.js.map +1 -1
  153. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +7 -7
  154. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  155. package/dist/parser/tests/expression/TernaryExpression.spec.js +6 -6
  156. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  157. package/dist/parser/tests/statement/AssignmentOperators.spec.js +15 -15
  158. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +1 -1
  159. package/dist/parser/tests/statement/Declaration.spec.js +20 -20
  160. package/dist/parser/tests/statement/Declaration.spec.js.map +1 -1
  161. package/dist/parser/tests/statement/Enum.spec.d.ts +1 -0
  162. package/dist/parser/tests/statement/Enum.spec.js +774 -0
  163. package/dist/parser/tests/statement/Enum.spec.js.map +1 -0
  164. package/dist/parser/tests/statement/Function.spec.js +121 -120
  165. package/dist/parser/tests/statement/Function.spec.js.map +1 -1
  166. package/dist/parser/tests/statement/Goto.spec.js +9 -8
  167. package/dist/parser/tests/statement/Goto.spec.js.map +1 -1
  168. package/dist/parser/tests/statement/Increment.spec.js +22 -22
  169. package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
  170. package/dist/parser/tests/statement/InterfaceStatement.spec.js +12 -0
  171. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
  172. package/dist/parser/tests/statement/LibraryStatement.spec.js +7 -7
  173. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
  174. package/dist/parser/tests/statement/Misc.spec.js +71 -70
  175. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  176. package/dist/parser/tests/statement/PrintStatement.spec.js +17 -17
  177. package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
  178. package/dist/parser/tests/statement/ReturnStatement.spec.js +33 -33
  179. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
  180. package/dist/parser/tests/statement/Set.spec.js +53 -53
  181. package/dist/parser/tests/statement/Set.spec.js.map +1 -1
  182. package/dist/parser/tests/statement/Stop.spec.js +7 -6
  183. package/dist/parser/tests/statement/Stop.spec.js.map +1 -1
  184. package/dist/preprocessor/Chunk.d.ts +1 -1
  185. package/dist/preprocessor/Preprocessor.d.ts +1 -1
  186. package/dist/preprocessor/Preprocessor.js +7 -7
  187. package/dist/preprocessor/Preprocessor.js.map +1 -1
  188. package/dist/types/ArrayType.d.ts +8 -5
  189. package/dist/types/ArrayType.js +45 -9
  190. package/dist/types/ArrayType.js.map +1 -1
  191. package/dist/types/ArrayType.spec.js +62 -3
  192. package/dist/types/ArrayType.spec.js.map +1 -1
  193. package/dist/types/BscType.d.ts +1 -1
  194. package/dist/types/CustomType.d.ts +1 -1
  195. package/dist/types/CustomType.js +4 -2
  196. package/dist/types/CustomType.js.map +1 -1
  197. package/dist/types/FunctionType.d.ts +5 -5
  198. package/dist/types/FunctionType.js +11 -11
  199. package/dist/types/FunctionType.js.map +1 -1
  200. package/dist/types/FunctionType.spec.js +1 -1
  201. package/dist/types/FunctionType.spec.js.map +1 -1
  202. package/dist/types/LazyType.d.ts +1 -2
  203. package/dist/types/LazyType.js +1 -5
  204. package/dist/types/LazyType.js.map +1 -1
  205. package/dist/types/helpers.js +1 -1
  206. package/dist/types/helpers.js.map +1 -1
  207. package/dist/util.d.ts +25 -9
  208. package/dist/util.js +139 -55
  209. package/dist/util.js.map +1 -1
  210. package/dist/validators/ClassValidator.js +27 -27
  211. package/dist/validators/ClassValidator.js.map +1 -1
  212. package/package.json +4 -3
  213. package/dist/astUtils/index.d.ts +0 -7
  214. package/dist/astUtils/index.js +0 -26
  215. package/dist/astUtils/index.js.map +0 -1
  216. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.d.ts +0 -7
  217. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js +0 -63
  218. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js.map +0 -1
  219. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js.map +0 -1
  220. package/dist/lexer/index.d.ts +0 -3
  221. package/dist/lexer/index.js +0 -18
  222. package/dist/lexer/index.js.map +0 -1
  223. package/dist/parser/index.d.ts +0 -3
  224. package/dist/parser/index.js +0 -16
  225. package/dist/parser/index.js.map +0 -1
  226. package/dist/preprocessor/index.d.ts +0 -3
  227. package/dist/preprocessor/index.js +0 -16
  228. package/dist/preprocessor/index.js.map +0 -1
@@ -21,7 +21,8 @@ let mathFunctions = [{
21
21
  file: exports.globalFile,
22
22
  params: [{
23
23
  name: 'x',
24
- type: new FloatType_1.FloatType()
24
+ type: new FloatType_1.FloatType(),
25
+ isOptional: false
25
26
  }]
26
27
  }, {
27
28
  name: 'Atn',
@@ -31,7 +32,8 @@ let mathFunctions = [{
31
32
  file: exports.globalFile,
32
33
  params: [{
33
34
  name: 'x',
34
- type: new FloatType_1.FloatType()
35
+ type: new FloatType_1.FloatType(),
36
+ isOptional: false
35
37
  }]
36
38
  }, {
37
39
  name: 'Cdbl',
@@ -40,7 +42,8 @@ let mathFunctions = [{
40
42
  file: exports.globalFile,
41
43
  params: [{
42
44
  name: 'x',
43
- type: new IntegerType_1.IntegerType()
45
+ type: new IntegerType_1.IntegerType(),
46
+ isOptional: false
44
47
  }]
45
48
  }, {
46
49
  name: 'Cint',
@@ -49,7 +52,8 @@ let mathFunctions = [{
49
52
  file: exports.globalFile,
50
53
  params: [{
51
54
  name: 'x',
52
- type: new FloatType_1.FloatType()
55
+ type: new FloatType_1.FloatType(),
56
+ isOptional: false
53
57
  }]
54
58
  }, {
55
59
  name: 'Cos',
@@ -58,7 +62,8 @@ let mathFunctions = [{
58
62
  file: exports.globalFile,
59
63
  params: [{
60
64
  name: 'x',
61
- type: new FloatType_1.FloatType()
65
+ type: new FloatType_1.FloatType(),
66
+ isOptional: false
62
67
  }]
63
68
  }, {
64
69
  name: 'Csng',
@@ -67,7 +72,8 @@ let mathFunctions = [{
67
72
  file: exports.globalFile,
68
73
  params: [{
69
74
  name: 'x',
70
- type: new IntegerType_1.IntegerType()
75
+ type: new IntegerType_1.IntegerType(),
76
+ isOptional: false
71
77
  }]
72
78
  }, {
73
79
  name: 'Exp',
@@ -76,7 +82,8 @@ let mathFunctions = [{
76
82
  file: exports.globalFile,
77
83
  params: [{
78
84
  name: 'x',
79
- type: new FloatType_1.FloatType()
85
+ type: new FloatType_1.FloatType(),
86
+ isOptional: false
80
87
  }]
81
88
  }, {
82
89
  name: 'Fix',
@@ -85,7 +92,8 @@ let mathFunctions = [{
85
92
  file: exports.globalFile,
86
93
  params: [{
87
94
  name: 'x',
88
- type: new FloatType_1.FloatType()
95
+ type: new FloatType_1.FloatType(),
96
+ isOptional: false
89
97
  }]
90
98
  }, {
91
99
  name: 'Int',
@@ -94,7 +102,8 @@ let mathFunctions = [{
94
102
  file: exports.globalFile,
95
103
  params: [{
96
104
  name: 'x',
97
- type: new FloatType_1.FloatType()
105
+ type: new FloatType_1.FloatType(),
106
+ isOptional: false
98
107
  }]
99
108
  }, {
100
109
  name: 'Log',
@@ -103,7 +112,8 @@ let mathFunctions = [{
103
112
  file: exports.globalFile,
104
113
  params: [{
105
114
  name: 'x',
106
- type: new FloatType_1.FloatType()
115
+ type: new FloatType_1.FloatType(),
116
+ isOptional: false
107
117
  }]
108
118
  }, {
109
119
  name: 'Rnd',
@@ -112,7 +122,8 @@ let mathFunctions = [{
112
122
  file: exports.globalFile,
113
123
  params: [{
114
124
  name: 'range',
115
- type: new IntegerType_1.IntegerType()
125
+ type: new IntegerType_1.IntegerType(),
126
+ isOptional: false
116
127
  }]
117
128
  }, {
118
129
  name: 'Rnd',
@@ -121,7 +132,8 @@ let mathFunctions = [{
121
132
  file: exports.globalFile,
122
133
  params: [{
123
134
  name: '0',
124
- type: new IntegerType_1.IntegerType()
135
+ type: new IntegerType_1.IntegerType(),
136
+ isOptional: false
125
137
  }]
126
138
  }, {
127
139
  name: 'Sgn',
@@ -130,7 +142,8 @@ let mathFunctions = [{
130
142
  file: exports.globalFile,
131
143
  params: [{
132
144
  name: 'x',
133
- type: new FloatType_1.FloatType()
145
+ type: new FloatType_1.FloatType(),
146
+ isOptional: false
134
147
  }]
135
148
  }, {
136
149
  name: 'Sgn',
@@ -139,7 +152,8 @@ let mathFunctions = [{
139
152
  file: exports.globalFile,
140
153
  params: [{
141
154
  name: 'x',
142
- type: new IntegerType_1.IntegerType()
155
+ type: new IntegerType_1.IntegerType(),
156
+ isOptional: false
143
157
  }]
144
158
  }, {
145
159
  name: 'Sin',
@@ -148,7 +162,8 @@ let mathFunctions = [{
148
162
  file: exports.globalFile,
149
163
  params: [{
150
164
  name: 'x',
151
- type: new FloatType_1.FloatType()
165
+ type: new FloatType_1.FloatType(),
166
+ isOptional: false
152
167
  }]
153
168
  }, {
154
169
  name: 'Sqr',
@@ -157,7 +172,8 @@ let mathFunctions = [{
157
172
  file: exports.globalFile,
158
173
  params: [{
159
174
  name: 'x',
160
- type: new FloatType_1.FloatType()
175
+ type: new FloatType_1.FloatType(),
176
+ isOptional: false
161
177
  }]
162
178
  }, {
163
179
  name: 'Tan',
@@ -166,7 +182,8 @@ let mathFunctions = [{
166
182
  file: exports.globalFile,
167
183
  params: [{
168
184
  name: 'x',
169
- type: new FloatType_1.FloatType()
185
+ type: new FloatType_1.FloatType(),
186
+ isOptional: false
170
187
  }]
171
188
  }];
172
189
  let runtimeFunctions = [{
@@ -176,7 +193,8 @@ let runtimeFunctions = [{
176
193
  file: exports.globalFile,
177
194
  params: [{
178
195
  name: 'name',
179
- type: new StringType_1.StringType()
196
+ type: new StringType_1.StringType(),
197
+ isOptional: false
180
198
  }, {
181
199
  name: 'param2',
182
200
  type: new DynamicType_1.DynamicType(),
@@ -205,7 +223,8 @@ let runtimeFunctions = [{
205
223
  file: exports.globalFile,
206
224
  params: [{
207
225
  name: 'variable',
208
- type: new ObjectType_1.ObjectType()
226
+ type: new ObjectType_1.ObjectType(),
227
+ isOptional: false
209
228
  }, {
210
229
  name: 'version',
211
230
  type: new StringType_1.StringType(),
@@ -224,7 +243,8 @@ let runtimeFunctions = [{
224
243
  file: exports.globalFile,
225
244
  params: [{
226
245
  name: 'x',
227
- type: new DynamicType_1.DynamicType()
246
+ type: new DynamicType_1.DynamicType(),
247
+ isOptional: false
228
248
  }]
229
249
  }, {
230
250
  name: 'Run',
@@ -233,11 +253,13 @@ let runtimeFunctions = [{
233
253
  file: exports.globalFile,
234
254
  params: [{
235
255
  name: 'filename',
236
- type: new StringType_1.StringType()
256
+ type: new StringType_1.StringType(),
257
+ isOptional: false
237
258
  }, {
238
259
  name: 'arg',
239
260
  type: new DynamicType_1.DynamicType(),
240
- isRestArgument: true
261
+ isRestArgument: true,
262
+ isOptional: false
241
263
  }]
242
264
  }, {
243
265
  name: 'Run',
@@ -246,11 +268,13 @@ let runtimeFunctions = [{
246
268
  file: exports.globalFile,
247
269
  params: [{
248
270
  name: 'filename',
249
- type: new ArrayType_1.ArrayType(new StringType_1.StringType())
271
+ type: new ArrayType_1.ArrayType(new StringType_1.StringType()),
272
+ isOptional: false
250
273
  }, {
251
274
  name: 'arg',
252
275
  type: new DynamicType_1.DynamicType(),
253
- isRestArgument: true
276
+ isRestArgument: true,
277
+ isOptional: true
254
278
  }]
255
279
  }, {
256
280
  name: 'Eval',
@@ -260,7 +284,8 @@ let runtimeFunctions = [{
260
284
  isDeprecated: true,
261
285
  params: [{
262
286
  name: 'code',
263
- type: new StringType_1.StringType()
287
+ type: new StringType_1.StringType(),
288
+ isOptional: false
264
289
  }]
265
290
  }, {
266
291
  name: 'GetLastRunCompileError',
@@ -283,7 +308,8 @@ let globalUtilityFunctions = [
283
308
  file: exports.globalFile,
284
309
  params: [{
285
310
  name: 'milliseconds',
286
- type: new IntegerType_1.IntegerType()
311
+ type: new IntegerType_1.IntegerType(),
312
+ isOptional: false
287
313
  }]
288
314
  }, {
289
315
  name: 'Wait',
@@ -292,10 +318,12 @@ let globalUtilityFunctions = [
292
318
  file: exports.globalFile,
293
319
  params: [{
294
320
  name: 'timeout',
295
- type: new IntegerType_1.IntegerType()
321
+ type: new IntegerType_1.IntegerType(),
322
+ isOptional: false
296
323
  }, {
297
324
  name: 'port',
298
- type: new ObjectType_1.ObjectType()
325
+ type: new ObjectType_1.ObjectType(),
326
+ isOptional: false
299
327
  }]
300
328
  }, {
301
329
  name: 'GetInterface',
@@ -304,10 +332,12 @@ let globalUtilityFunctions = [
304
332
  file: exports.globalFile,
305
333
  params: [{
306
334
  name: 'object',
307
- type: new ObjectType_1.ObjectType()
335
+ type: new ObjectType_1.ObjectType(),
336
+ isOptional: false
308
337
  }, {
309
338
  name: 'ifname',
310
- type: new StringType_1.StringType()
339
+ type: new StringType_1.StringType(),
340
+ isOptional: false
311
341
  }]
312
342
  }, {
313
343
  name: 'FindMemberFunction',
@@ -316,10 +346,12 @@ let globalUtilityFunctions = [
316
346
  file: exports.globalFile,
317
347
  params: [{
318
348
  name: 'object',
319
- type: new ObjectType_1.ObjectType()
349
+ type: new ObjectType_1.ObjectType(),
350
+ isOptional: false
320
351
  }, {
321
352
  name: 'functionName',
322
- type: new StringType_1.StringType()
353
+ type: new StringType_1.StringType(),
354
+ isOptional: false
323
355
  }]
324
356
  }, {
325
357
  name: 'UpTime',
@@ -328,7 +360,8 @@ let globalUtilityFunctions = [
328
360
  file: exports.globalFile,
329
361
  params: [{
330
362
  name: 'dummy',
331
- type: new IntegerType_1.IntegerType()
363
+ type: new IntegerType_1.IntegerType(),
364
+ isOptional: false
332
365
  }]
333
366
  }, {
334
367
  name: 'RebootSystem',
@@ -343,7 +376,8 @@ let globalUtilityFunctions = [
343
376
  file: exports.globalFile,
344
377
  params: [{
345
378
  name: 'path',
346
- type: new StringType_1.StringType()
379
+ type: new StringType_1.StringType(),
380
+ isOptional: false
347
381
  }]
348
382
  }, {
349
383
  name: 'ReadAsciiFile',
@@ -352,7 +386,8 @@ let globalUtilityFunctions = [
352
386
  file: exports.globalFile,
353
387
  params: [{
354
388
  name: 'filePath',
355
- type: new StringType_1.StringType()
389
+ type: new StringType_1.StringType(),
390
+ isOptional: false
356
391
  }]
357
392
  }, {
358
393
  name: 'WriteAsciiFile',
@@ -361,10 +396,12 @@ let globalUtilityFunctions = [
361
396
  file: exports.globalFile,
362
397
  params: [{
363
398
  name: 'filePath',
364
- type: new StringType_1.StringType()
399
+ type: new StringType_1.StringType(),
400
+ isOptional: false
365
401
  }, {
366
402
  name: 'text',
367
- type: new StringType_1.StringType()
403
+ type: new StringType_1.StringType(),
404
+ isOptional: false
368
405
  }]
369
406
  }, {
370
407
  name: 'CopyFile',
@@ -373,10 +410,12 @@ let globalUtilityFunctions = [
373
410
  file: exports.globalFile,
374
411
  params: [{
375
412
  name: 'source',
376
- type: new StringType_1.StringType()
413
+ type: new StringType_1.StringType(),
414
+ isOptional: false
377
415
  }, {
378
416
  name: 'destination',
379
- type: new StringType_1.StringType()
417
+ type: new StringType_1.StringType(),
418
+ isOptional: false
380
419
  }]
381
420
  }, {
382
421
  name: 'MoveFile',
@@ -385,10 +424,12 @@ let globalUtilityFunctions = [
385
424
  file: exports.globalFile,
386
425
  params: [{
387
426
  name: 'source',
388
- type: new StringType_1.StringType()
427
+ type: new StringType_1.StringType(),
428
+ isOptional: false
389
429
  }, {
390
430
  name: 'destination',
391
- type: new StringType_1.StringType()
431
+ type: new StringType_1.StringType(),
432
+ isOptional: false
392
433
  }]
393
434
  }, {
394
435
  name: 'MatchFiles',
@@ -407,10 +448,12 @@ The characters '?', '*' and '[' lose their special meaning if preceded by a sing
407
448
  file: exports.globalFile,
408
449
  params: [{
409
450
  name: 'path',
410
- type: new StringType_1.StringType()
451
+ type: new StringType_1.StringType(),
452
+ isOptional: false
411
453
  }, {
412
454
  name: 'pattern_in',
413
- type: new StringType_1.StringType()
455
+ type: new StringType_1.StringType(),
456
+ isOptional: false
414
457
  }]
415
458
  }, {
416
459
  name: 'DeleteFile',
@@ -419,7 +462,8 @@ The characters '?', '*' and '[' lose their special meaning if preceded by a sing
419
462
  file: exports.globalFile,
420
463
  params: [{
421
464
  name: 'file',
422
- type: new StringType_1.StringType()
465
+ type: new StringType_1.StringType(),
466
+ isOptional: false
423
467
  }]
424
468
  }, {
425
469
  name: 'DeleteDirectory',
@@ -428,7 +472,8 @@ The characters '?', '*' and '[' lose their special meaning if preceded by a sing
428
472
  file: exports.globalFile,
429
473
  params: [{
430
474
  name: 'dir',
431
- type: new StringType_1.StringType()
475
+ type: new StringType_1.StringType(),
476
+ isOptional: false
432
477
  }]
433
478
  }, {
434
479
  name: 'CreateDirectory',
@@ -437,7 +482,8 @@ The characters '?', '*' and '[' lose their special meaning if preceded by a sing
437
482
  file: exports.globalFile,
438
483
  params: [{
439
484
  name: 'dir',
440
- type: new StringType_1.StringType()
485
+ type: new StringType_1.StringType(),
486
+ isOptional: false
441
487
  }]
442
488
  }, {
443
489
  name: 'FormatDrive',
@@ -446,10 +492,12 @@ The characters '?', '*' and '[' lose their special meaning if preceded by a sing
446
492
  file: exports.globalFile,
447
493
  params: [{
448
494
  name: 'drive',
449
- type: new StringType_1.StringType()
495
+ type: new StringType_1.StringType(),
496
+ isOptional: false
450
497
  }, {
451
498
  name: 'fs_type',
452
- type: new StringType_1.StringType()
499
+ type: new StringType_1.StringType(),
500
+ isOptional: false
453
501
  }]
454
502
  }, {
455
503
  name: 'StrToI',
@@ -458,7 +506,8 @@ The characters '?', '*' and '[' lose their special meaning if preceded by a sing
458
506
  file: exports.globalFile,
459
507
  params: [{
460
508
  name: 'str',
461
- type: new StringType_1.StringType()
509
+ type: new StringType_1.StringType(),
510
+ isOptional: false
462
511
  }]
463
512
  }, {
464
513
  name: 'RunGarbageCollector',
@@ -477,7 +526,8 @@ An error will be returned if arrays/associative arrays are nested more than 256
477
526
  file: exports.globalFile,
478
527
  params: [{
479
528
  name: 'jsonString',
480
- type: new StringType_1.StringType()
529
+ type: new StringType_1.StringType(),
530
+ isOptional: false
481
531
  },
482
532
  {
483
533
  name: 'flags',
@@ -499,7 +549,8 @@ Normally non-ASCII characters are escaped in the output string as "\\uXXXX" wher
499
549
  file: exports.globalFile,
500
550
  params: [{
501
551
  name: 'object',
502
- type: new ObjectType_1.ObjectType()
552
+ type: new ObjectType_1.ObjectType(),
553
+ isOptional: false
503
554
  }, {
504
555
  name: 'flags',
505
556
  type: new StringType_1.StringType(),
@@ -515,7 +566,8 @@ One way to accomplish that is to use the Replace method on the string value retu
515
566
  file: exports.globalFile,
516
567
  params: [{
517
568
  name: 'source',
518
- type: new StringType_1.StringType()
569
+ type: new StringType_1.StringType(),
570
+ isOptional: false
519
571
  }]
520
572
  }
521
573
  ];
@@ -527,7 +579,8 @@ let globalStringFunctions = [
527
579
  file: exports.globalFile,
528
580
  params: [{
529
581
  name: 's',
530
- type: new StringType_1.StringType()
582
+ type: new StringType_1.StringType(),
583
+ isOptional: false
531
584
  }]
532
585
  }, {
533
586
  name: 'LCase',
@@ -536,7 +589,8 @@ let globalStringFunctions = [
536
589
  file: exports.globalFile,
537
590
  params: [{
538
591
  name: 's',
539
- type: new StringType_1.StringType()
592
+ type: new StringType_1.StringType(),
593
+ isOptional: false
540
594
  }]
541
595
  }, {
542
596
  name: 'Asc',
@@ -545,7 +599,8 @@ let globalStringFunctions = [
545
599
  file: exports.globalFile,
546
600
  params: [{
547
601
  name: 'letter',
548
- type: new StringType_1.StringType()
602
+ type: new StringType_1.StringType(),
603
+ isOptional: false
549
604
  }]
550
605
  }, {
551
606
  name: 'Chr',
@@ -560,7 +615,8 @@ By using Chr, you can create strings containing characters which cannot be conta
560
615
  file: exports.globalFile,
561
616
  params: [{
562
617
  name: 'ch',
563
- type: new IntegerType_1.IntegerType()
618
+ type: new IntegerType_1.IntegerType(),
619
+ isOptional: false
564
620
  }]
565
621
  }, {
566
622
  name: 'Instr',
@@ -569,13 +625,16 @@ By using Chr, you can create strings containing characters which cannot be conta
569
625
  file: exports.globalFile,
570
626
  params: [{
571
627
  name: 'start',
572
- type: new IntegerType_1.IntegerType()
628
+ type: new IntegerType_1.IntegerType(),
629
+ isOptional: false
573
630
  }, {
574
631
  name: 'text',
575
- type: new StringType_1.StringType()
632
+ type: new StringType_1.StringType(),
633
+ isOptional: false
576
634
  }, {
577
635
  name: 'substring',
578
- type: new StringType_1.StringType()
636
+ type: new StringType_1.StringType(),
637
+ isOptional: false
579
638
  }]
580
639
  }, {
581
640
  name: 'Left',
@@ -584,10 +643,12 @@ By using Chr, you can create strings containing characters which cannot be conta
584
643
  file: exports.globalFile,
585
644
  params: [{
586
645
  name: 's',
587
- type: new StringType_1.StringType()
646
+ type: new StringType_1.StringType(),
647
+ isOptional: false
588
648
  }, {
589
649
  name: 'n',
590
- type: new IntegerType_1.IntegerType()
650
+ type: new IntegerType_1.IntegerType(),
651
+ isOptional: false
591
652
  }]
592
653
  }, {
593
654
  name: 'Len',
@@ -596,7 +657,8 @@ By using Chr, you can create strings containing characters which cannot be conta
596
657
  file: exports.globalFile,
597
658
  params: [{
598
659
  name: 's',
599
- type: new StringType_1.StringType()
660
+ type: new StringType_1.StringType(),
661
+ isOptional: false
600
662
  }]
601
663
  }, {
602
664
  name: 'Mid',
@@ -605,10 +667,12 @@ By using Chr, you can create strings containing characters which cannot be conta
605
667
  file: exports.globalFile,
606
668
  params: [{
607
669
  name: 's',
608
- type: new StringType_1.StringType()
670
+ type: new StringType_1.StringType(),
671
+ isOptional: false
609
672
  }, {
610
673
  name: 'p',
611
- description: '1-based position',
674
+ //description: '1-based position',
675
+ isOptional: false,
612
676
  type: new IntegerType_1.IntegerType()
613
677
  }, {
614
678
  name: 'n',
@@ -622,10 +686,12 @@ By using Chr, you can create strings containing characters which cannot be conta
622
686
  file: exports.globalFile,
623
687
  params: [{
624
688
  name: 's',
625
- type: new StringType_1.StringType()
689
+ type: new StringType_1.StringType(),
690
+ isOptional: false
626
691
  }, {
627
692
  name: 'n',
628
- type: new IntegerType_1.IntegerType()
693
+ type: new IntegerType_1.IntegerType(),
694
+ isOptional: false
629
695
  }]
630
696
  }, {
631
697
  name: 'Str',
@@ -634,7 +700,8 @@ By using Chr, you can create strings containing characters which cannot be conta
634
700
  file: exports.globalFile,
635
701
  params: [{
636
702
  name: 'value',
637
- type: new FloatType_1.FloatType()
703
+ type: new FloatType_1.FloatType(),
704
+ isOptional: false
638
705
  }]
639
706
  }, {
640
707
  name: 'StrI',
@@ -643,7 +710,8 @@ By using Chr, you can create strings containing characters which cannot be conta
643
710
  file: exports.globalFile,
644
711
  params: [{
645
712
  name: 'value',
646
- type: new IntegerType_1.IntegerType()
713
+ type: new IntegerType_1.IntegerType(),
714
+ isOptional: false
647
715
  }, {
648
716
  name: 'radix',
649
717
  type: new IntegerType_1.IntegerType(),
@@ -656,10 +724,12 @@ By using Chr, you can create strings containing characters which cannot be conta
656
724
  file: exports.globalFile,
657
725
  params: [{
658
726
  name: 'n',
659
- type: new IntegerType_1.IntegerType()
727
+ type: new IntegerType_1.IntegerType(),
728
+ isOptional: false
660
729
  }, {
661
730
  name: 'str',
662
- type: new StringType_1.StringType()
731
+ type: new StringType_1.StringType(),
732
+ isOptional: false
663
733
  }]
664
734
  }, {
665
735
  name: 'StringI',
@@ -668,10 +738,12 @@ By using Chr, you can create strings containing characters which cannot be conta
668
738
  file: exports.globalFile,
669
739
  params: [{
670
740
  name: 'n',
671
- type: new IntegerType_1.IntegerType()
741
+ type: new IntegerType_1.IntegerType(),
742
+ isOptional: false
672
743
  }, {
673
744
  name: 'ch',
674
- type: new IntegerType_1.IntegerType()
745
+ type: new IntegerType_1.IntegerType(),
746
+ isOptional: false
675
747
  }]
676
748
  }, {
677
749
  name: 'Val',
@@ -680,7 +752,8 @@ By using Chr, you can create strings containing characters which cannot be conta
680
752
  file: exports.globalFile,
681
753
  params: [{
682
754
  name: 'str',
683
- type: new StringType_1.StringType()
755
+ type: new StringType_1.StringType(),
756
+ isOptional: false
684
757
  }]
685
758
  }, {
686
759
  name: 'Val',
@@ -689,7 +762,8 @@ By using Chr, you can create strings containing characters which cannot be conta
689
762
  file: exports.globalFile,
690
763
  params: [{
691
764
  name: 'str',
692
- type: new StringType_1.StringType()
765
+ type: new StringType_1.StringType(),
766
+ isOptional: false
693
767
  }, {
694
768
  name: 'radix',
695
769
  type: new IntegerType_1.IntegerType(),
@@ -702,19 +776,24 @@ By using Chr, you can create strings containing characters which cannot be conta
702
776
  file: exports.globalFile,
703
777
  params: [{
704
778
  name: 'str',
705
- type: new StringType_1.StringType()
779
+ type: new StringType_1.StringType(),
780
+ isOptional: false
706
781
  }, {
707
782
  name: 'arg0',
708
- type: new StringType_1.StringType()
783
+ type: new StringType_1.StringType(),
784
+ isOptional: false
709
785
  }, {
710
786
  name: 'arg1',
711
- type: new StringType_1.StringType()
787
+ type: new StringType_1.StringType(),
788
+ isOptional: true
712
789
  }, {
713
790
  name: 'arg2',
714
- type: new StringType_1.StringType()
791
+ type: new StringType_1.StringType(),
792
+ isOptional: true
715
793
  }, {
716
794
  name: 'arg3',
717
- type: new StringType_1.StringType()
795
+ type: new StringType_1.StringType(),
796
+ isOptional: true
718
797
  }]
719
798
  }
720
799
  ];
@@ -726,7 +805,8 @@ let programStatementFunctions = [
726
805
  file: exports.globalFile,
727
806
  params: [{
728
807
  name: 'expression',
729
- type: new IntegerType_1.IntegerType()
808
+ type: new IntegerType_1.IntegerType(),
809
+ isOptional: false
730
810
  }]
731
811
  }, {
732
812
  name: 'Pos',
@@ -735,7 +815,8 @@ let programStatementFunctions = [
735
815
  file: exports.globalFile,
736
816
  params: [{
737
817
  name: 'x',
738
- type: new IntegerType_1.IntegerType()
818
+ type: new IntegerType_1.IntegerType(),
819
+ isOptional: false
739
820
  }]
740
821
  //TODO this is a temporary fix for library imported files. Eventually this should be moved into `Roku_Ads.brs` and handled by the `Library` statement
741
822
  }, {
@@ -770,7 +851,8 @@ let programStatementFunctions = [
770
851
  file: exports.globalFile,
771
852
  params: [{
772
853
  name: 'ascii',
773
- type: new StringType_1.StringType()
854
+ type: new StringType_1.StringType(),
855
+ isOptional: false
774
856
  }]
775
857
  }, {
776
858
  name: 'HexToAscii',
@@ -779,7 +861,8 @@ let programStatementFunctions = [
779
861
  file: exports.globalFile,
780
862
  params: [{
781
863
  name: 'hex',
782
- type: new StringType_1.StringType()
864
+ type: new StringType_1.StringType(),
865
+ isOptional: false
783
866
  }]
784
867
  },
785
868
  {
@@ -789,7 +872,8 @@ let programStatementFunctions = [
789
872
  file: exports.globalFile,
790
873
  params: [{
791
874
  name: 'hex',
792
- type: new StringType_1.StringType()
875
+ type: new StringType_1.StringType(),
876
+ isOptional: false
793
877
  }]
794
878
  }, {
795
879
  name: 'HexToInteger',
@@ -798,7 +882,8 @@ let programStatementFunctions = [
798
882
  file: exports.globalFile,
799
883
  params: [{
800
884
  name: 'hex',
801
- type: new StringType_1.StringType()
885
+ type: new StringType_1.StringType(),
886
+ isOptional: false
802
887
  }]
803
888
  }, {
804
889
  name: 'dfNewBitmapSet',
@@ -813,7 +898,8 @@ Backgrounds: roAssociativeArray of name, path pairs.`,
813
898
  file: exports.globalFile,
814
899
  params: [{
815
900
  name: 'filename',
816
- type: new StringType_1.StringType()
901
+ type: new StringType_1.StringType(),
902
+ isOptional: false
817
903
  }]
818
904
  }, {
819
905
  name: 'dfDrawMessage',
@@ -822,10 +908,12 @@ Backgrounds: roAssociativeArray of name, path pairs.`,
822
908
  file: exports.globalFile,
823
909
  params: [{
824
910
  name: 'dest',
825
- type: new ObjectType_1.ObjectType()
911
+ type: new ObjectType_1.ObjectType(),
912
+ isOptional: false
826
913
  }, {
827
914
  name: 'region',
828
- type: new ObjectType_1.ObjectType()
915
+ type: new ObjectType_1.ObjectType(),
916
+ isOptional: false
829
917
  }]
830
918
  }, {
831
919
  name: 'dfDrawImage',
@@ -834,16 +922,20 @@ Backgrounds: roAssociativeArray of name, path pairs.`,
834
922
  file: exports.globalFile,
835
923
  params: [{
836
924
  name: 'dest',
837
- type: new ObjectType_1.ObjectType()
925
+ type: new ObjectType_1.ObjectType(),
926
+ isOptional: false
838
927
  }, {
839
928
  name: 'path',
840
- type: new StringType_1.StringType()
929
+ type: new StringType_1.StringType(),
930
+ isOptional: false
841
931
  }, {
842
932
  name: 'x',
843
- type: new IntegerType_1.IntegerType()
933
+ type: new IntegerType_1.IntegerType(),
934
+ isOptional: false
844
935
  }, {
845
936
  name: 'y',
846
- type: new IntegerType_1.IntegerType()
937
+ type: new IntegerType_1.IntegerType(),
938
+ isOptional: false
847
939
  }]
848
940
  }, {
849
941
  name: 'dfSetupDisplayRegions',
@@ -863,19 +955,24 @@ When using these regions as drawables, your graphics will be translated and clip
863
955
  file: exports.globalFile,
864
956
  params: [{
865
957
  name: 'screen',
866
- type: new ObjectType_1.ObjectType()
958
+ type: new ObjectType_1.ObjectType(),
959
+ isOptional: false
867
960
  }, {
868
961
  name: 'topx',
869
- type: new IntegerType_1.IntegerType()
962
+ type: new IntegerType_1.IntegerType(),
963
+ isOptional: false
870
964
  }, {
871
965
  name: 'topy',
872
- type: new IntegerType_1.IntegerType()
966
+ type: new IntegerType_1.IntegerType(),
967
+ isOptional: false
873
968
  }, {
874
969
  name: 'width',
875
- type: new IntegerType_1.IntegerType()
970
+ type: new IntegerType_1.IntegerType(),
971
+ isOptional: false
876
972
  }, {
877
973
  name: 'height',
878
- type: new IntegerType_1.IntegerType()
974
+ type: new IntegerType_1.IntegerType(),
975
+ isOptional: false
879
976
  }]
880
977
  }, {
881
978
  name: 'dfSetBackground',
@@ -887,10 +984,12 @@ This function creates an roBitmap out of the background image file and returns a
887
984
  file: exports.globalFile,
888
985
  params: [{
889
986
  name: 'backgroundName',
890
- type: new StringType_1.StringType()
987
+ type: new StringType_1.StringType(),
988
+ isOptional: false
891
989
  }, {
892
990
  name: 'backgrounds',
893
- type: new ObjectType_1.ObjectType()
991
+ type: new ObjectType_1.ObjectType(),
992
+ isOptional: false
894
993
  }]
895
994
  }
896
995
  ];