mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-09-20 07:54:46 +00:00
commit
5688b1c89e
4 changed files with 17 additions and 7 deletions
|
@ -5511,15 +5511,20 @@ FUNCTION ide2 (ignore)
|
||||||
IF LEN(retval$) THEN
|
IF LEN(retval$) THEN
|
||||||
Dim num As ParseNum
|
Dim num As ParseNum
|
||||||
mathEvalExpr$ = retval$
|
mathEvalExpr$ = retval$
|
||||||
|
|
||||||
|
retval$ = lineformat(retval$)
|
||||||
|
Error_Happened = 0
|
||||||
|
|
||||||
ev0$ = Evaluate_Expression$(retval$, num)
|
ev0$ = Evaluate_Expression$(retval$, num)
|
||||||
ev$ = ev0$
|
ev$ = ev0$
|
||||||
|
|
||||||
mathEvalError%% = INSTR(ev$, "ERROR") > 0
|
mathEvalError%% = INSTR(ev$, "ERROR") > 0
|
||||||
IF mathEvalError%% = 0 AND mathEvalHEX%% THEN ev$ = "&H" + HEX$(VAL(ev$))
|
IF mathEvalError%% = 0 AND mathEvalHEX%% THEN ev$ = "&H" + HEX$(num.ui)
|
||||||
DO
|
DO
|
||||||
b1$ = "#Insert;"
|
b1$ = "#Insert;"
|
||||||
IF mathEvalHEX%% THEN b2$ = "#Decimal;" ELSE b2$ = "#HEX$;"
|
IF mathEvalHEX%% THEN b2$ = "#Decimal;" ELSE b2$ = "#HEX$;"
|
||||||
IF mathEvalError%% = 0 AND mathEvalComment%% THEN
|
IF mathEvalError%% = 0 AND mathEvalComment%% THEN
|
||||||
mathMsg$ = ev$ + " '" + retval$
|
mathMsg$ = ev$ + " '" + mathEvalExpr$
|
||||||
b3$ = "#Uncomment;"
|
b3$ = "#Uncomment;"
|
||||||
ELSE
|
ELSE
|
||||||
mathMsg$ = ev$
|
mathMsg$ = ev$
|
||||||
|
@ -5534,7 +5539,7 @@ FUNCTION ide2 (ignore)
|
||||||
EXIT DO
|
EXIT DO
|
||||||
CASE 2
|
CASE 2
|
||||||
mathEvalHEX%% = NOT mathEvalHEX%%
|
mathEvalHEX%% = NOT mathEvalHEX%%
|
||||||
IF mathEvalHEX%% THEN ev$ = "&H" + HEX$(VAL(ev$)) ELSE ev$ = ev0$
|
IF mathEvalHEX%% THEN ev$ = "&H" + HEX$(num.ui) ELSE ev$ = ev0$
|
||||||
CASE 3
|
CASE 3
|
||||||
mathEvalComment%% = NOT mathEvalComment%%
|
mathEvalComment%% = NOT mathEvalComment%%
|
||||||
END SELECT
|
END SELECT
|
||||||
|
|
|
@ -590,11 +590,11 @@ FUNCTION Factor&(exp$, state AS ParserState)
|
||||||
IF Unary&(exp$, state) = 0 THEN FixupErrorMessage state, "*": EXIT FUNCTION
|
IF Unary&(exp$, state) = 0 THEN FixupErrorMessage state, "*": EXIT FUNCTION
|
||||||
|
|
||||||
IF (num.typ AND ISFLOAT) OR (state.num.typ AND ISFLOAT) THEN
|
IF (num.typ AND ISFLOAT) OR (state.num.typ AND ISFLOAT) THEN
|
||||||
num.f = num.f * state.num.f
|
ParseNumSetF num, FLOATTYPE - ISPOINTER, num.f * state.num.f
|
||||||
num.i = num.f
|
ELSEIF (num.typ AND ISUNSIGNED) OR (state.num.typ AND ISUNSIGNED) THEN
|
||||||
|
ParseNumSetUI num, UINTEGER64TYPE - ISPOINTER, num.ui * state.num.ui
|
||||||
ELSE
|
ELSE
|
||||||
num.i = num.i * state.num.i
|
ParseNumSetI num, INTEGER64TYPE - ISPOINTER, num.i * state.num.i
|
||||||
num.f = num.i
|
|
||||||
END IF
|
END IF
|
||||||
ELSEIF ele$ = "/" THEN
|
ELSEIF ele$ = "/" THEN
|
||||||
ele$ = getnextelement$(exp$, state.index, state.strIndex)
|
ele$ = getnextelement$(exp$, state.index, state.strIndex)
|
||||||
|
|
|
@ -45,6 +45,8 @@ CONST const__str2 = "foobar" + "foobar2"
|
||||||
CONST const__str3 = const__str + const__str2
|
CONST const__str3 = const__str + const__str2
|
||||||
CONST const__str4 = (const__str + (const__str2))
|
CONST const__str4 = (const__str + (const__str2))
|
||||||
|
|
||||||
|
CONST const__unsignedint = 2~&& * 5~&&
|
||||||
|
|
||||||
PRINT const__OR
|
PRINT const__OR
|
||||||
PRINT const__AND
|
PRINT const__AND
|
||||||
PRINT const__NOT
|
PRINT const__NOT
|
||||||
|
@ -87,4 +89,6 @@ PRINT const__str2
|
||||||
PRINT const__str3
|
PRINT const__str3
|
||||||
PRINT const__str4
|
PRINT const__str4
|
||||||
|
|
||||||
|
PRINT const__unsignedint
|
||||||
|
|
||||||
SYSTEM
|
SYSTEM
|
||||||
|
|
|
@ -33,3 +33,4 @@ foobar
|
||||||
foobarfoobar2
|
foobarfoobar2
|
||||||
foobarfoobarfoobar2
|
foobarfoobarfoobar2
|
||||||
foobarfoobarfoobar2
|
foobarfoobarfoobar2
|
||||||
|
10
|
||||||
|
|
Loading…
Reference in a new issue