@@ -61,7 +61,9 @@ isunaryop(op::EXPR) = isoperator(op) && ((valof(op) == "<:" ||
61
61
valof (op) == " ::" ||
62
62
valof (op) == " \$ " ||
63
63
valof (op) == " :" ||
64
- valof (op) == " ⋆" ) ||
64
+ valof (op) == " ⋆" ||
65
+ valof (op) == " ±" ||
66
+ valof (op) == " ∓" ) ||
65
67
(length (valof (op)) == 2 && valof (op)[1 ] == ' .' && (valof (op)[2 ] == ' +' ||
66
68
valof (op)[2 ] == ' -' ||
67
69
valof (op)[2 ] == ' !' ||
@@ -70,7 +72,9 @@ isunaryop(op::EXPR) = isoperator(op) && ((valof(op) == "<:" ||
70
72
valof (op)[2 ] == ' √' ||
71
73
valof (op)[2 ] == ' ∛' ||
72
74
valof (op)[2 ] == ' ∜' ||
73
- valof (op)[2 ] == ' ⋆' )))
75
+ valof (op)[2 ] == ' ⋆' ||
76
+ valof (op)[2 ] == ' ±' ||
77
+ valof (op)[2 ] == ' ∓' )))
74
78
isunaryop (t:: AbstractToken ) = isunaryop (kindof (t))
75
79
@static if VERSION < v " 1.2.0"
76
80
isunaryop (kind:: Tokens.Kind ) = kind === Tokens. ISSUBTYPE ||
@@ -484,7 +488,7 @@ comp_prec(op::String) = get(AllPrecs, op, 0) === ComparisonOp || (length(op) > 1
484
488
# Which ops have different precend when dotted?
485
489
# [op for op in Symbol.(keys(CSTParser.AllPrecs)) if Base.isoperator(op) && Base.isoperator(Symbol(".", op)) && Base.operator_precedence(op) !== Base.operator_precedence(Symbol(".", op))]
486
490
487
- get_prec (op) = AllPrecs[ maybe_strip_suffix (op)]
491
+ get_prec (op) = get ( AllPrecs, maybe_strip_suffix (op), 0 )
488
492
489
493
function maybe_strip_suffix (op:: String )
490
494
for (i, c) in enumerate (op)
@@ -500,13 +504,13 @@ const AllPrecs = Dict(
500
504
" ⤎" => ArrowOp,
501
505
" <:" => ComparisonOp,
502
506
" ⫌" => ComparisonOp,
503
- " ⇀" => 0 ,
507
+ " ⇀" => ArrowOp ,
504
508
" ≁" => ComparisonOp,
505
509
" ⧀" => ComparisonOp,
506
510
" ⪎" => ComparisonOp,
507
511
" ⪱" => ComparisonOp,
508
- " ↬" => 0 ,
509
- " ⇝" => 0 ,
512
+ " ↬" => ArrowOp ,
513
+ " ⇝" => ArrowOp ,
510
514
" ⩳" => ComparisonOp,
511
515
" ⪻" => ComparisonOp,
512
516
" //" => RationalOp,
@@ -528,23 +532,24 @@ const AllPrecs = Dict(
528
532
" ⪸" => ComparisonOp,
529
533
" ⊓" => TimesOp,
530
534
" ⭄" => ArrowOp,
531
- " ⇁" => 0 ,
535
+ " ⇁" => ArrowOp ,
532
536
" ≀" => TimesOp,
533
537
" ⪚" => ComparisonOp,
534
538
" ∷" => ComparisonOp,
535
539
" ⥪" => ArrowOp,
536
540
" ⥔" => PowerOp,
537
541
" ⊻" => PlusOp,
538
542
" ⩯" => ComparisonOp,
539
- " ↷" => 0 ,
543
+ " ↷" => ArrowOp ,
540
544
" ⇿" => ArrowOp,
541
545
" ⪉" => ComparisonOp,
542
546
" ⊰" => ComparisonOp,
543
- " ⨟" => 0 ,
547
+ " ⨟" => TimesOp ,
544
548
" ⩻" => ComparisonOp,
545
549
" ⭋" => ArrowOp,
546
550
" ⩒" => PlusOp,
547
551
" -" => PlusOp,
552
+ " −" => PlusOp,
548
553
" ⫸" => ComparisonOp,
549
554
" ⤒" => PowerOp,
550
555
" +=" => AssignmentOp,
@@ -584,17 +589,17 @@ const AllPrecs = Dict(
584
589
" ⋡" => ComparisonOp,
585
590
" ⫀" => ComparisonOp,
586
591
" ⨣" => PlusOp,
587
- " ↞" => 0 ,
592
+ " ↞" => ArrowOp ,
588
593
" ⟾" => ArrowOp,
589
594
" ⊬" => ComparisonOp,
590
- " ⇌" => 0 ,
595
+ " ⇌" => ArrowOp ,
591
596
" ≷" => ComparisonOp,
592
597
" ∓" => PlusOp,
593
598
" ⪶" => ComparisonOp,
594
599
" ⊀" => ComparisonOp,
595
600
" ⊛" => TimesOp,
596
601
" ⋠" => ComparisonOp,
597
- " ↢" => 0 ,
602
+ " ↢" => ArrowOp ,
598
603
" ⥦" => ArrowOp,
599
604
" ⪪" => ComparisonOp,
600
605
" ⋌" => TimesOp,
@@ -637,7 +642,7 @@ const AllPrecs = Dict(
637
642
" ⤗" => ArrowOp,
638
643
" ⪀" => ComparisonOp,
639
644
" ⩬" => ComparisonOp,
640
- " ↫" => 0 ,
645
+ " ↫" => ArrowOp ,
641
646
" &" => TimesOp,
642
647
" ⩺" => ComparisonOp,
643
648
" ↚" => ArrowOp,
@@ -650,7 +655,7 @@ const AllPrecs = Dict(
650
655
" ≦" => ComparisonOp,
651
656
" =" => AssignmentOp,
652
657
" ∧" => TimesOp,
653
- " ⇇" => 0 ,
658
+ " ⇇" => ArrowOp ,
654
659
" ≖" => ComparisonOp,
655
660
" ⇸" => ArrowOp,
656
661
" ⋙" => ComparisonOp,
@@ -666,11 +671,11 @@ const AllPrecs = Dict(
666
671
" ⭉" => ArrowOp,
667
672
" ⋎" => PlusOp,
668
673
" ⋋" => TimesOp,
669
- " ⇋" => 0 ,
674
+ " ⇋" => ArrowOp ,
670
675
" ≴" => ComparisonOp,
671
676
" …" => ColonOp,
672
677
" ⪰" => ComparisonOp,
673
- " ↺" => 0 ,
678
+ " ↺" => ArrowOp ,
674
679
" ⪖" => ComparisonOp,
675
680
" ⨦" => PlusOp,
676
681
" ⬼" => ArrowOp,
@@ -710,7 +715,7 @@ const AllPrecs = Dict(
710
715
" ⫓" => ComparisonOp,
711
716
" ⫄" => ComparisonOp,
712
717
" ⊋" => ComparisonOp,
713
- " ⇆" => 0 ,
718
+ " ⇆" => ArrowOp ,
714
719
" ⤌" => ArrowOp,
715
720
" ⟹" => ArrowOp,
716
721
" ⊖" => PlusOp,
@@ -733,7 +738,7 @@ const AllPrecs = Dict(
733
738
" //=" => AssignmentOp,
734
739
" ≒" => ComparisonOp,
735
740
" ⩦" => ComparisonOp,
736
- " ↶" => 0 ,
741
+ " ↶" => ArrowOp ,
737
742
" ⊡" => TimesOp,
738
743
" ⟈" => ComparisonOp,
739
744
" ≩" => ComparisonOp,
@@ -782,14 +787,14 @@ const AllPrecs = Dict(
782
787
" ⨻" => TimesOp,
783
788
" ⤏" => ArrowOp,
784
789
" ⥘" => PowerOp,
785
- " ≕" => ComparisonOp ,
790
+ " ≕" => AssignmentOp ,
786
791
" ⥓" => ArrowOp,
787
792
" ⨰" => TimesOp,
788
793
" ⨺" => PlusOp,
789
794
" ⟵" => ArrowOp,
790
- " ⇜" => 0 ,
795
+ " ⇜" => ArrowOp ,
791
796
" <<=" => AssignmentOp,
792
- " ≔" => ComparisonOp ,
797
+ " ≔" => AssignmentOp ,
793
798
" ⩋" => TimesOp,
794
799
" ⫊" => ComparisonOp,
795
800
" ⪠" => ComparisonOp,
@@ -814,7 +819,7 @@ const AllPrecs = Dict(
814
819
" ⋕" => ComparisonOp,
815
820
" ⥤" => ArrowOp,
816
821
" ∋" => ComparisonOp,
817
- " ↽" => 0 ,
822
+ " ↽" => ArrowOp ,
818
823
" ⋇" => TimesOp,
819
824
" ⪍" => ComparisonOp,
820
825
" ⩃" => TimesOp,
@@ -829,13 +834,12 @@ const AllPrecs = Dict(
829
834
" ⊮" => ComparisonOp,
830
835
" ⪩" => ComparisonOp,
831
836
" ⬷" => ArrowOp,
832
- " |++|" => PlusOp,
833
- " ↪" => 0 ,
837
+ " ↪" => ArrowOp,
834
838
" ⭇" => ArrowOp,
835
839
" ⨨" => PlusOp,
836
840
" ⩓" => TimesOp,
837
841
" ⤊" => PowerOp,
838
- " ↤" => 0 ,
842
+ " ↤" => ArrowOp ,
839
843
" ⊱" => ComparisonOp,
840
844
" ⟼" => ArrowOp,
841
845
" ⨴" => TimesOp,
@@ -851,7 +855,7 @@ const AllPrecs = Dict(
851
855
" ⥣" => PowerOp,
852
856
" ⪃" => ComparisonOp,
853
857
" ⪹" => ComparisonOp,
854
- " ⩴" => ComparisonOp ,
858
+ " ⩴" => AssignmentOp ,
855
859
" ⥫" => ArrowOp,
856
860
" →" => ArrowOp,
857
861
" >>>" => BitShiftOp,
@@ -905,15 +909,15 @@ const AllPrecs = Dict(
905
909
" ⧣" => ComparisonOp,
906
910
" ⊞" => PlusOp,
907
911
" ⬾" => ArrowOp,
908
- " ⇉" => 0 ,
912
+ " ⇉" => ArrowOp ,
909
913
" ⨶" => TimesOp,
910
914
" in" => ComparisonOp,
911
915
" ==" => ComparisonOp,
912
916
" ⟶" => ArrowOp,
913
917
" ⬰" => ArrowOp,
914
918
" :=" => AssignmentOp,
915
919
" ⪋" => ComparisonOp,
916
- " ≂" => PlusOp ,
920
+ " ≂" => ComparisonOp ,
917
921
" <|" => PipeOp,
918
922
" ⥊" => ArrowOp,
919
923
" ⪺" => ComparisonOp,
@@ -926,14 +930,15 @@ const AllPrecs = Dict(
926
930
" ⦾" => TimesOp,
927
931
" ⇒" => ArrowOp,
928
932
" .." => ColonOp,
929
- " ⇛" => 0 ,
933
+ " ⇛" => ArrowOp ,
930
934
" ⪿" => ComparisonOp,
931
935
" ≹" => ComparisonOp,
932
936
" ⋱" => ColonOp,
933
937
" ⇎" => ArrowOp,
934
938
" →" => ArrowOp,
935
939
" ⥮" => PowerOp,
936
940
" -=" => AssignmentOp,
941
+ " −=" => AssignmentOp,
937
942
" <" => ComparisonOp,
938
943
" ⪇" => ComparisonOp,
939
944
" ⥗" => ArrowOp,
@@ -953,7 +958,7 @@ const AllPrecs = Dict(
953
958
" ⪄" => ComparisonOp,
954
959
" ⊎" => PlusOp,
955
960
" ⩾" => ComparisonOp,
956
- " ↝" => 0 ,
961
+ " ↝" => ArrowOp ,
957
962
" ⨲" => TimesOp,
958
963
" ⊐" => ComparisonOp,
959
964
" ⟻" => ArrowOp,
@@ -966,7 +971,7 @@ const AllPrecs = Dict(
966
971
" ⪯" => ComparisonOp,
967
972
" ⦸" => TimesOp,
968
973
" ⫐" => ComparisonOp,
969
- " ↜" => 0 ,
974
+ " ↜" => ArrowOp ,
970
975
" ≧" => ComparisonOp,
971
976
" ∉" => ComparisonOp,
972
977
" ⤟" => ArrowOp,
@@ -975,7 +980,7 @@ const AllPrecs = Dict(
975
980
" <<" => BitShiftOp,
976
981
" ≞" => ComparisonOp,
977
982
" ⩍" => TimesOp,
978
- " ⇄" => 0 ,
983
+ " ⇄" => ArrowOp ,
979
984
" ▷" => TimesOp,
980
985
" ⋘" => ComparisonOp,
981
986
" ≇" => ComparisonOp,
@@ -1001,8 +1006,7 @@ const AllPrecs = Dict(
1001
1006
" ∾" => ComparisonOp,
1002
1007
" &=" => AssignmentOp,
1003
1008
" ≪" => ComparisonOp,
1004
- " \\\\ =" => TimesOp,
1005
- " ↼" => 0 ,
1009
+ " ↼" => ArrowOp,
1006
1010
" ⬹" => ArrowOp,
1007
1011
" ∗" => TimesOp,
1008
1012
" ⊣" => ComparisonOp,
@@ -1052,6 +1056,7 @@ const AllPrecs = Dict(
1052
1056
" ⫔" => ComparisonOp,
1053
1057
" ⋵" => ComparisonOp,
1054
1058
" ⋅" => TimesOp,
1059
+ " ·" => TimesOp,
1055
1060
" ⨷" => TimesOp,
1056
1061
" ⟰" => PowerOp,
1057
1062
" ∨" => PlusOp,
@@ -1097,11 +1102,11 @@ const AllPrecs = Dict(
1097
1102
" ⥭" => ArrowOp,
1098
1103
" ⤕" => ArrowOp,
1099
1104
" ≘" => ComparisonOp,
1100
- " ⇠" => 0 ,
1105
+ " ⇠" => ArrowOp ,
1101
1106
" ⟺" => ArrowOp,
1102
1107
" ⪼" => ComparisonOp,
1103
- " ⇢" => 0 ,
1104
- " ↩" => 0 ,
1108
+ " ⇢" => ArrowOp ,
1109
+ " ↩" => ArrowOp ,
1105
1110
" ⋊" => TimesOp,
1106
1111
" &&" => LazyAndOp,
1107
1112
" ⩚" => TimesOp,
@@ -1111,12 +1116,12 @@ const AllPrecs = Dict(
1111
1116
" ⤁" => ArrowOp,
1112
1117
" ≌" => ComparisonOp,
1113
1118
" ⭌" => ArrowOp,
1114
- " ⇐" => 0 ,
1119
+ " ⇐" => ArrowOp ,
1115
1120
" :" => ColonOp,
1116
- " ⇍" => 0 ,
1121
+ " ⇍" => ArrowOp ,
1117
1122
" ⩭" => ComparisonOp,
1118
1123
" ↛" => ArrowOp,
1119
- " ↻" => 0 ,
1124
+ " ↻" => ArrowOp ,
1120
1125
" ⪲" => ComparisonOp,
1121
1126
" ⇔" => ArrowOp,
1122
1127
" ⪭" => ComparisonOp,
@@ -1127,7 +1132,7 @@ const AllPrecs = Dict(
1127
1132
" ⊊" => ComparisonOp,
1128
1133
" ⊠" => TimesOp,
1129
1134
" ∘" => TimesOp,
1130
- " ⇚" => 0 ,
1135
+ " ⇚" => ArrowOp ,
1131
1136
" ⪆" => ComparisonOp,
1132
1137
" ⫋" => ComparisonOp,
1133
1138
" |" => PlusOp,
@@ -1148,5 +1153,9 @@ const AllPrecs = Dict(
1148
1153
" ∛" => 0 ,
1149
1154
" ∜" => 0 ,
1150
1155
" ++" => PlusOp,
1151
- " ¬" => 0
1156
+ " ¬" => 0 ,
1157
+ " ¦" => PlusOp,
1158
+ " ⌿" => TimesOp,
1159
+ " ⫪" => ComparisonOp,
1160
+ " ⫫" => ComparisonOp
1152
1161
)
0 commit comments