firefly-compiler 0.4.17 → 0.4.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/compiler/Builder.ff +1 -1
  2. package/compiler/Compiler.ff +6 -5
  3. package/compiler/Inference.ff +31 -19
  4. package/compiler/JsEmitter.ff +98 -71
  5. package/compiler/JsImporter.ff +1 -1
  6. package/compiler/LspHook.ff +4 -4
  7. package/compiler/Main.ff +6 -6
  8. package/compiler/Parser.ff +39 -39
  9. package/compiler/Patterns.ff +2 -0
  10. package/compiler/Syntax.ff +1 -1
  11. package/compiler/Tokenizer.ff +2 -2
  12. package/compiler/Workspace.ff +2 -2
  13. package/core/Array.ff +135 -294
  14. package/core/Buffer.ff +3 -3
  15. package/core/BuildSystem.ff +1 -1
  16. package/core/Equal.ff +36 -52
  17. package/core/HttpClient.ff +1 -1
  18. package/core/IntMap.ff +14 -18
  19. package/core/JsSystem.ff +1 -1
  20. package/core/JsValue.ff +6 -12
  21. package/core/Json.ff +19 -28
  22. package/core/List.ff +281 -312
  23. package/core/Map.ff +4 -8
  24. package/core/NodeSystem.ff +2 -2
  25. package/core/Option.ff +0 -4
  26. package/core/Ordering.ff +10 -6
  27. package/core/Pair.ff +0 -4
  28. package/core/Random.ff +12 -26
  29. package/core/RbMap.ff +216 -216
  30. package/core/Serializable.ff +9 -18
  31. package/core/Set.ff +0 -1
  32. package/core/SourceLocation.ff +1 -1
  33. package/core/Stack.ff +32 -45
  34. package/core/Stream.ff +10 -14
  35. package/core/String.ff +24 -6
  36. package/core/StringMap.ff +15 -19
  37. package/guide/Main.ff +20 -2
  38. package/lsp/CompletionHandler.ff +4 -4
  39. package/lsp/Handler.ff +45 -34
  40. package/lsp/HoverHandler.ff +2 -2
  41. package/lsp/LanguageServer.ff +2 -2
  42. package/lsp/SignatureHelpHandler.ff +1 -1
  43. package/lsp/SymbolHandler.ff +1 -1
  44. package/lux/Lux.ff +3 -3
  45. package/output/js/ff/compiler/Builder.mjs +19 -21
  46. package/output/js/ff/compiler/Compiler.mjs +18 -20
  47. package/output/js/ff/compiler/Dependencies.mjs +8 -10
  48. package/output/js/ff/compiler/Deriver.mjs +234 -236
  49. package/output/js/ff/compiler/Dictionaries.mjs +6 -8
  50. package/output/js/ff/compiler/Environment.mjs +42 -44
  51. package/output/js/ff/compiler/Inference.mjs +346 -304
  52. package/output/js/ff/compiler/JsEmitter.mjs +907 -833
  53. package/output/js/ff/compiler/JsImporter.mjs +0 -2
  54. package/output/js/ff/compiler/LspHook.mjs +10 -12
  55. package/output/js/ff/compiler/Main.mjs +109 -111
  56. package/output/js/ff/compiler/Parser.mjs +405 -407
  57. package/output/js/ff/compiler/Patterns.mjs +64 -50
  58. package/output/js/ff/compiler/Resolver.mjs +36 -38
  59. package/output/js/ff/compiler/Substitution.mjs +4 -6
  60. package/output/js/ff/compiler/Syntax.mjs +160 -162
  61. package/output/js/ff/compiler/Token.mjs +52 -54
  62. package/output/js/ff/compiler/Tokenizer.mjs +16 -18
  63. package/output/js/ff/compiler/Unification.mjs +24 -26
  64. package/output/js/ff/compiler/Wildcards.mjs +0 -2
  65. package/output/js/ff/compiler/Workspace.mjs +18 -20
  66. package/output/js/ff/core/Any.mjs +0 -2
  67. package/output/js/ff/core/Array.mjs +216 -613
  68. package/output/js/ff/core/AssetSystem.mjs +2 -4
  69. package/output/js/ff/core/Atomic.mjs +0 -2
  70. package/output/js/ff/core/Bool.mjs +0 -2
  71. package/output/js/ff/core/Box.mjs +0 -2
  72. package/output/js/ff/core/BrowserSystem.mjs +0 -2
  73. package/output/js/ff/core/Buffer.mjs +0 -2
  74. package/output/js/ff/core/BuildSystem.mjs +12 -14
  75. package/output/js/ff/core/Channel.mjs +0 -2
  76. package/output/js/ff/core/Char.mjs +0 -2
  77. package/output/js/ff/core/Core.mjs +0 -2
  78. package/output/js/ff/core/Duration.mjs +0 -2
  79. package/output/js/ff/core/Equal.mjs +0 -22
  80. package/output/js/ff/core/Error.mjs +0 -2
  81. package/output/js/ff/core/FileHandle.mjs +0 -2
  82. package/output/js/ff/core/Float.mjs +0 -2
  83. package/output/js/ff/core/HttpClient.mjs +2 -4
  84. package/output/js/ff/core/Instant.mjs +0 -2
  85. package/output/js/ff/core/Int.mjs +8 -10
  86. package/output/js/ff/core/IntMap.mjs +32 -42
  87. package/output/js/ff/core/JsSystem.mjs +1 -3
  88. package/output/js/ff/core/JsValue.mjs +5 -12
  89. package/output/js/ff/core/Json.mjs +23 -56
  90. package/output/js/ff/core/List.mjs +648 -1989
  91. package/output/js/ff/core/Lock.mjs +0 -2
  92. package/output/js/ff/core/Log.mjs +0 -2
  93. package/output/js/ff/core/Map.mjs +10 -20
  94. package/output/js/ff/core/NodeSystem.mjs +6 -8
  95. package/output/js/ff/core/Nothing.mjs +0 -2
  96. package/output/js/ff/core/Option.mjs +8 -18
  97. package/output/js/ff/core/Ordering.mjs +20 -98
  98. package/output/js/ff/core/Pair.mjs +6 -16
  99. package/output/js/ff/core/Path.mjs +12 -14
  100. package/output/js/ff/core/Random.mjs +24 -54
  101. package/output/js/ff/core/RbMap.mjs +54 -56
  102. package/output/js/ff/core/Serializable.mjs +19 -36
  103. package/output/js/ff/core/Set.mjs +0 -14
  104. package/output/js/ff/core/Show.mjs +0 -2
  105. package/output/js/ff/core/SourceLocation.mjs +0 -2
  106. package/output/js/ff/core/Stream.mjs +34 -44
  107. package/output/js/ff/core/String.mjs +31 -5
  108. package/output/js/ff/core/StringMap.mjs +32 -42
  109. package/output/js/ff/core/Task.mjs +0 -2
  110. package/output/js/ff/core/Try.mjs +0 -2
  111. package/output/js/ff/core/Unit.mjs +0 -2
  112. package/package.json +1 -1
  113. package/vscode/package.json +1 -1
  114. package/webserver/WebServer.ff +8 -8
  115. package/output/js/ff/core/Stack.mjs +0 -603
