--- /dev/null
+TOKEN START
+ RPUSH
+ LD GR3,=-1 ; 単語の処理中を示すフラグの初期化
+ ; 0: 数字だけの単語を処理中である。
+ ; 1: 英字を含む単語を処理中である。
+ ; -1: 単語の処理中ではない。
+ LAD GR1,-1,GR1
+LP LAD GR1,1,GR1
+ LD GR4,0,GR1 ; 1文字を取り出す。
+ CPL GR4,='.' ; 終了判定
+ JZE FIN
+ CPL GR4,=' '
+ JNZ ALNUM
+ CALL SETTKN
+ JUMP LP
+ALNUM LD GR3,GR3 ; 単語の処理中?
+ JPL LP ; 英字を含む単語を処理中ならLPヘ
+ JZE ACHK ; 数字だけの単語を処理中ならACHKヘ
+ LD GR3,=0
+ LD GR6,GR1 ; 単語の先頭アドレスを退避
+ACHK CPL GR4,='A' ; 検査対象文字は数字?
+ JMI LP ; 数字の場合,次の文字の取出しヘ
+ 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 ; 単語の長さを計算
+ ST GR5,1,GR2 ; 単語の長さを格納
+ ST GR3,2,GR2 ; 単語の属性を格納
+ LD GR3,=-1 ; 単語の処理中状態を解除
+ LAD GR2,3,GR2
+FIN2 RET
+ END