*概要 - grass code の実行を行う *引数 - code: grass形式のLIST *実装 (defun grass-eval-code-internal (code) (let ((standard-output standard-output)) ;; Open the Evaluation Window (unless noninteractive (let ((outbuf (get-buffer grass-evaluation-buffer-name))) (if outbuf (with-current-buffer outbuf (setq buffer-read-only nil) (erase-buffer)) (setq outbuf (get-buffer-create grass-evaluation-buffer-name))) (with-current-buffer outbuf (buffer-disable-undo) (make-local-variable 'truncate-partial-width-windows) (setq truncate-partial-width-windows nil)) (setq standard-output outbuf) (display-buffer outbuf)) (message "Evaluate Grass code...")) ;; Set the Initial State (let ((env grass-initial-env) (dump grass-initial-dump) state) (setq grass-out-counter 0 grass-out-prev-char nil) ;; Main Loop ;; (C0, E0, D0) →* (・, f :: ・, ・) (while (or code dump) (setq state (grass-eval-machine code env dump) - [[grass.el(0.1.8)/defun grass-eval-machine]] の戻り値を code、環境ENV、実行待ちDUMP に再配置して再度 grass-eval-machine に渡す code (car state) env (cadr state) dump (nth 2 state)) )) (unless noninteractive (message "Done!")) nil)) ;; Return value *呼出元 - [[ grass.el(0.1.8)/defun grass-eval-string ]] (2009-01-03 21:17:14) #comment(noname) *履歴 -作者:[[kobapan>http://www20.atwiki.jp/kobapan/]] -日付:2009/01/03 -対象: |更新日|更新者|更新内容| |||| *コメント #comment