@@ -82,8 +82,6 @@ import * as ff_core_Show from "../../ff/core/Show.mjs"
82
82
 
83
83
  import * as ff_core_SourceLocation from "../../ff/core/SourceLocation.mjs"
84
84
 
85
- import * as ff_core_Stack from "../../ff/core/Stack.mjs"
86
-
87
85
  import * as ff_core_Stream from "../../ff/core/Stream.mjs"
88
86
 
89
87
  import * as ff_core_String from "../../ff/core/String.mjs"
@@ -2207,7 +2205,7 @@ serialization_.offset_ += 1;
2207
2205
  {
2208
2206
  const _1 = variantIndex_;
2209
2207
  {
2210
- if(_1 == 0) {
2208
+ if(_1 === 0) {
2211
2209
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 23), 0);
2212
2210
  return ff_compiler_Token.Token(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_), ff_compiler_Token.ff_core_Serializable_Serializable$ff_compiler_Token_TokenKind.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Int_Int.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Int_Int.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Int_Int.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Int_Int.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Int_Int.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Int_Int.deserializeUsing_(serialization_))
2213
2211
  return
@@ -2248,7 +2246,7 @@ serialization_.offset_ += 1;
2248
2246
  {
2249
2247
  const _1 = variantIndex_;
2250
2248
  {
2251
- if(_1 == 0) {
2249
+ if(_1 === 0) {
2252
2250
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 23), 0);
2253
2251
  return ff_compiler_Token.Token(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_), ff_compiler_Token.ff_core_Serializable_Serializable$ff_compiler_Token_TokenKind.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Int_Int.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Int_Int.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Int_Int.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Int_Int.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Int_Int.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Int_Int.deserializeUsing_(serialization_))
2254
2252
  return
@@ -2525,175 +2523,175 @@ serialization_.offset_ += 1;
2525
2523
  {
2526
2524
  const _1 = variantIndex_;
2527
2525
  {
2528
- if(_1 == 0) {
2526
+ if(_1 === 0) {
2529
2527
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 22), 0);
2530
2528
  return ff_compiler_Token.LEnd()
2531
2529
  return
2532
2530
  }
2533
2531
  }
2534
2532
  {
2535
- if(_1 == 1) {
2533
+ if(_1 === 1) {
2536
2534
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 25), 0);
2537
2535
  return ff_compiler_Token.LString()
2538
2536
  return
2539
2537
  }
2540
2538
  }
2541
2539
  {
2542
- if(_1 == 2) {
2540
+ if(_1 === 2) {
2543
2541
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 23), 0);
2544
2542
  return ff_compiler_Token.LChar()
2545
2543
  return
2546
2544
  }
2547
2545
  }
