@@ -506,133 +506,133 @@ function transliterate(@nospecialize(ex), ctx::TransliterateContext)
506
506
else
507
507
return QuoteNode (ex)
508
508
end
509
- elseif @dissect (ex, QuoteNode (name:: Symbol ))
509
+ elseif @dissect (ex, QuoteNode (( local name) :: Symbol ))
510
510
# :name
511
511
return :(Var ($ ex))
512
512
elseif ex isa Expr
513
- if @dissect (ex, Expr (:($ ), arg))
513
+ if @dissect (ex, Expr (:($ ), ( local arg) ))
514
514
# $(...)
515
515
return esc (arg)
516
- elseif @dissect (ex, Expr (:macrocall , ref : = GlobalRef (Core, Symbol (" @doc" )), ln :: LineNumberNode , doc, arg))
516
+ elseif @dissect (ex, Expr (:macrocall , ( local ref = GlobalRef ($ Core, $ ( Symbol (" @doc" )))), ( local ln) :: LineNumberNode , ( local doc), ( local arg) ))
517
517
# "..." ...
518
- if @dissect (arg, name:: Symbol || Expr (:macrocall , GlobalRef (Core, Symbol (" @cmd" )), :: LineNumberNode , name:: String ))
518
+ if @dissect (arg, ( local name) :: Symbol || Expr (:macrocall , GlobalRef ($ Core, $ ( Symbol (" @cmd" ))) , :: LineNumberNode , ( local name) :: String ))
519
519
arg = Symbol (" funsql_$name " )
520
520
else
521
521
ctx = TransliterateContext (ctx, src = ln)
522
522
arg = transliterate (arg, ctx)
523
523
end
524
524
return Expr (:macrocall , ref, ln, doc, arg)
525
- elseif @dissect (ex, Expr (:(= ), Expr (:call , name:: Symbol || Expr (:macrocall , GlobalRef (Core, Symbol (" @cmd" )), :: LineNumberNode , name:: String ), args... ), body))
525
+ elseif @dissect (ex, Expr (:(= ), Expr (:call , ( local name) :: Symbol || Expr (:macrocall , GlobalRef ($ Core, $ ( Symbol (" @cmd" ))) , :: LineNumberNode , ( local name) :: String ), ( local args) . .. ), ( local body) ))
526
526
# name(args...) = body
527
527
ctx = TransliterateContext (ctx, decl = true )
528
528
trs = Any[transliterate (arg, ctx) for arg in args]
529
529
ctx = TransliterateContext (ctx, decl = false )
530
530
return Expr (:(= ),
531
531
:($ (esc (Symbol (" funsql_$name " )))($ (trs... ))),
532
532
transliterate (body, ctx))
533
- elseif @dissect (ex, Expr (:(= ), name:: Symbol , arg))
533
+ elseif @dissect (ex, Expr (:(= ), ( local name) :: Symbol , ( local arg) ))
534
534
# name = arg
535
535
return Expr (:(= ), esc (name), transliterate (arg, ctx))
536
536
elseif ctx. decl && @dissect (ex, Expr (:(:: ), _:: Symbol , _))
537
537
# name::t
538
538
return esc (ex)
539
- elseif @dissect (ex, Expr (:kw , key, arg))
539
+ elseif @dissect (ex, Expr (:kw , ( local key), ( local arg) ))
540
540
# key = arg
541
541
ctx = TransliterateContext (ctx, decl = true )
542
542
ctx′ = TransliterateContext (ctx, decl = false )
543
543
return Expr (:kw , transliterate (key, ctx), transliterate (arg, ctx′))
544
- elseif @dissect (ex, Expr (:(... ), arg))
544
+ elseif @dissect (ex, Expr (:(... ), ( local arg) ))
545
545
# arg...
546
546
return Expr (:(... ), transliterate (arg, ctx))
547
- elseif @dissect (ex, Expr (:parameters , args... ))
547
+ elseif @dissect (ex, Expr (:parameters , ( local args) . .. ))
548
548
# ; args...
549
549
return Expr (:parameters , Any[transliterate (arg, ctx) for arg in args]. .. )
550
- elseif @dissect (ex, Expr (:macrocall , GlobalRef (Core, Symbol (" @cmd" )), :: LineNumberNode , name:: String ))
550
+ elseif @dissect (ex, Expr (:macrocall , GlobalRef ($ Core, $ ( Symbol (" @cmd" ))) , :: LineNumberNode , ( local name) :: String ))
551
551
# `name`
552
552
return QuoteNode (Symbol (name))
553
- elseif @dissect (ex, Expr (:call , Expr (:., over, QuoteNode (name)), args... ))
553
+ elseif @dissect (ex, Expr (:call , Expr (:., ( local over) , QuoteNode (local name)), ( local args) . .. ))
554
554
# over.name(args...)
555
555
tr1 = transliterate (over, ctx)
556
556
tr2 = transliterate (Expr (:call , name, args... ), ctx)
557
557
return :(Chain ($ tr1, $ tr2))
558
- elseif @dissect (ex, Expr (:macrocall , Expr (:., over, Expr (:quote , ex′)), args... ))
558
+ elseif @dissect (ex, Expr (:macrocall , Expr (:., ( local over) , Expr (:quote , ( local ex′))), ( local args) . .. ))
559
559
# over.`name`
560
560
tr1 = transliterate (over, ctx)
561
561
tr2 = transliterate (Expr (:macrocall , ex′, args... ), ctx)
562
562
return :(Chain ($ tr1, $ tr2))
563
- elseif @dissect (ex, Expr (:., over, Expr (:quote , arg)))
563
+ elseif @dissect (ex, Expr (:., ( local over) , Expr (:quote , ( local arg) )))
564
564
# over.`name` (Julia ≥ 1.10)
565
565
tr1 = transliterate (over, ctx)
566
566
tr2 = transliterate (arg, ctx)
567
567
return :(Chain ($ tr1, $ tr2))
568
- elseif @dissect (ex, Expr (:call , Expr (:macrocall , Expr (:., over, Expr (:quote , ex′)), args... ), args′... ))
568
+ elseif @dissect (ex, Expr (:call , Expr (:macrocall , Expr (:., ( local over) , Expr (:quote , ( local ex′))), ( local args) . .. ), ( local args′) . .. ))
569
569
# over.`name`(args...)
570
570
tr1 = transliterate (over, ctx)
571
571
tr2 = transliterate (Expr (:call , Expr (:macrocall , ex′, args... ), args′... ), ctx)
572
572
return :(Chain ($ tr1, $ tr2))
573
- elseif @dissect (ex, Expr (:call , Expr (:., over, Expr (:quote , arg)), args... ))
573
+ elseif @dissect (ex, Expr (:call , Expr (:., ( local over) , Expr (:quote , ( local arg))), ( local args) . .. ))
574
574
# over.`name`(args...) (Julia ≥ 1.10)
575
575
tr1 = transliterate (over, ctx)
576
576
tr2 = transliterate (Expr (:call , arg, args... ), ctx)
577
577
return :(Chain ($ tr1, $ tr2))
578
- elseif @dissect (ex, Expr (:., over, QuoteNode (name)))
578
+ elseif @dissect (ex, Expr (:., ( local over) , QuoteNode (( local name) )))
579
579
# over.name
580
580
tr1 = transliterate (over, ctx)
581
581
tr2 = transliterate (name, ctx)
582
582
return :(Chain ($ tr1, $ tr2))
583
- elseif @dissect (ex, Expr (:call , :(=> ), name : = QuoteNode (_:: Symbol ), arg))
583
+ elseif @dissect (ex, Expr (:call , :(=> ), ( local name = QuoteNode (_:: Symbol )), ( local arg) ))
584
584
# :name => arg
585
585
tr = transliterate (arg, ctx)
586
586
return :($ name => $ tr)
587
- elseif @dissect (ex, Expr (:call , :(=> ), name, arg))
587
+ elseif @dissect (ex, Expr (:call , :(=> ), ( local name), ( local arg) ))
588
588
# name => arg
589
589
tr1 = transliterate (name, ctx)
590
590
tr2 = transliterate (arg, ctx)
591
591
return :($ tr1 => $ tr2)
592
- elseif @dissect (ex, Expr (:call , :(:), arg1, arg2))
592
+ elseif @dissect (ex, Expr (:call , :(:), ( local arg1), ( local arg2) ))
593
593
tr1 = transliterate (arg1, ctx)
594
594
tr2 = transliterate (arg2, ctx)
595
595
return :($ tr1: $ tr2)
596
- elseif @dissect (ex, Expr (:vect , args... ))
596
+ elseif @dissect (ex, Expr (:vect , ( local args) . .. ))
597
597
# [args...]
598
598
return Expr (:vect , Any[transliterate (arg, ctx) for arg in args]. .. )
599
- elseif @dissect (ex, Expr (:tuple , args... ))
599
+ elseif @dissect (ex, Expr (:tuple , ( local args) . .. ))
600
600
# (args...)
601
601
return Expr (:tuple , Any[transliterate (arg, ctx) for arg in args]. .. )
602
- elseif @dissect (ex, Expr (:comparison , arg1, arg2:: Symbol , arg3))
602
+ elseif @dissect (ex, Expr (:comparison , ( local arg1), ( local arg2) :: Symbol , ( local arg3) ))
603
603
# Chained comparison.
604
604
tr1 = transliterate (arg1, ctx)
605
605
tr2 = transliterate (arg3, ctx)
606
606
return :($ (esc (Symbol (" funsql_$arg2 " )))($ tr1, $ tr2))
607
- elseif @dissect (ex, Expr (:comparison , arg1, arg2:: Symbol , arg3, args... ))
607
+ elseif @dissect (ex, Expr (:comparison , ( local arg1), ( local arg2) :: Symbol , ( local arg3), ( local args) . .. ))
608
608
# Chained comparison.
609
609
tr1 = transliterate (arg1, ctx)
610
610
tr2 = transliterate (arg3, ctx)
611
611
tr3 = transliterate (Expr (:comparison , arg3, args... ), ctx)
612
612
return :(Fun (:and , $ (esc (Symbol (" funsql_$arg2 " )))($ tr1, $ tr2), $ tr3))
613
- elseif @dissect (ex, Expr (:(&& ), args... ))
613
+ elseif @dissect (ex, Expr (:(&& ), ( local args) . .. ))
614
614
# &&(args...)
615
615
trs = Any[transliterate (arg, ctx) for arg in args]
616
616
return :(Fun (:and , args = [$ (trs... )]))
617
- elseif @dissect (ex, Expr (:(|| ), args... ))
617
+ elseif @dissect (ex, Expr (:(|| ), ( local args) . .. ))
618
618
# ||(args...)
619
619
trs = Any[transliterate (arg, ctx) for arg in args]
620
620
return :(Fun (:or , args = [$ (trs... )]))
621
- elseif @dissect (ex, Expr (:call , op : = :+ || :- , arg : = :Inf ))
621
+ elseif @dissect (ex, Expr (:call , ( local op = :+ || :- ), ( local arg = :Inf ) ))
622
622
# ±Inf
623
623
tr = transliterate (arg, ctx)
624
624
return Expr (:call , op, tr)
625
- elseif @dissect (ex, Expr (:call , name:: Symbol , args... ))
625
+ elseif @dissect (ex, Expr (:call , ( local name) :: Symbol , ( local args) . .. ))
626
626
# name(args...)
627
627
trs = Any[transliterate (arg, ctx) for arg in args]
628
628
return :($ (esc (Symbol (" funsql_$name " )))($ (trs... )))
629
- elseif @dissect (ex, Expr (:call , Expr (:macrocall , GlobalRef (Core, Symbol (" @cmd" )), :: LineNumberNode , name:: String ), args... ))
629
+ elseif @dissect (ex, Expr (:call , Expr (:macrocall , GlobalRef ($ Core, $ ( Symbol (" @cmd" ))) , :: LineNumberNode , ( local name) :: String ), ( local args) . .. ))
630
630
# `name`(args...)
631
631
trs = Any[transliterate (arg, ctx) for arg in args]
632
632
return :($ (esc (Symbol (" funsql_$name " )))($ (trs... )))
633
- elseif @dissect (ex, Expr (:block , args... ))
633
+ elseif @dissect (ex, Expr (:block , ( local args) . .. ))
634
634
# begin; args...; end
635
- if all (@dissect (arg, :: LineNumberNode || Expr (:(= ), _... ) || Expr (:macrocall , GlobalRef (Core, Symbol (" @doc" )), _... ))
635
+ if all (@dissect (arg, :: LineNumberNode || Expr (:(= ), _... ) || Expr (:macrocall , GlobalRef ($ Core, $ ( Symbol (" @doc" ) )), _... ))
636
636
for arg in args)
637
637
trs = Any[]
638
638
for arg in args
@@ -656,20 +656,20 @@ function transliterate(@nospecialize(ex), ctx::TransliterateContext)
656
656
end
657
657
return tr
658
658
end
659
- elseif @dissect (ex, Expr (:if , arg1, arg2))
659
+ elseif @dissect (ex, Expr (:if , ( local arg1), ( local arg2) ))
660
660
tr1 = transliterate (arg1, ctx)
661
661
tr2 = transliterate (arg2, ctx)
662
662
return :(Fun (:case , $ tr1, $ tr2))
663
- elseif @dissect (ex, Expr (:if , arg1, arg2, arg3))
663
+ elseif @dissect (ex, Expr (:if , ( local arg1), ( local arg2), ( local arg3) ))
664
664
trs = Any[transliterate (arg1, ctx),
665
665
transliterate (arg2, ctx)]
666
- while @dissect (arg3, Expr (:if || :elseif , arg1′, arg2′, arg3′))
666
+ while @dissect (arg3, Expr (:if || :elseif , ( local arg1′), ( local arg2′), ( local arg3′) ))
667
667
push! (trs,
668
668
transliterate (arg1′, ctx),
669
669
transliterate (arg2′, ctx))
670
670
arg3 = arg3′
671
671
end
672
- if @dissect (arg3, Expr (:if || :elseif , arg1′, arg2′))
672
+ if @dissect (arg3, Expr (:if || :elseif , ( local arg1′), ( local arg2′) ))
673
673
push! (trs,
674
674
transliterate (arg1′, ctx),
675
675
transliterate (arg2′, ctx))
0 commit comments