firefly-compiler 0.4.19 → 0.4.21
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/Builder.ff +23 -13
- package/compiler/JsEmitter.ff +120 -76
- package/compiler/LspHook.ff +17 -3
- package/compiler/Main.ff +13 -7
- package/compiler/Parser.ff +11 -13
- package/compiler/Resolver.ff +15 -15
- package/compiler/Syntax.ff +1 -0
- package/core/Array.ff +6 -4
- package/core/Int.ff +12 -12
- package/core/Json.ff +2 -2
- package/core/List.ff +6 -4
- package/experimental/benchmarks/ListGrab.ff +23 -0
- package/experimental/benchmarks/ListGrab.java +55 -0
- package/experimental/benchmarks/Pyrotek45.ff +30 -0
- package/experimental/benchmarks/Pyrotek45.java +64 -0
- package/experimental/tests/TestJson.ff +26 -0
- package/lsp/CompletionHandler.ff +14 -14
- package/lsp/Handler.ff +56 -60
- package/lsp/SignatureHelpHandler.ff +5 -4
- package/lsp/SymbolHandler.ff +18 -4
- package/lsp/TestReferences.ff +15 -0
- package/lsp/TestReferencesCase.ff +8 -0
- package/output/js/ff/compiler/Builder.mjs +50 -44
- package/output/js/ff/compiler/Dependencies.mjs +0 -2
- package/output/js/ff/compiler/Deriver.mjs +16 -140
- package/output/js/ff/compiler/Dictionaries.mjs +8 -222
- package/output/js/ff/compiler/Environment.mjs +12 -154
- package/output/js/ff/compiler/Inference.mjs +127 -1013
- package/output/js/ff/compiler/JsEmitter.mjs +434 -2344
- package/output/js/ff/compiler/JsImporter.mjs +0 -12
- package/output/js/ff/compiler/LspHook.mjs +548 -151
- package/output/js/ff/compiler/Main.mjs +96 -550
- package/output/js/ff/compiler/Parser.mjs +58 -390
- package/output/js/ff/compiler/Patterns.mjs +20 -200
- package/output/js/ff/compiler/Resolver.mjs +26 -340
- package/output/js/ff/compiler/Substitution.mjs +2 -160
- package/output/js/ff/compiler/Syntax.mjs +449 -3293
- package/output/js/ff/compiler/Token.mjs +9 -1095
- package/output/js/ff/compiler/Tokenizer.mjs +4 -2
- package/output/js/ff/compiler/Unification.mjs +26 -360
- package/output/js/ff/compiler/Wildcards.mjs +0 -86
- package/output/js/ff/compiler/Workspace.mjs +8 -96
- package/output/js/ff/core/Array.mjs +15 -8
- package/output/js/ff/core/AssetSystem.mjs +4 -14
- package/output/js/ff/core/Bool.mjs +0 -12
- package/output/js/ff/core/Core.mjs +0 -30
- package/output/js/ff/core/Int.mjs +24 -24
- package/output/js/ff/core/IntMap.mjs +0 -8
- package/output/js/ff/core/Json.mjs +2 -42
- package/output/js/ff/core/List.mjs +23 -32
- package/output/js/ff/core/Lock.mjs +0 -10
- package/output/js/ff/core/Map.mjs +0 -24
- package/output/js/ff/core/Option.mjs +10 -286
- package/output/js/ff/core/Ordering.mjs +16 -158
- package/output/js/ff/core/Pair.mjs +2 -34
- package/output/js/ff/core/Path.mjs +2 -28
- package/output/js/ff/core/Random.mjs +4 -4
- package/output/js/ff/core/RbMap.mjs +56 -644
- package/output/js/ff/core/Show.mjs +0 -16
- package/output/js/ff/core/Stream.mjs +14 -144
- package/output/js/ff/core/StringMap.mjs +0 -8
- package/output/js/ff/core/Try.mjs +4 -108
- package/output/js/ff/core/Unit.mjs +2 -16
- package/package.json +1 -1
- package/postgresql/Pg.ff +23 -23
- package/vscode/client/src/extension.ts +30 -2
- package/vscode/package.json +17 -1
- package/core/Stack.ff +0 -250
|
@@ -102,37 +102,21 @@ import * as ff_core_Unit from "../../ff/core/Unit.mjs"
|
|
|
102
102
|
|
|
103
103
|
export const ff_core_Show_Show$ff_core_Bool_Bool = {
|
|
104
104
|
show_(value_) {
|
|
105
|
-
{
|
|
106
105
|
const value_a = value_;
|
|
107
|
-
{
|
|
108
106
|
if(!value_a) {
|
|
109
107
|
return "False"
|
|
110
|
-
return
|
|
111
108
|
}
|
|
112
|
-
}
|
|
113
|
-
{
|
|
114
109
|
if(value_a) {
|
|
115
110
|
return "True"
|
|
116
|
-
return
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
111
|
}
|
|
120
112
|
},
|
|
121
113
|
async show_$(value_, $task) {
|
|
122
|
-
{
|
|
123
114
|
const value_a = value_;
|
|
124
|
-
{
|
|
125
115
|
if(!value_a) {
|
|
126
116
|
return "False"
|
|
127
|
-
return
|
|
128
117
|
}
|
|
129
|
-
}
|
|
130
|
-
{
|
|
131
118
|
if(value_a) {
|
|
132
119
|
return "True"
|
|
133
|
-
return
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
120
|
}
|
|
137
121
|
}
|
|
138
122
|
};
|
|
@@ -190,35 +190,27 @@ let result_ = ff_core_Option.None();
|
|
|
190
190
|
while(ff_core_Option.Option_isEmpty(result_)) {
|
|
191
191
|
do {
|
|
192
192
|
const _1 = inner_.next_();
|
|
193
|
-
{
|
|
194
|
-
const i_ = _1;
|
|
195
193
|
if(_1.Some) {
|
|
194
|
+
const i_ = _1;
|
|
196
195
|
result_ = ff_core_Option.Some(i_)
|
|
197
196
|
break
|
|
198
197
|
}
|
|
199
|
-
}
|
|
200
|
-
{
|
|
201
198
|
if(_1.None) {
|
|
202
199
|
do {
|
|
203
200
|
const _1 = self_.next_();
|
|
204
|
-
{
|
|
205
201
|
if(_1.None) {
|
|
206
202
|
result_ = ff_core_Option.Some(ff_core_Option.None())
|
|
207
203
|
break
|
|
208
204
|
}
|
|
209
|
-
}
|
|
210
|
-
{
|
|
211
205
|
if(_1.Some) {
|
|
212
206
|
const o_ = _1.value_;
|
|
213
207
|
inner_.close_();
|
|
214
208
|
inner_ = body_(o_)
|
|
215
209
|
break
|
|
216
210
|
}
|
|
217
|
-
}
|
|
218
211
|
} while(false)
|
|
219
212
|
break
|
|
220
213
|
}
|
|
221
|
-
}
|
|
222
214
|
} while(false)
|
|
223
215
|
};
|
|
224
216
|
return ff_core_Option.Option_grab(result_)
|
|
@@ -243,28 +235,21 @@ let result_ = ff_core_Option.None();
|
|
|
243
235
|
while(ff_core_Option.Option_isEmpty(result_)) {
|
|
244
236
|
do {
|
|
245
237
|
const _1 = self_.next_();
|
|
246
|
-
{
|
|
247
238
|
if(_1.Some) {
|
|
248
239
|
const x_ = _1.value_;
|
|
249
|
-
|
|
250
|
-
if(_guard1) {
|
|
240
|
+
if(body_(x_)) {
|
|
251
241
|
result_ = ff_core_Option.Some(ff_core_Option.Some(x_))
|
|
252
242
|
break
|
|
253
243
|
}
|
|
254
244
|
}
|
|
255
|
-
}
|
|
256
|
-
{
|
|
257
245
|
if(_1.Some) {
|
|
258
246
|
|
|
259
247
|
break
|
|
260
248
|
}
|
|
261
|
-
}
|
|
262
|
-
{
|
|
263
249
|
if(_1.None) {
|
|
264
250
|
result_ = ff_core_Option.Some(ff_core_Option.None())
|
|
265
251
|
break
|
|
266
252
|
}
|
|
267
|
-
}
|
|
268
253
|
} while(false)
|
|
269
254
|
};
|
|
270
255
|
return ff_core_Option.Option_grab(result_)
|
|
@@ -277,19 +262,13 @@ export function Stream_zip(self_, that_) {
|
|
|
277
262
|
return ff_core_Stream.Stream((() => {
|
|
278
263
|
{
|
|
279
264
|
const _1 = ff_core_Pair.Pair(self_.next_(), that_.next_());
|
|
280
|
-
{
|
|
281
|
-
if(_1.first_.Some) {
|
|
265
|
+
if(_1.first_.Some && _1.second_.Some) {
|
|
282
266
|
const x_ = _1.first_.value_;
|
|
283
|
-
if(_1.second_.Some) {
|
|
284
267
|
const y_ = _1.second_.value_;
|
|
285
268
|
return ff_core_Option.Some(ff_core_Pair.Pair(x_, y_))
|
|
286
|
-
return
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
269
|
}
|
|
290
270
|
{
|
|
291
271
|
return ff_core_Option.None()
|
|
292
|
-
return
|
|
293
272
|
}
|
|
294
273
|
}
|
|
295
274
|
}), (() => {
|
|
@@ -319,18 +298,14 @@ return ff_core_Stream.Stream((() => {
|
|
|
319
298
|
while((remaining_ >= 1)) {
|
|
320
299
|
do {
|
|
321
300
|
const _1 = self_.next_();
|
|
322
|
-
{
|
|
323
301
|
if(_1.None) {
|
|
324
302
|
remaining_ = 0
|
|
325
303
|
break
|
|
326
304
|
}
|
|
327
|
-
}
|
|
328
|
-
{
|
|
329
305
|
if(_1.Some) {
|
|
330
306
|
remaining_ -= 1
|
|
331
307
|
break
|
|
332
308
|
}
|
|
333
|
-
}
|
|
334
309
|
} while(false)
|
|
335
310
|
};
|
|
336
311
|
return self_.next_()
|
|
@@ -347,16 +322,12 @@ return ff_core_Option.None()
|
|
|
347
322
|
} else {
|
|
348
323
|
{
|
|
349
324
|
const _1 = self_.next_();
|
|
350
|
-
{
|
|
351
325
|
if(_1.None) {
|
|
352
326
|
done_ = true;
|
|
353
327
|
return ff_core_Option.None()
|
|
354
|
-
return
|
|
355
328
|
}
|
|
356
|
-
}
|
|
357
|
-
{
|
|
358
|
-
const o_ = _1;
|
|
359
329
|
if(_1.Some) {
|
|
330
|
+
const o_ = _1;
|
|
360
331
|
const x_ = _1.value_;
|
|
361
332
|
done_ = (!body_(x_));
|
|
362
333
|
if(done_) {
|
|
@@ -368,7 +339,6 @@ return
|
|
|
368
339
|
}
|
|
369
340
|
}
|
|
370
341
|
}
|
|
371
|
-
}
|
|
372
342
|
}), (() => {
|
|
373
343
|
self_.close_()
|
|
374
344
|
}))
|
|
@@ -382,31 +352,24 @@ let result_ = ff_core_Option.None();
|
|
|
382
352
|
while((!done_)) {
|
|
383
353
|
do {
|
|
384
354
|
const _1 = self_.next_();
|
|
385
|
-
{
|
|
386
355
|
if(_1.None) {
|
|
387
356
|
done_ = true
|
|
388
357
|
break
|
|
389
358
|
}
|
|
390
|
-
}
|
|
391
|
-
{
|
|
392
359
|
if(_1.Some) {
|
|
393
360
|
const x_ = _1.value_;
|
|
394
|
-
|
|
395
|
-
if(_guard1) {
|
|
361
|
+
if(body_(x_)) {
|
|
396
362
|
|
|
397
363
|
break
|
|
398
364
|
}
|
|
399
365
|
}
|
|
400
|
-
}
|
|
401
|
-
{
|
|
402
|
-
const o_ = _1;
|
|
403
366
|
if(_1.Some) {
|
|
367
|
+
const o_ = _1;
|
|
404
368
|
const x_ = _1.value_;
|
|
405
369
|
result_ = o_;
|
|
406
370
|
done_ = true
|
|
407
371
|
break
|
|
408
372
|
}
|
|
409
|
-
}
|
|
410
373
|
} while(false)
|
|
411
374
|
};
|
|
412
375
|
return result_
|
|
@@ -435,14 +398,10 @@ return ff_core_Option.None()
|
|
|
435
398
|
} else {
|
|
436
399
|
{
|
|
437
400
|
const _1 = self_.next_();
|
|
438
|
-
{
|
|
439
401
|
if(_1.None) {
|
|
440
402
|
remaining_ = (-1);
|
|
441
403
|
return ff_core_Option.None()
|
|
442
|
-
return
|
|
443
404
|
}
|
|
444
|
-
}
|
|
445
|
-
{
|
|
446
405
|
if(_1.Some) {
|
|
447
406
|
const x_ = _1.value_;
|
|
448
407
|
let list_ = [x_];
|
|
@@ -451,27 +410,21 @@ while((remaining_ > 0)) {
|
|
|
451
410
|
remaining_ -= 1;
|
|
452
411
|
do {
|
|
453
412
|
const _1 = self_.next_();
|
|
454
|
-
{
|
|
455
413
|
if(_1.None) {
|
|
456
414
|
remaining_ = (-1)
|
|
457
415
|
break
|
|
458
416
|
}
|
|
459
|
-
}
|
|
460
|
-
{
|
|
461
417
|
if(_1.Some) {
|
|
462
418
|
const x_ = _1.value_;
|
|
463
419
|
list_ = [x_, ...list_]
|
|
464
420
|
break
|
|
465
421
|
}
|
|
466
|
-
}
|
|
467
422
|
} while(false)
|
|
468
423
|
};
|
|
469
424
|
if((remaining_ !== (-1))) {
|
|
470
425
|
remaining_ = size_
|
|
471
426
|
};
|
|
472
427
|
return ff_core_Option.Some(ff_core_List.List_reverse(list_))
|
|
473
|
-
return
|
|
474
|
-
}
|
|
475
428
|
}
|
|
476
429
|
}
|
|
477
430
|
}
|
|
@@ -494,19 +447,15 @@ let done_ = false;
|
|
|
494
447
|
while((!done_)) {
|
|
495
448
|
do {
|
|
496
449
|
const _1 = self_.next_();
|
|
497
|
-
{
|
|
498
450
|
if(_1.None) {
|
|
499
451
|
done_ = true
|
|
500
452
|
break
|
|
501
453
|
}
|
|
502
|
-
}
|
|
503
|
-
{
|
|
504
454
|
if(_1.Some) {
|
|
505
455
|
const x_ = _1.value_;
|
|
506
456
|
body_(x_)
|
|
507
457
|
break
|
|
508
458
|
}
|
|
509
|
-
}
|
|
510
459
|
} while(false)
|
|
511
460
|
}
|
|
512
461
|
} finally {
|
|
@@ -520,19 +469,15 @@ let done_ = false;
|
|
|
520
469
|
while((!done_)) {
|
|
521
470
|
do {
|
|
522
471
|
const _1 = self_.next_();
|
|
523
|
-
{
|
|
524
472
|
if(_1.None) {
|
|
525
473
|
done_ = true
|
|
526
474
|
break
|
|
527
475
|
}
|
|
528
|
-
}
|
|
529
|
-
{
|
|
530
476
|
if(_1.Some) {
|
|
531
477
|
const x_ = _1.value_;
|
|
532
478
|
done_ = (!body_(x_))
|
|
533
479
|
break
|
|
534
480
|
}
|
|
535
|
-
}
|
|
536
481
|
} while(false)
|
|
537
482
|
}
|
|
538
483
|
} finally {
|
|
@@ -573,20 +518,16 @@ let result_ = ff_core_Option.None();
|
|
|
573
518
|
while((!done_)) {
|
|
574
519
|
do {
|
|
575
520
|
const _1 = self_.next_();
|
|
576
|
-
{
|
|
577
521
|
if(_1.None) {
|
|
578
522
|
done_ = true
|
|
579
523
|
break
|
|
580
524
|
}
|
|
581
|
-
}
|
|
582
|
-
{
|
|
583
|
-
const o_ = _1;
|
|
584
525
|
if(_1.Some) {
|
|
526
|
+
const o_ = _1;
|
|
585
527
|
const x_ = _1.value_;
|
|
586
528
|
result_ = o_
|
|
587
529
|
break
|
|
588
530
|
}
|
|
589
|
-
}
|
|
590
531
|
} while(false)
|
|
591
532
|
};
|
|
592
533
|
return result_
|
|
@@ -614,23 +555,18 @@ let result_ = ff_core_Option.None();
|
|
|
614
555
|
while((!done_)) {
|
|
615
556
|
do {
|
|
616
557
|
const _1 = self_.next_();
|
|
617
|
-
{
|
|
618
558
|
if(_1.None) {
|
|
619
559
|
done_ = true
|
|
620
560
|
break
|
|
621
561
|
}
|
|
622
|
-
}
|
|
623
|
-
{
|
|
624
562
|
if(_1.Some) {
|
|
625
563
|
const x_ = _1.value_;
|
|
626
564
|
do {
|
|
627
565
|
const _1 = body_(x_);
|
|
628
|
-
{
|
|
629
566
|
if(_1.None) {
|
|
630
567
|
|
|
631
568
|
break
|
|
632
569
|
}
|
|
633
|
-
}
|
|
634
570
|
{
|
|
635
571
|
const o_ = _1;
|
|
636
572
|
done_ = true;
|
|
@@ -640,7 +576,6 @@ break
|
|
|
640
576
|
} while(false)
|
|
641
577
|
break
|
|
642
578
|
}
|
|
643
|
-
}
|
|
644
579
|
} while(false)
|
|
645
580
|
};
|
|
646
581
|
return result_
|
|
@@ -712,35 +647,27 @@ let result_ = ff_core_Option.None();
|
|
|
712
647
|
while(ff_core_Option.Option_isEmpty(result_)) {
|
|
713
648
|
do {
|
|
714
649
|
const _1 = (await inner_.next_($task));
|
|
715
|
-
{
|
|
716
|
-
const i_ = _1;
|
|
717
650
|
if(_1.Some) {
|
|
651
|
+
const i_ = _1;
|
|
718
652
|
result_ = ff_core_Option.Some(i_)
|
|
719
653
|
break
|
|
720
654
|
}
|
|
721
|
-
}
|
|
722
|
-
{
|
|
723
655
|
if(_1.None) {
|
|
724
656
|
do {
|
|
725
657
|
const _1 = (await self_.next_($task));
|
|
726
|
-
{
|
|
727
658
|
if(_1.None) {
|
|
728
659
|
result_ = ff_core_Option.Some(ff_core_Option.None())
|
|
729
660
|
break
|
|
730
661
|
}
|
|
731
|
-
}
|
|
732
|
-
{
|
|
733
662
|
if(_1.Some) {
|
|
734
663
|
const o_ = _1.value_;
|
|
735
664
|
(await inner_.close_($task));
|
|
736
665
|
inner_ = (await body_(o_, $task))
|
|
737
666
|
break
|
|
738
667
|
}
|
|
739
|
-
}
|
|
740
668
|
} while(false)
|
|
741
669
|
break
|
|
742
670
|
}
|
|
743
|
-
}
|
|
744
671
|
} while(false)
|
|
745
672
|
};
|
|
746
673
|
return ff_core_Option.Option_grab(result_)
|
|
@@ -765,28 +692,21 @@ let result_ = ff_core_Option.None();
|
|
|
765
692
|
while(ff_core_Option.Option_isEmpty(result_)) {
|
|
766
693
|
do {
|
|
767
694
|
const _1 = (await self_.next_($task));
|
|
768
|
-
{
|
|
769
695
|
if(_1.Some) {
|
|
770
696
|
const x_ = _1.value_;
|
|
771
|
-
|
|
772
|
-
if(_guard1) {
|
|
697
|
+
if((await body_(x_, $task))) {
|
|
773
698
|
result_ = ff_core_Option.Some(ff_core_Option.Some(x_))
|
|
774
699
|
break
|
|
775
700
|
}
|
|
776
701
|
}
|
|
777
|
-
}
|
|
778
|
-
{
|
|
779
702
|
if(_1.Some) {
|
|
780
703
|
|
|
781
704
|
break
|
|
782
705
|
}
|
|
783
|
-
}
|
|
784
|
-
{
|
|
785
706
|
if(_1.None) {
|
|
786
707
|
result_ = ff_core_Option.Some(ff_core_Option.None())
|
|
787
708
|
break
|
|
788
709
|
}
|
|
789
|
-
}
|
|
790
710
|
} while(false)
|
|
791
711
|
};
|
|
792
712
|
return ff_core_Option.Option_grab(result_)
|
|
@@ -799,19 +719,13 @@ export async function Stream_zip$(self_, that_, $task) {
|
|
|
799
719
|
return ff_core_Stream.Stream((async ($task) => {
|
|
800
720
|
{
|
|
801
721
|
const _1 = ff_core_Pair.Pair((await self_.next_($task)), (await that_.next_($task)));
|
|
802
|
-
{
|
|
803
|
-
if(_1.first_.Some) {
|
|
722
|
+
if(_1.first_.Some && _1.second_.Some) {
|
|
804
723
|
const x_ = _1.first_.value_;
|
|
805
|
-
if(_1.second_.Some) {
|
|
806
724
|
const y_ = _1.second_.value_;
|
|
807
725
|
return ff_core_Option.Some(ff_core_Pair.Pair(x_, y_))
|
|
808
|
-
return
|
|
809
|
-
}
|
|
810
|
-
}
|
|
811
726
|
}
|
|
812
727
|
{
|
|
813
728
|
return ff_core_Option.None()
|
|
814
|
-
return
|
|
815
729
|
}
|
|
816
730
|
}
|
|
817
731
|
}), (async ($task) => {
|
|
@@ -841,18 +755,14 @@ return ff_core_Stream.Stream((async ($task) => {
|
|
|
841
755
|
while((remaining_ >= 1)) {
|
|
842
756
|
do {
|
|
843
757
|
const _1 = (await self_.next_($task));
|
|
844
|
-
{
|
|
845
758
|
if(_1.None) {
|
|
846
759
|
remaining_ = 0
|
|
847
760
|
break
|
|
848
761
|
}
|
|
849
|
-
}
|
|
850
|
-
{
|
|
851
762
|
if(_1.Some) {
|
|
852
763
|
remaining_ -= 1
|
|
853
764
|
break
|
|
854
765
|
}
|
|
855
|
-
}
|
|
856
766
|
} while(false)
|
|
857
767
|
};
|
|
858
768
|
return (await self_.next_($task))
|
|
@@ -869,16 +779,12 @@ return ff_core_Option.None()
|
|
|
869
779
|
} else {
|
|
870
780
|
{
|
|
871
781
|
const _1 = (await self_.next_($task));
|
|
872
|
-
{
|
|
873
782
|
if(_1.None) {
|
|
874
783
|
done_ = true;
|
|
875
784
|
return ff_core_Option.None()
|
|
876
|
-
return
|
|
877
785
|
}
|
|
878
|
-
}
|
|
879
|
-
{
|
|
880
|
-
const o_ = _1;
|
|
881
786
|
if(_1.Some) {
|
|
787
|
+
const o_ = _1;
|
|
882
788
|
const x_ = _1.value_;
|
|
883
789
|
done_ = (!(await body_(x_, $task)));
|
|
884
790
|
if(done_) {
|
|
@@ -890,7 +796,6 @@ return
|
|
|
890
796
|
}
|
|
891
797
|
}
|
|
892
798
|
}
|
|
893
|
-
}
|
|
894
799
|
}), (async ($task) => {
|
|
895
800
|
(await self_.close_($task))
|
|
896
801
|
}))
|
|
@@ -904,31 +809,24 @@ let result_ = ff_core_Option.None();
|
|
|
904
809
|
while((!done_)) {
|
|
905
810
|
do {
|
|
906
811
|
const _1 = (await self_.next_($task));
|
|
907
|
-
{
|
|
908
812
|
if(_1.None) {
|
|
909
813
|
done_ = true
|
|
910
814
|
break
|
|
911
815
|
}
|
|
912
|
-
}
|
|
913
|
-
{
|
|
914
816
|
if(_1.Some) {
|
|
915
817
|
const x_ = _1.value_;
|
|
916
|
-
|
|
917
|
-
if(_guard1) {
|
|
818
|
+
if((await body_(x_, $task))) {
|
|
918
819
|
|
|
919
820
|
break
|
|
920
821
|
}
|
|
921
822
|
}
|
|
922
|
-
}
|
|
923
|
-
{
|
|
924
|
-
const o_ = _1;
|
|
925
823
|
if(_1.Some) {
|
|
824
|
+
const o_ = _1;
|
|
926
825
|
const x_ = _1.value_;
|
|
927
826
|
result_ = o_;
|
|
928
827
|
done_ = true
|
|
929
828
|
break
|
|
930
829
|
}
|
|
931
|
-
}
|
|
932
830
|
} while(false)
|
|
933
831
|
};
|
|
934
832
|
return result_
|
|
@@ -957,14 +855,10 @@ return ff_core_Option.None()
|
|
|
957
855
|
} else {
|
|
958
856
|
{
|
|
959
857
|
const _1 = (await self_.next_($task));
|
|
960
|
-
{
|
|
961
858
|
if(_1.None) {
|
|
962
859
|
remaining_ = (-1);
|
|
963
860
|
return ff_core_Option.None()
|
|
964
|
-
return
|
|
965
861
|
}
|
|
966
|
-
}
|
|
967
|
-
{
|
|
968
862
|
if(_1.Some) {
|
|
969
863
|
const x_ = _1.value_;
|
|
970
864
|
let list_ = [x_];
|
|
@@ -973,27 +867,21 @@ while((remaining_ > 0)) {
|
|
|
973
867
|
remaining_ -= 1;
|
|
974
868
|
do {
|
|
975
869
|
const _1 = (await self_.next_($task));
|
|
976
|
-
{
|
|
977
870
|
if(_1.None) {
|
|
978
871
|
remaining_ = (-1)
|
|
979
872
|
break
|
|
980
873
|
}
|
|
981
|
-
}
|
|
982
|
-
{
|
|
983
874
|
if(_1.Some) {
|
|
984
875
|
const x_ = _1.value_;
|
|
985
876
|
list_ = [x_, ...list_]
|
|
986
877
|
break
|
|
987
878
|
}
|
|
988
|
-
}
|
|
989
879
|
} while(false)
|
|
990
880
|
};
|
|
991
881
|
if((remaining_ !== (-1))) {
|
|
992
882
|
remaining_ = size_
|
|
993
883
|
};
|
|
994
884
|
return ff_core_Option.Some(ff_core_List.List_reverse(list_))
|
|
995
|
-
return
|
|
996
|
-
}
|
|
997
885
|
}
|
|
998
886
|
}
|
|
999
887
|
}
|
|
@@ -1016,19 +904,15 @@ let done_ = false;
|
|
|
1016
904
|
while((!done_)) {
|
|
1017
905
|
do {
|
|
1018
906
|
const _1 = (await self_.next_($task));
|
|
1019
|
-
{
|
|
1020
907
|
if(_1.None) {
|
|
1021
908
|
done_ = true
|
|
1022
909
|
break
|
|
1023
910
|
}
|
|
1024
|
-
}
|
|
1025
|
-
{
|
|
1026
911
|
if(_1.Some) {
|
|
1027
912
|
const x_ = _1.value_;
|
|
1028
913
|
(await body_(x_, $task))
|
|
1029
914
|
break
|
|
1030
915
|
}
|
|
1031
|
-
}
|
|
1032
916
|
} while(false)
|
|
1033
917
|
}
|
|
1034
918
|
} finally {
|
|
@@ -1042,19 +926,15 @@ let done_ = false;
|
|
|
1042
926
|
while((!done_)) {
|
|
1043
927
|
do {
|
|
1044
928
|
const _1 = (await self_.next_($task));
|
|
1045
|
-
{
|
|
1046
929
|
if(_1.None) {
|
|
1047
930
|
done_ = true
|
|
1048
931
|
break
|
|
1049
932
|
}
|
|
1050
|
-
}
|
|
1051
|
-
{
|
|
1052
933
|
if(_1.Some) {
|
|
1053
934
|
const x_ = _1.value_;
|
|
1054
935
|
done_ = (!(await body_(x_, $task)))
|
|
1055
936
|
break
|
|
1056
937
|
}
|
|
1057
|
-
}
|
|
1058
938
|
} while(false)
|
|
1059
939
|
}
|
|
1060
940
|
} finally {
|
|
@@ -1095,20 +975,16 @@ let result_ = ff_core_Option.None();
|
|
|
1095
975
|
while((!done_)) {
|
|
1096
976
|
do {
|
|
1097
977
|
const _1 = (await self_.next_($task));
|
|
1098
|
-
{
|
|
1099
978
|
if(_1.None) {
|
|
1100
979
|
done_ = true
|
|
1101
980
|
break
|
|
1102
981
|
}
|
|
1103
|
-
}
|
|
1104
|
-
{
|
|
1105
|
-
const o_ = _1;
|
|
1106
982
|
if(_1.Some) {
|
|
983
|
+
const o_ = _1;
|
|
1107
984
|
const x_ = _1.value_;
|
|
1108
985
|
result_ = o_
|
|
1109
986
|
break
|
|
1110
987
|
}
|
|
1111
|
-
}
|
|
1112
988
|
} while(false)
|
|
1113
989
|
};
|
|
1114
990
|
return result_
|
|
@@ -1136,23 +1012,18 @@ let result_ = ff_core_Option.None();
|
|
|
1136
1012
|
while((!done_)) {
|
|
1137
1013
|
do {
|
|
1138
1014
|
const _1 = (await self_.next_($task));
|
|
1139
|
-
{
|
|
1140
1015
|
if(_1.None) {
|
|
1141
1016
|
done_ = true
|
|
1142
1017
|
break
|
|
1143
1018
|
}
|
|
1144
|
-
}
|
|
1145
|
-
{
|
|
1146
1019
|
if(_1.Some) {
|
|
1147
1020
|
const x_ = _1.value_;
|
|
1148
1021
|
do {
|
|
1149
1022
|
const _1 = (await body_(x_, $task));
|
|
1150
|
-
{
|
|
1151
1023
|
if(_1.None) {
|
|
1152
1024
|
|
|
1153
1025
|
break
|
|
1154
1026
|
}
|
|
1155
|
-
}
|
|
1156
1027
|
{
|
|
1157
1028
|
const o_ = _1;
|
|
1158
1029
|
done_ = true;
|
|
@@ -1162,7 +1033,6 @@ break
|
|
|
1162
1033
|
} while(false)
|
|
1163
1034
|
break
|
|
1164
1035
|
}
|
|
1165
|
-
}
|
|
1166
1036
|
} while(false)
|
|
1167
1037
|
};
|
|
1168
1038
|
return result_
|
|
@@ -278,13 +278,10 @@ return ff_core_StringMap.StringMap_grab(self_, key_)
|
|
|
278
278
|
export function StringMap_push(self_, key_, value_) {
|
|
279
279
|
{
|
|
280
280
|
const _1 = ff_core_StringMap.StringMap_get(self_, key_);
|
|
281
|
-
{
|
|
282
281
|
if(_1.None) {
|
|
283
282
|
ff_core_StringMap.StringMap_set(self_, key_, ff_core_List.List_toArray([value_]))
|
|
284
283
|
return
|
|
285
284
|
}
|
|
286
|
-
}
|
|
287
|
-
{
|
|
288
285
|
if(_1.Some) {
|
|
289
286
|
const array_ = _1.value_;
|
|
290
287
|
ff_core_Array.Array_push(array_, value_)
|
|
@@ -292,18 +289,14 @@ return
|
|
|
292
289
|
}
|
|
293
290
|
}
|
|
294
291
|
}
|
|
295
|
-
}
|
|
296
292
|
|
|
297
293
|
export async function StringMap_push$(self_, key_, value_, $task) {
|
|
298
294
|
{
|
|
299
295
|
const _1 = ff_core_StringMap.StringMap_get(self_, key_);
|
|
300
|
-
{
|
|
301
296
|
if(_1.None) {
|
|
302
297
|
ff_core_StringMap.StringMap_set(self_, key_, ff_core_List.List_toArray([value_]))
|
|
303
298
|
return
|
|
304
299
|
}
|
|
305
|
-
}
|
|
306
|
-
{
|
|
307
300
|
if(_1.Some) {
|
|
308
301
|
const array_ = _1.value_;
|
|
309
302
|
ff_core_Array.Array_push(array_, value_)
|
|
@@ -311,7 +304,6 @@ return
|
|
|
311
304
|
}
|
|
312
305
|
}
|
|
313
306
|
}
|
|
314
|
-
}
|
|
315
307
|
|
|
316
308
|
|
|
317
309
|
|