シェルが立ち上がっている間、こいつがグルグルまわる。トップのループ(topが1とかそれ以上)でインタラクティブだとプロンプトが出るそうです。↓このnodeというやつにパースしたコマンドやらが入っています。↓HETIOってなんじゃい。-iでトップのときに初期化されるので、インタラクティブな何か。↓回って回って回って回る。↓インタラクティブなとき。メールがあるとか教えてくれるアレです。inter変数は今の所なにに使うか不明。↓interを指定するとコマンドをパースしてくれるようです。↓NEOFはperser.hで定義されており、スクリプトの読み終わりに相当。dashはスクリプトを全部読み込まずに、スクリプトを読みながら処理するので、NEOFにぶつかるということは処理が全部終わったということに相当。インタラクティブならプロンプトを出して待つことになる。Iflagは-I(インタラクティブなときにEOFを無視する)に対応。↑nflag(-n)は、「何もしない」。ドライランを指定するオプション。0で、「ドライランではない、実行する」という意味になる。↓実行して終了ステータスをstatusに代入。↓このevalskipはbreakやreturn、continueのとき等に設定される。statusでこの関数が終わる。↓ここから下は設定ファイルを読むところ。設定ファイルといってもシェルスクリプトなので、普通の処理とだいたい同じ手順。↓このsetinputfileに入れたファイルがシェルスクリプトとして解釈されるらしい。↓トップでないループ処理に入って設定ファイルを解釈。↓「.」コマンドの横に指定したファイルから関数を読み出す処理。↓「.」コマンドの横に指定したファイルを見つける処理。パスの探索はかなり処理が面倒臭く、関数が長めになっています。「.」コマンドの実装。わたしゃ滅多に使いません。status;}/*↓これはexitコマンドの実装。こちらは.と違ってよく使います。オプションに指定された終了ステータスを処理して例外を送ってます。「例外はがんばって実装したよ」とTOURファイルに書いてありました。C++を使いたいところ。大半の人はそう思わないだろうが。AdSenseやその他ソーシャルボタンのためにCookieを使用しています。同意いただけない場合はブラウザでクッキーを無効にして閲覧をお願いします。