fez-lisp 1.5.74 → 1.5.76
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/lib/baked/std.js +1 -1
- package/package.json +1 -1
- package/src/macros.js +83 -92
package/package.json
CHANGED
package/src/macros.js
CHANGED
@@ -550,79 +550,76 @@ export const deSuggarAst = (ast, scope) => {
|
|
550
550
|
)
|
551
551
|
|
552
552
|
exp[exp.length - 1] = [
|
553
|
-
[APPLY,
|
553
|
+
[APPLY, KEYWORDS.CALL_FUNCTION],
|
554
554
|
[
|
555
|
-
[APPLY, KEYWORDS.
|
555
|
+
[APPLY, KEYWORDS.ANONYMOUS_FUNCTION],
|
556
556
|
[
|
557
|
-
[APPLY, KEYWORDS.
|
557
|
+
[APPLY, KEYWORDS.BLOCK],
|
558
558
|
[
|
559
|
-
[APPLY, KEYWORDS.
|
560
|
-
[
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
]
|
573
|
-
|
574
|
-
|
575
|
-
[
|
559
|
+
[APPLY, KEYWORDS.DEFINE_VARIABLE],
|
560
|
+
[WORD, newName],
|
561
|
+
last
|
562
|
+
],
|
563
|
+
args.length < 5
|
564
|
+
? [
|
565
|
+
[
|
566
|
+
APPLY,
|
567
|
+
`optimization:tail-calls-${args.length}`
|
568
|
+
],
|
569
|
+
[WORD, newName]
|
570
|
+
]
|
571
|
+
: [
|
572
|
+
[APPLY, KEYWORDS.CALL_FUNCTION],
|
573
|
+
[WORD, newName],
|
574
|
+
[
|
575
|
+
[APPLY, KEYWORDS.ANONYMOUS_FUNCTION],
|
576
|
+
[WORD, '*fn*'],
|
576
577
|
[
|
577
578
|
[APPLY, KEYWORDS.ANONYMOUS_FUNCTION],
|
578
|
-
|
579
|
+
...args,
|
579
580
|
[
|
580
|
-
[APPLY, KEYWORDS.
|
581
|
-
...args,
|
581
|
+
[APPLY, KEYWORDS.BLOCK],
|
582
582
|
[
|
583
|
-
[APPLY, KEYWORDS.
|
583
|
+
[APPLY, KEYWORDS.DEFINE_VARIABLE],
|
584
|
+
[WORD, '*res*'],
|
584
585
|
[
|
585
|
-
[APPLY, KEYWORDS.
|
586
|
-
[
|
586
|
+
[APPLY, KEYWORDS.CREATE_ARRAY],
|
587
|
+
[[APPLY, '*fn*'], ...args]
|
588
|
+
]
|
589
|
+
],
|
590
|
+
[
|
591
|
+
[APPLY, KEYWORDS.LOOP],
|
592
|
+
[
|
593
|
+
[APPLY, KEYWORDS.IS_LAMBDA],
|
587
594
|
[
|
588
|
-
[APPLY, KEYWORDS.
|
589
|
-
[
|
595
|
+
[APPLY, KEYWORDS.GET_ARRAY],
|
596
|
+
[WORD, '*res*'],
|
597
|
+
[ATOM, 0]
|
590
598
|
]
|
591
599
|
],
|
592
600
|
[
|
593
|
-
[APPLY, KEYWORDS.
|
601
|
+
[APPLY, KEYWORDS.SET_ARRAY],
|
602
|
+
[WORD, '*res*'],
|
603
|
+
[ATOM, 0],
|
594
604
|
[
|
595
|
-
[APPLY, KEYWORDS.
|
605
|
+
[APPLY, KEYWORDS.CALL_FUNCTION],
|
596
606
|
[
|
597
607
|
[APPLY, KEYWORDS.GET_ARRAY],
|
598
608
|
[WORD, '*res*'],
|
599
609
|
[ATOM, 0]
|
600
610
|
]
|
601
|
-
],
|
602
|
-
[
|
603
|
-
[APPLY, KEYWORDS.SET_ARRAY],
|
604
|
-
[WORD, '*res*'],
|
605
|
-
[ATOM, 0],
|
606
|
-
[
|
607
|
-
[APPLY, KEYWORDS.CALL_FUNCTION],
|
608
|
-
[
|
609
|
-
[APPLY, KEYWORDS.GET_ARRAY],
|
610
|
-
[WORD, '*res*'],
|
611
|
-
[ATOM, 0]
|
612
|
-
]
|
613
|
-
]
|
614
611
|
]
|
615
|
-
],
|
616
|
-
[
|
617
|
-
[APPLY, KEYWORDS.GET_ARRAY],
|
618
|
-
[WORD, '*res*'],
|
619
|
-
[ATOM, 0]
|
620
612
|
]
|
613
|
+
],
|
614
|
+
[
|
615
|
+
[APPLY, KEYWORDS.GET_ARRAY],
|
616
|
+
[WORD, '*res*'],
|
617
|
+
[ATOM, 0]
|
621
618
|
]
|
622
619
|
]
|
623
620
|
]
|
624
621
|
]
|
625
|
-
|
622
|
+
]
|
626
623
|
]
|
627
624
|
]
|
628
625
|
]
|
@@ -651,61 +648,55 @@ export const deSuggarAst = (ast, scope) => {
|
|
651
648
|
const keyName = newName + ':key'
|
652
649
|
|
653
650
|
exp[exp.length - 1] = [
|
654
|
-
[APPLY,
|
651
|
+
[APPLY, KEYWORDS.CALL_FUNCTION],
|
655
652
|
[
|
656
|
-
[APPLY, KEYWORDS.
|
653
|
+
[APPLY, KEYWORDS.ANONYMOUS_FUNCTION],
|
657
654
|
[
|
658
|
-
[APPLY, KEYWORDS.
|
655
|
+
[APPLY, KEYWORDS.BLOCK],
|
659
656
|
[
|
660
|
-
[APPLY, KEYWORDS.
|
661
|
-
[
|
662
|
-
|
663
|
-
|
664
|
-
|
665
|
-
],
|
657
|
+
[APPLY, KEYWORDS.DEFINE_VARIABLE],
|
658
|
+
[WORD, memoName],
|
659
|
+
[[APPLY, 'new:map64']]
|
660
|
+
],
|
661
|
+
[
|
662
|
+
[APPLY, KEYWORDS.DEFINE_VARIABLE],
|
663
|
+
[WORD, newName],
|
666
664
|
[
|
667
|
-
[APPLY, KEYWORDS.
|
668
|
-
|
665
|
+
[APPLY, KEYWORDS.ANONYMOUS_FUNCTION],
|
666
|
+
...args,
|
669
667
|
[
|
670
|
-
[APPLY, KEYWORDS.
|
671
|
-
...args,
|
668
|
+
[APPLY, KEYWORDS.BLOCK],
|
672
669
|
[
|
673
|
-
[APPLY, KEYWORDS.
|
670
|
+
[APPLY, KEYWORDS.DEFINE_VARIABLE],
|
671
|
+
[WORD, keyName],
|
674
672
|
[
|
675
|
-
[APPLY,
|
676
|
-
[
|
677
|
-
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
|
683
|
-
]
|
673
|
+
[APPLY, 'from:string-or-number->key'],
|
674
|
+
[[APPLY, KEYWORDS.CREATE_ARRAY], ...args]
|
675
|
+
]
|
676
|
+
],
|
677
|
+
[
|
678
|
+
[APPLY, KEYWORDS.IF],
|
679
|
+
[
|
680
|
+
[APPLY, 'map:exists?'],
|
681
|
+
[WORD, memoName],
|
682
|
+
[WORD, keyName]
|
684
683
|
],
|
685
684
|
[
|
686
|
-
[APPLY,
|
687
|
-
[
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
],
|
692
|
-
[
|
693
|
-
|
694
|
-
|
695
|
-
[WORD, keyName]
|
696
|
-
],
|
697
|
-
[
|
698
|
-
[APPLY, 'map:set-and-get!'],
|
699
|
-
[WORD, memoName],
|
700
|
-
[WORD, keyName],
|
701
|
-
last.at(-1)
|
702
|
-
]
|
685
|
+
[APPLY, 'map:get'],
|
686
|
+
[WORD, memoName],
|
687
|
+
[WORD, keyName]
|
688
|
+
],
|
689
|
+
[
|
690
|
+
[APPLY, 'map:set-and-get!'],
|
691
|
+
[WORD, memoName],
|
692
|
+
[WORD, keyName],
|
693
|
+
last.at(-1)
|
703
694
|
]
|
704
695
|
]
|
705
696
|
]
|
706
|
-
]
|
707
|
-
|
708
|
-
]
|
697
|
+
]
|
698
|
+
],
|
699
|
+
[WORD, newName]
|
709
700
|
]
|
710
701
|
]
|
711
702
|
]
|