zasm: try for regular number or symbol before parsing expr

Previously, we would mess up literals like '-'.
This commit is contained in:
Virgil Dupras 2019-05-18 21:06:31 -04:00
parent 723497af69
commit bccf933ea9
2 changed files with 7 additions and 1 deletions

View File

@ -2,6 +2,11 @@
; We expect (HL) to be disposable: we mutate it to avoid having to make a copy.
; Sets Z on success, unset on error.
parseExpr:
; Before we evaluate an expression, we first try for a regular number or
; symbol. We do this because parsing expressions can mess up some values
; with its splitting logic. For example '-' is going to end up '\0'.
call parseNumberOrSymbol
ret z
push de
push hl
call _parseExpr
@ -19,7 +24,7 @@ _parseExpr:
ld a, '*'
call _findAndSplit
jp z, _applyMult
jp parseNumberOrSymbol
ret ; failure
; Given a string in (HL) and a separator char in A, return a splitted string,
; that is, the same (HL) string but with the found A char replaced by a null

View File

@ -24,3 +24,4 @@ label2: .dw 0x42
rl d
rr e
rlc c
cp '-'