mirror of https://github.com/A2osX/A2osX.git
125 lines
1.9 KiB
Plaintext
125 lines
1.9 KiB
Plaintext
NEW
|
||
AUTO 3,1
|
||
*--------------------------------------
|
||
CC.STMT jsr CC.GetCharNB
|
||
jsr CC.IsLetter
|
||
ldx #$ff
|
||
bcc .20
|
||
|
||
>LDYA L.CC.PREOPS ++var ?
|
||
jsr CC.LookupOP
|
||
bcs .9
|
||
|
||
.20 stx StmtPreOp
|
||
|
||
jsr CC.SYM.Lookup var or func() ?
|
||
bcs .99
|
||
|
||
ldy #SYM.Q
|
||
lda (ZPLookupSymPtr),y
|
||
bit #SYM.Q.FUNC
|
||
beq .60
|
||
|
||
bit StmtPreOp
|
||
bpl .9 ++func ????????
|
||
|
||
jsr CC.F.CallNoRetV func( ... );
|
||
bcs .99
|
||
|
||
jmp CC.SYM.LookupFree
|
||
|
||
.60 jsr CC.CORE.SetVar
|
||
bcs .99
|
||
|
||
jmp CC.SYM.LookupFree
|
||
|
||
.9 lda #E.CSYN
|
||
sec
|
||
.99 rts
|
||
*--------------------------------------
|
||
* X = KW.ID
|
||
*--------------------------------------
|
||
CC.STMT.CPStmt.NEW
|
||
>LDA.G CC.CPSID+1
|
||
jsr CC.Push
|
||
bcs .99
|
||
|
||
>LDA.G CC.CPSID
|
||
jsr CC.Push
|
||
bcs .99
|
||
|
||
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.Stmt.END
|
||
jsr CC.Get
|
||
bcs .8
|
||
|
||
cmp #'}'
|
||
beq .8
|
||
|
||
cmp #';' must be ';' on stack....
|
||
bra CC.STMT.CPStmt.POP
|
||
|
||
.8 clc
|
||
|
||
CC.STMT.Stmt.RTS
|
||
rts
|
||
*--------------------------------------
|
||
CC.STMT.CPStmt.END
|
||
jsr CC.Get
|
||
bcs CC.STMT.Stmt.RTS
|
||
|
||
cmp #'}' must be '}' on stack....
|
||
CC.STMT.CPStmt.POP
|
||
bne .98
|
||
|
||
iny
|
||
lda (ZPCCStack),y
|
||
|
||
jsr .7
|
||
bcs .99
|
||
|
||
bvs .1 DONT POP reused context (ELSE....)
|
||
|
||
lda CStackPtr
|
||
* clc
|
||
adc #5
|
||
sta CStackPtr
|
||
|
||
jsr CC.Pop Locals
|
||
sta LocalPtr
|
||
|
||
.1 clc
|
||
rts
|
||
*--------------------------------------
|
||
.7 tax
|
||
bmi .8
|
||
|
||
jmp (J.CC.KW.END,x)
|
||
|
||
.8 jmp CC.F.Def.END
|
||
|
||
.98 lda #E.CSYN
|
||
sec
|
||
.99 rts
|
||
*--------------------------------------
|
||
MAN
|
||
SAVE usr/src/bin/cc.s.stmt
|
||
LOAD usr/src/bin/cc.s
|
||
ASM
|