mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-07-06 01:10:23 +00:00
Fix CONST failing with anything containing a NOT
This commit is contained in:
parent
9916c370f7
commit
e30f7a1691
|
@ -2189,7 +2189,7 @@ DO
|
||||||
IF LEN(readable_e$) = 0 THEN
|
IF LEN(readable_e$) = 0 THEN
|
||||||
readable_e$ = e3$
|
readable_e$ = e3$
|
||||||
ELSE
|
ELSE
|
||||||
readable_e$ = readable_e$ + e3$
|
readable_e$ = readable_e$ + " " + e3$
|
||||||
END IF
|
END IF
|
||||||
NEXT
|
NEXT
|
||||||
|
|
||||||
|
@ -24943,26 +24943,6 @@ SUB PreParse (e$)
|
||||||
LOOP UNTIL l = 0
|
LOOP UNTIL l = 0
|
||||||
IF c <> c1 THEN e$ = "ERROR -- Bad Parenthesis:" + STR$(c) + "( vs" + STR$(c1) + ")": EXIT SUB
|
IF c <> c1 THEN e$ = "ERROR -- Bad Parenthesis:" + STR$(c) + "( vs" + STR$(c1) + ")": EXIT SUB
|
||||||
|
|
||||||
'Modify so that NOT will process properly
|
|
||||||
l = 0
|
|
||||||
DO
|
|
||||||
l = INSTR(l + 1, t$, "NOT")
|
|
||||||
IF l THEN
|
|
||||||
'We need to work magic on the statement so it looks pretty.
|
|
||||||
' 1 + NOT 2 + 1 is actually processed as 1 + (NOT 2 + 1)
|
|
||||||
'Look for something not proper
|
|
||||||
l1 = INSTR(l + 1, t$, "AND")
|
|
||||||
IF l1 = 0 OR (INSTR(l + 1, t$, "OR") > 0 AND INSTR(l + 1, t$, "OR") < l1) THEN l1 = INSTR(l + 1, t$, "OR")
|
|
||||||
IF l1 = 0 OR (INSTR(l + 1, t$, "XOR") > 0 AND INSTR(l + 1, t$, "XOR") < l1) THEN l1 = INSTR(l + 1, t$, "XOR")
|
|
||||||
IF l1 = 0 OR (INSTR(l + 1, t$, "EQV") > 0 AND INSTR(l + 1, t$, "EQV") < l1) THEN l1 = INSTR(l + 1, t$, "EQV")
|
|
||||||
IF l1 = 0 OR (INSTR(l + 1, t$, "IMP") > 0 AND INSTR(l + 1, t$, "IMP") < l1) THEN l1 = INSTR(l + 1, t$, "IMP")
|
|
||||||
IF l1 = 0 THEN l1 = LEN(t$) + 1
|
|
||||||
t$ = LEFT$(t$, l - 1) + "(" + MID$(t$, l, l1 - l) + ")" + MID$(t$, l + l1 - l)
|
|
||||||
l = l + 3
|
|
||||||
'PRINT t$
|
|
||||||
END IF
|
|
||||||
LOOP UNTIL l = 0
|
|
||||||
|
|
||||||
'replace existing CONST values
|
'replace existing CONST values
|
||||||
sep$ = "()+-*/\><=^"
|
sep$ = "()+-*/\><=^"
|
||||||
FOR i2 = 0 TO constlast
|
FOR i2 = 0 TO constlast
|
||||||
|
@ -24998,6 +24978,26 @@ SUB PreParse (e$)
|
||||||
NEXT
|
NEXT
|
||||||
NEXT
|
NEXT
|
||||||
|
|
||||||
|
'Modify so that NOT will process properly
|
||||||
|
l = 0
|
||||||
|
DO
|
||||||
|
l = INSTR(l + 1, t$, "NOT ")
|
||||||
|
IF l THEN
|
||||||
|
'We need to work magic on the statement so it looks pretty.
|
||||||
|
' 1 + NOT 2 + 1 is actually processed as 1 + (NOT 2 + 1)
|
||||||
|
'Look for something not proper
|
||||||
|
l1 = INSTR(l + 1, t$, "AND")
|
||||||
|
IF l1 = 0 OR (INSTR(l + 1, t$, "OR") > 0 AND INSTR(l + 1, t$, "OR") < l1) THEN l1 = INSTR(l + 1, t$, "OR")
|
||||||
|
IF l1 = 0 OR (INSTR(l + 1, t$, "XOR") > 0 AND INSTR(l + 1, t$, "XOR") < l1) THEN l1 = INSTR(l + 1, t$, "XOR")
|
||||||
|
IF l1 = 0 OR (INSTR(l + 1, t$, "EQV") > 0 AND INSTR(l + 1, t$, "EQV") < l1) THEN l1 = INSTR(l + 1, t$, "EQV")
|
||||||
|
IF l1 = 0 OR (INSTR(l + 1, t$, "IMP") > 0 AND INSTR(l + 1, t$, "IMP") < l1) THEN l1 = INSTR(l + 1, t$, "IMP")
|
||||||
|
IF l1 = 0 THEN l1 = LEN(t$) + 1
|
||||||
|
t$ = LEFT$(t$, l - 1) + "(" + MID$(t$, l, l1 - l) + ")" + MID$(t$, l + l1 - l)
|
||||||
|
l = l + 3
|
||||||
|
'PRINT t$
|
||||||
|
END IF
|
||||||
|
LOOP UNTIL l = 0
|
||||||
|
|
||||||
uboundPP_TypeMod = TotalPrefixedPP_TypeMod
|
uboundPP_TypeMod = TotalPrefixedPP_TypeMod
|
||||||
IF qb64prefix_set = 1 THEN uboundPP_TypeMod = TotalPP_TypeMod
|
IF qb64prefix_set = 1 THEN uboundPP_TypeMod = TotalPP_TypeMod
|
||||||
FOR j = 1 TO uboundPP_TypeMod
|
FOR j = 1 TO uboundPP_TypeMod
|
||||||
|
|
Loading…
Reference in a new issue