[Lisp処理系を作る] 15日目 インタープリタを作る

インタープリタと言うか、ユーザや外部とのインターフェイスの外側を作る。

コマンドライン引数

プログラムを起動する時のコマンドライン引数にファイル名を指定した場合、 そのファイルの内容を S 式の集合として構文解析して、それを評価する。

オプションは面倒なので無しで。

プロンプト

コマンドラインから指定されたファイルの内容を評価したら、プロンプトに移行します。 プロンプトでやるのは以下の内容。

  1. 標準出力に "Lisp>" と表示する。
  2. 標準入力より 1 行分の文字列を得る。
    • それが "QUIT" または "EXIT" のみの場合は終了
  3. その文字列を S 式の集合として構文解析。
  4. それで得られた S 式の集合を順番に評価。
  5. 例外が発生した場合はエラーの内容を表示する。
  6. 最初に戻る。

こんな感じ。