A2osX/BIN/CC.S.STMT.txt

107 lines
1.5 KiB
Plaintext
Raw Normal View History

2022-01-30 21:47:08 +00:00
NEW
AUTO 3,1
.LIST OFF
*--------------------------------------
CC.STMT jsr CC.SYM.Lookup var= or func() ?
bcs .80
ldy #SYM.Q
lda (ZPSymBufPtr),y
bit #SYM.Q.FUNC
bne .20
jsr CC.GetCharNB var = ?
bcs .90
* TODO: AOPS
cmp #'='
bne .90
jsr CC.GetNextChar Skip =
bcs .99
jsr CC.SYM.GetTypeInYA
jsr CC.EXP.Eval
bcs .99
jsr CC.SYM.PopValue
bcs .99
jsr CC.SYM.FreeBufPop
clv
clc
rts
.20 ldy #0 func( ... );
lda #0
jsr CC.F.CallNoRetV
bcs .9
jsr CC.SYM.FreeBufPop
clv
clc
rts
.80 bit #$60
clc
rts
.90 lda #E.CSYN
sec
.99 rts
*--------------------------------------
2022-01-30 21:47:08 +00:00
* X = KW.ID
*--------------------------------------
CC.STMT.CPStmt lda LocalPtr Locals
jsr CC.Push
bcs .99
lda #0 bState
jsr CC.Push
bcs .99
txa
jsr CC.Push
bcs .99
lda #'}'
jmp CC.Push
.99 rts
*--------------------------------------
CC.STMT.CPStmt.END
jsr CC.Pop
bcs .9
cmp #'}' must be '}' on stack....
bne .9
jsr CC.Pop get stacked KW...
tax
jsr CC.Pop bState
jsr CC.Pop Locals
sta LocalPtr
txa
bmi .5
jmp (J.CC.KW.END,x)
.5 jmp CC.F.Def.END
.9 lda #E.CSYN
sec
rts
*--------------------------------------
MAN
SAVE usr/src/bin/cc.s.stmt
LOAD usr/src/bin/cc.s
ASM