;Exam2014H26春 文字の切り出しと管理テーブル作成
;--------------------------------
MAIN START
	LAD GR1,TEXT
	LAD GR2,KTBL
	CALL GETTKN
	RET
TEXT DC '  This 1234  99#AB* is a book .'
KTBL DS 55
	END
;----------------
GETTKN START
	RPUSH
	LD GR3,=-1     ;単語の種別の初期化
	LAD GR1,-1,GR1
LP LAD GR1,1,GR1	  ;単語の先頭アドレス
	LD GR4,0,GR1   ;
	CPL GR4,='.'
	JZE FIN
	CPL GR4,=' '
	JNZ ALNUM
	CALL SETTKN
	JUMP LP      ;a 答え　イ
ALNUM LD GR3,GR3 ;単語の処理中？
	JPL LP       ;処理中の単語が英字を含む場合はＬＰへ
	JZE ACHK     ;処理中の単語が数字だけの場合はACHKへ
	LD GR3,=0    ;次の単語の処理開始
;以下では、単語種別を”数字だけからなる”に設定
	LD GR6,GR1   ;先頭アドレスを退避
ACHK CPL GR4,='9'
	JPL NEXT
	CPL GR4,='0'
	JMI NEXT
	JUMP LP     ;取り出した文字が数字の場合はＬＰへ
NEXT LD GR3,=1   ;単語種別を”英字を含む”に設定
	JUMP LP
FIN CALL SETTKN
	LD GR5,=-1
	ST GR5,0,GR2 ;終端マークを格納
	RPOP
	RET
SETTKN LD GR3,GR3
	JMI FIN2     ;単語処理中でなければ何もしない
	ST GR6,0,GR2 ;単語の先頭アドレスを格納
	LD GR5,GR1
	SUBL GR5,GR6 ;b 答え　カ
	ST GR5,1,GR2 ;単語の長さを格納
	ST GR3,2,GR2 ;単語の種別を格納
	LD GR3,=-1   ;単語種別を初期化(処理中状態を解除）
	LAD GR2,3,GR2
FIN2 RET
	END
;--------------------------