2548
2546
  {
2549
- if(_1 == 3) {
2547
+ if(_1 === 3) {
2550
2548
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 22), 0);
2551
2549
  return ff_compiler_Token.LInt()
2552
2550
  return
2553
2551
  }
2554
2552
  }
2555
2553
  {
2556
- if(_1 == 4) {
2554
+ if(_1 === 4) {
2557
2555
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 24), 0);
2558
2556
  return ff_compiler_Token.LFloat()
2559
2557
  return
2560
2558
  }
2561
2559
  }
2562
2560
  {
2563
- if(_1 == 5) {
2561
+ if(_1 === 5) {
2564
2562
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 26), 0);
2565
2563
  return ff_compiler_Token.LKeyword()
2566
2564
  return
2567
2565
  }
2568
2566
  }
2569
2567
  {
2570
- if(_1 == 6) {
2568
+ if(_1 === 6) {
2571
2569
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 28), 0);
2572
2570
  return ff_compiler_Token.LNamespace()
2573
2571
  return
2574
2572
  }
2575
2573
  }
2576
2574
  {
2577
- if(_1 == 7) {
2575
+ if(_1 === 7) {
2578
2576
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 24), 0);
2579
2577
  return ff_compiler_Token.LLower()
2580
2578
  return
2581
2579
  }
2582
2580
  }
2583
2581
  {
2584
- if(_1 == 8) {
2582
+ if(_1 === 8) {
2585
2583
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 24), 0);
2586
2584
  return ff_compiler_Token.LUpper()
2587
2585
  return
2588
2586
  }
2589
2587
  }
2590
2588
  {
2591
- if(_1 == 9) {
2589
+ if(_1 === 9) {
2592
2590
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 27), 0);
2593
2591
  return ff_compiler_Token.LWildcard()
2594
2592
  return
2595
2593
  }
2596
2594
  }
