NEW
  AUTO 3,1
*--------------------------------------
DECL.AUTO
DECL.REGISTER
DECL.STATIC
DECL.EXTERN
.98				lda #E.CSYN
				sec
.99				rts
*--------------------------------------
DECL.TYPEDEF	jsr CORE.GetNCharNB
				bcs .98

				>LDYA L.CC.TYPEQUAL
				jsr CC.LookupID
				bcs .98

				cpx #4					no const nor volatile
				bcc .98

				jsr TYPE.GetTQInYA
				bcs .99

				ldx #SYM.SC.TYPEDEF
				sec						Reset Buffer
				jsr SYM.New				Y,A=T/Q,storage class TYPEDEF
				bcs .99

				jsr CC.GetCharNB
				bcs .98

				cmp #';'
				bne .98

				jmp SYM.Store

.98				lda #E.CSYN
				sec
.99				rts
*--------------------------------------
* X = type qual
*--------------------------------------
DECL.X			jsr TYPE.GetTQInYA
				bcs .99

				cpy #SYM.T.SU
				bne .7

				tax						save Q
				jsr CC.GetCharNB
				bcs .98

				cmp #';'				from a tag def
				beq .8

				jsr CC.IsLetter
				bcs .98

.1				clc						reuse buffer
				ldy #SYM.T.SU
				txa						restore Q
				jsr DECL.YAC
				bcs .99

				jsr CC.GetCharNB
				bcs .98

				cmp #','
				bne .2

				jsr CORE.GetNCharNBNL
				bcc .1
				bcs .98

.2				cmp #';'				TODO: struct initalizers
				bne .98

.8				clc
				rts

.98				lda #E.CSYN
				sec
.99				rts

.7				sec						Reset Buffer
*--------------------------------------
DECL.YAC		ldx #SYM.SC.STATIC		Y,A = Type/Qual

				bit bLocalScope
				bpl .22

				ldx #SYM.SC.AUTO

.22				jsr SYM.New				Y,A=T/Q, X=SC, C=clear/reuse
				bcs .99					OOM or DUP

				jsr SYM.GetTQInYA		Y,A = T/Q
				bit #SYM.Q.FUNC
				bne .8

				jsr CC.GetCharNB
				bcs .98

				cmp #';'				no initializer...store SYM
				beq .28

				cmp #'='				type var = value ?
				bne .98

				jsr CORE.GetNCharNB	skip '='
				bcs .98

				jsr SYM.GetTQInYA		expected T/Q
				jsr EXP.Eval
				bcs .99

				jsr SYM.GetAddr1
				bcs .99

				jsr SYM.GetTQInYA		Y,A = T/Q
				jsr SYM.PopValue		Set value to this var
.29				bcs .99

.28				jsr SYM.Store
				bcs .99

				jsr CC.GetCharNB
				cmp #';'
				bne .98

.8				clc
				rts

.98				lda #E.CSYN
				sec
.99				rts
*--------------------------------------
MAN
SAVE usr/src/bin/cc.s.decl
LOAD usr/src/bin/cc.s
ASM
