firefly-compiler 0.4.20 → 0.4.22

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 (72) hide show
  1. package/compiler/Builder.ff +23 -13
  2. package/compiler/Dictionaries.ff +10 -10
  3. package/compiler/Inference.ff +167 -148
  4. package/compiler/JsEmitter.ff +122 -78
  5. package/compiler/LspHook.ff +6 -3
  6. package/compiler/Main.ff +24 -10
  7. package/compiler/Patterns.ff +1 -1
  8. package/compiler/Resolver.ff +167 -159
  9. package/compiler/Substitution.ff +2 -2
  10. package/compiler/Syntax.ff +1 -0
  11. package/compiler/Unification.ff +1 -1
  12. package/core/Array.ff +6 -4
  13. package/core/Int.ff +12 -12
  14. package/core/List.ff +6 -4
  15. package/core/Map.ff +8 -0
  16. package/core/Set.ff +7 -0
  17. package/experimental/benchmarks/ListGrab.ff +23 -0
  18. package/experimental/benchmarks/ListGrab.java +55 -0
  19. package/experimental/benchmarks/Pyrotek45.ff +30 -0
  20. package/experimental/benchmarks/Pyrotek45.java +64 -0
  21. package/experimental/tests/TestJson.ff +26 -0
  22. package/lsp/Handler.ff +65 -61
  23. package/lsp/SignatureHelpHandler.ff +5 -4
  24. package/lsp/TestReferences.ff +15 -0
  25. package/lsp/TestReferencesCase.ff +8 -0
  26. package/output/js/ff/compiler/Builder.mjs +50 -44
  27. package/output/js/ff/compiler/Dependencies.mjs +0 -2
  28. package/output/js/ff/compiler/Deriver.mjs +16 -140
  29. package/output/js/ff/compiler/Dictionaries.mjs +24 -238
  30. package/output/js/ff/compiler/Environment.mjs +12 -154
  31. package/output/js/ff/compiler/Inference.mjs +207 -1069
  32. package/output/js/ff/compiler/JsEmitter.mjs +434 -2342
  33. package/output/js/ff/compiler/JsImporter.mjs +0 -12
  34. package/output/js/ff/compiler/LspHook.mjs +20 -446
  35. package/output/js/ff/compiler/Main.mjs +110 -553
  36. package/output/js/ff/compiler/Parser.mjs +36 -356
  37. package/output/js/ff/compiler/Patterns.mjs +24 -204
  38. package/output/js/ff/compiler/Resolver.mjs +428 -554
  39. package/output/js/ff/compiler/Substitution.mjs +6 -164
  40. package/output/js/ff/compiler/Syntax.mjs +449 -3293
  41. package/output/js/ff/compiler/Token.mjs +9 -1095
  42. package/output/js/ff/compiler/Tokenizer.mjs +4 -2
  43. package/output/js/ff/compiler/Unification.mjs +30 -364
  44. package/output/js/ff/compiler/Wildcards.mjs +0 -86
  45. package/output/js/ff/compiler/Workspace.mjs +8 -96
  46. package/output/js/ff/core/Array.mjs +15 -8
  47. package/output/js/ff/core/AssetSystem.mjs +4 -14
  48. package/output/js/ff/core/Bool.mjs +0 -12
  49. package/output/js/ff/core/Core.mjs +0 -30
  50. package/output/js/ff/core/Int.mjs +24 -24
  51. package/output/js/ff/core/IntMap.mjs +0 -8
  52. package/output/js/ff/core/Json.mjs +0 -40
  53. package/output/js/ff/core/List.mjs +23 -32
  54. package/output/js/ff/core/Lock.mjs +0 -10
  55. package/output/js/ff/core/Map.mjs +26 -24
  56. package/output/js/ff/core/Option.mjs +10 -286
  57. package/output/js/ff/core/Ordering.mjs +16 -158
  58. package/output/js/ff/core/Pair.mjs +2 -34
  59. package/output/js/ff/core/Path.mjs +2 -28
  60. package/output/js/ff/core/Random.mjs +4 -4
  61. package/output/js/ff/core/RbMap.mjs +56 -644
  62. package/output/js/ff/core/Set.mjs +16 -0
  63. package/output/js/ff/core/Show.mjs +0 -16
  64. package/output/js/ff/core/Stream.mjs +14 -144
  65. package/output/js/ff/core/StringMap.mjs +0 -8
  66. package/output/js/ff/core/Try.mjs +4 -108
  67. package/output/js/ff/core/Unit.mjs +2 -16
  68. package/package.json +1 -1
  69. package/postgresql/Pg.ff +23 -23
  70. package/vscode/package.json +1 -1
  71. package/bin/firefly.mjs +0 -2
  72. package/guide/Main.ff +0 -22
