next up previous
Next:Rex86 Sample - Pythagoras Up: Overview Previous: Rex86 Sample - Division


Rex86 Sample - Parsing Rex86

POINT   AX,"MOV CX,3"

FETCH   BX,AX   LETTER
COND    !   fail
;loop
FETCH   BX,AX   LETTER
COND    loop

FETCH   BX,AX   WHITE
COND    !   fail
;loop
FETCH   BX,AX   WHITE
COND    loop

FETCH   BX,AX   ATOD
COND    !   fail
FETCH   BX,AX   "X"
COND    !   fail

FETCH   BX,AX   ","
COND    !   fail

CALL    grabOperandProc

JMP     sced

;grabOperandProc
; input: AX points to text
; output: go to fail upon mismatch
;         return normally upon match
FETCH   BX,AX   ATOD
COND    !   tryNumber
FETCH   BX,AX   "X"
COND    !   fail

RET

;tryNumber
FETCH   BX,AX   "-"
FETCH   BX,AX   DIGIT
COND    !   fail
;loop
FETCH   BX,AX   DIGIT
COND    loop

RET

; second try
;grabOperandProc
; input: AX points to text
; output: go to fail upon mismatch
;         return normally upon match
FETCH   BX,AX   ATOD
COND    !   tryBoolean
FETCH   BX,AX   "X"
COND    !   fail

RET

;tryBoolean
FETCH   BX,AX   "true"
COND    !   tryFalse

RET

FETCH   BX,AX   "false"
COND    !   tryNumber

RET


next up previous
Next:Rex86 Sample - Pythagoras Up: Overview Previous: Rex86 Sample - Division

by dlong@progmatism.com. Plz don't copy kthx.