字句解析#1
文字列に番号を振って、番号と文字列の対のデータ構造をトークンとする。
(defun getToken-lexer (f) (cons (getOrder f) (seq-read f))) (defun getOrder (f) (save-excursion (set-buffer f) (1+ (/ (point) 251)))) (defun tk_to_s (tk) (format "#%5s %s" (car tk) (to_s (cdr tk)))) (defun new-lexer (f) (find-file-noselect f)) (defun rewind-lexer (f) (seq-rewind f)) (setq l (new-lexer "~/test.cii")) #<buffer test.cii> (tk_to_s (getToken-lexer l)) "# 1 MGH_flt : 333333333333->666666666666 EIAJ0502 8888 999" (tk_to_s (getToken-lexer l)) "# 2 MGD_monoTR: 00001" (rewind-lexer l) 1 (tk_to_s (getToken-lexer l)) "# 1 MGH_flt : 333333333333->666666666666 EIAJ0502 8888 999"