@@ -158,29 +158,17 @@ const compilerModulePath_ = ((ff_core_Equal.notEquals_(emitTarget_, ff_compiler_
158
158
  ? ff_core_Option.Some(ff_core_Path.Path_slash(ff_core_Path.Path_slash(ff_core_Path.Path_slash(ff_core_Path.Path_slash(fireflyPath_, "output"), "js"), "ff"), "compiler/Builder.mjs"))
159
159
  : ff_core_Option.None());
160
160
  const targetName_ = (((_1) => {
161
- {
162
161
  if(_1.EmitBuild) {
163
162
  return "build"
164
- return
165
163
  }
166
- }
167
- {
168
164
  if(_1.EmitNode) {
169
165
  return "node"
170
- return
171
- }
172
166
  }
173
- {
174
167
  if(_1.EmitBrowser) {
175
168
  return "browser"
176
- return
177
169
  }
178
- }
179
- {
180
170
  if(_1.EmitExecutable) {
181
171
  return "executable"
182
- return
183
- }
184
172
  }
185
173
  }))(emitTarget_);
186
174
  ff_compiler_Builder.build_(system_, emitTarget_, mainPackagePair_, mainFile_, (((_c) => {
@@ -188,9 +176,7 @@ return ff_compiler_Dependencies.ResolvedDependencies(_c.mainPackagePair_, _c.pac
188
176
  }))(resolvedDependencies_), compilerModulePath_, ff_core_Path.Path_slash(ff_core_NodeSystem.NodeSystem_path(system_, ".firefly"), "temporary"), ff_core_Path.Path_path(ff_core_Path.Path_path(ff_core_NodeSystem.NodeSystem_path(system_, ".firefly"), "output"), targetName_), false)
189
177
  }
190
178
  function runCommand_(command_) {
191
- {
192
179
  const command_a = command_;
193
- {
194
180
  if(command_a.RunCommand) {
195
181
  const mainFile_ = command_a.mainPath_;
196
182
  const arguments_ = command_a.argument_;
@@ -198,11 +184,12 @@ const resolvedDependencies_ = ff_compiler_Dependencies.process_(ff_core_NodeSyst
198
184
  ff_compiler_Main.prepareFireflyDirectory_(ff_core_NodeSystem.NodeSystem_path(system_, "."));
199
185
  const localMainFile_ = ff_core_Path.Path_base(ff_core_NodeSystem.NodeSystem_path(system_, mainFile_));
200
186
  buildScript_(localMainFile_, resolvedDependencies_.mainPackagePair_, ff_compiler_JsEmitter.EmitNode(), resolvedDependencies_);
201
- ff_compiler_Main.importAndRun_(fireflyPath_, "node", resolvedDependencies_.mainPackagePair_, localMainFile_, arguments_)
202
- return
187
+ if((!ff_compiler_Main.importAndRun_(fireflyPath_, "node", resolvedDependencies_.mainPackagePair_, localMainFile_, arguments_))) {
188
+ const at_ = ff_compiler_Syntax.Location(ff_core_Path.Path_absolute(ff_core_NodeSystem.NodeSystem_path(system_, (mainFile_ + ".ff"))), 1, 1);
189
+ throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "This module does not contain a 'nodeMain' function"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
203
190
  }
191
+ return
204
192
  }
205
- {
206
193
  if(command_a.BrowserCommand) {
207
194
  const mainFile_ = command_a.mainPath_;
208
195
  const resolvedDependencies_ = ff_compiler_Dependencies.process_(ff_core_NodeSystem.NodeSystem_httpClient(system_), ff_core_NodeSystem.NodeSystem_path(system_, (mainFile_ + ".ff")));
@@ -212,8 +199,6 @@ buildScript_(mainFile_, resolvedDependencies_.mainPackagePair_, ff_compiler_JsEm
212
199
  ff_compiler_Main.bundleForBrowser_(system_, resolvedDependencies_.mainPackagePair_, localMainFile_)
213
200
  return
214
201
  }
215
- }
216
- {
217
202
  if(command_a.BuildCommand) {
218
203
  const mainFile_ = command_a.mainPath_;
219
204
  const resolvedDependencies_ = ff_compiler_Dependencies.process_(ff_core_NodeSystem.NodeSystem_httpClient(system_), ff_core_NodeSystem.NodeSystem_path(system_, (mainFile_ + ".ff")));
@@ -225,30 +210,26 @@ ff_compiler_Main.bundleForPkg_(system_, resolvedDependencies_.mainPackagePair_,
225
210
  ff_compiler_Main.importAndRun_(fireflyPath_, "build", resolvedDependencies_.mainPackagePair_, localMainFile_, [])
226
211
  return
227
212
  }
228
- }
229
- {
230
213
  if(command_a.CheckCommand) {
231
214
  const filePath_ = command_a.filePath_;
232
- ff_compiler_Builder.check_(system_, fireflyPath_, ff_core_NodeSystem.NodeSystem_path(system_, filePath_), ff_core_Map.empty_(), ff_compiler_LspHook.disabled_(), true)
233
- return
215
+ const errors_ = ff_compiler_Builder.check_(system_, fireflyPath_, ff_core_NodeSystem.NodeSystem_path(system_, filePath_), ff_core_Option.None(), ff_core_Map.empty_(), ff_compiler_LspHook.disabled_(), true);
216
+ if((!ff_core_List.List_isEmpty(errors_))) {
217
+ throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileErrors(ff_core_List.List_distinct(errors_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_CompileError)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors)})
234
218
  }
219
+ return
235
220
  }
236
- {
237
221
  if(command_a.BootstrapCommand) {
238
222
  const workingDirectory_ = ff_core_NodeSystem.NodeSystem_path(system_, ".");
239
223
  ff_compiler_Builder.build_(system_, ff_compiler_JsEmitter.EmitNode(), ff_compiler_Syntax.PackagePair("ff", "compiler"), "Main", ff_compiler_Dependencies.ResolvedDependencies(ff_compiler_Syntax.PackagePair("ff", "compiler"), ff_core_List.List_toMap([], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), ff_core_List.List_toMap([ff_core_Pair.Pair(ff_compiler_Syntax.PackagePair("ff", "compiler"), ff_core_Path.Path_slash(workingDirectory_, "compiler")), ff_core_Pair.Pair(ff_compiler_Syntax.PackagePair("ff", "core"), ff_core_Path.Path_slash(workingDirectory_, "core"))], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), ff_core_List.List_toSet([], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair)), ff_core_Option.None(), ff_core_Path.Path_slash(ff_core_Path.Path_slash(workingDirectory_, "output"), "temporary"), ff_core_Path.Path_slash(ff_core_Path.Path_slash(workingDirectory_, "output"), "js"), true)
240
224
  return
241
225
  }
242
226
  }
243
- }
244
- }
245
- ff_core_Try.Try_grab(ff_core_Try.Try_catch(ff_core_Try.Try_catch(ff_core_Core.try_((() => {
227
+ ff_core_Try.Try_grab(ff_core_Try.Try_catch(ff_core_Try.Try_catch(ff_core_Try.Try_catch(ff_core_Core.try_((() => {
246
228
  const command_ = ff_compiler_Main.parseCommandLine_(ff_core_NodeSystem.NodeSystem_arguments(system_));
247
229
  return runCommand_(command_)
248
230
  })), ((_1, _2) => {
249
231
  {
250
232
  const message_ = _1.problem_;
251
- const error_ = _2;
252
233
  ff_core_Log.debug_(message_)
253
234
  return
254
235
  }
@@ -256,198 +237,127 @@ return
256
237
  {
257
238
  const at_ = _1.at_;
258
239
  const message_ = _1.message_;
259
- const error_ = _2;
260
240
  ff_core_Log.debug_(message_);
261
241
  ff_core_Log.debug_((((((" at " + ff_core_String.String_replace(at_.file_, "./", "")) + ":") + at_.line_) + ":") + at_.column_))
262
242
  return
263
243
  }
264
- }), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError))
244
+ }), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError), ((_1, _2) => {
245
+ {
246
+ const errors_ = _1.errors_;
247
+ ff_core_List.List_map(errors_, ((_1) => {
248
+ {
249
+ const at_ = _1.at_;
250
+ const message_ = _1.message_;
251
+ ff_core_Log.debug_(message_);
252
+ return ff_core_Log.debug_((((((" at " + ff_core_String.String_replace(at_.file_, "./", "")) + ":") + at_.line_) + ":") + at_.column_))
253
+ }
254
+ }))
255
+ return
256
+ }
257
+ }), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors))
265
258
  }
266
259
 
267
260
  export function parseCommandLine_(arguments_) {
268
- {
269
261
  const arguments_a = arguments_;
270
- {
271
- if(arguments_a.length > 0) {
262
+ if(arguments_a.length >= 1) {
272
263
  const mainFile_ = arguments_a[0];
273
264
  const mainArguments_ = arguments_a.slice(1);
274
265
  const _guard1 = ff_core_String.String_removeLast(mainFile_, ".ff");
275
266
  if(_guard1.Some) {
276
267
  const mainName_ = _guard1.value_;
277
268
  return ff_compiler_Main.RunCommand(mainName_, mainArguments_)
278
- return
279
269
  }
280
270
  }
281
- }
282
- {
283
- if(arguments_a.length > 0) {
284
- if(arguments_a[0] === "run") {
271
+ if(arguments_a.length >= 1 && arguments_a[0] === "run") {
285
272
  const runArguments_ = arguments_a.slice(1);
286
273
  {
287
274
  const _1 = runArguments_;
288
- {
289
- if(_1.length > 0) {
275
+ if(_1.length >= 1) {
290
276
  const mainFile_ = _1[0];
291
277
  const mainArguments_ = _1.slice(1);
292
278
  const _guard1 = ff_core_String.String_removeLast(mainFile_, ".ff");
293
279
  if(_guard1.Some) {
294
280
  const mainName_ = _guard1.value_;
295
281
  return ff_compiler_Main.RunCommand(mainName_, mainArguments_)
296
- return
297
- }
298
282
  }
299
283
  }
300
284
  {
301
285
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) as first argument to run." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
302
- return
303
286
  }
304
287
  }
305
288
  return
306
289
  }
307
- }
308
- }
309
- {
310
- if(arguments_a.length > 0) {
311
- if(arguments_a[0] === "browser") {
290
+ if(arguments_a.length >= 1 && arguments_a[0] === "browser") {
312
291
  const browserArguments_ = arguments_a.slice(1);
313
292
  {
314
293
  const _1 = browserArguments_;
315
- {
316
- if(_1.length > 0) {
317
- const mainFile_ = _1[0];
318
294
  if(_1.length === 1) {
295
+ const mainFile_ = _1[0];
319
296
  const _guard1 = ff_core_String.String_removeLast(mainFile_, ".ff");
320
297
  if(_guard1.Some) {
321
298
  const mainName_ = _guard1.value_;
322
299
  return ff_compiler_Main.BrowserCommand(mainName_)
323
- return
324
- }
325
300
  }
326
301
  }
327
- }
328
- {
329
- if(_1.length > 0) {
330
- if(_1.length > 1) {
302
+ if(_1.length >= 2) {
331
303
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must only specify a single argument to browser." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
332
- return
333
- }
334
- }
335
304
  }
336
305
  {
337
306
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) as the argument to browser." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
338
- return
339
307
  }
340
308
  }
341
309
  return
342
310
  }
343
- }
344
- }
345
- {
346
- if(arguments_a.length > 0) {
347
- if(arguments_a[0] === "build") {
311
+ if(arguments_a.length >= 1 && arguments_a[0] === "build") {
348
312
  const buildArguments_ = arguments_a.slice(1);
349
313
  {
350
314
  const _1 = buildArguments_;
351
- {
352
- if(_1.length > 0) {
353
- const mainFile_ = _1[0];
354
315
  if(_1.length === 1) {
316
+ const mainFile_ = _1[0];
355
317
  const _guard1 = ff_core_String.String_removeLast(mainFile_, ".ff");
356
318
  if(_guard1.Some) {
357
319
  const mainName_ = _guard1.value_;
358
320
  return ff_compiler_Main.BuildCommand(mainName_)
359
- return
360
- }
361
- }
362
321
  }
363
322
  }
364
- {
365
- if(_1.length > 0) {
366
- if(_1.length > 1) {
323
+ if(_1.length >= 2) {
367
324
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must only specify a single argument to build." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
368
- return
369
- }
370
- }
371
325
  }
372
326
  {
373
327
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) as the argument to build." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
374
- return
375
328
  }
376
329
  }
377
330
  return
378
331
  }
379
- }
380
- }
381
- {
382
- if(arguments_a.length > 0) {
383
- if(arguments_a[0] === "check") {
332
+ if(arguments_a.length >= 1 && arguments_a[0] === "check") {
384
333
  const checkArguments_ = arguments_a.slice(1);
385
334
  {
386
335
  const _1 = checkArguments_;
387
- {
388
- if(_1.length > 0) {
389
- const fileName_ = _1[0];
390
336
  if(_1.length === 1) {
391
- const _guard1 = ff_core_String.String_removeLast(fileName_, ".ff");
392
- if(_guard1.Some) {
337
+ const fileName_ = _1[0];
393
338
  return ff_compiler_Main.CheckCommand(fileName_)
394
- return
395
- }
396
339
  }
397
- }
398
- }
399
- {
400
- if(_1.length > 0) {
401
- if(_1.length > 1) {
340
+ if(_1.length >= 2) {
402
341
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must only specify a single argument to check." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
403
- return
404
342
  }
405
- }
406
- }
407
- {
408
- throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) as the argument to build." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
409
- return
343
+ if(_1.length === 0) {
344
+ throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) or directory as the argument to check." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
410
345
  }
411
346
  }
412
347
  return
413
348
  }
414
- }
415
- }
416
- {
417
- if(arguments_a.length > 0) {
418
- if(arguments_a[0] === "bootstrap") {
419
- if(arguments_a.length > 1) {
420
- if(arguments_a.length === 2) {
349
+ if(arguments_a.length === 2 && arguments_a[0] === "bootstrap") {
421
350
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("bootstrap takes no arguments" + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
422
- return
423
- }
424
- }
425
351
  }
426
- }
427
- }
428
- {
429
- if(arguments_a.length > 0) {
430
- if(arguments_a[0] === "bootstrap") {
431
- if(arguments_a.length === 1) {
352
+ if(arguments_a.length === 1 && arguments_a[0] === "bootstrap") {
432
353
  return ff_compiler_Main.BootstrapCommand()
433
- return
434
- }
435
- }
436
- }
437
354
  }
438
- {
439
355
  if(arguments_a.length === 0) {
440
356
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a command or a main file to run." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
441
- return
442
357
  }
443
- }
444
- {
445
- if(arguments_a.length > 0) {
358
+ if(arguments_a.length >= 1) {
446
359
  const s_ = arguments_a[0];
447
360
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(((("Unknown command '" + s_) + "'") + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
448
- return
449
- }
450
- }
451
361
  }
452
362
  }
453
363
 
@@ -495,29 +405,17 @@ const compilerModulePath_ = ((ff_core_Equal.notEquals_(emitTarget_, ff_compiler_
495
405
  ? ff_core_Option.Some((await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$(fireflyPath_, "output", $task)), "js", $task)), "ff", $task)), "compiler/Builder.mjs", $task)))
496
406
  : ff_core_Option.None());
497
407
  const targetName_ = (((_1) => {
498
- {
499
408
  if(_1.EmitBuild) {
500
409
  return "build"
501
- return
502
410
  }
503
- }
504
- {
505
411
  if(_1.EmitNode) {
506
412
  return "node"
507
- return
508
- }
509
413
  }
510
- {
511
414
  if(_1.EmitBrowser) {
512
415
  return "browser"
513
- return
514
- }
515
416
  }
516
- {
517
417
  if(_1.EmitExecutable) {
518
418
  return "executable"
519
- return
520
- }
521
419
  }
522
420
  }))(emitTarget_);
523
421
  (await ff_compiler_Builder.build_$(system_, emitTarget_, mainPackagePair_, mainFile_, (((_c) => {
@@ -525,9 +423,7 @@ return ff_compiler_Dependencies.ResolvedDependencies(_c.mainPackagePair_, _c.pac
525
423
  }))(resolvedDependencies_), compilerModulePath_, (await ff_core_Path.Path_slash$((await ff_core_NodeSystem.NodeSystem_path$(system_, ".firefly", $task)), "temporary", $task)), (await ff_core_Path.Path_path$((await ff_core_Path.Path_path$((await ff_core_NodeSystem.NodeSystem_path$(system_, ".firefly", $task)), "output", $task)), targetName_, $task)), false, $task))
526
424
  }
527
425
  async function runCommand_$(command_, $task) {
528
- {
529
426
  const command_a = command_;
530
- {
531
427
  if(command_a.RunCommand) {
532
428
  const mainFile_ = command_a.mainPath_;
533
429
  const arguments_ = command_a.argument_;
@@ -535,11 +431,12 @@ const resolvedDependencies_ = (await ff_compiler_Dependencies.process_$((await f
535
431
  (await ff_compiler_Main.prepareFireflyDirectory_$((await ff_core_NodeSystem.NodeSystem_path$(system_, ".", $task)), $task));
536
432
  const localMainFile_ = (await ff_core_Path.Path_base$((await ff_core_NodeSystem.NodeSystem_path$(system_, mainFile_, $task)), $task));
537
433
  (await buildScript_$(localMainFile_, resolvedDependencies_.mainPackagePair_, ff_compiler_JsEmitter.EmitNode(), resolvedDependencies_, $task));
538
- (await ff_compiler_Main.importAndRun_$(fireflyPath_, "node", resolvedDependencies_.mainPackagePair_, localMainFile_, arguments_, $task))
539
- return
434
+ if((!(await ff_compiler_Main.importAndRun_$(fireflyPath_, "node", resolvedDependencies_.mainPackagePair_, localMainFile_, arguments_, $task)))) {
435
+ const at_ = ff_compiler_Syntax.Location((await ff_core_Path.Path_absolute$((await ff_core_NodeSystem.NodeSystem_path$(system_, (mainFile_ + ".ff"), $task)), $task)), 1, 1);
436
+ throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "This module does not contain a 'nodeMain' function"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
540
437
  }
438
+ return
541
439
  }
542
- {
543
440
  if(command_a.BrowserCommand) {
544
441
  const mainFile_ = command_a.mainPath_;
545
442
  const resolvedDependencies_ = (await ff_compiler_Dependencies.process_$((await ff_core_NodeSystem.NodeSystem_httpClient$(system_, $task)), (await ff_core_NodeSystem.NodeSystem_path$(system_, (mainFile_ + ".ff"), $task)), $task));
@@ -549,8 +446,6 @@ const localMainFile_ = (await ff_core_Path.Path_base$((await ff_core_NodeSystem.
549
446
  (await ff_compiler_Main.bundleForBrowser_$(system_, resolvedDependencies_.mainPackagePair_, localMainFile_, $task))
550
447
  return
551
448
  }
552
- }
553
- {
554
449
  if(command_a.BuildCommand) {
555
450
  const mainFile_ = command_a.mainPath_;
556
451
  const resolvedDependencies_ = (await ff_compiler_Dependencies.process_$((await ff_core_NodeSystem.NodeSystem_httpClient$(system_, $task)), (await ff_core_NodeSystem.NodeSystem_path$(system_, (mainFile_ + ".ff"), $task)), $task));
@@ -562,30 +457,26 @@ const localMainFile_ = (await ff_core_Path.Path_base$((await ff_core_NodeSystem.
562
457
  (await ff_compiler_Main.importAndRun_$(fireflyPath_, "build", resolvedDependencies_.mainPackagePair_, localMainFile_, [], $task))
563
458
  return
564
459
  }
565
- }
566
- {
567
460
  if(command_a.CheckCommand) {
568
461
  const filePath_ = command_a.filePath_;
569
- (await ff_compiler_Builder.check_$(system_, fireflyPath_, (await ff_core_NodeSystem.NodeSystem_path$(system_, filePath_, $task)), ff_core_Map.empty_(), ff_compiler_LspHook.disabled_(), true, $task))
570
- return
462
+ const errors_ = (await ff_compiler_Builder.check_$(system_, fireflyPath_, (await ff_core_NodeSystem.NodeSystem_path$(system_, filePath_, $task)), ff_core_Option.None(), ff_core_Map.empty_(), ff_compiler_LspHook.disabled_(), true, $task));
463
+ if((!ff_core_List.List_isEmpty(errors_))) {
464
+ throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileErrors(ff_core_List.List_distinct(errors_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_CompileError)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors)})
571
465
  }
466
+ return
572
467
  }
573
- {
574
468
  if(command_a.BootstrapCommand) {
575
469
  const workingDirectory_ = (await ff_core_NodeSystem.NodeSystem_path$(system_, ".", $task));
576
470
  (await ff_compiler_Builder.build_$(system_, ff_compiler_JsEmitter.EmitNode(), ff_compiler_Syntax.PackagePair("ff", "compiler"), "Main", ff_compiler_Dependencies.ResolvedDependencies(ff_compiler_Syntax.PackagePair("ff", "compiler"), ff_core_List.List_toMap([], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), ff_core_List.List_toMap([ff_core_Pair.Pair(ff_compiler_Syntax.PackagePair("ff", "compiler"), (await ff_core_Path.Path_slash$(workingDirectory_, "compiler", $task))), ff_core_Pair.Pair(ff_compiler_Syntax.PackagePair("ff", "core"), (await ff_core_Path.Path_slash$(workingDirectory_, "core", $task)))], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), ff_core_List.List_toSet([], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair)), ff_core_Option.None(), (await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$(workingDirectory_, "output", $task)), "temporary", $task)), (await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$(workingDirectory_, "output", $task)), "js", $task)), true, $task))
577
471
  return
578
472
  }
579
473
  }
580
- }
581
- }
582
- ff_core_Try.Try_grab(ff_core_Try.Try_catch(ff_core_Try.Try_catch((await ff_core_Core.try_$((async ($task) => {
474
+ ff_core_Try.Try_grab(ff_core_Try.Try_catch(ff_core_Try.Try_catch(ff_core_Try.Try_catch((await ff_core_Core.try_$((async ($task) => {
583
475
  const command_ = ff_compiler_Main.parseCommandLine_((await ff_core_NodeSystem.NodeSystem_arguments$(system_, $task)));
584
476
  return (await runCommand_$(command_, $task))
585
477
  }), $task)), ((_1, _2) => {
586
478
  {
587
479
  const message_ = _1.problem_;
588
- const error_ = _2;
589
480
  ff_core_Log.debug_(message_)
590
481
  return
591
482
  }
@@ -593,198 +484,127 @@ return
593
484
  {
594
485
  const at_ = _1.at_;
595
486
  const message_ = _1.message_;
596
- const error_ = _2;
597
487
  ff_core_Log.debug_(message_);
598
488
  ff_core_Log.debug_((((((" at " + ff_core_String.String_replace(at_.file_, "./", "")) + ":") + at_.line_) + ":") + at_.column_))
599
489
  return
600
490
  }
601
- }), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError))
491
+ }), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError), ((_1, _2) => {
492
+ {
493
+ const errors_ = _1.errors_;
494
+ ff_core_List.List_map(errors_, ((_1) => {
495
+ {
496
+ const at_ = _1.at_;
497
+ const message_ = _1.message_;
498
+ ff_core_Log.debug_(message_);
499
+ return ff_core_Log.debug_((((((" at " + ff_core_String.String_replace(at_.file_, "./", "")) + ":") + at_.line_) + ":") + at_.column_))
500
+ }
501
+ }))
502
+ return
503
+ }
504
+ }), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors))
602
505
  }
603
506
 
604
507
  export async function parseCommandLine_$(arguments_, $task) {
605
- {
606
508
  const arguments_a = arguments_;
607
- {
608
- if(arguments_a.length > 0) {
509
+ if(arguments_a.length >= 1) {
609
510
  const mainFile_ = arguments_a[0];
610
511
  const mainArguments_ = arguments_a.slice(1);
611
512
  const _guard1 = ff_core_String.String_removeLast(mainFile_, ".ff");
612
513
  if(_guard1.Some) {
613
514
  const mainName_ = _guard1.value_;
614
515
  return ff_compiler_Main.RunCommand(mainName_, mainArguments_)
615
- return
616
- }
617
516
  }
618
517
  }
619
- {
620
- if(arguments_a.length > 0) {
621
- if(arguments_a[0] === "run") {
518
+ if(arguments_a.length >= 1 && arguments_a[0] === "run") {
622
519
  const runArguments_ = arguments_a.slice(1);
623
520
  {
624
521
  const _1 = runArguments_;
625
- {
626
- if(_1.length > 0) {
522
+ if(_1.length >= 1) {
627
523
  const mainFile_ = _1[0];
628
524
  const mainArguments_ = _1.slice(1);
629
525
  const _guard1 = ff_core_String.String_removeLast(mainFile_, ".ff");
630
526
  if(_guard1.Some) {
631
527
  const mainName_ = _guard1.value_;
632
528
  return ff_compiler_Main.RunCommand(mainName_, mainArguments_)
633
- return
634
- }
635
529
  }
636
530
  }
637
531
  {
638
532
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) as first argument to run." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
639
- return
640
533
  }
641
534
  }
642
535
  return
643
536
  }
644
- }
645
- }
646
- {
647
- if(arguments_a.length > 0) {
648
- if(arguments_a[0] === "browser") {
537
+ if(arguments_a.length >= 1 && arguments_a[0] === "browser") {
649
538
  const browserArguments_ = arguments_a.slice(1);
650
539
  {
651
540
  const _1 = browserArguments_;
652
- {
653
- if(_1.length > 0) {
654
- const mainFile_ = _1[0];
655
541
  if(_1.length === 1) {
542
+ const mainFile_ = _1[0];
656
543
  const _guard1 = ff_core_String.String_removeLast(mainFile_, ".ff");
657
544
  if(_guard1.Some) {
658
545
  const mainName_ = _guard1.value_;
659
546
  return ff_compiler_Main.BrowserCommand(mainName_)
660
- return
661
- }
662
547
  }
663
548
  }
664
- }
665
- {
666
- if(_1.length > 0) {
667
- if(_1.length > 1) {
549
+ if(_1.length >= 2) {
668
550
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must only specify a single argument to browser." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
669
- return
670
- }
671
- }
672
551
  }
673
552
  {
674
553
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) as the argument to browser." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
675
- return
676
554
  }
677
555
  }
678
556
  return
679
557
  }
680
- }
681
- }
682
- {
683
- if(arguments_a.length > 0) {
684
- if(arguments_a[0] === "build") {
558
+ if(arguments_a.length >= 1 && arguments_a[0] === "build") {
685
559
  const buildArguments_ = arguments_a.slice(1);
686
560
  {
687
561
  const _1 = buildArguments_;
688
- {
689
- if(_1.length > 0) {
690
- const mainFile_ = _1[0];
691
562
  if(_1.length === 1) {
563
+ const mainFile_ = _1[0];
692
564
  const _guard1 = ff_core_String.String_removeLast(mainFile_, ".ff");
693
565
  if(_guard1.Some) {
694
566
  const mainName_ = _guard1.value_;
695
567
  return ff_compiler_Main.BuildCommand(mainName_)
696
- return
697
- }
698
568
  }
699
569
  }
700
- }
701
- {
702
- if(_1.length > 0) {
703
- if(_1.length > 1) {
570
+ if(_1.length >= 2) {
704
571
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must only specify a single argument to build." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
705
- return
706
- }
707
- }
708
572
  }
709
573
  {
710
574
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) as the argument to build." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
711
- return
712
575
  }
713
576
  }
714
577
  return
715
578
  }
716
- }
717
- }
718
- {
719
- if(arguments_a.length > 0) {
720
- if(arguments_a[0] === "check") {
579
+ if(arguments_a.length >= 1 && arguments_a[0] === "check") {
721
580
  const checkArguments_ = arguments_a.slice(1);
722
581
  {
723
582
  const _1 = checkArguments_;
724
- {
725
- if(_1.length > 0) {
726
- const fileName_ = _1[0];
727
583
  if(_1.length === 1) {
728
- const _guard1 = ff_core_String.String_removeLast(fileName_, ".ff");
729
- if(_guard1.Some) {
584
+ const fileName_ = _1[0];
730
585
  return ff_compiler_Main.CheckCommand(fileName_)
731
- return
732
- }
733
586
  }
734
- }
735
- }
736
- {
737
- if(_1.length > 0) {
738
- if(_1.length > 1) {
587
+ if(_1.length >= 2) {
739
588
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must only specify a single argument to check." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
740
- return
741
589
  }
742
- }
743
- }
744
- {
745
- throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) as the argument to build." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
746
- return
590
+ if(_1.length === 0) {
591
+ throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) or directory as the argument to check." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
747
592
  }
748
593
  }
749
594
  return
750
595
  }
751
- }
752
- }
753
- {
754
- if(arguments_a.length > 0) {
755
- if(arguments_a[0] === "bootstrap") {
756
- if(arguments_a.length > 1) {
757
- if(arguments_a.length === 2) {
596
+ if(arguments_a.length === 2 && arguments_a[0] === "bootstrap") {
758
597
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("bootstrap takes no arguments" + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
759
- return
760
- }
761
598
  }
762
- }
763
- }
764
- }
765
- {
766
- if(arguments_a.length > 0) {
767
- if(arguments_a[0] === "bootstrap") {
768
- if(arguments_a.length === 1) {
599
+ if(arguments_a.length === 1 && arguments_a[0] === "bootstrap") {
769
600
  return ff_compiler_Main.BootstrapCommand()
770
- return
771
- }
772
- }
773
- }
774
601
  }
775
- {
776
602
  if(arguments_a.length === 0) {
777
603
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a command or a main file to run." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
778
- return
779
604
  }
780
- }
781
- {
782
- if(arguments_a.length > 0) {
605
+ if(arguments_a.length >= 1) {
783
606
  const s_ = arguments_a[0];
784
607
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(((("Unknown command '" + s_) + "'") + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
785
- return
786
- }
787
- }
788
608
  }
789
609
  }
790
610
 
@@ -812,7 +632,12 @@ export async function importAndRun_$(fireflyPath_, target_, packagePair_, mainFi
812
632
  const workingDirectory = cwd.indexOf(':') == 1 ? 'file:///' + cwd : cwd;
813
633
  const packagePath = packagePair_.group_ + "/" + packagePair_.name_
814
634
  const main = await import(workingDirectory + "/.firefly/output/" + target_ + "/" + packagePath + "/" + mainFile_ + ".mjs");
815
- await main.$run$(fireflyPath_, arguments_)
635
+ if(typeof main.$run$ !== 'undefined') {
636
+ await main.$run$(fireflyPath_, arguments_);
637
+ return true;
638
+ } else {
639
+ return false;
640
+ }
816
641
 
817
642
  }
818
643
 
@@ -859,280 +684,165 @@ return ff_core_Any.internalAnyTag_((("ff:compiler/Main.CommandLineError" + "[")
859
684
 
860
685
  export const ff_core_Show_Show$ff_compiler_Main_MainCommand = {
861
686
  show_(value_) {
862
- {
863
687
  const value_a = value_;
864
- {
865
688
  if(value_a.BootstrapCommand) {
866
689
  const z_ = value_a;
867
690
  return "BootstrapCommand"
868
- return
869
691
  }
870
- }
871
- {
872
692
  if(value_a.RunCommand) {
873
693
  const z_ = value_a;
874
694
  return ((((("RunCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.mainPath_)) + ", ") + ff_core_Show.ff_core_Show_Show$ff_core_List_List(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.argument_)) + ")")
875
- return
876
695
  }
877
- }
878
- {
879
696
  if(value_a.BrowserCommand) {
880
697
  const z_ = value_a;
881
698
  return ((("BrowserCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.mainPath_)) + ")")
882
- return
883
- }
884
699
  }
885
- {
886
700
  if(value_a.BuildCommand) {
887
701
  const z_ = value_a;
888
702
  return ((("BuildCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.mainPath_)) + ")")
889
- return
890
- }
891
703
  }
892
- {
893
704
  if(value_a.CheckCommand) {
894
705
  const z_ = value_a;
895
706
  return ((("CheckCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.filePath_)) + ")")
896
- return
897
- }
898
- }
899
707
  }
900
708
  },
901
709
  async show_$(value_, $task) {
902
- {
903
710
  const value_a = value_;
904
- {
905
711
  if(value_a.BootstrapCommand) {
906
712
  const z_ = value_a;
907
713
  return "BootstrapCommand"
908
- return
909
- }
910
714
  }
911
- {
912
715
  if(value_a.RunCommand) {
913
716
  const z_ = value_a;
914
717
  return ((((("RunCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.mainPath_)) + ", ") + ff_core_Show.ff_core_Show_Show$ff_core_List_List(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.argument_)) + ")")
915
- return
916
718
  }
917
- }
918
- {
919
719
  if(value_a.BrowserCommand) {
920
720
  const z_ = value_a;
921
721
  return ((("BrowserCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.mainPath_)) + ")")
922
- return
923
- }
924
722
  }
925
- {
926
723
  if(value_a.BuildCommand) {
927
724
  const z_ = value_a;
928
725
  return ((("BuildCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.mainPath_)) + ")")
929
- return
930
- }
931
726
  }
932
- {
933
727
  if(value_a.CheckCommand) {
934
728
  const z_ = value_a;
935
729
  return ((("CheckCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.filePath_)) + ")")
936
- return
937
- }
938
- }
939
730
  }
940
731
  }
941
732
  };
942
733
 
943
734
  export const ff_core_Show_Show$ff_compiler_Main_CommandLineError = {
944
735
  show_(value_) {
945
- {
946
736
  const value_a = value_;
947
737
  {
948
738
  const z_ = value_a;
949
739
  return ((("CommandLineError" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.problem_)) + ")")
950
- return
951
- }
952
740
  }
953
741
  },
954
742
  async show_$(value_, $task) {
955
- {
956
743
  const value_a = value_;
957
744
  {
958
745
  const z_ = value_a;
959
746
  return ((("CommandLineError" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.problem_)) + ")")
960
- return
961
- }
962
747
  }
963
748
  }
964
749
  };
965
750
 
966
751
  export const ff_core_Equal_Equal$ff_compiler_Main_MainCommand = {
967
752
  equals_(x_, y_) {
968
- {
969
753
  const x_a = x_;
970
754
  const y_a = y_;
971
- {
972
- const _guard1 = (x_ === y_);
973
- if(_guard1) {
755
+ if((x_ === y_)) {
974
756
  return true
975
- return
976
- }
977
757
  }
978
- {
979
- if(x_a.RunCommand) {
758
+ if(x_a.RunCommand && y_a.RunCommand) {
980
759
  const x_ = x_a;
981
- if(y_a.RunCommand) {
982
760
  const y_ = y_a;
983
761
  return ((x_.mainPath_ === y_.mainPath_) && ff_core_List.ff_core_Equal_Equal$ff_core_List_List(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.argument_, y_.argument_))
984
- return
985
762
  }
986
- }
987
- }
988
- {
989
- if(x_a.BrowserCommand) {
763
+ if(x_a.BrowserCommand && y_a.BrowserCommand) {
990
764
  const x_ = x_a;
991
- if(y_a.BrowserCommand) {
992
765
  const y_ = y_a;
993
766
  return (x_.mainPath_ === y_.mainPath_)
994
- return
995
767
  }
996
- }
997
- }
998
- {
999
- if(x_a.BuildCommand) {
768
+ if(x_a.BuildCommand && y_a.BuildCommand) {
1000
769
  const x_ = x_a;
1001
- if(y_a.BuildCommand) {
1002
770
  const y_ = y_a;
1003
771
  return (x_.mainPath_ === y_.mainPath_)
1004
- return
1005
772
  }
1006
- }
1007
- }
1008
- {
1009
- if(x_a.CheckCommand) {
773
+ if(x_a.CheckCommand && y_a.CheckCommand) {
1010
774
  const x_ = x_a;
1011
- if(y_a.CheckCommand) {
1012
775
  const y_ = y_a;
1013
776
  return (x_.filePath_ === y_.filePath_)
1014
- return
1015
- }
1016
- }
1017
777
  }
1018
778
  {
1019
779
  return false
1020
- return
1021
- }
1022
780
  }
1023
781
  },
1024
782
  async equals_$(x_, y_, $task) {
1025
- {
1026
783
  const x_a = x_;
1027
784
  const y_a = y_;
1028
- {
1029
- const _guard1 = (x_ === y_);
1030
- if(_guard1) {
785
+ if((x_ === y_)) {
1031
786
  return true
1032
- return
1033
- }
1034
787
  }
1035
- {
1036
- if(x_a.RunCommand) {
788
+ if(x_a.RunCommand && y_a.RunCommand) {
1037
789
  const x_ = x_a;
1038
- if(y_a.RunCommand) {
1039
790
  const y_ = y_a;
1040
791
  return ((x_.mainPath_ === y_.mainPath_) && ff_core_List.ff_core_Equal_Equal$ff_core_List_List(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.argument_, y_.argument_))
1041
- return
1042
792
  }
1043
- }
1044
- }
1045
- {
1046
- if(x_a.BrowserCommand) {
793
+ if(x_a.BrowserCommand && y_a.BrowserCommand) {
1047
794
  const x_ = x_a;
1048
- if(y_a.BrowserCommand) {
1049
795
  const y_ = y_a;
1050
796
  return (x_.mainPath_ === y_.mainPath_)
1051
- return
1052
- }
1053
797
  }
1054
- }
1055
- {
1056
- if(x_a.BuildCommand) {
798
+ if(x_a.BuildCommand && y_a.BuildCommand) {
1057
799
  const x_ = x_a;
1058
- if(y_a.BuildCommand) {
1059
800
  const y_ = y_a;
1060
801
  return (x_.mainPath_ === y_.mainPath_)
1061
- return
1062
- }
1063
802
  }
1064
- }
1065
- {
1066
- if(x_a.CheckCommand) {
803
+ if(x_a.CheckCommand && y_a.CheckCommand) {
1067
804
  const x_ = x_a;
1068
- if(y_a.CheckCommand) {
1069
805
  const y_ = y_a;
1070
806
  return (x_.filePath_ === y_.filePath_)
1071
- return
1072
- }
1073
- }
1074
807
  }
1075
808
  {
1076
809
  return false
1077
- return
1078
- }
1079
810
  }
1080
811
  }
1081
812
  };
1082
813
 
1083
814
  export const ff_core_Equal_Equal$ff_compiler_Main_CommandLineError = {
1084
815
  equals_(x_, y_) {
1085
- {
1086
816
  const x_a = x_;
1087
817
  const y_a = y_;
1088
- {
1089
- const _guard1 = (x_ === y_);
1090
- if(_guard1) {
818
+ if((x_ === y_)) {
1091
819
  return true
1092
- return
1093
- }
1094
820
  }
1095
821
  {
1096
822
  return (x_.problem_ === y_.problem_)
1097
- return
1098
- }
1099
823
  }
1100
824
  },
1101
825
  async equals_$(x_, y_, $task) {
1102
- {
1103
826
  const x_a = x_;
1104
827
  const y_a = y_;
1105
- {
1106
- const _guard1 = (x_ === y_);
1107
- if(_guard1) {
828
+ if((x_ === y_)) {
1108
829
  return true
1109
- return
1110
- }
1111
830
  }
1112
831
  {
1113
832
  return (x_.problem_ === y_.problem_)
1114
- return
1115
- }
1116
833
  }
1117
834
  }
1118
835
  };
1119
836
 
1120
837
  export const ff_core_Ordering_Order$ff_compiler_Main_MainCommand = {
1121
838
  compare_(x_, y_) {
1122
- {
1123
839
  const x_a = x_;
1124
840
  const y_a = y_;
1125
- {
1126
- const _guard1 = (x_ === y_);
1127
- if(_guard1) {
841
+ if((x_ === y_)) {
1128
842
  return ff_core_Ordering.OrderingSame()
1129
- return
1130
- }
1131
843
  }
1132
- {
1133
- if(x_a.RunCommand) {
844
+ if(x_a.RunCommand && y_a.RunCommand) {
1134
845
  const x_ = x_a;
1135
- if(y_a.RunCommand) {
1136
846
  const y_ = y_a;
1137
847
  const mainPathOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String.compare_(x_.mainPath_, y_.mainPath_);
1138
848
  if((mainPathOrdering_ !== ff_core_Ordering.OrderingSame())) {
@@ -1147,12 +857,8 @@ return ff_core_Ordering.OrderingSame()
1147
857
  }
1148
858
  return
1149
859
  }
1150
- }
1151
- }
1152
- {
1153
- if(x_a.BrowserCommand) {
860
+ if(x_a.BrowserCommand && y_a.BrowserCommand) {
1154
861
  const x_ = x_a;
1155
- if(y_a.BrowserCommand) {
1156
862
  const y_ = y_a;
1157
863
  const mainPathOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String.compare_(x_.mainPath_, y_.mainPath_);
1158
864
  if((mainPathOrdering_ !== ff_core_Ordering.OrderingSame())) {
@@ -1162,12 +868,8 @@ return ff_core_Ordering.OrderingSame()
1162
868
  }
1163
869
  return
1164
870
  }
1165
- }
1166
- }
1167
- {
1168
- if(x_a.BuildCommand) {
871
+ if(x_a.BuildCommand && y_a.BuildCommand) {
1169
872
  const x_ = x_a;
1170
- if(y_a.BuildCommand) {
1171
873
  const y_ = y_a;
1172
874
  const mainPathOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String.compare_(x_.mainPath_, y_.mainPath_);
1173
875
  if((mainPathOrdering_ !== ff_core_Ordering.OrderingSame())) {
@@ -1177,12 +879,8 @@ return ff_core_Ordering.OrderingSame()
1177
879
  }
1178
880
  return
1179
881
  }
1180
- }
1181
- }
1182
- {
1183
- if(x_a.CheckCommand) {
882
+ if(x_a.CheckCommand && y_a.CheckCommand) {
1184
883
  const x_ = x_a;
1185
- if(y_a.CheckCommand) {
1186
884
  const y_ = y_a;
1187
885
  const filePathOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String.compare_(x_.filePath_, y_.filePath_);
1188
886
  if((filePathOrdering_ !== ff_core_Ordering.OrderingSame())) {
@@ -1192,64 +890,36 @@ return ff_core_Ordering.OrderingSame()
1192
890
  }
1193
891
  return
1194
892
  }
1195
- }
1196
- }
1197
893
  {
1198
894
  function number_(z_) {
1199
- {
1200
895
  const z_a = z_;
1201
- {
1202
896
  if(z_a.BootstrapCommand) {
1203
897
  return 0
1204
- return
1205
898
  }
1206
- }
1207
- {
1208
899
  if(z_a.RunCommand) {
1209
900
  return 1
1210
- return
1211
- }
1212
901
  }
1213
- {
1214
902
  if(z_a.BrowserCommand) {
1215
903
  return 2
1216
- return
1217
- }
1218
904
  }
1219
- {
1220
905
  if(z_a.BuildCommand) {
1221
906
  return 3
1222
- return
1223
907
  }
1224
- }
1225
- {
1226
908
  if(z_a.CheckCommand) {
1227
909
  return 4
1228
- return
1229
- }
1230
- }
1231
910
  }
1232
911
  }
1233
912
  return ff_core_Ordering.ff_core_Ordering_Order$ff_core_Int_Int.compare_(number_(x_), number_(y_))
1234
- return
1235
- }
1236
913
  }
1237
914
  },
1238
915
  async compare_$(x_, y_, $task) {
1239
- {
1240
916
  const x_a = x_;
1241
917
  const y_a = y_;
1242
- {
1243
- const _guard1 = (x_ === y_);
1244
- if(_guard1) {
918
+ if((x_ === y_)) {
1245
919
  return ff_core_Ordering.OrderingSame()
1246
- return
1247
- }
1248
920
  }
1249
- {
1250
- if(x_a.RunCommand) {
921
+ if(x_a.RunCommand && y_a.RunCommand) {
1251
922
  const x_ = x_a;
1252
- if(y_a.RunCommand) {
1253
923
  const y_ = y_a;
1254
924
  const mainPathOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String.compare_(x_.mainPath_, y_.mainPath_);
1255
925
  if((mainPathOrdering_ !== ff_core_Ordering.OrderingSame())) {
@@ -1264,12 +934,8 @@ return ff_core_Ordering.OrderingSame()
1264
934
  }
1265
935
  return
1266
936
  }
1267
- }
1268
- }
1269
- {
1270
- if(x_a.BrowserCommand) {
937
+ if(x_a.BrowserCommand && y_a.BrowserCommand) {
1271
938
  const x_ = x_a;
1272
- if(y_a.BrowserCommand) {
1273
939
  const y_ = y_a;
1274
940
  const mainPathOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String.compare_(x_.mainPath_, y_.mainPath_);
1275
941
  if((mainPathOrdering_ !== ff_core_Ordering.OrderingSame())) {
@@ -1279,12 +945,8 @@ return ff_core_Ordering.OrderingSame()
1279
945
  }
1280
946
  return
1281
947
  }
1282
- }
1283
- }
1284
- {
1285
- if(x_a.BuildCommand) {
948
+ if(x_a.BuildCommand && y_a.BuildCommand) {
1286
949
  const x_ = x_a;
1287
- if(y_a.BuildCommand) {
1288
950
  const y_ = y_a;
1289
951
  const mainPathOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String.compare_(x_.mainPath_, y_.mainPath_);
1290
952
  if((mainPathOrdering_ !== ff_core_Ordering.OrderingSame())) {
@@ -1294,12 +956,8 @@ return ff_core_Ordering.OrderingSame()
1294
956
  }
1295
957
  return
1296
958
  }
1297
- }
1298
- }
1299
- {
1300
- if(x_a.CheckCommand) {
959
+ if(x_a.CheckCommand && y_a.CheckCommand) {
1301
960
  const x_ = x_a;
1302
- if(y_a.CheckCommand) {
1303
961
  const y_ = y_a;
1304
962
  const filePathOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String.compare_(x_.filePath_, y_.filePath_);
1305
963
  if((filePathOrdering_ !== ff_core_Ordering.OrderingSame())) {
@@ -1309,62 +967,36 @@ return ff_core_Ordering.OrderingSame()
1309
967
  }
1310
968
  return
1311
969
  }
1312
- }
1313
- }
1314
970
  {
1315
971
  function number_(z_) {
1316
- {
1317
972
  const z_a = z_;
1318
- {
1319
973
  if(z_a.BootstrapCommand) {
1320
974
  return 0
1321
- return
1322
- }
1323
975
  }
1324
- {
1325
976
  if(z_a.RunCommand) {
1326
977
  return 1
1327
- return
1328
978
  }
1329
- }
1330
- {
1331
979
  if(z_a.BrowserCommand) {
1332
980
  return 2
1333
- return
1334
- }
1335
981
  }
1336
- {
1337
982
  if(z_a.BuildCommand) {
1338
983
  return 3
1339
- return
1340
- }
1341
984
  }
1342
- {
1343
985
  if(z_a.CheckCommand) {
1344
986
  return 4
1345
- return
1346
- }
1347
- }
1348
987
  }
1349
988
  }
1350
989
  return ff_core_Ordering.ff_core_Ordering_Order$ff_core_Int_Int.compare_(number_(x_), number_(y_))
1351
- return
1352
- }
1353
990
  }
1354
991
  }
1355
992
  };
1356
993
 
1357
994
  export const ff_core_Ordering_Order$ff_compiler_Main_CommandLineError = {
1358
995
  compare_(x_, y_) {
1359
- {
1360
996
  const x_a = x_;
1361
997
  const y_a = y_;
1362
- {
1363
- const _guard1 = (x_ === y_);
1364
- if(_guard1) {
998
+ if((x_ === y_)) {
1365
999
  return ff_core_Ordering.OrderingSame()
1366
- return
1367
- }
1368
1000
  }
1369
1001
  {
1370
1002
  const problemOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String.compare_(x_.problem_, y_.problem_);
@@ -1375,18 +1007,12 @@ return ff_core_Ordering.OrderingSame()
1375
1007
  }
1376
1008
  return
1377
1009
  }
1378
- }
1379
1010
  },
1380
1011
  async compare_$(x_, y_, $task) {
1381
- {
1382
1012
  const x_a = x_;
1383
1013
  const y_a = y_;
1384
- {
1385
- const _guard1 = (x_ === y_);
1386
- if(_guard1) {
1014
+ if((x_ === y_)) {
1387
1015
  return ff_core_Ordering.OrderingSame()
1388
- return
1389
- }
1390
1016
  }
1391
1017
  {
1392
1018
  const problemOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String.compare_(x_.problem_, y_.problem_);
@@ -1398,15 +1024,12 @@ return ff_core_Ordering.OrderingSame()
1398
1024
  return
1399
1025
  }
1400
1026
  }
1401
- }
1402
1027
  };
1403
1028
 
1404
1029
  export const ff_core_Serializable_Serializable$ff_compiler_Main_MainCommand = {
1405
1030
  serializeUsing_(serialization_, value_) {
1406
- {
1407
1031
  const serialization_a = serialization_;
1408
1032
  const value_a = value_;
1409
- {
1410
1033
  if(value_a.BootstrapCommand) {
1411
1034
  const v_ = value_a;
1412
1035
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 33), 0);
@@ -1415,8 +1038,6 @@ ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 0
1415
1038
  serialization_.offset_ += 1
1416
1039
  return
1417
1040
  }
1418
- }
1419
- {
1420
1041
  if(value_a.RunCommand) {
1421
1042
  const v_ = value_a;
1422
1043
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 27), 0);
@@ -1427,8 +1048,6 @@ ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.ser
1427
1048
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).serializeUsing_(serialization_, v_.argument_)
1428
1049
  return
1429
1050
  }
1430
- }
1431
- {
1432
1051
  if(value_a.BrowserCommand) {
1433
1052
  const v_ = value_a;
1434
1053
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 31), 0);
@@ -1438,8 +1057,6 @@ serialization_.offset_ += 1;
1438
1057
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.mainPath_)
1439
1058
  return
1440
1059
  }
1441
- }
1442
- {
1443
1060
  if(value_a.BuildCommand) {
1444
1061
  const v_ = value_a;
1445
1062
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
@@ -1449,8 +1066,6 @@ serialization_.offset_ += 1;
1449
1066
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.mainPath_)
1450
1067
  return
1451
1068
  }
1452
- }
1453
- {
1454
1069
  if(value_a.CheckCommand) {
1455
1070
  const v_ = value_a;
1456
1071
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
@@ -1460,60 +1075,40 @@ serialization_.offset_ += 1;
1460
1075
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.filePath_)
1461
1076
  return
1462
1077
  }
1463
- }
1464
- }
1465
1078
  },
1466
1079
  deserializeUsing_(serialization_) {
1467
1080
  const variantIndex_ = ff_core_Buffer.Buffer_grabUint8(serialization_.buffer_, serialization_.offset_);
1468
1081
  serialization_.offset_ += 1;
1469
1082
  {
1470
1083
  const _1 = variantIndex_;
1471
- {
1472
1084
  if(_1 === 0) {
1473
1085
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 33), 0);
1474
1086
  return ff_compiler_Main.BootstrapCommand()
1475
- return
1476
- }
1477
1087
  }
1478
- {
1479
1088
  if(_1 === 1) {
1480
1089
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 27), 0);
1481
1090
  return ff_compiler_Main.RunCommand(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_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_))
1482
- return
1483
1091
  }
1484
- }
1485
- {
1486
1092
  if(_1 === 2) {
1487
1093
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 31), 0);
1488
1094
  return ff_compiler_Main.BrowserCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1489
- return
1490
- }
1491
1095
  }
1492
- {
1493
1096
  if(_1 === 3) {
1494
1097
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
1495
1098
  return ff_compiler_Main.BuildCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1496
- return
1497
1099
  }
1498
- }
1499
- {
1500
1100
  if(_1 === 4) {
1501
1101
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
1502
1102
  return ff_compiler_Main.CheckCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1503
- return
1504
- }
1505
1103
  }
1506
1104
  {
1507
1105
  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)})
1508
- return
1509
1106
  }
1510
1107
  }
1511
1108
  },
1512
1109
  async serializeUsing_$(serialization_, value_, $task) {
1513
- {
1514
1110
  const serialization_a = serialization_;
1515
1111
  const value_a = value_;
1516
- {
1517
1112
  if(value_a.BootstrapCommand) {
1518
1113
  const v_ = value_a;
1519
1114
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 33), 0);
@@ -1522,8 +1117,6 @@ ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 0
1522
1117
  serialization_.offset_ += 1
1523
1118
  return
1524
1119
  }
1525
- }
1526
- {
1527
1120
  if(value_a.RunCommand) {
1528
1121
  const v_ = value_a;
1529
1122
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 27), 0);
@@ -1534,8 +1127,6 @@ ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.ser
1534
1127
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).serializeUsing_(serialization_, v_.argument_)
1535
1128
  return
1536
1129
  }
1537
- }
1538
- {
1539
1130
  if(value_a.BrowserCommand) {
1540
1131
  const v_ = value_a;
1541
1132
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 31), 0);
@@ -1545,8 +1136,6 @@ serialization_.offset_ += 1;
1545
1136
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.mainPath_)
1546
1137
  return
1547
1138
  }
1548
- }
1549
- {
1550
1139
  if(value_a.BuildCommand) {
1551
1140
  const v_ = value_a;
1552
1141
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
@@ -1556,8 +1145,6 @@ serialization_.offset_ += 1;
1556
1145
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.mainPath_)
1557
1146
  return
1558
1147
  }
1559
- }
1560
- {
1561
1148
  if(value_a.CheckCommand) {
1562
1149
  const v_ = value_a;
1563
1150
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
@@ -1567,52 +1154,34 @@ serialization_.offset_ += 1;
1567
1154
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.filePath_)
1568
1155
  return
1569
1156
  }
1570
- }
1571
- }
1572
1157
  },
1573
1158
  async deserializeUsing_$(serialization_, $task) {
1574
1159
  const variantIndex_ = ff_core_Buffer.Buffer_grabUint8(serialization_.buffer_, serialization_.offset_);
1575
1160
  serialization_.offset_ += 1;
1576
1161
  {
1577
1162
  const _1 = variantIndex_;
1578
- {
1579
1163
  if(_1 === 0) {
1580
1164
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 33), 0);
1581
1165
  return ff_compiler_Main.BootstrapCommand()
1582
- return
1583
1166
  }
1584
- }
1585
- {
1586
1167
  if(_1 === 1) {
1587
1168
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 27), 0);
1588
1169
  return ff_compiler_Main.RunCommand(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_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_))
1589
- return
1590
- }
1591
1170
  }
1592
- {
1593
1171
  if(_1 === 2) {
1594
1172
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 31), 0);
1595
1173
  return ff_compiler_Main.BrowserCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1596
- return
1597
- }
1598
1174
  }
1599
- {
1600
1175
  if(_1 === 3) {
1601
1176
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
1602
1177
  return ff_compiler_Main.BuildCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1603
- return
1604
1178
  }
1605
- }
1606
- {
1607
1179
  if(_1 === 4) {
1608
1180
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
1609
1181
  return ff_compiler_Main.CheckCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1610
- return
1611
- }
1612
1182
  }
1613
1183
  {
1614
1184
  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)})
1615
- return
1616
1185
  }
1617
1186
  }
1618
1187
  }
@@ -1620,7 +1189,6 @@ return
1620
1189
 
1621
1190
  export const ff_core_Serializable_Serializable$ff_compiler_Main_CommandLineError = {
1622
1191
  serializeUsing_(serialization_, value_) {
1623
- {
1624
1192
  const serialization_a = serialization_;
1625
1193
  const value_a = value_;
1626
1194
  {
@@ -1632,28 +1200,22 @@ serialization_.offset_ += 1;
1632
1200
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.problem_)
1633
1201
  return
1634
1202
  }
1635
- }
1636
1203
  },
1637
1204
  deserializeUsing_(serialization_) {
1638
1205
  const variantIndex_ = ff_core_Buffer.Buffer_grabUint8(serialization_.buffer_, serialization_.offset_);
1639
1206
  serialization_.offset_ += 1;
1640
1207
  {
1641
1208
  const _1 = variantIndex_;
1642
- {
1643
1209
  if(_1 === 0) {
1644
1210
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 33), 0);
1645
1211
  return ff_compiler_Main.CommandLineError(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1646
- return
1647
- }
1648
1212
  }
1649
1213
  {
1650
1214
  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)})
1651
- return
1652
1215
  }
1653
1216
  }
1654
1217
  },
1655
1218
  async serializeUsing_$(serialization_, value_, $task) {
1656
- {
1657
1219
  const serialization_a = serialization_;
1658
1220
  const value_a = value_;
1659
1221
  {
@@ -1665,23 +1227,18 @@ serialization_.offset_ += 1;
1665
1227
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.problem_)
1666
1228
  return
1667
1229
  }
1668
- }
1669
1230
  },
1670
1231
  async deserializeUsing_$(serialization_, $task) {
1671
1232
  const variantIndex_ = ff_core_Buffer.Buffer_grabUint8(serialization_.buffer_, serialization_.offset_);
1672
1233
  serialization_.offset_ += 1;
1673
1234
  {
1674
1235
  const _1 = variantIndex_;
1675
- {
1676
1236
  if(_1 === 0) {
1677
1237
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 33), 0);
1678
1238
  return ff_compiler_Main.CommandLineError(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1679
- return
1680
- }
1681
1239
  }
1682
1240
  {
1683
1241
  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)})
1684
- return
1685
1242
  }
1686
1243
  }
1687
1244
  }