2597
2595
  {
2598
- if(_1 == 10) {
2596
+ if(_1 === 10) {
2599
2597
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 30), 0);
2600
2598
  return ff_compiler_Token.LBracketLeft()
2601
2599
  return
2602
2600
  }
2603
2601
  }
2604
2602
  {
2605
- if(_1 == 11) {
2603
+ if(_1 === 11) {
2606
2604
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 31), 0);
2607
2605
  return ff_compiler_Token.LBracketRight()
2608
2606
  return
2609
2607
  }
2610
2608
  }
2611
2609
  {
2612
- if(_1 == 12) {
2610
+ if(_1 === 12) {
2613
2611
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 27), 0);
2614
2612
  return ff_compiler_Token.LOperator()
2615
2613
  return
2616
2614
  }
2617
2615
  }
2618
2616
  {
2619
- if(_1 == 13) {
2617
+ if(_1 === 13) {
2620
2618
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 24), 0);
2621
2619
  return ff_compiler_Token.LComma()
2622
2620
  return
2623
2621
  }
2624
2622
  }
2625
2623
  {
2626
- if(_1 == 14) {
2624
+ if(_1 === 14) {
2627
2625
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 28), 0);
2628
2626
  return ff_compiler_Token.LSeparator()
2629
2627
  return
2630
2628
  }
2631
2629
  }
2632
2630
  {
2633
- if(_1 == 15) {
2631
+ if(_1 === 15) {
2634
2632
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 22), 0);
2635
2633
  return ff_compiler_Token.LDot()
2636
2634
  return
2637
2635
  }
2638
2636
  }
2639
2637
  {
2640
- if(_1 == 16) {
2638
+ if(_1 === 16) {
2641
2639
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 28), 0);
2642
2640
  return ff_compiler_Token.LSemicolon()
2643
2641
  return
2644
2642
  }
2645
2643
  }
2646
2644
  {
2647
- if(_1 == 17) {
2645
+ if(_1 === 17) {
2648
2646
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 23), 0);
2649
2647
  return ff_compiler_Token.LPipe()
2650
2648
  return
2651
2649
  }
2652
2650
  }
2653
2651
  {
2654
- if(_1 == 18) {
2652
+ if(_1 === 18) {
2655
2653
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 24), 0);
2656
2654
  return ff_compiler_Token.LColon()
2657
2655
  return
2658
2656
  }
2659
2657
  }
2660
2658
  {
2661
- if(_1 == 19) {
2659
+ if(_1 === 19) {
2662
2660
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 28), 0);
2663
2661
  return ff_compiler_Token.LDotDotDot()
2664
2662
  return
2665
2663
  }
2666
2664
  }
2667
2665
  {
2668
- if(_1 == 20) {
2666
+ if(_1 === 20) {
2669
2667
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
2670
2668
  return ff_compiler_Token.LArrowThick()
2671
2669
  return
2672
2670
  }
2673
2671
  }
2674
2672
  {
2675
- if(_1 == 21) {
2673
+ if(_1 === 21) {
2676
2674
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 25), 0);
2677
2675
  return ff_compiler_Token.LAssign()
2678
2676
  return
2679
2677
  }
2680
2678
  }
2681
2679
  {
2682
- if(_1 == 22) {
2680
+ if(_1 === 22) {
2683
2681
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
2684
2682
  return ff_compiler_Token.LAssignPlus()
2685
2683
  return
2686
2684
  }
2687
2685
  }
2688
2686
  {
2689
- if(_1 == 23) {
2687
+ if(_1 === 23) {
2690
2688
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 30), 0);
2691
2689
  return ff_compiler_Token.LAssignMinus()
2692
2690
  return
2693
2691
  }
2694
2692
  }
