42 Tokyo の課題でbashの再実装に取り組みました。本記事ではその振り返りをします。 課題の概要 成果物 取り組み方 調査 開発方法 実装 1. Lexer(単語分割) 状態の更新 単語分割 2. Parser(構文解析) 抽象構文木 構文解析方法 エラー処理 3. Expansion(変数展開) 4. Command execution(コマンド実行) パイプ パイプの実行方法 リダイレクト builtinコマンドでの注意点 工夫したこと データ構造の可視化 テスターの作成 感想 楽しかったこと 大変だったこと 終わりに 課題の概要 機能が制限されたbashを再実装する課題です。 具体的には、 Simple command いくつかのbuiltin command cd, echo など。env など本来builtinでないコマンドも含みます 構文解釈( ; | "" '' )