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
|
@@ -143,12 +143,7 @@ return ff_compiler_Syntax.ForeignTarget(sync_, async_)
|
|
|
143
143
|
})());
|
|
144
144
|
{
|
|
145
145
|
const _1 = foreignTarget_;
|
|
146
|
-
{
|
|
147
|
-
if(_1.ForeignTarget) {
|
|
148
|
-
if(_1.syncCode_.None) {
|
|
149
|
-
if(_1.asyncCode_.None) {
|
|
150
|
-
const _guard1 = targetIsNode_;
|
|
151
|
-
if(_guard1) {
|
|
146
|
+
if(_1.ForeignTarget && _1.syncCode_.None && _1.asyncCode_.None && targetIsNode_) {
|
|
152
147
|
return ff_core_Option.Option_else(ff_core_Option.Option_map(ff_core_Option.Option_orElse(targets_.node_, (() => {
|
|
153
148
|
return ff_core_Option.Option_orElse(targets_.js_, (() => {
|
|
154
149
|
return body_
|
|
@@ -160,16 +155,7 @@ return foreignTarget_
|
|
|
160
155
|
}))
|
|
161
156
|
return
|
|
162
157
|
}
|
|
163
|
-
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
{
|
|
168
|
-
if(_1.ForeignTarget) {
|
|
169
|
-
if(_1.syncCode_.None) {
|
|
170
|
-
if(_1.asyncCode_.None) {
|
|
171
|
-
const _guard1 = (!targetIsNode_);
|
|
172
|
-
if(_guard1) {
|
|
158
|
+
if(_1.ForeignTarget && _1.syncCode_.None && _1.asyncCode_.None && (!targetIsNode_)) {
|
|
173
159
|
return ff_core_Option.Option_else(ff_core_Option.Option_map(ff_core_Option.Option_orElse(targets_.browser_, (() => {
|
|
174
160
|
return ff_core_Option.Option_orElse(targets_.js_, (() => {
|
|
175
161
|
return body_
|
|
@@ -181,13 +167,8 @@ return foreignTarget_
|
|
|
181
167
|
}))
|
|
182
168
|
return
|
|
183
169
|
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
170
|
{
|
|
189
171
|
return foreignTarget_
|
|
190
|
-
return
|
|
191
172
|
}
|
|
192
173
|
}
|
|
193
174
|
}
|
|
@@ -218,12 +199,7 @@ return ff_compiler_Syntax.ForeignTarget(sync_, async_)
|
|
|
218
199
|
})()));
|
|
219
200
|
{
|
|
220
201
|
const _1 = foreignTarget_;
|
|
221
|
-
{
|
|
222
|
-
if(_1.ForeignTarget) {
|
|
223
|
-
if(_1.syncCode_.None) {
|
|
224
|
-
if(_1.asyncCode_.None) {
|
|
225
|
-
const _guard1 = targetIsNode_;
|
|
226
|
-
if(_guard1) {
|
|
202
|
+
if(_1.ForeignTarget && _1.syncCode_.None && _1.asyncCode_.None && targetIsNode_) {
|
|
227
203
|
return ff_core_Option.Option_else(ff_core_Option.Option_map(ff_core_Option.Option_orElse(targets_.node_, (() => {
|
|
228
204
|
return ff_core_Option.Option_orElse(targets_.js_, (() => {
|
|
229
205
|
return body_
|
|
@@ -235,16 +211,7 @@ return foreignTarget_
|
|
|
235
211
|
}))
|
|
236
212
|
return
|
|
237
213
|
}
|
|
238
|
-
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
{
|
|
243
|
-
if(_1.ForeignTarget) {
|
|
244
|
-
if(_1.syncCode_.None) {
|
|
245
|
-
if(_1.asyncCode_.None) {
|
|
246
|
-
const _guard1 = (!targetIsNode_);
|
|
247
|
-
if(_guard1) {
|
|
214
|
+
if(_1.ForeignTarget && _1.syncCode_.None && _1.asyncCode_.None && (!targetIsNode_)) {
|
|
248
215
|
return ff_core_Option.Option_else(ff_core_Option.Option_map(ff_core_Option.Option_orElse(targets_.browser_, (() => {
|
|
249
216
|
return ff_core_Option.Option_orElse(targets_.js_, (() => {
|
|
250
217
|
return body_
|
|
@@ -256,13 +223,8 @@ return foreignTarget_
|
|
|
256
223
|
}))
|
|
257
224
|
return
|
|
258
225
|
}
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
226
|
{
|
|
264
227
|
return foreignTarget_
|
|
265
|
-
return
|
|
266
228
|
}
|
|
267
229
|
}
|
|
268
230
|
}
|
|
@@ -459,7 +421,7 @@ ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssign());
|
|
|
459
421
|
const value_ = ff_compiler_Parser.Parser_parseTerm(self_);
|
|
460
422
|
const retult_ = ff_compiler_Syntax.DLet(ff_compiler_Token.Token_at(nameToken_), ff_compiler_Token.Token_raw(nameToken_), variableType_, value_);
|
|
461
423
|
if(self_.lspHook_.trackSymbols_) {
|
|
462
|
-
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(nameToken_),
|
|
424
|
+
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(nameToken_), ff_compiler_LspHook.SLet(false), ff_compiler_Token.Token_at(nameToken_), ff_compiler_Token.Token_end(nameToken_), ff_compiler_Token.Token_at(nameToken_), ff_compiler_Token.Token_end(ff_compiler_Parser.Parser_behind(self_))))
|
|
463
425
|
};
|
|
464
426
|
return retult_
|
|
465
427
|
}
|
|
@@ -476,10 +438,7 @@ const targets_ = ff_compiler_Parser.Parser_parseTargets(self_, ff_core_List.List
|
|
|
476
438
|
const bestTarget_ = ff_compiler_Parser.findBestTarget_(self_.targetIsNode_, body_, targets_);
|
|
477
439
|
const result_ = ff_compiler_Syntax.DFunction(signature_.at_, signature_, bestTarget_);
|
|
478
440
|
if(self_.lspHook_.trackSymbols_) {
|
|
479
|
-
|
|
480
|
-
? 6
|
|
481
|
-
: 12);
|
|
482
|
-
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(signature_.name_, kind_, signature_.at_, (((_c) => {
|
|
441
|
+
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(signature_.name_, ff_compiler_LspHook.SFunction(member_), signature_.at_, (((_c) => {
|
|
483
442
|
return ff_compiler_Syntax.Location(_c.file_, _c.line_, (signature_.at_.column_ + ff_core_String.String_size(signature_.name_)))
|
|
484
443
|
}))(signature_.at_), signature_.at_, ff_compiler_Token.Token_end(ff_compiler_Parser.Parser_behind(self_))))
|
|
485
444
|
};
|
|
@@ -504,7 +463,6 @@ if(ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "{"))
|
|
|
504
463
|
const lambda_ = ff_compiler_Parser.Parser_parseLambda(self_, parameterCount_, false, false);
|
|
505
464
|
do {
|
|
506
465
|
const _1 = target_;
|
|
507
|
-
{
|
|
508
466
|
if(_1 === "js") {
|
|
509
467
|
if(ff_core_Equal.notEquals_(targets_.jsSync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
|
|
510
468
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
@@ -514,8 +472,6 @@ return ff_compiler_Parser.ParsedTargets(ff_core_Option.Some(lambda_), _c.jsSync_
|
|
|
514
472
|
}))(targets_)
|
|
515
473
|
break
|
|
516
474
|
}
|
|
517
|
-
}
|
|
518
|
-
{
|
|
519
475
|
if(_1 === "browser") {
|
|
520
476
|
if(ff_core_Equal.notEquals_(targets_.browserSync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
|
|
521
477
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
@@ -525,8 +481,6 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, ff_core
|
|
|
525
481
|
}))(targets_)
|
|
526
482
|
break
|
|
527
483
|
}
|
|
528
|
-
}
|
|
529
|
-
{
|
|
530
484
|
if(_1 === "node") {
|
|
531
485
|
if(ff_core_Equal.notEquals_(targets_.nodeAsync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
|
|
532
486
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
@@ -536,10 +490,8 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, _c.brow
|
|
|
536
490
|
}))(targets_)
|
|
537
491
|
break
|
|
538
492
|
}
|
|
539
|
-
}
|
|
540
493
|
{
|
|
541
494
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Unknown target"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
542
|
-
break
|
|
543
495
|
}
|
|
544
496
|
} while(false)
|
|
545
497
|
} else {
|
|
@@ -547,9 +499,7 @@ const mode_ = ff_compiler_Token.Token_raw(ff_compiler_Parser.Parser_skip(self_,
|
|
|
547
499
|
const code_ = processCode_(ff_compiler_Token.Token_raw(ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LString())));
|
|
548
500
|
do {
|
|
549
501
|
const _1 = ff_core_Pair.Pair(target_, mode_);
|
|
550
|
-
{
|
|
551
|
-
if(_1.first_ === "js") {
|
|
552
|
-
if(_1.second_ === "sync") {
|
|
502
|
+
if(_1.first_ === "js" && _1.second_ === "sync") {
|
|
553
503
|
if(ff_core_Equal.notEquals_(targets_.jsSync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
|
|
554
504
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
555
505
|
};
|
|
@@ -558,11 +508,7 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, ff_core_Option.Some(code_), _c.j
|
|
|
558
508
|
}))(targets_)
|
|
559
509
|
break
|
|
560
510
|
}
|
|
561
|
-
|
|
562
|
-
}
|
|
563
|
-
{
|
|
564
|
-
if(_1.first_ === "js") {
|
|
565
|
-
if(_1.second_ === "async") {
|
|
511
|
+
if(_1.first_ === "js" && _1.second_ === "async") {
|
|
566
512
|
if(ff_core_Equal.notEquals_(targets_.jsAsync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
|
|
567
513
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
568
514
|
};
|
|
@@ -571,11 +517,7 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, ff_core_Option.Some(
|
|
|
571
517
|
}))(targets_)
|
|
572
518
|
break
|
|
573
519
|
}
|
|
574
|
-
|
|
575
|
-
}
|
|
576
|
-
{
|
|
577
|
-
if(_1.first_ === "browser") {
|
|
578
|
-
if(_1.second_ === "sync") {
|
|
520
|
+
if(_1.first_ === "browser" && _1.second_ === "sync") {
|
|
579
521
|
if(ff_core_Equal.notEquals_(targets_.browserSync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
|
|
580
522
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
581
523
|
};
|
|
@@ -584,11 +526,7 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, _c.brow
|
|
|
584
526
|
}))(targets_)
|
|
585
527
|
break
|
|
586
528
|
}
|
|
587
|
-
|
|
588
|
-
}
|
|
589
|
-
{
|
|
590
|
-
if(_1.first_ === "browser") {
|
|
591
|
-
if(_1.second_ === "async") {
|
|
529
|
+
if(_1.first_ === "browser" && _1.second_ === "async") {
|
|
592
530
|
if(ff_core_Equal.notEquals_(targets_.browserAsync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
|
|
593
531
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
594
532
|
};
|
|
@@ -597,11 +535,7 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, _c.brow
|
|
|
597
535
|
}))(targets_)
|
|
598
536
|
break
|
|
599
537
|
}
|
|
600
|
-
|
|
601
|
-
}
|
|
602
|
-
{
|
|
603
|
-
if(_1.first_ === "node") {
|
|
604
|
-
if(_1.second_ === "sync") {
|
|
538
|
+
if(_1.first_ === "node" && _1.second_ === "sync") {
|
|
605
539
|
if(ff_core_Equal.notEquals_(targets_.nodeSync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
|
|
606
540
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
607
541
|
};
|
|
@@ -610,11 +544,7 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, _c.brow
|
|
|
610
544
|
}))(targets_)
|
|
611
545
|
break
|
|
612
546
|
}
|
|
613
|
-
|
|
614
|
-
}
|
|
615
|
-
{
|
|
616
|
-
if(_1.first_ === "node") {
|
|
617
|
-
if(_1.second_ === "async") {
|
|
547
|
+
if(_1.first_ === "node" && _1.second_ === "async") {
|
|
618
548
|
if(ff_core_Equal.notEquals_(targets_.nodeAsync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
|
|
619
549
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
620
550
|
};
|
|
@@ -623,11 +553,8 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, _c.brow
|
|
|
623
553
|
}))(targets_)
|
|
624
554
|
break
|
|
625
555
|
}
|
|
626
|
-
}
|
|
627
|
-
}
|
|
628
556
|
{
|
|
629
557
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Unknown target or mode"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
630
|
-
break
|
|
631
558
|
}
|
|
632
559
|
} while(false)
|
|
633
560
|
}
|
|
@@ -686,7 +613,7 @@ name_ = ff_core_String.String_replace(name_, ((", " + generic_) + "]"), ((((", "
|
|
|
686
613
|
return
|
|
687
614
|
}
|
|
688
615
|
}));
|
|
689
|
-
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(name_,
|
|
616
|
+
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(name_, ff_compiler_LspHook.SExtend(), ff_compiler_Token.Token_at(nameToken_), ff_compiler_Token.Token_end(nameToken_), ff_compiler_Token.Token_at(extendToken_), ff_compiler_Token.Token_end(ff_compiler_Parser.Parser_behind(self_))))
|
|
690
617
|
};
|
|
691
618
|
return ff_compiler_Syntax.DExtend(ff_compiler_Token.Token_at(nameToken_), ff_compiler_Token.Token_raw(nameToken_), poly_.generics_, poly_.constraints_, type_, ff_core_Array.Array_toList(methods_, 0, 9007199254740991))
|
|
692
619
|
}
|
|
@@ -728,7 +655,7 @@ ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbol
|
|
|
728
655
|
const signatureNameToken_ = ff_compiler_Parser.Parser_current(self_);
|
|
729
656
|
const signature_ = ff_compiler_Parser.Parser_parseSignature(self_, true);
|
|
730
657
|
if(self_.lspHook_.trackSymbols_) {
|
|
731
|
-
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(signatureNameToken_),
|
|
658
|
+
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(signatureNameToken_), ff_compiler_LspHook.STraitFunction(), ff_compiler_Token.Token_at(signatureNameToken_), ff_compiler_Token.Token_end(signatureNameToken_), ff_compiler_Token.Token_at(signatureNameToken_), ff_compiler_Token.Token_end(ff_compiler_Parser.Parser_behind(self_))))
|
|
732
659
|
};
|
|
733
660
|
ff_core_Array.Array_push(signatures_, signature_);
|
|
734
661
|
if(ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "{")) {
|
|
@@ -748,7 +675,7 @@ ff_compiler_Parser.Parser_rawSkip(self_, ff_compiler_Token.LBracketRight(), "}")
|
|
|
748
675
|
return ff_core_Array.Array_toList(signatures_, 0, 9007199254740991)
|
|
749
676
|
})());
|
|
750
677
|
if(self_.lspHook_.trackSymbols_) {
|
|
751
|
-
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(nameToken_),
|
|
678
|
+
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(nameToken_), ff_compiler_LspHook.STrait(), ff_compiler_Token.Token_at(nameToken_), ff_compiler_Token.Token_end(nameToken_), ff_compiler_Token.Token_at(traitToken_), ff_compiler_Token.Token_end(ff_compiler_Parser.Parser_behind(self_))))
|
|
752
679
|
};
|
|
753
680
|
return ff_compiler_Syntax.DTrait(ff_compiler_Token.Token_at(nameToken_), ff_compiler_Token.Token_raw(nameToken_), [ff_compiler_Token.Token_raw(typeParameterToken_), ...poly_.generics_], [...ff_core_Array.Array_toList(constraints_, 0, 9007199254740991), ...poly_.constraints_], generatorParameters_, methodSignatures_, ff_core_Array.Array_toList(methodDefaults_, 0, 9007199254740991), ff_core_Array.Array_toList(methodGenerators_, 0, 9007199254740991))
|
|
754
681
|
}
|
|
@@ -795,7 +722,7 @@ return ff_core_Array.Array_toList(definitions_, 0, 9007199254740991)
|
|
|
795
722
|
})());
|
|
796
723
|
if(self_.lspHook_.trackSymbols_) {
|
|
797
724
|
const name_ = ((ff_compiler_Token.Token_raw(token_) + ": ") + ff_compiler_Token.Token_raw(nameToken_));
|
|
798
|
-
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(name_,
|
|
725
|
+
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(name_, ff_compiler_LspHook.SInstance(), ff_compiler_Token.Token_at(nameToken_), ff_compiler_Token.Token_end(nameToken_), ff_compiler_Token.Token_at(instanceToken_), ff_compiler_Token.Token_end(ff_compiler_Parser.Parser_behind(self_))))
|
|
799
726
|
};
|
|
800
727
|
return ff_compiler_Syntax.DInstance(ff_compiler_Token.Token_at(nameToken_), poly_.generics_, poly_.constraints_, ff_compiler_Token.Token_raw(nameToken_), ff_core_Array.Array_toList(typeArguments_, 0, 9007199254740991), generatorArguments_, methods_, false)
|
|
801
728
|
}
|
|
@@ -851,7 +778,7 @@ if((!ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_com
|
|
|
851
778
|
ff_compiler_Parser.Parser_skipSeparator(self_, ff_compiler_Token.LSemicolon())
|
|
852
779
|
};
|
|
853
780
|
if(self_.lspHook_.trackSymbols_) {
|
|
854
|
-
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(variantNameToken_),
|
|
781
|
+
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(variantNameToken_), ff_compiler_LspHook.SVariant(), ff_compiler_Token.Token_at(variantNameToken_), ff_compiler_Token.Token_end(variantNameToken_), ff_compiler_Token.Token_at(variantNameToken_), ff_compiler_Token.Token_end(ff_compiler_Parser.Parser_behind(self_))))
|
|
855
782
|
}
|
|
856
783
|
};
|
|
857
784
|
ff_compiler_Parser.Parser_rawSkip(self_, ff_compiler_Token.LBracketRight(), "}");
|
|
@@ -871,7 +798,7 @@ return _w1.mutable_
|
|
|
871
798
|
const generics_ = [...effectParameter_, ...poly_.generics_];
|
|
872
799
|
const result_ = ff_compiler_Syntax.DType(ff_compiler_Token.Token_at(nameToken_), newtype_, (!allowMutable_), ff_compiler_Token.Token_raw(nameToken_), generics_, poly_.constraints_, commonFields_, variants_);
|
|
873
800
|
if(self_.lspHook_.trackSymbols_) {
|
|
874
|
-
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(nameToken_),
|
|
801
|
+
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(nameToken_), ff_compiler_LspHook.SType(), ff_compiler_Token.Token_at(nameToken_), ff_compiler_Token.Token_end(nameToken_), ff_compiler_Token.Token_at(kindToken_), ff_compiler_Token.Token_end(ff_compiler_Parser.Parser_behind(self_))))
|
|
875
802
|
};
|
|
876
803
|
return result_
|
|
877
804
|
}
|
|
@@ -943,44 +870,27 @@ const token_ = (ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(sel
|
|
|
943
870
|
: ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LKeyword()));
|
|
944
871
|
do {
|
|
945
872
|
const _1 = ff_compiler_Token.Token_raw(token_);
|
|
946
|
-
{
|
|
947
|
-
if(_1 === "node") {
|
|
948
|
-
const _guard1 = targets_.node_;
|
|
949
|
-
if(_guard1) {
|
|
873
|
+
if(_1 === "node" && targets_.node_) {
|
|
950
874
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), "Duplicate target name"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
951
|
-
break
|
|
952
875
|
}
|
|
953
|
-
}
|
|
954
|
-
}
|
|
955
|
-
{
|
|
956
876
|
if(_1 === "node") {
|
|
957
877
|
targets_ = (((_c) => {
|
|
958
878
|
return ff_compiler_Syntax.TargetNames(true, _c.browser_)
|
|
959
879
|
}))(targets_)
|
|
960
880
|
break
|
|
961
881
|
}
|
|
962
|
-
|
|
963
|
-
{
|
|
964
|
-
if(_1 === "browser") {
|
|
965
|
-
const _guard1 = targets_.browser_;
|
|
966
|
-
if(_guard1) {
|
|
882
|
+
if(_1 === "browser" && targets_.browser_) {
|
|
967
883
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), "Duplicate target name"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
968
|
-
break
|
|
969
|
-
}
|
|
970
|
-
}
|
|
971
884
|
}
|
|
972
|
-
{
|
|
973
885
|
if(_1 === "browser") {
|
|
974
886
|
targets_ = (((_c) => {
|
|
975
887
|
return ff_compiler_Syntax.TargetNames(_c.node_, true)
|
|
976
888
|
}))(targets_)
|
|
977
889
|
break
|
|
978
890
|
}
|
|
979
|
-
}
|
|
980
891
|
{
|
|
981
892
|
const t_ = _1;
|
|
982
893
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), ("Unexpected target: " + t_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
983
|
-
break
|
|
984
894
|
}
|
|
985
895
|
} while(false)
|
|
986
896
|
};
|
|
@@ -1116,7 +1026,7 @@ return ff_core_Option.Some(ff_compiler_Parser.Parser_parseTerm(self_))
|
|
|
1116
1026
|
})());
|
|
1117
1027
|
ff_core_Array.Array_push(parameters_, ff_compiler_Syntax.Parameter(ff_compiler_Token.Token_at(parameterNameToken_), mutable_, ff_compiler_Token.Token_raw(parameterNameToken_), parameterType_, default_));
|
|
1118
1028
|
if(lspTrackSymbols_) {
|
|
1119
|
-
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(parameterNameToken_),
|
|
1029
|
+
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_))))
|
|
1120
1030
|
};
|
|
1121
1031
|
if((!ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LBracketRight()))) {
|
|
1122
1032
|
ff_compiler_Parser.Parser_skipSeparator(self_, ff_compiler_Token.LComma())
|
|
@@ -1446,24 +1356,17 @@ const operator_ = ff_core_String.String_dropLast(ff_compiler_Token.Token_raw(tok
|
|
|
1446
1356
|
const value_ = ff_compiler_Parser.Parser_parseTerm(self_);
|
|
1447
1357
|
{
|
|
1448
1358
|
const _1 = term_;
|
|
1449
|
-
{
|
|
1450
1359
|
if(_1.EVariable) {
|
|
1451
1360
|
const at_ = _1.at_;
|
|
1452
1361
|
const name_ = _1.name_;
|
|
1453
1362
|
return ff_compiler_Syntax.EAssign(at_, operator_, name_, value_)
|
|
1454
|
-
return
|
|
1455
|
-
}
|
|
1456
1363
|
}
|
|
1457
|
-
{
|
|
1458
1364
|
if(_1.EField) {
|
|
1459
1365
|
const e_ = _1;
|
|
1460
1366
|
return ff_compiler_Syntax.EAssignField(e_.at_, operator_, e_.record_, e_.field_, value_)
|
|
1461
|
-
return
|
|
1462
|
-
}
|
|
1463
1367
|
}
|
|
1464
1368
|
{
|
|
1465
1369
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), "Only variables and fields are assignable"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
1466
|
-
return
|
|
1467
1370
|
}
|
|
1468
1371
|
}
|
|
1469
1372
|
}
|
|
@@ -1494,10 +1397,7 @@ return ff_compiler_Syntax.ELet(ff_compiler_Token.Token_at(nameToken_), mutable_,
|
|
|
1494
1397
|
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssign());
|
|
1495
1398
|
const value_ = ff_compiler_Parser.Parser_parseTerm(self_);
|
|
1496
1399
|
if(self_.lspHook_.trackSymbols_) {
|
|
1497
|
-
|
|
1498
|
-
? 13
|
|
1499
|
-
: 14);
|
|
1500
|
-
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(nameToken_), kind_, 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_))))
|
|
1400
|
+
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_))))
|
|
1501
1401
|
};
|
|
1502
1402
|
const body_ = (ff_compiler_Parser.Parser_currentIsSeparator(self_, ff_compiler_Token.LSemicolon())
|
|
1503
1403
|
? (function() {
|
|
@@ -1526,7 +1426,7 @@ return ff_compiler_Syntax.Lambda(functionAt_, temporaryEffect_, [])
|
|
|
1526
1426
|
: ff_compiler_Parser.Parser_parseLambda(self_, ff_core_List.List_size(signature_.parameters_), false, false));
|
|
1527
1427
|
ff_core_Array.Array_push(functions_, ff_compiler_Syntax.DFunction(signature_.at_, signature_, ff_compiler_Syntax.FireflyTarget(body_)));
|
|
1528
1428
|
if(self_.lspHook_.trackSymbols_) {
|
|
1529
|
-
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(signature_.name_,
|
|
1429
|
+
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(signature_.name_, ff_compiler_LspHook.SFunction(false), signature_.at_, (((_c) => {
|
|
1530
1430
|
return ff_compiler_Syntax.Location(_c.file_, _c.line_, (signature_.at_.column_ + ff_core_String.String_size(signature_.name_)))
|
|
1531
1431
|
}))(signature_.at_), functionAt_, ff_compiler_Token.Token_end(ff_compiler_Parser.Parser_behind(self_))))
|
|
1532
1432
|
};
|
|
@@ -1548,7 +1448,7 @@ export function Parser_parseBinary(self_, level_) {
|
|
|
1548
1448
|
if((level_ >= ff_core_List.List_size(ff_compiler_Parser.binaryOperators_))) {
|
|
1549
1449
|
return ff_compiler_Parser.Parser_parseUnary(self_)
|
|
1550
1450
|
} else {
|
|
1551
|
-
const operators_ = ff_core_List.
|
|
1451
|
+
const operators_ = (ff_compiler_Parser.binaryOperators_[level_] ?? ff_core_List.internalGrab_(ff_compiler_Parser.binaryOperators_, level_));
|
|
1552
1452
|
let result_ = ff_compiler_Parser.Parser_parseBinary(self_, (level_ + 1));
|
|
1553
1453
|
if(ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LOperator())) {
|
|
1554
1454
|
while(ff_core_List.List_any(operators_, ((value_) => {
|
|
@@ -1559,46 +1459,27 @@ const right_ = ff_compiler_Parser.Parser_parseBinary(self_, (level_ + 1));
|
|
|
1559
1459
|
const arguments_ = [ff_compiler_Syntax.Argument(result_.at_, ff_core_Option.None(), result_), ff_compiler_Syntax.Argument(right_.at_, ff_core_Option.None(), right_)];
|
|
1560
1460
|
const effect_ = ff_compiler_Parser.Parser_freshUnificationVariable(self_, ff_compiler_Token.Token_at(token_));
|
|
1561
1461
|
const target_ = (((_1) => {
|
|
1562
|
-
{
|
|
1563
1462
|
if(_1 === "==") {
|
|
1564
1463
|
return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Equal.equals"), false)
|
|
1565
|
-
return
|
|
1566
|
-
}
|
|
1567
1464
|
}
|
|
1568
|
-
{
|
|
1569
1465
|
if(_1 === "!=") {
|
|
1570
1466
|
return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Equal.notEquals"), false)
|
|
1571
|
-
return
|
|
1572
1467
|
}
|
|
1573
|
-
}
|
|
1574
|
-
{
|
|
1575
1468
|
if(_1 === "<") {
|
|
1576
1469
|
return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Ordering.before"), false)
|
|
1577
|
-
return
|
|
1578
|
-
}
|
|
1579
1470
|
}
|
|
1580
|
-
{
|
|
1581
1471
|
if(_1 === "<=") {
|
|
1582
1472
|
return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Ordering.notAfter"), false)
|
|
1583
|
-
return
|
|
1584
1473
|
}
|
|
1585
|
-
}
|
|
1586
|
-
{
|
|
1587
1474
|
if(_1 === ">") {
|
|
1588
1475
|
return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Ordering.after"), false)
|
|
1589
|
-
return
|
|
1590
|
-
}
|
|
1591
1476
|
}
|
|
1592
|
-
{
|
|
1593
1477
|
if(_1 === ">=") {
|
|
1594
1478
|
return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Ordering.notBefore"), false)
|
|
1595
|
-
return
|
|
1596
|
-
}
|
|
1597
1479
|
}
|
|
1598
1480
|
{
|
|
1599
1481
|
const o_ = _1;
|
|
1600
1482
|
return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), o_), false)
|
|
1601
|
-
return
|
|
1602
1483
|
}
|
|
1603
1484
|
}))(ff_compiler_Token.Token_raw(token_));
|
|
1604
1485
|
result_ = ff_compiler_Syntax.ECall(ff_compiler_Token.Token_at(token_), target_, effect_, [], arguments_, [])
|
|
@@ -1823,45 +1704,23 @@ return _w1.first_
|
|
|
1823
1704
|
|
|
1824
1705
|
export function Parser_parseListPattern(self_) {
|
|
1825
1706
|
function convertListPattern_(at_, items_) {
|
|
1826
|
-
{
|
|
1827
1707
|
const at_a = at_;
|
|
1828
1708
|
const items_a = items_;
|
|
1829
|
-
{
|
|
1830
1709
|
if(items_a.length === 0) {
|
|
1831
1710
|
return ff_compiler_Syntax.PVariant(at_, "List$Empty", [])
|
|
1832
|
-
return
|
|
1833
1711
|
}
|
|
1834
|
-
|
|
1835
|
-
{
|
|
1836
|
-
if(items_a.length > 0) {
|
|
1712
|
+
if(items_a.length >= 1 && !items_a[0].second_) {
|
|
1837
1713
|
const p_ = items_a[0].first_;
|
|
1838
|
-
if(!items_a[0].second_) {
|
|
1839
1714
|
const ps_ = items_a.slice(1);
|
|
1840
1715
|
return ff_compiler_Syntax.PVariant(at_, "List$Link", [p_, convertListPattern_(at_, ps_)])
|
|
1841
|
-
return
|
|
1842
|
-
}
|
|
1843
1716
|
}
|
|
1844
|
-
|
|
1845
|
-
{
|
|
1846
|
-
if(items_a.length > 0) {
|
|
1717
|
+
if(items_a.length === 1 && items_a[0].second_) {
|
|
1847
1718
|
const p_ = items_a[0].first_;
|
|
1848
|
-
if(items_a[0].second_) {
|
|
1849
|
-
if(items_a.length === 1) {
|
|
1850
1719
|
return p_
|
|
1851
|
-
return
|
|
1852
|
-
}
|
|
1853
|
-
}
|
|
1854
|
-
}
|
|
1855
1720
|
}
|
|
1856
|
-
{
|
|
1857
|
-
if(items_a.length > 0) {
|
|
1721
|
+
if(items_a.length >= 1 && items_a[0].second_) {
|
|
1858
1722
|
const p_ = items_a[0].first_;
|
|
1859
|
-
if(items_a[0].second_) {
|
|
1860
1723
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(p_.at_, "Invalid pattern: ... is only allowed for the last element in a list"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
1861
|
-
return
|
|
1862
|
-
}
|
|
1863
|
-
}
|
|
1864
|
-
}
|
|
1865
1724
|
}
|
|
1866
1725
|
}
|
|
1867
1726
|
const items_ = ff_core_Array.make_();
|
|
@@ -2092,7 +1951,7 @@ ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssign());
|
|
|
2092
1951
|
const value_ = ff_compiler_Parser.Parser_parseTerm(self_);
|
|
2093
1952
|
const retult_ = ff_compiler_Syntax.DLet(ff_compiler_Token.Token_at(nameToken_), ff_compiler_Token.Token_raw(nameToken_), variableType_, value_);
|
|
2094
1953
|
if(self_.lspHook_.trackSymbols_) {
|
|
2095
|
-
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(nameToken_),
|
|
1954
|
+
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(nameToken_), ff_compiler_LspHook.SLet(false), ff_compiler_Token.Token_at(nameToken_), ff_compiler_Token.Token_end(nameToken_), ff_compiler_Token.Token_at(nameToken_), ff_compiler_Token.Token_end(ff_compiler_Parser.Parser_behind(self_))))
|
|
2096
1955
|
};
|
|
2097
1956
|
return retult_
|
|
2098
1957
|
}
|
|
@@ -2109,10 +1968,7 @@ const targets_ = ff_compiler_Parser.Parser_parseTargets(self_, ff_core_List.List
|
|
|
2109
1968
|
const bestTarget_ = ff_compiler_Parser.findBestTarget_(self_.targetIsNode_, body_, targets_);
|
|
2110
1969
|
const result_ = ff_compiler_Syntax.DFunction(signature_.at_, signature_, bestTarget_);
|
|
2111
1970
|
if(self_.lspHook_.trackSymbols_) {
|
|
2112
|
-
|
|
2113
|
-
? 6
|
|
2114
|
-
: 12);
|
|
2115
|
-
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(signature_.name_, kind_, signature_.at_, (((_c) => {
|
|
1971
|
+
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(signature_.name_, ff_compiler_LspHook.SFunction(member_), signature_.at_, (((_c) => {
|
|
2116
1972
|
return ff_compiler_Syntax.Location(_c.file_, _c.line_, (signature_.at_.column_ + ff_core_String.String_size(signature_.name_)))
|
|
2117
1973
|
}))(signature_.at_), signature_.at_, ff_compiler_Token.Token_end(ff_compiler_Parser.Parser_behind(self_))))
|
|
2118
1974
|
};
|
|
@@ -2137,7 +1993,6 @@ if(ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "{"))
|
|
|
2137
1993
|
const lambda_ = ff_compiler_Parser.Parser_parseLambda(self_, parameterCount_, false, false);
|
|
2138
1994
|
do {
|
|
2139
1995
|
const _1 = target_;
|
|
2140
|
-
{
|
|
2141
1996
|
if(_1 === "js") {
|
|
2142
1997
|
if(ff_core_Equal.notEquals_(targets_.jsSync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
|
|
2143
1998
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
@@ -2147,8 +2002,6 @@ return ff_compiler_Parser.ParsedTargets(ff_core_Option.Some(lambda_), _c.jsSync_
|
|
|
2147
2002
|
}))(targets_)
|
|
2148
2003
|
break
|
|
2149
2004
|
}
|
|
2150
|
-
}
|
|
2151
|
-
{
|
|
2152
2005
|
if(_1 === "browser") {
|
|
2153
2006
|
if(ff_core_Equal.notEquals_(targets_.browserSync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
|
|
2154
2007
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
@@ -2158,8 +2011,6 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, ff_core
|
|
|
2158
2011
|
}))(targets_)
|
|
2159
2012
|
break
|
|
2160
2013
|
}
|
|
2161
|
-
}
|
|
2162
|
-
{
|
|
2163
2014
|
if(_1 === "node") {
|
|
2164
2015
|
if(ff_core_Equal.notEquals_(targets_.nodeAsync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
|
|
2165
2016
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
@@ -2169,10 +2020,8 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, _c.brow
|
|
|
2169
2020
|
}))(targets_)
|
|
2170
2021
|
break
|
|
2171
2022
|
}
|
|
2172
|
-
}
|
|
2173
2023
|
{
|
|
2174
2024
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Unknown target"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
2175
|
-
break
|
|
2176
2025
|
}
|
|
2177
2026
|
} while(false)
|
|
2178
2027
|
} else {
|
|
@@ -2180,9 +2029,7 @@ const mode_ = ff_compiler_Token.Token_raw(ff_compiler_Parser.Parser_skip(self_,
|
|
|
2180
2029
|
const code_ = processCode_(ff_compiler_Token.Token_raw(ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LString())));
|
|
2181
2030
|
do {
|
|
2182
2031
|
const _1 = ff_core_Pair.Pair(target_, mode_);
|
|
2183
|
-
{
|
|
2184
|
-
if(_1.first_ === "js") {
|
|
2185
|
-
if(_1.second_ === "sync") {
|
|
2032
|
+
if(_1.first_ === "js" && _1.second_ === "sync") {
|
|
2186
2033
|
if(ff_core_Equal.notEquals_(targets_.jsSync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
|
|
2187
2034
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
2188
2035
|
};
|
|
@@ -2191,11 +2038,7 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, ff_core_Option.Some(code_), _c.j
|
|
|
2191
2038
|
}))(targets_)
|
|
2192
2039
|
break
|
|
2193
2040
|
}
|
|
2194
|
-
|
|
2195
|
-
}
|
|
2196
|
-
{
|
|
2197
|
-
if(_1.first_ === "js") {
|
|
2198
|
-
if(_1.second_ === "async") {
|
|
2041
|
+
if(_1.first_ === "js" && _1.second_ === "async") {
|
|
2199
2042
|
if(ff_core_Equal.notEquals_(targets_.jsAsync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
|
|
2200
2043
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
2201
2044
|
};
|
|
@@ -2204,11 +2047,7 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, ff_core_Option.Some(
|
|
|
2204
2047
|
}))(targets_)
|
|
2205
2048
|
break
|
|
2206
2049
|
}
|
|
2207
|
-
|
|
2208
|
-
}
|
|
2209
|
-
{
|
|
2210
|
-
if(_1.first_ === "browser") {
|
|
2211
|
-
if(_1.second_ === "sync") {
|
|
2050
|
+
if(_1.first_ === "browser" && _1.second_ === "sync") {
|
|
2212
2051
|
if(ff_core_Equal.notEquals_(targets_.browserSync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
|
|
2213
2052
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
2214
2053
|
};
|
|
@@ -2217,11 +2056,7 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, _c.brow
|
|
|
2217
2056
|
}))(targets_)
|
|
2218
2057
|
break
|
|
2219
2058
|
}
|
|
2220
|
-
|
|
2221
|
-
}
|
|
2222
|
-
{
|
|
2223
|
-
if(_1.first_ === "browser") {
|
|
2224
|
-
if(_1.second_ === "async") {
|
|
2059
|
+
if(_1.first_ === "browser" && _1.second_ === "async") {
|
|
2225
2060
|
if(ff_core_Equal.notEquals_(targets_.browserAsync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
|
|
2226
2061
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
2227
2062
|
};
|
|
@@ -2230,11 +2065,7 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, _c.brow
|
|
|
2230
2065
|
}))(targets_)
|
|
2231
2066
|
break
|
|
2232
2067
|
}
|
|
2233
|
-
|
|
2234
|
-
}
|
|
2235
|
-
{
|
|
2236
|
-
if(_1.first_ === "node") {
|
|
2237
|
-
if(_1.second_ === "sync") {
|
|
2068
|
+
if(_1.first_ === "node" && _1.second_ === "sync") {
|
|
2238
2069
|
if(ff_core_Equal.notEquals_(targets_.nodeSync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
|
|
2239
2070
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
2240
2071
|
};
|
|
@@ -2243,11 +2074,7 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, _c.brow
|
|
|
2243
2074
|
}))(targets_)
|
|
2244
2075
|
break
|
|
2245
2076
|
}
|
|
2246
|
-
|
|
2247
|
-
}
|
|
2248
|
-
{
|
|
2249
|
-
if(_1.first_ === "node") {
|
|
2250
|
-
if(_1.second_ === "async") {
|
|
2077
|
+
if(_1.first_ === "node" && _1.second_ === "async") {
|
|
2251
2078
|
if(ff_core_Equal.notEquals_(targets_.nodeAsync_, ff_core_Option.None(), ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String))) {
|
|
2252
2079
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Duplicate target definition"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
2253
2080
|
};
|
|
@@ -2256,11 +2083,8 @@ return ff_compiler_Parser.ParsedTargets(_c.js_, _c.jsSync_, _c.jsAsync_, _c.brow
|
|
|
2256
2083
|
}))(targets_)
|
|
2257
2084
|
break
|
|
2258
2085
|
}
|
|
2259
|
-
}
|
|
2260
|
-
}
|
|
2261
2086
|
{
|
|
2262
2087
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Unknown target or mode"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
2263
|
-
break
|
|
2264
2088
|
}
|
|
2265
2089
|
} while(false)
|
|
2266
2090
|
}
|
|
@@ -2319,7 +2143,7 @@ name_ = ff_core_String.String_replace(name_, ((", " + generic_) + "]"), ((((", "
|
|
|
2319
2143
|
return
|
|
2320
2144
|
}
|
|
2321
2145
|
}));
|
|
2322
|
-
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(name_,
|
|
2146
|
+
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(name_, ff_compiler_LspHook.SExtend(), ff_compiler_Token.Token_at(nameToken_), ff_compiler_Token.Token_end(nameToken_), ff_compiler_Token.Token_at(extendToken_), ff_compiler_Token.Token_end(ff_compiler_Parser.Parser_behind(self_))))
|
|
2323
2147
|
};
|
|
2324
2148
|
return ff_compiler_Syntax.DExtend(ff_compiler_Token.Token_at(nameToken_), ff_compiler_Token.Token_raw(nameToken_), poly_.generics_, poly_.constraints_, type_, ff_core_Array.Array_toList(methods_, 0, 9007199254740991))
|
|
2325
2149
|
}
|
|
@@ -2361,7 +2185,7 @@ ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbol
|
|
|
2361
2185
|
const signatureNameToken_ = ff_compiler_Parser.Parser_current(self_);
|
|
2362
2186
|
const signature_ = ff_compiler_Parser.Parser_parseSignature(self_, true);
|
|
2363
2187
|
if(self_.lspHook_.trackSymbols_) {
|
|
2364
|
-
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(signatureNameToken_),
|
|
2188
|
+
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(signatureNameToken_), ff_compiler_LspHook.STraitFunction(), ff_compiler_Token.Token_at(signatureNameToken_), ff_compiler_Token.Token_end(signatureNameToken_), ff_compiler_Token.Token_at(signatureNameToken_), ff_compiler_Token.Token_end(ff_compiler_Parser.Parser_behind(self_))))
|
|
2365
2189
|
};
|
|
2366
2190
|
ff_core_Array.Array_push(signatures_, signature_);
|
|
2367
2191
|
if(ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "{")) {
|
|
@@ -2381,7 +2205,7 @@ ff_compiler_Parser.Parser_rawSkip(self_, ff_compiler_Token.LBracketRight(), "}")
|
|
|
2381
2205
|
return ff_core_Array.Array_toList(signatures_, 0, 9007199254740991)
|
|
2382
2206
|
})()));
|
|
2383
2207
|
if(self_.lspHook_.trackSymbols_) {
|
|
2384
|
-
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(nameToken_),
|
|
2208
|
+
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(nameToken_), ff_compiler_LspHook.STrait(), ff_compiler_Token.Token_at(nameToken_), ff_compiler_Token.Token_end(nameToken_), ff_compiler_Token.Token_at(traitToken_), ff_compiler_Token.Token_end(ff_compiler_Parser.Parser_behind(self_))))
|
|
2385
2209
|
};
|
|
2386
2210
|
return ff_compiler_Syntax.DTrait(ff_compiler_Token.Token_at(nameToken_), ff_compiler_Token.Token_raw(nameToken_), [ff_compiler_Token.Token_raw(typeParameterToken_), ...poly_.generics_], [...ff_core_Array.Array_toList(constraints_, 0, 9007199254740991), ...poly_.constraints_], generatorParameters_, methodSignatures_, ff_core_Array.Array_toList(methodDefaults_, 0, 9007199254740991), ff_core_Array.Array_toList(methodGenerators_, 0, 9007199254740991))
|
|
2387
2211
|
}
|
|
@@ -2428,7 +2252,7 @@ return ff_core_Array.Array_toList(definitions_, 0, 9007199254740991)
|
|
|
2428
2252
|
})()));
|
|
2429
2253
|
if(self_.lspHook_.trackSymbols_) {
|
|
2430
2254
|
const name_ = ((ff_compiler_Token.Token_raw(token_) + ": ") + ff_compiler_Token.Token_raw(nameToken_));
|
|
2431
|
-
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(name_,
|
|
2255
|
+
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(name_, ff_compiler_LspHook.SInstance(), ff_compiler_Token.Token_at(nameToken_), ff_compiler_Token.Token_end(nameToken_), ff_compiler_Token.Token_at(instanceToken_), ff_compiler_Token.Token_end(ff_compiler_Parser.Parser_behind(self_))))
|
|
2432
2256
|
};
|
|
2433
2257
|
return ff_compiler_Syntax.DInstance(ff_compiler_Token.Token_at(nameToken_), poly_.generics_, poly_.constraints_, ff_compiler_Token.Token_raw(nameToken_), ff_core_Array.Array_toList(typeArguments_, 0, 9007199254740991), generatorArguments_, methods_, false)
|
|
2434
2258
|
}
|
|
@@ -2484,7 +2308,7 @@ if((!ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_com
|
|
|
2484
2308
|
ff_compiler_Parser.Parser_skipSeparator(self_, ff_compiler_Token.LSemicolon())
|
|
2485
2309
|
};
|
|
2486
2310
|
if(self_.lspHook_.trackSymbols_) {
|
|
2487
|
-
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(variantNameToken_),
|
|
2311
|
+
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(variantNameToken_), ff_compiler_LspHook.SVariant(), ff_compiler_Token.Token_at(variantNameToken_), ff_compiler_Token.Token_end(variantNameToken_), ff_compiler_Token.Token_at(variantNameToken_), ff_compiler_Token.Token_end(ff_compiler_Parser.Parser_behind(self_))))
|
|
2488
2312
|
}
|
|
2489
2313
|
};
|
|
2490
2314
|
ff_compiler_Parser.Parser_rawSkip(self_, ff_compiler_Token.LBracketRight(), "}");
|
|
@@ -2504,7 +2328,7 @@ return _w1.mutable_
|
|
|
2504
2328
|
const generics_ = [...effectParameter_, ...poly_.generics_];
|
|
2505
2329
|
const result_ = ff_compiler_Syntax.DType(ff_compiler_Token.Token_at(nameToken_), newtype_, (!allowMutable_), ff_compiler_Token.Token_raw(nameToken_), generics_, poly_.constraints_, commonFields_, variants_);
|
|
2506
2330
|
if(self_.lspHook_.trackSymbols_) {
|
|
2507
|
-
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(nameToken_),
|
|
2331
|
+
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(nameToken_), ff_compiler_LspHook.SType(), ff_compiler_Token.Token_at(nameToken_), ff_compiler_Token.Token_end(nameToken_), ff_compiler_Token.Token_at(kindToken_), ff_compiler_Token.Token_end(ff_compiler_Parser.Parser_behind(self_))))
|
|
2508
2332
|
};
|
|
2509
2333
|
return result_
|
|
2510
2334
|
}
|
|
@@ -2576,44 +2400,27 @@ const token_ = (ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(sel
|
|
|
2576
2400
|
: ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LKeyword()));
|
|
2577
2401
|
do {
|
|
2578
2402
|
const _1 = ff_compiler_Token.Token_raw(token_);
|
|
2579
|
-
{
|
|
2580
|
-
if(_1 === "node") {
|
|
2581
|
-
const _guard1 = targets_.node_;
|
|
2582
|
-
if(_guard1) {
|
|
2403
|
+
if(_1 === "node" && targets_.node_) {
|
|
2583
2404
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), "Duplicate target name"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
2584
|
-
break
|
|
2585
2405
|
}
|
|
2586
|
-
}
|
|
2587
|
-
}
|
|
2588
|
-
{
|
|
2589
2406
|
if(_1 === "node") {
|
|
2590
2407
|
targets_ = (((_c) => {
|
|
2591
2408
|
return ff_compiler_Syntax.TargetNames(true, _c.browser_)
|
|
2592
2409
|
}))(targets_)
|
|
2593
2410
|
break
|
|
2594
2411
|
}
|
|
2595
|
-
|
|
2596
|
-
{
|
|
2597
|
-
if(_1 === "browser") {
|
|
2598
|
-
const _guard1 = targets_.browser_;
|
|
2599
|
-
if(_guard1) {
|
|
2412
|
+
if(_1 === "browser" && targets_.browser_) {
|
|
2600
2413
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), "Duplicate target name"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
2601
|
-
break
|
|
2602
|
-
}
|
|
2603
|
-
}
|
|
2604
2414
|
}
|
|
2605
|
-
{
|
|
2606
2415
|
if(_1 === "browser") {
|
|
2607
2416
|
targets_ = (((_c) => {
|
|
2608
2417
|
return ff_compiler_Syntax.TargetNames(_c.node_, true)
|
|
2609
2418
|
}))(targets_)
|
|
2610
2419
|
break
|
|
2611
2420
|
}
|
|
2612
|
-
}
|
|
2613
2421
|
{
|
|
2614
2422
|
const t_ = _1;
|
|
2615
2423
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), ("Unexpected target: " + t_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
2616
|
-
break
|
|
2617
2424
|
}
|
|
2618
2425
|
} while(false)
|
|
2619
2426
|
};
|
|
@@ -2749,7 +2556,7 @@ return ff_core_Option.Some(ff_compiler_Parser.Parser_parseTerm(self_))
|
|
|
2749
2556
|
})()));
|
|
2750
2557
|
ff_core_Array.Array_push(parameters_, ff_compiler_Syntax.Parameter(ff_compiler_Token.Token_at(parameterNameToken_), mutable_, ff_compiler_Token.Token_raw(parameterNameToken_), parameterType_, default_));
|
|
2751
2558
|
if(lspTrackSymbols_) {
|
|
2752
|
-
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(parameterNameToken_),
|
|
2559
|
+
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_))))
|
|
2753
2560
|
};
|
|
2754
2561
|
if((!ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LBracketRight()))) {
|
|
2755
2562
|
ff_compiler_Parser.Parser_skipSeparator(self_, ff_compiler_Token.LComma())
|
|
@@ -3079,24 +2886,17 @@ const operator_ = ff_core_String.String_dropLast(ff_compiler_Token.Token_raw(tok
|
|
|
3079
2886
|
const value_ = ff_compiler_Parser.Parser_parseTerm(self_);
|
|
3080
2887
|
{
|
|
3081
2888
|
const _1 = term_;
|
|
3082
|
-
{
|
|
3083
2889
|
if(_1.EVariable) {
|
|
3084
2890
|
const at_ = _1.at_;
|
|
3085
2891
|
const name_ = _1.name_;
|
|
3086
2892
|
return ff_compiler_Syntax.EAssign(at_, operator_, name_, value_)
|
|
3087
|
-
return
|
|
3088
|
-
}
|
|
3089
2893
|
}
|
|
3090
|
-
{
|
|
3091
2894
|
if(_1.EField) {
|
|
3092
2895
|
const e_ = _1;
|
|
3093
2896
|
return ff_compiler_Syntax.EAssignField(e_.at_, operator_, e_.record_, e_.field_, value_)
|
|
3094
|
-
return
|
|
3095
|
-
}
|
|
3096
2897
|
}
|
|
3097
2898
|
{
|
|
3098
2899
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), "Only variables and fields are assignable"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
3099
|
-
return
|
|
3100
2900
|
}
|
|
3101
2901
|
}
|
|
3102
2902
|
}
|
|
@@ -3127,10 +2927,7 @@ return ff_compiler_Syntax.ELet(ff_compiler_Token.Token_at(nameToken_), mutable_,
|
|
|
3127
2927
|
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LAssign());
|
|
3128
2928
|
const value_ = ff_compiler_Parser.Parser_parseTerm(self_);
|
|
3129
2929
|
if(self_.lspHook_.trackSymbols_) {
|
|
3130
|
-
|
|
3131
|
-
? 13
|
|
3132
|
-
: 14);
|
|
3133
|
-
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(ff_compiler_Token.Token_raw(nameToken_), kind_, 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_))))
|
|
2930
|
+
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_))))
|
|
3134
2931
|
};
|
|
3135
2932
|
const body_ = (ff_compiler_Parser.Parser_currentIsSeparator(self_, ff_compiler_Token.LSemicolon())
|
|
3136
2933
|
? (await (async function() {
|
|
@@ -3159,7 +2956,7 @@ return ff_compiler_Syntax.Lambda(functionAt_, temporaryEffect_, [])
|
|
|
3159
2956
|
: ff_compiler_Parser.Parser_parseLambda(self_, ff_core_List.List_size(signature_.parameters_), false, false));
|
|
3160
2957
|
ff_core_Array.Array_push(functions_, ff_compiler_Syntax.DFunction(signature_.at_, signature_, ff_compiler_Syntax.FireflyTarget(body_)));
|
|
3161
2958
|
if(self_.lspHook_.trackSymbols_) {
|
|
3162
|
-
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(signature_.name_,
|
|
2959
|
+
ff_compiler_LspHook.LspHook_emit(self_.lspHook_, ff_compiler_LspHook.ParseSymbolEnd(signature_.name_, ff_compiler_LspHook.SFunction(false), signature_.at_, (((_c) => {
|
|
3163
2960
|
return ff_compiler_Syntax.Location(_c.file_, _c.line_, (signature_.at_.column_ + ff_core_String.String_size(signature_.name_)))
|
|
3164
2961
|
}))(signature_.at_), functionAt_, ff_compiler_Token.Token_end(ff_compiler_Parser.Parser_behind(self_))))
|
|
3165
2962
|
};
|
|
@@ -3181,7 +2978,7 @@ export async function Parser_parseBinary$(self_, level_, $task) {
|
|
|
3181
2978
|
if((level_ >= ff_core_List.List_size(ff_compiler_Parser.binaryOperators_))) {
|
|
3182
2979
|
return ff_compiler_Parser.Parser_parseUnary(self_)
|
|
3183
2980
|
} else {
|
|
3184
|
-
const operators_ = ff_core_List.
|
|
2981
|
+
const operators_ = (ff_compiler_Parser.binaryOperators_[level_] ?? ff_core_List.internalGrab_(ff_compiler_Parser.binaryOperators_, level_));
|
|
3185
2982
|
let result_ = ff_compiler_Parser.Parser_parseBinary(self_, (level_ + 1));
|
|
3186
2983
|
if(ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LOperator())) {
|
|
3187
2984
|
while(ff_core_List.List_any(operators_, ((value_) => {
|
|
@@ -3192,46 +2989,27 @@ const right_ = ff_compiler_Parser.Parser_parseBinary(self_, (level_ + 1));
|
|
|
3192
2989
|
const arguments_ = [ff_compiler_Syntax.Argument(result_.at_, ff_core_Option.None(), result_), ff_compiler_Syntax.Argument(right_.at_, ff_core_Option.None(), right_)];
|
|
3193
2990
|
const effect_ = ff_compiler_Parser.Parser_freshUnificationVariable(self_, ff_compiler_Token.Token_at(token_));
|
|
3194
2991
|
const target_ = (((_1) => {
|
|
3195
|
-
{
|
|
3196
2992
|
if(_1 === "==") {
|
|
3197
2993
|
return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Equal.equals"), false)
|
|
3198
|
-
return
|
|
3199
|
-
}
|
|
3200
2994
|
}
|
|
3201
|
-
{
|
|
3202
2995
|
if(_1 === "!=") {
|
|
3203
2996
|
return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Equal.notEquals"), false)
|
|
3204
|
-
return
|
|
3205
2997
|
}
|
|
3206
|
-
}
|
|
3207
|
-
{
|
|
3208
2998
|
if(_1 === "<") {
|
|
3209
2999
|
return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Ordering.before"), false)
|
|
3210
|
-
return
|
|
3211
|
-
}
|
|
3212
3000
|
}
|
|
3213
|
-
{
|
|
3214
3001
|
if(_1 === "<=") {
|
|
3215
3002
|
return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Ordering.notAfter"), false)
|
|
3216
|
-
return
|
|
3217
3003
|
}
|
|
3218
|
-
}
|
|
3219
|
-
{
|
|
3220
3004
|
if(_1 === ">") {
|
|
3221
3005
|
return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Ordering.after"), false)
|
|
3222
|
-
return
|
|
3223
|
-
}
|
|
3224
3006
|
}
|
|
3225
|
-
{
|
|
3226
3007
|
if(_1 === ">=") {
|
|
3227
3008
|
return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), "ff:core/Ordering.notBefore"), false)
|
|
3228
|
-
return
|
|
3229
|
-
}
|
|
3230
3009
|
}
|
|
3231
3010
|
{
|
|
3232
3011
|
const o_ = _1;
|
|
3233
3012
|
return ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EVariable(ff_compiler_Token.Token_at(token_), o_), false)
|
|
3234
|
-
return
|
|
3235
3013
|
}
|
|
3236
3014
|
}))(ff_compiler_Token.Token_raw(token_));
|
|
3237
3015
|
result_ = ff_compiler_Syntax.ECall(ff_compiler_Token.Token_at(token_), target_, effect_, [], arguments_, [])
|
|
@@ -3456,45 +3234,23 @@ return _w1.first_
|
|
|
3456
3234
|
|
|
3457
3235
|
export async function Parser_parseListPattern$(self_, $task) {
|
|
3458
3236
|
function convertListPattern_(at_, items_) {
|
|
3459
|
-
{
|
|
3460
3237
|
const at_a = at_;
|
|
3461
3238
|
const items_a = items_;
|
|
3462
|
-
{
|
|
3463
3239
|
if(items_a.length === 0) {
|
|
3464
3240
|
return ff_compiler_Syntax.PVariant(at_, "List$Empty", [])
|
|
3465
|
-
return
|
|
3466
3241
|
}
|
|
3467
|
-
|
|
3468
|
-
{
|
|
3469
|
-
if(items_a.length > 0) {
|
|
3242
|
+
if(items_a.length >= 1 && !items_a[0].second_) {
|
|
3470
3243
|
const p_ = items_a[0].first_;
|
|
3471
|
-
if(!items_a[0].second_) {
|
|
3472
3244
|
const ps_ = items_a.slice(1);
|
|
3473
3245
|
return ff_compiler_Syntax.PVariant(at_, "List$Link", [p_, convertListPattern_(at_, ps_)])
|
|
3474
|
-
return
|
|
3475
|
-
}
|
|
3476
3246
|
}
|
|
3477
|
-
|
|
3478
|
-
{
|
|
3479
|
-
if(items_a.length > 0) {
|
|
3247
|
+
if(items_a.length === 1 && items_a[0].second_) {
|
|
3480
3248
|
const p_ = items_a[0].first_;
|
|
3481
|
-
if(items_a[0].second_) {
|
|
3482
|
-
if(items_a.length === 1) {
|
|
3483
3249
|
return p_
|
|
3484
|
-
return
|
|
3485
|
-
}
|
|
3486
|
-
}
|
|
3487
|
-
}
|
|
3488
3250
|
}
|
|
3489
|
-
{
|
|
3490
|
-
if(items_a.length > 0) {
|
|
3251
|
+
if(items_a.length >= 1 && items_a[0].second_) {
|
|
3491
3252
|
const p_ = items_a[0].first_;
|
|
3492
|
-
if(items_a[0].second_) {
|
|
3493
3253
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(p_.at_, "Invalid pattern: ... is only allowed for the last element in a list"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
3494
|
-
return
|
|
3495
|
-
}
|
|
3496
|
-
}
|
|
3497
|
-
}
|
|
3498
3254
|
}
|
|
3499
3255
|
}
|
|
3500
3256
|
const items_ = ff_core_Array.make_();
|
|
@@ -3553,135 +3309,90 @@ return ff_core_Any.internalAnyTag_((("ff:compiler/Parser.ParsedTargets" + "[") +
|
|
|
3553
3309
|
|
|
3554
3310
|
export const ff_core_Show_Show$ff_compiler_Parser_Poly = {
|
|
3555
3311
|
show_(value_) {
|
|
3556
|
-
{
|
|
3557
3312
|
const value_a = value_;
|
|
3558
3313
|
{
|
|
3559
3314
|
const z_ = value_a;
|
|
3560
3315
|
return ((((("Poly" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_List_List(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.generics_)) + ", ") + ff_core_Show.ff_core_Show_Show$ff_core_List_List(ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_Constraint).show_(z_.constraints_)) + ")")
|
|
3561
|
-
return
|
|
3562
|
-
}
|
|
3563
3316
|
}
|
|
3564
3317
|
},
|
|
3565
3318
|
async show_$(value_, $task) {
|
|
3566
|
-
{
|
|
3567
3319
|
const value_a = value_;
|
|
3568
3320
|
{
|
|
3569
3321
|
const z_ = value_a;
|
|
3570
3322
|
return ((((("Poly" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_List_List(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.generics_)) + ", ") + ff_core_Show.ff_core_Show_Show$ff_core_List_List(ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_Constraint).show_(z_.constraints_)) + ")")
|
|
3571
|
-
return
|
|
3572
|
-
}
|
|
3573
3323
|
}
|
|
3574
3324
|
}
|
|
3575
3325
|
};
|
|
3576
3326
|
|
|
3577
3327
|
export const ff_core_Show_Show$ff_compiler_Parser_ParsedTargets = {
|
|
3578
3328
|
show_(value_) {
|
|
3579
|
-
{
|
|
3580
3329
|
const value_a = value_;
|
|
3581
3330
|
{
|
|
3582
3331
|
const z_ = value_a;
|
|
3583
3332
|
return ((((((((((((((((((("ParsedTargets" + "(") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_Lambda).show_(z_.js_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.jsSync_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.jsAsync_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_Lambda).show_(z_.browser_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.browserSync_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.browserAsync_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_Lambda).show_(z_.node_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.nodeSync_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.nodeAsync_)) + ")")
|
|
3584
|
-
return
|
|
3585
|
-
}
|
|
3586
3333
|
}
|
|
3587
3334
|
},
|
|
3588
3335
|
async show_$(value_, $task) {
|
|
3589
|
-
{
|
|
3590
3336
|
const value_a = value_;
|
|
3591
3337
|
{
|
|
3592
3338
|
const z_ = value_a;
|
|
3593
3339
|
return ((((((((((((((((((("ParsedTargets" + "(") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_Lambda).show_(z_.js_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.jsSync_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.jsAsync_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_Lambda).show_(z_.browser_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.browserSync_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.browserAsync_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_Lambda).show_(z_.node_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.nodeSync_)) + ", ") + ff_core_Option.ff_core_Show_Show$ff_core_Option_Option(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.nodeAsync_)) + ")")
|
|
3594
|
-
return
|
|
3595
|
-
}
|
|
3596
3340
|
}
|
|
3597
3341
|
}
|
|
3598
3342
|
};
|
|
3599
3343
|
|
|
3600
3344
|
export const ff_core_Equal_Equal$ff_compiler_Parser_Poly = {
|
|
3601
3345
|
equals_(x_, y_) {
|
|
3602
|
-
{
|
|
3603
3346
|
const x_a = x_;
|
|
3604
3347
|
const y_a = y_;
|
|
3605
|
-
{
|
|
3606
|
-
const _guard1 = (x_ === y_);
|
|
3607
|
-
if(_guard1) {
|
|
3348
|
+
if((x_ === y_)) {
|
|
3608
3349
|
return true
|
|
3609
|
-
return
|
|
3610
|
-
}
|
|
3611
3350
|
}
|
|
3612
3351
|
{
|
|
3613
3352
|
return (ff_core_List.ff_core_Equal_Equal$ff_core_List_List(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.generics_, y_.generics_) && ff_core_List.ff_core_Equal_Equal$ff_core_List_List(ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_Constraint).equals_(x_.constraints_, y_.constraints_))
|
|
3614
|
-
return
|
|
3615
|
-
}
|
|
3616
3353
|
}
|
|
3617
3354
|
},
|
|
3618
3355
|
async equals_$(x_, y_, $task) {
|
|
3619
|
-
{
|
|
3620
3356
|
const x_a = x_;
|
|
3621
3357
|
const y_a = y_;
|
|
3622
|
-
{
|
|
3623
|
-
const _guard1 = (x_ === y_);
|
|
3624
|
-
if(_guard1) {
|
|
3358
|
+
if((x_ === y_)) {
|
|
3625
3359
|
return true
|
|
3626
|
-
return
|
|
3627
|
-
}
|
|
3628
3360
|
}
|
|
3629
3361
|
{
|
|
3630
3362
|
return (ff_core_List.ff_core_Equal_Equal$ff_core_List_List(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.generics_, y_.generics_) && ff_core_List.ff_core_Equal_Equal$ff_core_List_List(ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_Constraint).equals_(x_.constraints_, y_.constraints_))
|
|
3631
|
-
return
|
|
3632
|
-
}
|
|
3633
3363
|
}
|
|
3634
3364
|
}
|
|
3635
3365
|
};
|
|
3636
3366
|
|
|
3637
3367
|
export const ff_core_Equal_Equal$ff_compiler_Parser_ParsedTargets = {
|
|
3638
3368
|
equals_(x_, y_) {
|
|
3639
|
-
{
|
|
3640
3369
|
const x_a = x_;
|
|
3641
3370
|
const y_a = y_;
|
|
3642
|
-
{
|
|
3643
|
-
const _guard1 = (x_ === y_);
|
|
3644
|
-
if(_guard1) {
|
|
3371
|
+
if((x_ === y_)) {
|
|
3645
3372
|
return true
|
|
3646
|
-
return
|
|
3647
|
-
}
|
|
3648
3373
|
}
|
|
3649
3374
|
{
|
|
3650
3375
|
return (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_Lambda).equals_(x_.js_, y_.js_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.jsSync_, y_.jsSync_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.jsAsync_, y_.jsAsync_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_Lambda).equals_(x_.browser_, y_.browser_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.browserSync_, y_.browserSync_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.browserAsync_, y_.browserAsync_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_Lambda).equals_(x_.node_, y_.node_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.nodeSync_, y_.nodeSync_) && ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.nodeAsync_, y_.nodeAsync_)))))))))
|
|
3651
|
-
return
|
|
3652
|
-
}
|
|
3653
3376
|
}
|
|
3654
3377
|
},
|
|
3655
3378
|
async equals_$(x_, y_, $task) {
|
|
3656
|
-
{
|
|
3657
3379
|
const x_a = x_;
|
|
3658
3380
|
const y_a = y_;
|
|
3659
|
-
{
|
|
3660
|
-
const _guard1 = (x_ === y_);
|
|
3661
|
-
if(_guard1) {
|
|
3381
|
+
if((x_ === y_)) {
|
|
3662
3382
|
return true
|
|
3663
|
-
return
|
|
3664
|
-
}
|
|
3665
3383
|
}
|
|
3666
3384
|
{
|
|
3667
3385
|
return (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_Lambda).equals_(x_.js_, y_.js_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.jsSync_, y_.jsSync_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.jsAsync_, y_.jsAsync_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_Lambda).equals_(x_.browser_, y_.browser_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.browserSync_, y_.browserSync_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.browserAsync_, y_.browserAsync_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Equal_Equal$ff_compiler_Syntax_Lambda).equals_(x_.node_, y_.node_) && (ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.nodeSync_, y_.nodeSync_) && ff_core_Option.ff_core_Equal_Equal$ff_core_Option_Option(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.nodeAsync_, y_.nodeAsync_)))))))))
|
|
3668
|
-
return
|
|
3669
|
-
}
|
|
3670
3386
|
}
|
|
3671
3387
|
}
|
|
3672
3388
|
};
|
|
3673
3389
|
|
|
3674
3390
|
export const ff_core_Ordering_Order$ff_compiler_Parser_Poly = {
|
|
3675
3391
|
compare_(x_, y_) {
|
|
3676
|
-
{
|
|
3677
3392
|
const x_a = x_;
|
|
3678
3393
|
const y_a = y_;
|
|
3679
|
-
{
|
|
3680
|
-
const _guard1 = (x_ === y_);
|
|
3681
|
-
if(_guard1) {
|
|
3394
|
+
if((x_ === y_)) {
|
|
3682
3395
|
return ff_core_Ordering.OrderingSame()
|
|
3683
|
-
return
|
|
3684
|
-
}
|
|
3685
3396
|
}
|
|
3686
3397
|
{
|
|
3687
3398
|
const genericsOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_List_List(ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String).compare_(x_.generics_, y_.generics_);
|
|
@@ -3697,18 +3408,12 @@ return ff_core_Ordering.OrderingSame()
|
|
|
3697
3408
|
}
|
|
3698
3409
|
return
|
|
3699
3410
|
}
|
|
3700
|
-
}
|
|
3701
3411
|
},
|
|
3702
3412
|
async compare_$(x_, y_, $task) {
|
|
3703
|
-
{
|
|
3704
3413
|
const x_a = x_;
|
|
3705
3414
|
const y_a = y_;
|
|
3706
|
-
{
|
|
3707
|
-
const _guard1 = (x_ === y_);
|
|
3708
|
-
if(_guard1) {
|
|
3415
|
+
if((x_ === y_)) {
|
|
3709
3416
|
return ff_core_Ordering.OrderingSame()
|
|
3710
|
-
return
|
|
3711
|
-
}
|
|
3712
3417
|
}
|
|
3713
3418
|
{
|
|
3714
3419
|
const genericsOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_List_List(ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String).compare_(x_.generics_, y_.generics_);
|
|
@@ -3725,20 +3430,14 @@ return ff_core_Ordering.OrderingSame()
|
|
|
3725
3430
|
return
|
|
3726
3431
|
}
|
|
3727
3432
|
}
|
|
3728
|
-
}
|
|
3729
3433
|
};
|
|
3730
3434
|
|
|
3731
3435
|
export const ff_core_Ordering_Order$ff_compiler_Parser_ParsedTargets = {
|
|
3732
3436
|
compare_(x_, y_) {
|
|
3733
|
-
{
|
|
3734
3437
|
const x_a = x_;
|
|
3735
3438
|
const y_a = y_;
|
|
3736
|
-
{
|
|
3737
|
-
const _guard1 = (x_ === y_);
|
|
3738
|
-
if(_guard1) {
|
|
3439
|
+
if((x_ === y_)) {
|
|
3739
3440
|
return ff_core_Ordering.OrderingSame()
|
|
3740
|
-
return
|
|
3741
|
-
}
|
|
3742
3441
|
}
|
|
3743
3442
|
{
|
|
3744
3443
|
const jsOrdering_ = ff_core_Option.ff_core_Ordering_Order$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_Lambda).compare_(x_.js_, y_.js_);
|
|
@@ -3789,18 +3488,12 @@ return ff_core_Ordering.OrderingSame()
|
|
|
3789
3488
|
}
|
|
3790
3489
|
return
|
|
3791
3490
|
}
|
|
3792
|
-
}
|
|
3793
3491
|
},
|
|
3794
3492
|
async compare_$(x_, y_, $task) {
|
|
3795
|
-
{
|
|
3796
3493
|
const x_a = x_;
|
|
3797
3494
|
const y_a = y_;
|
|
3798
|
-
{
|
|
3799
|
-
const _guard1 = (x_ === y_);
|
|
3800
|
-
if(_guard1) {
|
|
3495
|
+
if((x_ === y_)) {
|
|
3801
3496
|
return ff_core_Ordering.OrderingSame()
|
|
3802
|
-
return
|
|
3803
|
-
}
|
|
3804
3497
|
}
|
|
3805
3498
|
{
|
|
3806
3499
|
const jsOrdering_ = ff_core_Option.ff_core_Ordering_Order$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_Lambda).compare_(x_.js_, y_.js_);
|
|
@@ -3852,12 +3545,10 @@ return ff_core_Ordering.OrderingSame()
|
|
|
3852
3545
|
return
|
|
3853
3546
|
}
|
|
3854
3547
|
}
|
|
3855
|
-
}
|
|
3856
3548
|
};
|
|
3857
3549
|
|
|
3858
3550
|
export const ff_core_Serializable_Serializable$ff_compiler_Parser_Poly = {
|
|
3859
3551
|
serializeUsing_(serialization_, value_) {
|
|
3860
|
-
{
|
|
3861
3552
|
const serialization_a = serialization_;
|
|
3862
3553
|
const value_a = value_;
|
|
3863
3554
|
{
|
|
@@ -3870,28 +3561,22 @@ ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core
|
|
|
3870
3561
|
ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Constraint).serializeUsing_(serialization_, v_.constraints_)
|
|
3871
3562
|
return
|
|
3872
3563
|
}
|
|
3873
|
-
}
|
|
3874
3564
|
},
|
|
3875
3565
|
deserializeUsing_(serialization_) {
|
|
3876
3566
|
const variantIndex_ = ff_core_Buffer.Buffer_grabUint8(serialization_.buffer_, serialization_.offset_);
|
|
3877
3567
|
serialization_.offset_ += 1;
|
|
3878
3568
|
{
|
|
3879
3569
|
const _1 = variantIndex_;
|
|
3880
|
-
{
|
|
3881
3570
|
if(_1 === 0) {
|
|
3882
3571
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 23), 0);
|
|
3883
3572
|
return ff_compiler_Parser.Poly(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Constraint).deserializeUsing_(serialization_))
|
|
3884
|
-
return
|
|
3885
|
-
}
|
|
3886
3573
|
}
|
|
3887
3574
|
{
|
|
3888
3575
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Serializable.DeserializationChecksumException(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException)})
|
|
3889
|
-
return
|
|
3890
3576
|
}
|
|
3891
3577
|
}
|
|
3892
3578
|
},
|
|
3893
3579
|
async serializeUsing_$(serialization_, value_, $task) {
|
|
3894
|
-
{
|
|
3895
3580
|
const serialization_a = serialization_;
|
|
3896
3581
|
const value_a = value_;
|
|
3897
3582
|
{
|
|
@@ -3904,23 +3589,18 @@ ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core
|
|
|
3904
3589
|
ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Constraint).serializeUsing_(serialization_, v_.constraints_)
|
|
3905
3590
|
return
|
|
3906
3591
|
}
|
|
3907
|
-
}
|
|
3908
3592
|
},
|
|
3909
3593
|
async deserializeUsing_$(serialization_, $task) {
|
|
3910
3594
|
const variantIndex_ = ff_core_Buffer.Buffer_grabUint8(serialization_.buffer_, serialization_.offset_);
|
|
3911
3595
|
serialization_.offset_ += 1;
|
|
3912
3596
|
{
|
|
3913
3597
|
const _1 = variantIndex_;
|
|
3914
|
-
{
|
|
3915
3598
|
if(_1 === 0) {
|
|
3916
3599
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 23), 0);
|
|
3917
3600
|
return ff_compiler_Parser.Poly(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Constraint).deserializeUsing_(serialization_))
|
|
3918
|
-
return
|
|
3919
|
-
}
|
|
3920
3601
|
}
|
|
3921
3602
|
{
|
|
3922
3603
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Serializable.DeserializationChecksumException(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException)})
|
|
3923
|
-
return
|
|
3924
3604
|
}
|
|
3925
3605
|
}
|
|
3926
3606
|
}
|
|
@@ -3928,7 +3608,6 @@ return
|
|
|
3928
3608
|
|
|
3929
3609
|
export const ff_core_Serializable_Serializable$ff_compiler_Parser_ParsedTargets = {
|
|
3930
3610
|
serializeUsing_(serialization_, value_) {
|
|
3931
|
-
{
|
|
3932
3611
|
const serialization_a = serialization_;
|
|
3933
3612
|
const value_a = value_;
|
|
3934
3613
|
{
|
|
@@ -3948,28 +3627,22 @@ ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_S
|
|
|
3948
3627
|
ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).serializeUsing_(serialization_, v_.nodeAsync_)
|
|
3949
3628
|
return
|
|
3950
3629
|
}
|
|
3951
|
-
}
|
|
3952
3630
|
},
|
|
3953
3631
|
deserializeUsing_(serialization_) {
|
|
3954
3632
|
const variantIndex_ = ff_core_Buffer.Buffer_grabUint8(serialization_.buffer_, serialization_.offset_);
|
|
3955
3633
|
serialization_.offset_ += 1;
|
|
3956
3634
|
{
|
|
3957
3635
|
const _1 = variantIndex_;
|
|
3958
|
-
{
|
|
3959
3636
|
if(_1 === 0) {
|
|
3960
3637
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 32), 0);
|
|
3961
3638
|
return ff_compiler_Parser.ParsedTargets(ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Lambda).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Lambda).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Lambda).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_))
|
|
3962
|
-
return
|
|
3963
|
-
}
|
|
3964
3639
|
}
|
|
3965
3640
|
{
|
|
3966
3641
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Serializable.DeserializationChecksumException(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException)})
|
|
3967
|
-
return
|
|
3968
3642
|
}
|
|
3969
3643
|
}
|
|
3970
3644
|
},
|
|
3971
3645
|
async serializeUsing_$(serialization_, value_, $task) {
|
|
3972
|
-
{
|
|
3973
3646
|
const serialization_a = serialization_;
|
|
3974
3647
|
const value_a = value_;
|
|
3975
3648
|
{
|
|
@@ -3989,23 +3662,18 @@ ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_S
|
|
|
3989
3662
|
ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).serializeUsing_(serialization_, v_.nodeAsync_)
|
|
3990
3663
|
return
|
|
3991
3664
|
}
|
|
3992
|
-
}
|
|
3993
3665
|
},
|
|
3994
3666
|
async deserializeUsing_$(serialization_, $task) {
|
|
3995
3667
|
const variantIndex_ = ff_core_Buffer.Buffer_grabUint8(serialization_.buffer_, serialization_.offset_);
|
|
3996
3668
|
serialization_.offset_ += 1;
|
|
3997
3669
|
{
|
|
3998
3670
|
const _1 = variantIndex_;
|
|
3999
|
-
{
|
|
4000
3671
|
if(_1 === 0) {
|
|
4001
3672
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 32), 0);
|
|
4002
3673
|
return ff_compiler_Parser.ParsedTargets(ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Lambda).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Lambda).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Lambda).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_))
|
|
4003
|
-
return
|
|
4004
|
-
}
|
|
4005
3674
|
}
|
|
4006
3675
|
{
|
|
4007
3676
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Serializable.DeserializationChecksumException(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException)})
|
|
4008
|
-
return
|
|
4009
3677
|
}
|
|
4010
3678
|
}
|
|
4011
3679
|
}
|