2695
2693
  {
2696
- if(_1 == 24) {
2694
+ if(_1 === 24) {
2697
2695
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
2698
2696
  return ff_compiler_Token.LAssignLink()
2699
2697
  return
@@ -2967,175 +2965,175 @@ serialization_.offset_ += 1;
2967
2965
  {
2968
2966
  const _1 = variantIndex_;
2969
2967
  {
2970
- if(_1 == 0) {
2968
+ if(_1 === 0) {
2971
2969
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 22), 0);
2972
2970
  return ff_compiler_Token.LEnd()
2973
2971
  return
2974
2972
  }
2975
2973
  }
2976
2974
  {
2977
- if(_1 == 1) {
2975
+ if(_1 === 1) {
2978
2976
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 25), 0);
2979
2977
  return ff_compiler_Token.LString()
2980
2978
  return
2981
2979
  }
2982
2980
  }
2983
2981
  {
2984
- if(_1 == 2) {
2982
+ if(_1 === 2) {
2985
2983
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 23), 0);
2986
2984
  return ff_compiler_Token.LChar()
2987
2985
  return
2988
2986
  }
2989
2987
  }
2990
2988
  {
2991
- if(_1 == 3) {
2989
+ if(_1 === 3) {
2992
2990
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 22), 0);
2993
2991
  return ff_compiler_Token.LInt()
2994
2992
  return
2995
2993
  }
2996
2994
  }
2997
2995
  {
2998
- if(_1 == 4) {
2996
+ if(_1 === 4) {
2999
2997
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 24), 0);
3000
2998
  return ff_compiler_Token.LFloat()
3001
2999
  return
3002
3000
  }
3003
3001
  }
3004
3002
  {
3005
- if(_1 == 5) {
3003
+ if(_1 === 5) {
3006
3004
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 26), 0);
3007
3005
  return ff_compiler_Token.LKeyword()
3008
3006
  return
3009
3007
  }
3010
3008
  }
3011
3009
  {
3012
- if(_1 == 6) {
3010
+ if(_1 === 6) {
3013
3011
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 28), 0);
3014
3012
  return ff_compiler_Token.LNamespace()
3015
3013
  return
3016
3014
  }
3017
3015
  }
3018
3016
  {
3019
- if(_1 == 7) {
3017
+ if(_1 === 7) {
3020
3018
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 24), 0);
3021
3019
  return ff_compiler_Token.LLower()
3022
3020
  return
3023
3021
  }
3024
3022
  }
3025
3023
  {
3026
- if(_1 == 8) {
3024
+ if(_1 === 8) {
3027
3025
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 24), 0);
3028
3026
  return ff_compiler_Token.LUpper()
3029
3027
  return
3030
3028
  }
3031
3029
  }
3032
3030
  {
3033
- if(_1 == 9) {
3031
+ if(_1 === 9) {
3034
3032
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 27), 0);
3035
3033
  return ff_compiler_Token.LWildcard()
3036
3034
  return
3037
3035
  }
3038
3036
  }
3039
3037
  {
3040
- if(_1 == 10) {
3038
+ if(_1 === 10) {
3041
3039
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 30), 0);
3042
3040
  return ff_compiler_Token.LBracketLeft()
3043
3041
  return
3044
3042
  }
3045
3043
  }
3046
3044
  {
3047
- if(_1 == 11) {
3045
+ if(_1 === 11) {
3048
3046
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 31), 0);
3049
3047
  return ff_compiler_Token.LBracketRight()
3050
3048
  return
3051
3049
  }
3052
3050
  }
3053
3051
  {
3054
- if(_1 == 12) {
3052
+ if(_1 === 12) {
3055
3053
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 27), 0);
3056
3054
  return ff_compiler_Token.LOperator()
3057
3055
  return
3058
3056
  }
3059
3057
  }
3060
3058
  {
3061
- if(_1 == 13) {
3059
+ if(_1 === 13) {
3062
3060
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 24), 0);
3063
3061
  return ff_compiler_Token.LComma()
3064
3062
  return
3065
3063
  }
3066
3064
  }
3067
3065
  {
3068
- if(_1 == 14) {
3066
+ if(_1 === 14) {
3069
3067
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 28), 0);
3070
3068
  return ff_compiler_Token.LSeparator()
3071
3069
  return
3072
3070
  }
