@@ -1171,6 +1171,9 @@ HashAdd "AND", f, 0
1171
1171
HashAdd "OR", f, 0
1172
1172
HashAdd "XOR", f, 0
1173
1173
HashAdd "MOD", f, 0
1174
+ HashAdd "_NEGATE", f, 0
1175
+ HashAdd "_ANDALSO", f, 0
1176
+ HashAdd "_ORELSE", f, 0
1174
1177
1175
1178
f = HASHFLAG_RESERVED + HASHFLAG_CUSTOMSYNTAX
1176
1179
HashAdd "LIST", f, 0
@@ -1548,6 +1551,11 @@ IF qb64prefix_set THEN
1548
1551
1549
1552
f = HASHFLAG_RESERVED + HASHFLAG_CUSTOMSYNTAX
1550
1553
HashAdd "EXPLICIT", f, 0
1554
+
1555
+ f = HASHFLAG_OPERATOR + HASHFLAG_RESERVED
1556
+ HashAdd "NEGATE", f, 0
1557
+ HashAdd "ANDALSO", f, 0
1558
+ HashAdd "ORELSE", f, 0
1551
1559
END IF
1552
1560
1553
1561
DIM SHARED GlobTxtBuf: GlobTxtBuf = OpenBuffer%("O", tmpdir$ + "global.txt")
@@ -18828,6 +18836,12 @@ FUNCTION fixoperationorder$ (savea$)
18828
18836
IF temp1$ = "XOR" AND temp2$ = "XOR" THEN Give_Error "Error: XOR XOR": EXIT FUNCTION
18829
18837
IF temp1$ = "IMP" AND temp2$ = "IMP" THEN Give_Error "Error: IMP IMP": EXIT FUNCTION
18830
18838
IF temp1$ = "EQV" AND temp2$ = "EQV" THEN Give_Error "Error: EQV EQV": EXIT FUNCTION
18839
+ IF temp1$ = "_ANDALSO" AND temp2$ = "_ANDALSO" THEN Give_Error "Error: _ANDALSO _ANDALSO": EXIT FUNCTION
18840
+ IF temp1$ = "_ORELSE" AND temp2$ = "_ORELSE" THEN Give_Error "Error: _ORELSE _ORELSE": EXIT FUNCTION
18841
+ IF qb64prefix_set THEN
18842
+ IF temp1$ = "ANDALSO" AND temp2$ = "ANDALSO" THEN Give_Error "Error: ANDALSO ANDALSO": EXIT FUNCTION
18843
+ IF temp1$ = "ORELSE" AND temp2$ = "ORELSE" THEN Give_Error "Error: ORELSE ORELSE": EXIT FUNCTION
18844
+ END IF
18831
18845
NEXT
18832
18846
18833
18847
'----------------A. 'Quick' mismatched brackets check----------------
@@ -19784,11 +19798,14 @@ END SUB
19784
19798
FUNCTION isoperator (a2$)
19785
19799
a$ = UCASE$(a2$)
19786
19800
l = 0
19801
+ l = l + 1: IF a$ = "_ORELSE" OR (qb64prefix_set AND a$ = "ORELSE") THEN GOTO opfound
19802
+ l = l + 1: IF a$ = "_ANDALSO" OR (qb64prefix_set AND a$ = "ANDALSO") THEN GOTO opfound
19787
19803
l = l + 1: IF a$ = "IMP" THEN GOTO opfound
19788
19804
l = l + 1: IF a$ = "EQV" THEN GOTO opfound
19789
19805
l = l + 1: IF a$ = "XOR" THEN GOTO opfound
19790
19806
l = l + 1: IF a$ = "OR" THEN GOTO opfound
19791
19807
l = l + 1: IF a$ = "AND" THEN GOTO opfound
19808
+ l = l + 1: IF a$ = "_NEGATE" OR (qb64prefix_set AND a$ = "NEGATE") THEN GOTO opfound
19792
19809
l = l + 1: IF a$ = "NOT" THEN GOTO opfound
19793
19810
l = l + 1
19794
19811
IF a$ = "=" THEN GOTO opfound
@@ -20883,9 +20900,12 @@ FUNCTION operatorusage (operator$, typ AS LONG, info$, lhs AS LONG, rhs AS LONG,
20883
20900
IF operator$ = "XOR" THEN info$ = "^": operatorusage = 1: EXIT FUNCTION
20884
20901
IF operator$ = "OR" THEN info$ = "|": operatorusage = 1: EXIT FUNCTION
20885
20902
IF operator$ = "AND" THEN info$ = "&": operatorusage = 1: EXIT FUNCTION
20903
+ IF operator$ = "_ORELSE" OR (qb64prefix_set AND operator$ = "ORELSE") THEN info$ = "||": operatorusage = 3: EXIT FUNCTION
20904
+ IF operator$ = "_ANDALSO" OR (qb64prefix_set AND operator$ = "ANDALSO") THEN info$ = "&&": operatorusage = 3: EXIT FUNCTION
20886
20905
20887
20906
lhs = 7
20888
20907
IF operator$ = "NOT" THEN info$ = "~": operatorusage = 5: EXIT FUNCTION
20908
+ IF operator$ = "_NEGATE" OR (qb64prefix_set AND operator$ = "NEGATE") THEN info$ = "!": operatorusage = 5: EXIT FUNCTION
20889
20909
20890
20910
IF Debug THEN PRINT #9, "INVALID NUMBERIC OPERATOR!": END
20891
20911
@@ -23681,27 +23701,43 @@ FUNCTION SCase2$ (t$)
23681
23701
IF ideautolayoutkwcapitals THEN
23682
23702
SCase2$ = UCASE$(t$)
23683
23703
ELSE
23684
- newWord = -1
23685
- temp$ = ""
23686
- FOR i = 1 TO LEN(t$)
23687
- s$ = MID$(t$, i, 1)
23688
- IF newWord THEN
23689
- IF s$ = "_" OR s$ = separator$ THEN
23690
- temp$ = temp$ + s$
23691
- ELSE
23692
- temp$ = temp$ + UCASE$(s$)
23693
- newWord = 0
23694
- END IF
23695
- ELSE
23696
- IF s$ = separator$ THEN
23697
- temp$ = temp$ + separator$
23698
- newWord = -1
23699
- ELSE
23700
- temp$ = temp$ + LCASE$(s$)
23701
- END IF
23702
- END IF
23703
- NEXT
23704
- SCase2$ = temp$
23704
+ SELECT CASE t$
23705
+ CASE "_ANDALSO"
23706
+ SCase2$ = "_AndAlso"
23707
+
23708
+ CASE "ANDALSO"
23709
+ SCase2$ = "AndAlso"
23710
+
23711
+ CASE "_ORELSE"
23712
+ SCase2$ = "_OrElse"
23713
+
23714
+ CASE "ORELSE"
23715
+ SCase2$ = "OrElse"
23716
+
23717
+ CASE ELSE
23718
+ newWord = -1
23719
+ temp$ = ""
23720
+ FOR i = 1 TO LEN(t$)
23721
+ s$ = MID$(t$, i, 1)
23722
+ IF newWord THEN
23723
+ IF s$ = "_" OR s$ = separator$ THEN
23724
+ temp$ = temp$ + s$
23725
+ ELSE
23726
+ temp$ = temp$ + UCASE$(s$)
23727
+ newWord = 0
23728
+ END IF
23729
+ ELSE
23730
+ IF s$ = separator$ THEN
23731
+ temp$ = temp$ + separator$
23732
+ newWord = -1
23733
+ ELSE
23734
+ temp$ = temp$ + LCASE$(s$)
23735
+ END IF
23736
+ END IF
23737
+ NEXT
23738
+ SCase2$ = temp$
23739
+
23740
+ END SELECT
23705
23741
END IF
23706
23742
END FUNCTION
23707
23743
0 commit comments