firefly-compiler 0.5.11 → 0.5.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/compiler/JsEmitter.ff
CHANGED
|
@@ -385,14 +385,14 @@ extend self: JsEmitter {
|
|
|
385
385
|
let call = functionCode + "(" + [...emittedArguments, ...ds, ...controller].join(", ") + ")"
|
|
386
386
|
if(await) {"(await " + call + ")"} else {call}
|
|
387
387
|
| [Pair(EVariant(_, "ff:core/Bool.True", _, _), elseBody), ...list] =>
|
|
388
|
-
"(" + list.foldLeft(self.
|
|
389
|
-
self.
|
|
390
|
-
"\n? " + self.
|
|
388
|
+
"(" + list.foldLeft(self.emitComma(elseBody, async)) {| otherwise, Pair(condition, body) =>
|
|
389
|
+
self.emitComma(condition, async) +
|
|
390
|
+
"\n? " + self.emitComma(body, async) + "\n: " + otherwise
|
|
391
391
|
} + ")"
|
|
392
392
|
| list =>
|
|
393
393
|
"(" + list.foldLeft("ff_core_Option.None()") {| otherwise, Pair(condition, body) =>
|
|
394
|
-
self.
|
|
395
|
-
"\n? ff_core_Option.Some(" + self.
|
|
394
|
+
self.emitComma(condition, async) +
|
|
395
|
+
"\n? ff_core_Option.Some(" + self.emitComma(body, async) + ")\n: " + otherwise
|
|
396
396
|
} + ")"
|
|
397
397
|
}
|
|
398
398
|
| ECall(at, DynamicCall(function, _), effect, typeArguments, arguments, dictionaries) =>
|
|
@@ -1081,13 +1081,22 @@ extend self: JsEmitter {
|
|
|
1081
1081
|
|
|
1082
1082
|
emitComma(term: Term, async: Bool): String {
|
|
1083
1083
|
term.{
|
|
1084
|
+
| ESequential(_, ESequential(_, ESequential(_, before1, before2), before3), after) {
|
|
1085
|
+
safeCommable(before1) && safeCommable(before2) && safeCommable(before3) && safeCommable(after)
|
|
1086
|
+
} =>
|
|
1087
|
+
"(" + self.emitStatements(before1, False, async) + ", " +
|
|
1088
|
+
self.emitStatements(before2, False, async) + ", " +
|
|
1089
|
+
self.emitStatements(before3, False, async) + ", " +
|
|
1090
|
+
self.emitTerm(after, async) + ")"
|
|
1084
1091
|
| ESequential(_, ESequential(_, before1, before2), after) {
|
|
1085
|
-
safeCommable(before1) && safeCommable(before2)
|
|
1092
|
+
safeCommable(before1) && safeCommable(before2) && safeCommable(after)
|
|
1086
1093
|
} =>
|
|
1087
1094
|
"(" + self.emitStatements(before1, False, async) + ", " +
|
|
1088
1095
|
self.emitStatements(before2, False, async) + ", " +
|
|
1089
1096
|
self.emitTerm(after, async) + ")"
|
|
1090
|
-
| ESequential(_, before, after) {
|
|
1097
|
+
| ESequential(_, before, after) {
|
|
1098
|
+
safeCommable(before) && safeCommable(after)
|
|
1099
|
+
} =>
|
|
1091
1100
|
"(" + self.emitStatements(before, False, async) + ", " +
|
|
1092
1101
|
self.emitTerm(after, async) + ")"
|
|
1093
1102
|
| _ =>
|
|
@@ -1134,10 +1143,16 @@ safeCommable(term: Term): Bool {
|
|
|
1134
1143
|
| EAssign _ => True
|
|
1135
1144
|
| EAssignField _ => True
|
|
1136
1145
|
| ECall _ => True
|
|
1146
|
+
| ECopy _ => True
|
|
1147
|
+
| EVariant _ => True
|
|
1137
1148
|
| EString(_, _) => True
|
|
1138
1149
|
| EInt(_, _) => True
|
|
1139
1150
|
| EChar(_, _) => True
|
|
1140
1151
|
| EFloat(_, _) => True
|
|
1152
|
+
| EList _ => True
|
|
1153
|
+
| EPipe _ => True
|
|
1154
|
+
| ERecord _ => True
|
|
1155
|
+
| EWildcard _ => True
|
|
1141
1156
|
| _ => False
|
|
1142
1157
|
}
|
|
1143
1158
|
}
|
|
@@ -202,10 +202,7 @@ const packageDirectory_ = ((ff_core_Path.Path_extension(path_) === ".ff")
|
|
|
202
202
|
const sharedPackageFile_ = ff_core_Path.Path_slash(ff_core_Path.Path_slash(packageDirectory_, ".firefly"), "package.ff");
|
|
203
203
|
const packageFile_ = (ff_core_Path.Path_exists(sharedPackageFile_, false, false, false)
|
|
204
204
|
? sharedPackageFile_
|
|
205
|
-
: (
|
|
206
|
-
self_.singleFilePackages_ = ff_core_Set.Set_add(self_.singleFilePackages_, packagePair_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair);
|
|
207
|
-
return path_
|
|
208
|
-
})());
|
|
205
|
+
: (self_.singleFilePackages_ = ff_core_Set.Set_add(self_.singleFilePackages_, packagePair_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), path_));
|
|
209
206
|
const code_ = ff_core_Path.Path_readText(packageFile_);
|
|
210
207
|
return ff_compiler_Dependencies.Dependencies_parsePackageFile(self_, packagePair_, ff_core_Path.Path_relativeTo(packageFile_, path_), code_)
|
|
211
208
|
}
|
|
@@ -307,10 +304,7 @@ const packageDirectory_ = (((await ff_core_Path.Path_extension$(path_, $task)) =
|
|
|
307
304
|
const sharedPackageFile_ = (await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$(packageDirectory_, ".firefly", $task)), "package.ff", $task));
|
|
308
305
|
const packageFile_ = ((await ff_core_Path.Path_exists$(sharedPackageFile_, false, false, false, $task))
|
|
309
306
|
? sharedPackageFile_
|
|
310
|
-
: (
|
|
311
|
-
self_.singleFilePackages_ = ff_core_Set.Set_add(self_.singleFilePackages_, packagePair_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair);
|
|
312
|
-
return path_
|
|
313
|
-
})()));
|
|
307
|
+
: (self_.singleFilePackages_ = ff_core_Set.Set_add(self_.singleFilePackages_, packagePair_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), path_));
|
|
314
308
|
const code_ = (await ff_core_Path.Path_readText$(packageFile_, $task));
|
|
315
309
|
return (await ff_compiler_Dependencies.Dependencies_parsePackageFile$(self_, packagePair_, (await ff_core_Path.Path_relativeTo$(packageFile_, path_, $task)), code_, $task))
|
|
316
310
|
}
|
|
@@ -210,6 +210,12 @@ return true
|
|
|
210
210
|
if(_1.ECall) {
|
|
211
211
|
return true
|
|
212
212
|
}
|
|
213
|
+
if(_1.ECopy) {
|
|
214
|
+
return true
|
|
215
|
+
}
|
|
216
|
+
if(_1.EVariant) {
|
|
217
|
+
return true
|
|
218
|
+
}
|
|
213
219
|
if(_1.EString) {
|
|
214
220
|
return true
|
|
215
221
|
}
|
|
@@ -222,6 +228,18 @@ return true
|
|
|
222
228
|
if(_1.EFloat) {
|
|
223
229
|
return true
|
|
224
230
|
}
|
|
231
|
+
if(_1.EList) {
|
|
232
|
+
return true
|
|
233
|
+
}
|
|
234
|
+
if(_1.EPipe) {
|
|
235
|
+
return true
|
|
236
|
+
}
|
|
237
|
+
if(_1.ERecord) {
|
|
238
|
+
return true
|
|
239
|
+
}
|
|
240
|
+
if(_1.EWildcard) {
|
|
241
|
+
return true
|
|
242
|
+
}
|
|
225
243
|
{
|
|
226
244
|
return false
|
|
227
245
|
}
|
|
@@ -445,6 +463,12 @@ return true
|
|
|
445
463
|
if(_1.ECall) {
|
|
446
464
|
return true
|
|
447
465
|
}
|
|
466
|
+
if(_1.ECopy) {
|
|
467
|
+
return true
|
|
468
|
+
}
|
|
469
|
+
if(_1.EVariant) {
|
|
470
|
+
return true
|
|
471
|
+
}
|
|
448
472
|
if(_1.EString) {
|
|
449
473
|
return true
|
|
450
474
|
}
|
|
@@ -457,6 +481,18 @@ return true
|
|
|
457
481
|
if(_1.EFloat) {
|
|
458
482
|
return true
|
|
459
483
|
}
|
|
484
|
+
if(_1.EList) {
|
|
485
|
+
return true
|
|
486
|
+
}
|
|
487
|
+
if(_1.EPipe) {
|
|
488
|
+
return true
|
|
489
|
+
}
|
|
490
|
+
if(_1.ERecord) {
|
|
491
|
+
return true
|
|
492
|
+
}
|
|
493
|
+
if(_1.EWildcard) {
|
|
494
|
+
return true
|
|
495
|
+
}
|
|
460
496
|
{
|
|
461
497
|
return false
|
|
462
498
|
}
|
|
@@ -1177,12 +1213,12 @@ return
|
|
|
1177
1213
|
if(_1.length >= 1 && _1[0].first_.EVariant && _1[0].first_.name_ === "ff:core/Bool.True") {
|
|
1178
1214
|
const elseBody_ = _1[0].second_;
|
|
1179
1215
|
const list_ = _1.slice(1);
|
|
1180
|
-
return (("(" + ff_core_List.List_foldLeft(list_, ff_compiler_JsEmitter.
|
|
1216
|
+
return (("(" + ff_core_List.List_foldLeft(list_, ff_compiler_JsEmitter.JsEmitter_emitComma(self_, elseBody_, async_), ((_1, _2) => {
|
|
1181
1217
|
{
|
|
1182
1218
|
const otherwise_ = _1;
|
|
1183
1219
|
const condition_ = _2.first_;
|
|
1184
1220
|
const body_ = _2.second_;
|
|
1185
|
-
return ((((ff_compiler_JsEmitter.
|
|
1221
|
+
return ((((ff_compiler_JsEmitter.JsEmitter_emitComma(self_, condition_, async_) + "\n? ") + ff_compiler_JsEmitter.JsEmitter_emitComma(self_, body_, async_)) + "\n: ") + otherwise_)
|
|
1186
1222
|
}
|
|
1187
1223
|
}))) + ")")
|
|
1188
1224
|
return
|
|
@@ -1194,7 +1230,7 @@ return (("(" + ff_core_List.List_foldLeft(list_, "ff_core_Option.None()", ((_1,
|
|
|
1194
1230
|
const otherwise_ = _1;
|
|
1195
1231
|
const condition_ = _2.first_;
|
|
1196
1232
|
const body_ = _2.second_;
|
|
1197
|
-
return ((((ff_compiler_JsEmitter.
|
|
1233
|
+
return ((((ff_compiler_JsEmitter.JsEmitter_emitComma(self_, condition_, async_) + "\n? ff_core_Option.Some(") + ff_compiler_JsEmitter.JsEmitter_emitComma(self_, body_, async_)) + ")\n: ") + otherwise_)
|
|
1198
1234
|
}
|
|
1199
1235
|
}))) + ")")
|
|
1200
1236
|
return
|
|
@@ -2523,18 +2559,27 @@ return ff_compiler_JsEmitter.JsEmitter_emitTerm(self_, value_, async_)
|
|
|
2523
2559
|
export function JsEmitter_emitComma(self_, term_, async_) {
|
|
2524
2560
|
{
|
|
2525
2561
|
const _1 = term_;
|
|
2562
|
+
if(_1.ESequential && _1.before_.ESequential && _1.before_.before_.ESequential) {
|
|
2563
|
+
const before1_ = _1.before_.before_.before_;
|
|
2564
|
+
const before2_ = _1.before_.before_.after_;
|
|
2565
|
+
const before3_ = _1.before_.after_;
|
|
2566
|
+
const after_ = _1.after_;
|
|
2567
|
+
if((((ff_compiler_JsEmitter.safeCommable_(before1_) && ff_compiler_JsEmitter.safeCommable_(before2_)) && ff_compiler_JsEmitter.safeCommable_(before3_)) && ff_compiler_JsEmitter.safeCommable_(after_))) {
|
|
2568
|
+
return (((((((("(" + ff_compiler_JsEmitter.JsEmitter_emitStatements(self_, before1_, false, async_)) + ", ") + ff_compiler_JsEmitter.JsEmitter_emitStatements(self_, before2_, false, async_)) + ", ") + ff_compiler_JsEmitter.JsEmitter_emitStatements(self_, before3_, false, async_)) + ", ") + ff_compiler_JsEmitter.JsEmitter_emitTerm(self_, after_, async_)) + ")")
|
|
2569
|
+
}
|
|
2570
|
+
}
|
|
2526
2571
|
if(_1.ESequential && _1.before_.ESequential) {
|
|
2527
2572
|
const before1_ = _1.before_.before_;
|
|
2528
2573
|
const before2_ = _1.before_.after_;
|
|
2529
2574
|
const after_ = _1.after_;
|
|
2530
|
-
if((ff_compiler_JsEmitter.safeCommable_(before1_) && ff_compiler_JsEmitter.safeCommable_(before2_))) {
|
|
2575
|
+
if(((ff_compiler_JsEmitter.safeCommable_(before1_) && ff_compiler_JsEmitter.safeCommable_(before2_)) && ff_compiler_JsEmitter.safeCommable_(after_))) {
|
|
2531
2576
|
return (((((("(" + ff_compiler_JsEmitter.JsEmitter_emitStatements(self_, before1_, false, async_)) + ", ") + ff_compiler_JsEmitter.JsEmitter_emitStatements(self_, before2_, false, async_)) + ", ") + ff_compiler_JsEmitter.JsEmitter_emitTerm(self_, after_, async_)) + ")")
|
|
2532
2577
|
}
|
|
2533
2578
|
}
|
|
2534
2579
|
if(_1.ESequential) {
|
|
2535
2580
|
const before_ = _1.before_;
|
|
2536
2581
|
const after_ = _1.after_;
|
|
2537
|
-
if(ff_compiler_JsEmitter.safeCommable_(before_)) {
|
|
2582
|
+
if((ff_compiler_JsEmitter.safeCommable_(before_) && ff_compiler_JsEmitter.safeCommable_(after_))) {
|
|
2538
2583
|
return (((("(" + ff_compiler_JsEmitter.JsEmitter_emitStatements(self_, before_, false, async_)) + ", ") + ff_compiler_JsEmitter.JsEmitter_emitTerm(self_, after_, async_)) + ")")
|
|
2539
2584
|
}
|
|
2540
2585
|
}
|
|
@@ -3121,12 +3166,12 @@ return
|
|
|
3121
3166
|
if(_1.length >= 1 && _1[0].first_.EVariant && _1[0].first_.name_ === "ff:core/Bool.True") {
|
|
3122
3167
|
const elseBody_ = _1[0].second_;
|
|
3123
3168
|
const list_ = _1.slice(1);
|
|
3124
|
-
return (("(" + (await ff_core_List.List_foldLeft$(list_, (await ff_compiler_JsEmitter.
|
|
3169
|
+
return (("(" + (await ff_core_List.List_foldLeft$(list_, (await ff_compiler_JsEmitter.JsEmitter_emitComma$(self_, elseBody_, async_, $task)), (async (_1, _2, $task) => {
|
|
3125
3170
|
{
|
|
3126
3171
|
const otherwise_ = _1;
|
|
3127
3172
|
const condition_ = _2.first_;
|
|
3128
3173
|
const body_ = _2.second_;
|
|
3129
|
-
return (((((await ff_compiler_JsEmitter.
|
|
3174
|
+
return (((((await ff_compiler_JsEmitter.JsEmitter_emitComma$(self_, condition_, async_, $task)) + "\n? ") + (await ff_compiler_JsEmitter.JsEmitter_emitComma$(self_, body_, async_, $task))) + "\n: ") + otherwise_)
|
|
3130
3175
|
}
|
|
3131
3176
|
}), $task))) + ")")
|
|
3132
3177
|
return
|
|
@@ -3138,7 +3183,7 @@ return (("(" + (await ff_core_List.List_foldLeft$(list_, "ff_core_Option.None()"
|
|
|
3138
3183
|
const otherwise_ = _1;
|
|
3139
3184
|
const condition_ = _2.first_;
|
|
3140
3185
|
const body_ = _2.second_;
|
|
3141
|
-
return (((((await ff_compiler_JsEmitter.
|
|
3186
|
+
return (((((await ff_compiler_JsEmitter.JsEmitter_emitComma$(self_, condition_, async_, $task)) + "\n? ff_core_Option.Some(") + (await ff_compiler_JsEmitter.JsEmitter_emitComma$(self_, body_, async_, $task))) + ")\n: ") + otherwise_)
|
|
3142
3187
|
}
|
|
3143
3188
|
}), $task))) + ")")
|
|
3144
3189
|
return
|
|
@@ -4467,18 +4512,27 @@ return (await ff_compiler_JsEmitter.JsEmitter_emitTerm$(self_, value_, async_, $
|
|
|
4467
4512
|
export async function JsEmitter_emitComma$(self_, term_, async_, $task) {
|
|
4468
4513
|
{
|
|
4469
4514
|
const _1 = term_;
|
|
4515
|
+
if(_1.ESequential && _1.before_.ESequential && _1.before_.before_.ESequential) {
|
|
4516
|
+
const before1_ = _1.before_.before_.before_;
|
|
4517
|
+
const before2_ = _1.before_.before_.after_;
|
|
4518
|
+
const before3_ = _1.before_.after_;
|
|
4519
|
+
const after_ = _1.after_;
|
|
4520
|
+
if((((ff_compiler_JsEmitter.safeCommable_(before1_) && ff_compiler_JsEmitter.safeCommable_(before2_)) && ff_compiler_JsEmitter.safeCommable_(before3_)) && ff_compiler_JsEmitter.safeCommable_(after_))) {
|
|
4521
|
+
return (((((((("(" + (await ff_compiler_JsEmitter.JsEmitter_emitStatements$(self_, before1_, false, async_, $task))) + ", ") + (await ff_compiler_JsEmitter.JsEmitter_emitStatements$(self_, before2_, false, async_, $task))) + ", ") + (await ff_compiler_JsEmitter.JsEmitter_emitStatements$(self_, before3_, false, async_, $task))) + ", ") + (await ff_compiler_JsEmitter.JsEmitter_emitTerm$(self_, after_, async_, $task))) + ")")
|
|
4522
|
+
}
|
|
4523
|
+
}
|
|
4470
4524
|
if(_1.ESequential && _1.before_.ESequential) {
|
|
4471
4525
|
const before1_ = _1.before_.before_;
|
|
4472
4526
|
const before2_ = _1.before_.after_;
|
|
4473
4527
|
const after_ = _1.after_;
|
|
4474
|
-
if((ff_compiler_JsEmitter.safeCommable_(before1_) && ff_compiler_JsEmitter.safeCommable_(before2_))) {
|
|
4528
|
+
if(((ff_compiler_JsEmitter.safeCommable_(before1_) && ff_compiler_JsEmitter.safeCommable_(before2_)) && ff_compiler_JsEmitter.safeCommable_(after_))) {
|
|
4475
4529
|
return (((((("(" + (await ff_compiler_JsEmitter.JsEmitter_emitStatements$(self_, before1_, false, async_, $task))) + ", ") + (await ff_compiler_JsEmitter.JsEmitter_emitStatements$(self_, before2_, false, async_, $task))) + ", ") + (await ff_compiler_JsEmitter.JsEmitter_emitTerm$(self_, after_, async_, $task))) + ")")
|
|
4476
4530
|
}
|
|
4477
4531
|
}
|
|
4478
4532
|
if(_1.ESequential) {
|
|
4479
4533
|
const before_ = _1.before_;
|
|
4480
4534
|
const after_ = _1.after_;
|
|
4481
|
-
if(ff_compiler_JsEmitter.safeCommable_(before_)) {
|
|
4535
|
+
if((ff_compiler_JsEmitter.safeCommable_(before_) && ff_compiler_JsEmitter.safeCommable_(after_))) {
|
|
4482
4536
|
return (((("(" + (await ff_compiler_JsEmitter.JsEmitter_emitStatements$(self_, before_, false, async_, $task))) + ", ") + (await ff_compiler_JsEmitter.JsEmitter_emitTerm$(self_, after_, async_, $task))) + ")")
|
|
4483
4537
|
}
|
|
4484
4538
|
}
|
|
@@ -414,10 +414,7 @@ ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbol
|
|
|
414
414
|
};
|
|
415
415
|
const nameToken_ = ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LLower());
|
|
416
416
|
const variableType_ = (ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LColon())
|
|
417
|
-
? (
|
|
418
|
-
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LColon());
|
|
419
|
-
return ff_compiler_Parser.Parser_parseType(self_)
|
|
420
|
-
})()
|
|
417
|
+
? (ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LColon()), ff_compiler_Parser.Parser_parseType(self_))
|
|
421
418
|
: ff_compiler_Parser.Parser_freshUnificationVariable(self_, ff_compiler_Token.Token_at(nameToken_)));
|
|
422
419
|
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssign());
|
|
423
420
|
const value_ = ff_compiler_Parser.Parser_parseTerm(self_);
|
|
@@ -573,10 +570,7 @@ const parameters_ = ((ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_) && (
|
|
|
573
570
|
? []
|
|
574
571
|
: ff_compiler_Parser.Parser_parseFunctionParameters(self_, false));
|
|
575
572
|
const returnType_ = (ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LColon())
|
|
576
|
-
? (
|
|
577
|
-
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LColon());
|
|
578
|
-
return ff_compiler_Parser.Parser_parseType(self_)
|
|
579
|
-
})()
|
|
573
|
+
? (ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LColon()), ff_compiler_Parser.Parser_parseType(self_))
|
|
580
574
|
: ff_compiler_Syntax.TConstructor(ff_compiler_Token.Token_at(ff_compiler_Parser.Parser_current(self_)), "ff:core/Unit.Unit", []));
|
|
581
575
|
const temporaryEffect_ = ff_compiler_Syntax.TConstructor(ff_compiler_Token.Token_at(nameToken_), "TemporaryEffect$", []);
|
|
582
576
|
return ff_compiler_Syntax.Signature(ff_compiler_Token.Token_at(nameToken_), ff_compiler_Token.Token_raw(nameToken_), member_, poly_.generics_, poly_.constraints_, parameters_, returnType_, temporaryEffect_)
|
|
@@ -814,10 +808,7 @@ ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LDot())
|
|
|
814
808
|
};
|
|
815
809
|
const fileToken_ = ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LUpper());
|
|
816
810
|
const alias_ = (ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "as")
|
|
817
|
-
? (
|
|
818
|
-
ff_compiler_Parser.Parser_rawSkip(self_, ff_compiler_Token.LKeyword(), "as");
|
|
819
|
-
return ff_compiler_Token.Token_raw(ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LUpper()))
|
|
820
|
-
})()
|
|
811
|
+
? (ff_compiler_Parser.Parser_rawSkip(self_, ff_compiler_Token.LKeyword(), "as"), ff_compiler_Token.Token_raw(ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LUpper())))
|
|
821
812
|
: ff_compiler_Token.Token_raw(fileToken_));
|
|
822
813
|
const packagePair_ = (ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "from")
|
|
823
814
|
? (function() {
|
|
@@ -908,10 +899,7 @@ if(ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compi
|
|
|
908
899
|
const majorMinor_ = ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LFloat());
|
|
909
900
|
const parts_ = ff_core_String.String_split(ff_compiler_Token.Token_raw(majorMinor_), 46);
|
|
910
901
|
const patch_ = (ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LDot())
|
|
911
|
-
? (
|
|
912
|
-
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LDot());
|
|
913
|
-
return ff_core_String.String_grabInt(ff_compiler_Token.Token_raw(ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LInt())))
|
|
914
|
-
})()
|
|
902
|
+
? (ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LDot()), ff_core_String.String_grabInt(ff_compiler_Token.Token_raw(ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LInt()))))
|
|
915
903
|
: 0);
|
|
916
904
|
return ff_compiler_Syntax.Version(ff_compiler_Token.Token_at(majorMinor_), ff_core_String.String_grabInt(ff_core_List.List_grab(parts_, 0)), ff_core_String.String_grabInt(ff_core_List.List_grab(parts_, 1)), patch_)
|
|
917
905
|
} else {
|
|
@@ -1022,10 +1010,7 @@ ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LColon());
|
|
|
1022
1010
|
const parameterType_ = ff_compiler_Parser.Parser_parseType(self_);
|
|
1023
1011
|
const default_ = ((!ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LAssign()))
|
|
1024
1012
|
? ff_core_Option.None()
|
|
1025
|
-
: (
|
|
1026
|
-
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssign());
|
|
1027
|
-
return ff_core_Option.Some(ff_compiler_Parser.Parser_parseTerm(self_))
|
|
1028
|
-
})());
|
|
1013
|
+
: (ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssign()), ff_core_Option.Some(ff_compiler_Parser.Parser_parseTerm(self_))));
|
|
1029
1014
|
parameters_.array.push(ff_compiler_Syntax.Parameter(ff_compiler_Token.Token_at(parameterNameToken_), mutable_, ff_compiler_Token.Token_raw(parameterNameToken_), parameterType_, default_));
|
|
1030
1015
|
if(lspTrackSymbols_) {
|
|
1031
1016
|
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(parameterNameToken_), ff_compiler_LspHook.SParameter(), ff_compiler_Token.Token_at(parameterNameToken_), ff_compiler_Token.Token_end(parameterNameToken_), ff_compiler_Token.Token_at(lspFirst_), ff_compiler_Token.Token_end(ff_compiler_Parser.Parser_behind(self_))))
|
|
@@ -1187,10 +1172,7 @@ const guardToken_ = ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LBra
|
|
|
1187
1172
|
const term_ = ff_compiler_Parser.Parser_parseStatements(self_);
|
|
1188
1173
|
const p_ = ((!ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LPipe()))
|
|
1189
1174
|
? ff_compiler_Syntax.PVariant(ff_compiler_Token.Token_at(guardToken_), "True", [])
|
|
1190
|
-
: (
|
|
1191
|
-
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LPipe());
|
|
1192
|
-
return ff_compiler_Parser.Parser_parsePattern(self_)
|
|
1193
|
-
})());
|
|
1175
|
+
: (ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LPipe()), ff_compiler_Parser.Parser_parsePattern(self_)));
|
|
1194
1176
|
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LBracketRight());
|
|
1195
1177
|
return ff_compiler_Syntax.MatchGuard(ff_compiler_Token.Token_at(guardToken_), term_, p_)
|
|
1196
1178
|
}
|
|
@@ -1384,10 +1366,7 @@ const keywordToken_ = (mutable_
|
|
|
1384
1366
|
const nameToken_ = ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LLower());
|
|
1385
1367
|
const valueType_ = ((!ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LColon()))
|
|
1386
1368
|
? ff_compiler_Parser.Parser_freshUnificationVariable(self_, ff_compiler_Token.Token_at(nameToken_))
|
|
1387
|
-
: (
|
|
1388
|
-
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LColon());
|
|
1389
|
-
return ff_compiler_Parser.Parser_parseType(self_)
|
|
1390
|
-
})());
|
|
1369
|
+
: (ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LColon()), ff_compiler_Parser.Parser_parseType(self_)));
|
|
1391
1370
|
if((ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_) && (!ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LAssign())))) {
|
|
1392
1371
|
const unit_ = ff_compiler_Syntax.EVariant(ff_compiler_Token.Token_at(keywordToken_), "Unit", [], ff_core_Option.None());
|
|
1393
1372
|
return ff_compiler_Syntax.ELet(ff_compiler_Token.Token_at(nameToken_), mutable_, ff_compiler_Token.Token_raw(nameToken_), valueType_, unit_, unit_)
|
|
@@ -1398,10 +1377,7 @@ if(self_.lspHook_.trackSymbols_) {
|
|
|
1398
1377
|
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(nameToken_), ff_compiler_LspHook.SLet(mutable_), ff_compiler_Token.Token_at(nameToken_), ff_compiler_Token.Token_end(nameToken_), ff_compiler_Token.Token_at(mutableToken_), ff_compiler_Token.Token_end(ff_compiler_Parser.Parser_behind(self_))))
|
|
1399
1378
|
};
|
|
1400
1379
|
const body_ = (ff_compiler_Parser.Parser_currentIsSeparator(self_, ff_compiler_Token.LSemicolon())
|
|
1401
|
-
? (
|
|
1402
|
-
ff_compiler_Parser.Parser_skipSeparator(self_, ff_compiler_Token.LSemicolon());
|
|
1403
|
-
return ff_compiler_Parser.Parser_parseStatements(self_)
|
|
1404
|
-
})()
|
|
1380
|
+
? (ff_compiler_Parser.Parser_skipSeparator(self_, ff_compiler_Token.LSemicolon()), ff_compiler_Parser.Parser_parseStatements(self_))
|
|
1405
1381
|
: ff_compiler_Syntax.EVariant(ff_compiler_Token.Token_at(keywordToken_), "Unit", [], ff_core_Option.None()));
|
|
1406
1382
|
return ff_compiler_Syntax.ELet(ff_compiler_Token.Token_at(nameToken_), mutable_, ff_compiler_Token.Token_raw(nameToken_), valueType_, value_, body_)
|
|
1407
1383
|
}
|
|
@@ -1503,10 +1479,7 @@ return ff_compiler_Parser.Parser_parseFieldsAndCalls(self_)
|
|
|
1503
1479
|
|
|
1504
1480
|
export function Parser_parseFieldsAndCalls(self_) {
|
|
1505
1481
|
const tailCall_ = ((ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LKeyword()) && ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "tailcall"))
|
|
1506
|
-
? (
|
|
1507
|
-
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LKeyword());
|
|
1508
|
-
return true
|
|
1509
|
-
})()
|
|
1482
|
+
? (ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LKeyword()), true)
|
|
1510
1483
|
: false);
|
|
1511
1484
|
let result_ = ff_compiler_Parser.Parser_parseAtom(self_);
|
|
1512
1485
|
while(ff_compiler_Token.Token_is5(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LBracketLeft(), ff_compiler_Token.LColon(), ff_compiler_Token.LDot(), ff_compiler_Token.LArrowThin(), ff_compiler_Token.LUnary())) {
|
|
@@ -1608,19 +1581,10 @@ const target_ = ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EField(ff_comp
|
|
|
1608
1581
|
return ff_compiler_Syntax.ECall(record_.at_, target_, effect_, [], [ff_compiler_Syntax.Argument(member_.at_, ff_core_Option.None(), member_), ...arguments_.first_], [])
|
|
1609
1582
|
} else if(ff_compiler_Token.Token_is3(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LAssign(), ff_compiler_Token.LAssignPlus(), ff_compiler_Token.LAssignMinus())) {
|
|
1610
1583
|
const method_ = (ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LAssign())
|
|
1611
|
-
? (
|
|
1612
|
-
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssign());
|
|
1613
|
-
return "set"
|
|
1614
|
-
})()
|
|
1584
|
+
? (ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssign()), "set")
|
|
1615
1585
|
: ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LAssignPlus())
|
|
1616
|
-
? (
|
|
1617
|
-
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.
|
|
1618
|
-
return "increment"
|
|
1619
|
-
})()
|
|
1620
|
-
: (function() {
|
|
1621
|
-
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssignMinus());
|
|
1622
|
-
return "decrement"
|
|
1623
|
-
})());
|
|
1586
|
+
? (ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssignPlus()), "increment")
|
|
1587
|
+
: (ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssignMinus()), "decrement"));
|
|
1624
1588
|
const value_ = ff_compiler_Parser.Parser_parseTerm(self_);
|
|
1625
1589
|
const effect_ = ff_compiler_Parser.Parser_freshUnificationVariable(self_, record_.at_);
|
|
1626
1590
|
const target_ = ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EField(ff_compiler_Token.Token_at(token_), false, record_, "set"), false);
|
|
@@ -1733,10 +1697,7 @@ return startBracketAt_
|
|
|
1733
1697
|
while((!ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LBracketRight()))) {
|
|
1734
1698
|
const fieldToken_ = ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LLower());
|
|
1735
1699
|
const field_ = (((!ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)) || ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LAssign()))
|
|
1736
|
-
? (
|
|
1737
|
-
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssign());
|
|
1738
|
-
return ff_compiler_Syntax.Field(ff_compiler_Token.Token_at(fieldToken_), ff_compiler_Token.Token_raw(fieldToken_), ff_compiler_Parser.Parser_parseTerm(self_))
|
|
1739
|
-
})()
|
|
1700
|
+
? (ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssign()), ff_compiler_Syntax.Field(ff_compiler_Token.Token_at(fieldToken_), ff_compiler_Token.Token_raw(fieldToken_), ff_compiler_Parser.Parser_parseTerm(self_)))
|
|
1740
1701
|
: ff_compiler_Syntax.Field(ff_compiler_Token.Token_at(fieldToken_), ff_compiler_Token.Token_raw(fieldToken_), ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(fieldToken_), ff_compiler_Token.Token_raw(fieldToken_))));
|
|
1741
1702
|
if((ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_) && (!self_.lspEmittedArgumentHook_))) {
|
|
1742
1703
|
if(ff_compiler_LspHook.strictlyBetween_(startAt_, ff_compiler_Token.Token_at(ff_compiler_Parser.Parser_current(self_)), self_.lspHook_.at_, 1)) {
|
|
@@ -2035,10 +1996,7 @@ ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbol
|
|
|
2035
1996
|
};
|
|
2036
1997
|
const nameToken_ = ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LLower());
|
|
2037
1998
|
const variableType_ = (ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LColon())
|
|
2038
|
-
? (
|
|
2039
|
-
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LColon());
|
|
2040
|
-
return ff_compiler_Parser.Parser_parseType(self_)
|
|
2041
|
-
})())
|
|
1999
|
+
? (ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LColon()), ff_compiler_Parser.Parser_parseType(self_))
|
|
2042
2000
|
: ff_compiler_Parser.Parser_freshUnificationVariable(self_, ff_compiler_Token.Token_at(nameToken_)));
|
|
2043
2001
|
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssign());
|
|
2044
2002
|
const value_ = ff_compiler_Parser.Parser_parseTerm(self_);
|
|
@@ -2194,10 +2152,7 @@ const parameters_ = ((ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_) && (
|
|
|
2194
2152
|
? []
|
|
2195
2153
|
: ff_compiler_Parser.Parser_parseFunctionParameters(self_, false));
|
|
2196
2154
|
const returnType_ = (ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LColon())
|
|
2197
|
-
? (
|
|
2198
|
-
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LColon());
|
|
2199
|
-
return ff_compiler_Parser.Parser_parseType(self_)
|
|
2200
|
-
})())
|
|
2155
|
+
? (ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LColon()), ff_compiler_Parser.Parser_parseType(self_))
|
|
2201
2156
|
: ff_compiler_Syntax.TConstructor(ff_compiler_Token.Token_at(ff_compiler_Parser.Parser_current(self_)), "ff:core/Unit.Unit", []));
|
|
2202
2157
|
const temporaryEffect_ = ff_compiler_Syntax.TConstructor(ff_compiler_Token.Token_at(nameToken_), "TemporaryEffect$", []);
|
|
2203
2158
|
return ff_compiler_Syntax.Signature(ff_compiler_Token.Token_at(nameToken_), ff_compiler_Token.Token_raw(nameToken_), member_, poly_.generics_, poly_.constraints_, parameters_, returnType_, temporaryEffect_)
|
|
@@ -2435,10 +2390,7 @@ ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LDot())
|
|
|
2435
2390
|
};
|
|
2436
2391
|
const fileToken_ = ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LUpper());
|
|
2437
2392
|
const alias_ = (ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "as")
|
|
2438
|
-
? (
|
|
2439
|
-
ff_compiler_Parser.Parser_rawSkip(self_, ff_compiler_Token.LKeyword(), "as");
|
|
2440
|
-
return ff_compiler_Token.Token_raw(ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LUpper()))
|
|
2441
|
-
})())
|
|
2393
|
+
? (ff_compiler_Parser.Parser_rawSkip(self_, ff_compiler_Token.LKeyword(), "as"), ff_compiler_Token.Token_raw(ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LUpper())))
|
|
2442
2394
|
: ff_compiler_Token.Token_raw(fileToken_));
|
|
2443
2395
|
const packagePair_ = (ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "from")
|
|
2444
2396
|
? (await (async function() {
|
|
@@ -2529,10 +2481,7 @@ if(ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compi
|
|
|
2529
2481
|
const majorMinor_ = ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LFloat());
|
|
2530
2482
|
const parts_ = ff_core_String.String_split(ff_compiler_Token.Token_raw(majorMinor_), 46);
|
|
2531
2483
|
const patch_ = (ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LDot())
|
|
2532
|
-
? (
|
|
2533
|
-
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LDot());
|
|
2534
|
-
return ff_core_String.String_grabInt(ff_compiler_Token.Token_raw(ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LInt())))
|
|
2535
|
-
})())
|
|
2484
|
+
? (ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LDot()), ff_core_String.String_grabInt(ff_compiler_Token.Token_raw(ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LInt()))))
|
|
2536
2485
|
: 0);
|
|
2537
2486
|
return ff_compiler_Syntax.Version(ff_compiler_Token.Token_at(majorMinor_), ff_core_String.String_grabInt(ff_core_List.List_grab(parts_, 0)), ff_core_String.String_grabInt(ff_core_List.List_grab(parts_, 1)), patch_)
|
|
2538
2487
|
} else {
|
|
@@ -2643,10 +2592,7 @@ ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LColon());
|
|
|
2643
2592
|
const parameterType_ = ff_compiler_Parser.Parser_parseType(self_);
|
|
2644
2593
|
const default_ = ((!ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LAssign()))
|
|
2645
2594
|
? ff_core_Option.None()
|
|
2646
|
-
: (
|
|
2647
|
-
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssign());
|
|
2648
|
-
return ff_core_Option.Some(ff_compiler_Parser.Parser_parseTerm(self_))
|
|
2649
|
-
})()));
|
|
2595
|
+
: (ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssign()), ff_core_Option.Some(ff_compiler_Parser.Parser_parseTerm(self_))));
|
|
2650
2596
|
parameters_.array.push(ff_compiler_Syntax.Parameter(ff_compiler_Token.Token_at(parameterNameToken_), mutable_, ff_compiler_Token.Token_raw(parameterNameToken_), parameterType_, default_));
|
|
2651
2597
|
if(lspTrackSymbols_) {
|
|
2652
2598
|
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(parameterNameToken_), ff_compiler_LspHook.SParameter(), ff_compiler_Token.Token_at(parameterNameToken_), ff_compiler_Token.Token_end(parameterNameToken_), ff_compiler_Token.Token_at(lspFirst_), ff_compiler_Token.Token_end(ff_compiler_Parser.Parser_behind(self_))))
|
|
@@ -2808,10 +2754,7 @@ const guardToken_ = ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LBra
|
|
|
2808
2754
|
const term_ = ff_compiler_Parser.Parser_parseStatements(self_);
|
|
2809
2755
|
const p_ = ((!ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LPipe()))
|
|
2810
2756
|
? ff_compiler_Syntax.PVariant(ff_compiler_Token.Token_at(guardToken_), "True", [])
|
|
2811
|
-
: (
|
|
2812
|
-
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LPipe());
|
|
2813
|
-
return ff_compiler_Parser.Parser_parsePattern(self_)
|
|
2814
|
-
})()));
|
|
2757
|
+
: (ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LPipe()), ff_compiler_Parser.Parser_parsePattern(self_)));
|
|
2815
2758
|
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LBracketRight());
|
|
2816
2759
|
return ff_compiler_Syntax.MatchGuard(ff_compiler_Token.Token_at(guardToken_), term_, p_)
|
|
2817
2760
|
}
|
|
@@ -3005,10 +2948,7 @@ const keywordToken_ = (mutable_
|
|
|
3005
2948
|
const nameToken_ = ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LLower());
|
|
3006
2949
|
const valueType_ = ((!ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LColon()))
|
|
3007
2950
|
? ff_compiler_Parser.Parser_freshUnificationVariable(self_, ff_compiler_Token.Token_at(nameToken_))
|
|
3008
|
-
: (
|
|
3009
|
-
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LColon());
|
|
3010
|
-
return ff_compiler_Parser.Parser_parseType(self_)
|
|
3011
|
-
})()));
|
|
2951
|
+
: (ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LColon()), ff_compiler_Parser.Parser_parseType(self_)));
|
|
3012
2952
|
if((ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_) && (!ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LAssign())))) {
|
|
3013
2953
|
const unit_ = ff_compiler_Syntax.EVariant(ff_compiler_Token.Token_at(keywordToken_), "Unit", [], ff_core_Option.None());
|
|
3014
2954
|
return ff_compiler_Syntax.ELet(ff_compiler_Token.Token_at(nameToken_), mutable_, ff_compiler_Token.Token_raw(nameToken_), valueType_, unit_, unit_)
|
|
@@ -3019,10 +2959,7 @@ if(self_.lspHook_.trackSymbols_) {
|
|
|
3019
2959
|
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(nameToken_), ff_compiler_LspHook.SLet(mutable_), ff_compiler_Token.Token_at(nameToken_), ff_compiler_Token.Token_end(nameToken_), ff_compiler_Token.Token_at(mutableToken_), ff_compiler_Token.Token_end(ff_compiler_Parser.Parser_behind(self_))))
|
|
3020
2960
|
};
|
|
3021
2961
|
const body_ = (ff_compiler_Parser.Parser_currentIsSeparator(self_, ff_compiler_Token.LSemicolon())
|
|
3022
|
-
? (
|
|
3023
|
-
ff_compiler_Parser.Parser_skipSeparator(self_, ff_compiler_Token.LSemicolon());
|
|
3024
|
-
return ff_compiler_Parser.Parser_parseStatements(self_)
|
|
3025
|
-
})())
|
|
2962
|
+
? (ff_compiler_Parser.Parser_skipSeparator(self_, ff_compiler_Token.LSemicolon()), ff_compiler_Parser.Parser_parseStatements(self_))
|
|
3026
2963
|
: ff_compiler_Syntax.EVariant(ff_compiler_Token.Token_at(keywordToken_), "Unit", [], ff_core_Option.None()));
|
|
3027
2964
|
return ff_compiler_Syntax.ELet(ff_compiler_Token.Token_at(nameToken_), mutable_, ff_compiler_Token.Token_raw(nameToken_), valueType_, value_, body_)
|
|
3028
2965
|
}
|
|
@@ -3124,10 +3061,7 @@ return ff_compiler_Parser.Parser_parseFieldsAndCalls(self_)
|
|
|
3124
3061
|
|
|
3125
3062
|
export async function Parser_parseFieldsAndCalls$(self_, $task) {
|
|
3126
3063
|
const tailCall_ = ((ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LKeyword()) && ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "tailcall"))
|
|
3127
|
-
? (
|
|
3128
|
-
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LKeyword());
|
|
3129
|
-
return true
|
|
3130
|
-
})())
|
|
3064
|
+
? (ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LKeyword()), true)
|
|
3131
3065
|
: false);
|
|
3132
3066
|
let result_ = ff_compiler_Parser.Parser_parseAtom(self_);
|
|
3133
3067
|
while(ff_compiler_Token.Token_is5(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LBracketLeft(), ff_compiler_Token.LColon(), ff_compiler_Token.LDot(), ff_compiler_Token.LArrowThin(), ff_compiler_Token.LUnary())) {
|
|
@@ -3229,19 +3163,10 @@ const target_ = ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EField(ff_comp
|
|
|
3229
3163
|
return ff_compiler_Syntax.ECall(record_.at_, target_, effect_, [], [ff_compiler_Syntax.Argument(member_.at_, ff_core_Option.None(), member_), ...arguments_.first_], [])
|
|
3230
3164
|
} else if(ff_compiler_Token.Token_is3(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LAssign(), ff_compiler_Token.LAssignPlus(), ff_compiler_Token.LAssignMinus())) {
|
|
3231
3165
|
const method_ = (ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LAssign())
|
|
3232
|
-
? (
|
|
3233
|
-
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssign());
|
|
3234
|
-
return "set"
|
|
3235
|
-
})())
|
|
3166
|
+
? (ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssign()), "set")
|
|
3236
3167
|
: ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LAssignPlus())
|
|
3237
|
-
? (
|
|
3238
|
-
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.
|
|
3239
|
-
return "increment"
|
|
3240
|
-
})())
|
|
3241
|
-
: (await (async function() {
|
|
3242
|
-
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssignMinus());
|
|
3243
|
-
return "decrement"
|
|
3244
|
-
})()));
|
|
3168
|
+
? (ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssignPlus()), "increment")
|
|
3169
|
+
: (ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssignMinus()), "decrement"));
|
|
3245
3170
|
const value_ = ff_compiler_Parser.Parser_parseTerm(self_);
|
|
3246
3171
|
const effect_ = ff_compiler_Parser.Parser_freshUnificationVariable(self_, record_.at_);
|
|
3247
3172
|
const target_ = ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EField(ff_compiler_Token.Token_at(token_), false, record_, "set"), false);
|
|
@@ -3354,10 +3279,7 @@ return startBracketAt_
|
|
|
3354
3279
|
while((!ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LBracketRight()))) {
|
|
3355
3280
|
const fieldToken_ = ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LLower());
|
|
3356
3281
|
const field_ = (((!ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)) || ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LAssign()))
|
|
3357
|
-
? (
|
|
3358
|
-
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssign());
|
|
3359
|
-
return ff_compiler_Syntax.Field(ff_compiler_Token.Token_at(fieldToken_), ff_compiler_Token.Token_raw(fieldToken_), ff_compiler_Parser.Parser_parseTerm(self_))
|
|
3360
|
-
})())
|
|
3282
|
+
? (ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssign()), ff_compiler_Syntax.Field(ff_compiler_Token.Token_at(fieldToken_), ff_compiler_Token.Token_raw(fieldToken_), ff_compiler_Parser.Parser_parseTerm(self_)))
|
|
3361
3283
|
: ff_compiler_Syntax.Field(ff_compiler_Token.Token_at(fieldToken_), ff_compiler_Token.Token_raw(fieldToken_), ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(fieldToken_), ff_compiler_Token.Token_raw(fieldToken_))));
|
|
3362
3284
|
if((ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_) && (!self_.lspEmittedArgumentHook_))) {
|
|
3363
3285
|
if(ff_compiler_LspHook.strictlyBetween_(startAt_, ff_compiler_Token.Token_at(ff_compiler_Parser.Parser_current(self_)), self_.lspHook_.at_, 1)) {
|
|
@@ -413,14 +413,8 @@ let i_ = 0;
|
|
|
413
413
|
for(let for_i = 0, for_a = self_, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
414
414
|
const x_ = for_a[for_i];
|
|
415
415
|
if(!(body_(x_)
|
|
416
|
-
? (
|
|
417
|
-
|
|
418
|
-
return false
|
|
419
|
-
})()
|
|
420
|
-
: (function() {
|
|
421
|
-
i_ += 1;
|
|
422
|
-
return true
|
|
423
|
-
})())) break
|
|
416
|
+
? (result_ = ff_core_Option.Some(i_), false)
|
|
417
|
+
: (i_ += 1, true))) break
|
|
424
418
|
};
|
|
425
419
|
return result_
|
|
426
420
|
}
|
|
@@ -430,10 +424,7 @@ let result_ = ff_core_Option.None();
|
|
|
430
424
|
for(let for_i = 0, for_a = self_, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
431
425
|
const x_ = for_a[for_i];
|
|
432
426
|
if(!(body_(x_)
|
|
433
|
-
? (
|
|
434
|
-
result_ = ff_core_Option.Some(x_);
|
|
435
|
-
return false
|
|
436
|
-
})()
|
|
427
|
+
? (result_ = ff_core_Option.Some(x_), false)
|
|
437
428
|
: true)) break
|
|
438
429
|
};
|
|
439
430
|
return result_
|
|
@@ -782,14 +773,8 @@ let i_ = 0;
|
|
|
782
773
|
for(let for_i = 0, for_a = self_, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
783
774
|
const x_ = for_a[for_i];
|
|
784
775
|
if(!((await body_(x_, $task))
|
|
785
|
-
? (
|
|
786
|
-
|
|
787
|
-
return false
|
|
788
|
-
})())
|
|
789
|
-
: (await (async function() {
|
|
790
|
-
i_ += 1;
|
|
791
|
-
return true
|
|
792
|
-
})()))) break
|
|
776
|
+
? (result_ = ff_core_Option.Some(i_), false)
|
|
777
|
+
: (i_ += 1, true))) break
|
|
793
778
|
};
|
|
794
779
|
return result_
|
|
795
780
|
}
|
|
@@ -799,10 +784,7 @@ let result_ = ff_core_Option.None();
|
|
|
799
784
|
for(let for_i = 0, for_a = self_, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
800
785
|
const x_ = for_a[for_i];
|
|
801
786
|
if(!((await body_(x_, $task))
|
|
802
|
-
? (
|
|
803
|
-
result_ = ff_core_Option.Some(x_);
|
|
804
|
-
return false
|
|
805
|
-
})())
|
|
787
|
+
? (result_ = ff_core_Option.Some(x_), false)
|
|
806
788
|
: true)) break
|
|
807
789
|
};
|
|
808
790
|
return result_
|
package/package.json
CHANGED