3073
3071
  }
3074
3072
  {
3075
- if(_1 == 15) {
3073
+ if(_1 === 15) {
3076
3074
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 22), 0);
3077
3075
  return ff_compiler_Token.LDot()
3078
3076
  return
3079
3077
  }
3080
3078
  }
3081
3079
  {
3082
- if(_1 == 16) {
3080
+ if(_1 === 16) {
3083
3081
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 28), 0);
3084
3082
  return ff_compiler_Token.LSemicolon()
3085
3083
  return
3086
3084
  }
3087
3085
  }
3088
3086
  {
3089
- if(_1 == 17) {
3087
+ if(_1 === 17) {
3090
3088
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 23), 0);
3091
3089
  return ff_compiler_Token.LPipe()
3092
3090
  return
3093
3091
  }
3094
3092
  }
3095
3093
  {
3096
- if(_1 == 18) {
3094
+ if(_1 === 18) {
3097
3095
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 24), 0);
3098
3096
  return ff_compiler_Token.LColon()
3099
3097
  return
3100
3098
  }
3101
3099
  }
3102
3100
  {
3103
- if(_1 == 19) {
3101
+ if(_1 === 19) {
3104
3102
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 28), 0);
3105
3103
  return ff_compiler_Token.LDotDotDot()
3106
3104
  return
3107
3105
  }
3108
3106
  }
3109
3107
  {
3110
- if(_1 == 20) {
3108
+ if(_1 === 20) {
3111
3109
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
3112
3110
  return ff_compiler_Token.LArrowThick()
3113
3111
  return
3114
3112
  }
3115
3113
  }
3116
3114
  {
3117
- if(_1 == 21) {
3115
+ if(_1 === 21) {
3118
3116
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 25), 0);
3119
3117
  return ff_compiler_Token.LAssign()
3120
3118
  return
3121
3119
  }
3122
3120
  }
3123
3121
  {
3124
- if(_1 == 22) {
3122
+ if(_1 === 22) {
3125
3123
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
3126
3124
  return ff_compiler_Token.LAssignPlus()
3127
3125
  return
3128
3126
  }
3129
3127
  }
3130
3128
  {
3131
- if(_1 == 23) {
3129
+ if(_1 === 23) {
3132
3130
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 30), 0);
3133
3131
  return ff_compiler_Token.LAssignMinus()
3134
3132
  return
3135
3133
  }
3136
3134
  }
3137
3135
  {
3138
- if(_1 == 24) {
3136
+ if(_1 === 24) {
3139
3137
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
3140
3138
  return ff_compiler_Token.LAssignLink()
3141
3139
  return
@@ -86,8 +86,6 @@ import * as ff_core_Show from "../../ff/core/Show.mjs"
86
86
 
87
87
  import * as ff_core_SourceLocation from "../../ff/core/SourceLocation.mjs"
88
88
 
89
- import * as ff_core_Stack from "../../ff/core/Stack.mjs"
90
-
91
89
  import * as ff_core_Stream from "../../ff/core/Stream.mjs"
92
90
 
93
91
  import * as ff_core_String from "../../ff/core/String.mjs"
@@ -119,7 +117,7 @@ return _w1.column_
119
117
  })), (() => {
120
118
  return (-1)
121
119
  }));
122
- const tokens_ = ff_core_Stack.make_();
120
+ const tokens_ = ff_core_Array.make_();
123
121
  let line_ = 1;
124
122
  let lineOffset_ = 0;
125
123
  let startLine_ = line_;
@@ -130,13 +128,13 @@ ff_core_List.List_map(ff_core_List.range_(ff_core_String.String_size(operatorCha
130
128
  operatorCharacters_ = ff_core_Set.Set_add(operatorCharacters_, ff_core_String.String_grab(operatorCharactersString_, j_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_Char_Char)
131
129
  }));
132
130
  function emitToken_(kind_, startOffset_, stopOffset_) {
133
- if((!ff_core_Stack.Stack_isEmpty(tokens_))) {
134
- const last_ = ff_core_Stack.Stack_grabLast(tokens_);
131
+ if((!ff_core_Array.Array_isEmpty(tokens_))) {
132
+ const last_ = ff_core_Array.Array_grabLast(tokens_);
135
133
  if((((last_.stopLine_ === startLine_) && ff_compiler_Token.ff_core_Equal_Equal$ff_compiler_Token_TokenKind.equals_(last_.kind_, ff_compiler_Token.LLower())) && ff_compiler_Token.TokenKind_afterKeyword(kind_))) {
136
134
  if((((completionLine_ === last_.startLine_) && (completionColumn_ >= ((1 + last_.startOffset_) - last_.startLineOffset_))) && (completionColumn_ <= ((1 + last_.stopOffset_) - last_.stopLineOffset_)))) {
137
- ff_core_Stack.Stack_push(tokens_, ff_compiler_Token.Token(file_, code_, ff_compiler_Token.LSeparator(), startLine_, startLineOffset_, startLineOffset_, startLine_, startLineOffset_, startLineOffset_))
135
+ ff_core_Array.Array_push(tokens_, ff_compiler_Token.Token(file_, code_, ff_compiler_Token.LSeparator(), startLine_, startLineOffset_, startLineOffset_, startLine_, startLineOffset_, startLineOffset_))
138
136
  } else {
139
- ff_core_Stack.Stack_modify(tokens_, (ff_core_Stack.Stack_size(tokens_) - 1), ((_w1) => {
137
+ ff_core_Array.Array_modify(tokens_, (ff_core_Array.Array_size(tokens_) - 1), ((_w1) => {
140
138
  {
141
139
  const _1 = _w1;
142
140
  {
@@ -149,10 +147,10 @@ return
149
147
  }
150
148
  };
151
149
  if((((last_.stopLine_ !== startLine_) && ff_compiler_Token.TokenKind_beforeSeparator(last_.kind_)) && ff_compiler_Token.TokenKind_afterSeparator(kind_))) {
152
- ff_core_Stack.Stack_push(tokens_, ff_compiler_Token.Token(file_, code_, ff_compiler_Token.LSeparator(), startLine_, startLineOffset_, startLineOffset_, startLine_, startLineOffset_, startLineOffset_))
150
+ ff_core_Array.Array_push(tokens_, ff_compiler_Token.Token(file_, code_, ff_compiler_Token.LSeparator(), startLine_, startLineOffset_, startLineOffset_, startLine_, startLineOffset_, startLineOffset_))
153
151
  }
154
152
  };
155
- ff_core_Stack.Stack_push(tokens_, ff_compiler_Token.Token(file_, code_, kind_, startLine_, startLineOffset_, startOffset_, line_, lineOffset_, stopOffset_))
153
+ ff_core_Array.Array_push(tokens_, ff_compiler_Token.Token(file_, code_, kind_, startLine_, startLineOffset_, startOffset_, line_, lineOffset_, stopOffset_))
156
154
  }
157
155
  let i_ = 0;
158
156
  function throwError_(message_) {
@@ -344,7 +342,7 @@ throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Sy
344
342
  ff_core_List.List_each(ff_core_List.range_(5), ((_) => {
345
343
  emitToken_(ff_compiler_Token.LEnd(), i_, i_)
346
344
  }));
347
- return ff_core_Stack.Stack_drain(tokens_)
345
+ return ff_core_Array.Array_drain(tokens_)
348
346
  }
349
347
 
350
348
  export async function tokenize_$(file_, code_, completionAt_, attemptFixes_, $task) {
@@ -362,7 +360,7 @@ return _w1.column_
362
360
  })), (() => {
363
361
  return (-1)
364
362
  }));
365
- const tokens_ = ff_core_Stack.make_();
363
+ const tokens_ = ff_core_Array.make_();
366
364
  let line_ = 1;
367
365
  let lineOffset_ = 0;
368
366
  let startLine_ = line_;
@@ -373,13 +371,13 @@ ff_core_List.List_map(ff_core_List.range_(ff_core_String.String_size(operatorCha
373
371
  operatorCharacters_ = ff_core_Set.Set_add(operatorCharacters_, ff_core_String.String_grab(operatorCharactersString_, j_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_Char_Char)
374
372
  }));
375
373
  function emitToken_(kind_, startOffset_, stopOffset_) {
376
- if((!ff_core_Stack.Stack_isEmpty(tokens_))) {
377
- const last_ = ff_core_Stack.Stack_grabLast(tokens_);
374
+ if((!ff_core_Array.Array_isEmpty(tokens_))) {
375
+ const last_ = ff_core_Array.Array_grabLast(tokens_);
378
376
  if((((last_.stopLine_ === startLine_) && ff_compiler_Token.ff_core_Equal_Equal$ff_compiler_Token_TokenKind.equals_(last_.kind_, ff_compiler_Token.LLower())) && ff_compiler_Token.TokenKind_afterKeyword(kind_))) {
379
377
  if((((completionLine_ === last_.startLine_) && (completionColumn_ >= ((1 + last_.startOffset_) - last_.startLineOffset_))) && (completionColumn_ <= ((1 + last_.stopOffset_) - last_.stopLineOffset_)))) {
380
- ff_core_Stack.Stack_push(tokens_, ff_compiler_Token.Token(file_, code_, ff_compiler_Token.LSeparator(), startLine_, startLineOffset_, startLineOffset_, startLine_, startLineOffset_, startLineOffset_))
378
+ ff_core_Array.Array_push(tokens_, ff_compiler_Token.Token(file_, code_, ff_compiler_Token.LSeparator(), startLine_, startLineOffset_, startLineOffset_, startLine_, startLineOffset_, startLineOffset_))
381
379
  } else {
382
- ff_core_Stack.Stack_modify(tokens_, (ff_core_Stack.Stack_size(tokens_) - 1), ((_w1) => {
380
+ ff_core_Array.Array_modify(tokens_, (ff_core_Array.Array_size(tokens_) - 1), ((_w1) => {
383
381
  {
384
382
  const _1 = _w1;
385
383
  {
@@ -392,10 +390,10 @@ return
392
390
  }
393
391
  };
394
392
  if((((last_.stopLine_ !== startLine_) && ff_compiler_Token.TokenKind_beforeSeparator(last_.kind_)) && ff_compiler_Token.TokenKind_afterSeparator(kind_))) {
395
- ff_core_Stack.Stack_push(tokens_, ff_compiler_Token.Token(file_, code_, ff_compiler_Token.LSeparator(), startLine_, startLineOffset_, startLineOffset_, startLine_, startLineOffset_, startLineOffset_))
393
+ ff_core_Array.Array_push(tokens_, ff_compiler_Token.Token(file_, code_, ff_compiler_Token.LSeparator(), startLine_, startLineOffset_, startLineOffset_, startLine_, startLineOffset_, startLineOffset_))
396
394
  }
397
395
  };
398
- ff_core_Stack.Stack_push(tokens_, ff_compiler_Token.Token(file_, code_, kind_, startLine_, startLineOffset_, startOffset_, line_, lineOffset_, stopOffset_))
396
+ ff_core_Array.Array_push(tokens_, ff_compiler_Token.Token(file_, code_, kind_, startLine_, startLineOffset_, startOffset_, line_, lineOffset_, stopOffset_))
399
397
  }
400
398
  let i_ = 0;
401
399
  function throwError_(message_) {
@@ -587,7 +585,7 @@ throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Sy
587
585
  ff_core_List.List_each(ff_core_List.range_(5), ((_) => {
588
586
  emitToken_(ff_compiler_Token.LEnd(), i_, i_)
589
587
  }));
590
- return ff_core_Stack.Stack_drain(tokens_)
588
+ return ff_core_Array.Array_drain(tokens_)
591
589
  }
592
590
 
593
591