![](http://2.bp.blogspot.com/__AyO-thBrS0/Sc9QqRXX5hI/AAAAAAAAAU4/51ju3xqnzww/s400/bug-003_%E3%82%AF%E3%83%AD%E3%83%BC%E3%82%BA%E3%81%99%E3%82%8B%E3%81%A8buf%E3%83%93%E3%83%83%E3%83%88%E3%81%8C%E8%BF%BD%E5%8A%A0%E3%81%95%E3%82%8C%E3%82%8B-FIX.jpg)
![](http://2.bp.blogspot.com/__AyO-thBrS0/Sc9QqQNnHNI/AAAAAAAAAUw/17CJrbnGK9w/s400/bug-002_FIXjpg.jpg)
![](http://4.bp.blogspot.com/__AyO-thBrS0/Sc9Qqc-BqqI/AAAAAAAAAUo/7cwQxuR9Oyw/s400/bug-000_FIX.jpg)
![](http://1.bp.blogspot.com/__AyO-thBrS0/Sc9QqHan9aI/AAAAAAAAAUg/6pP32NaoFg8/s400/absolute_relative_path.jpg)
cdコマンドの引数に対する構文解析器を作りました。
今までのcdコマンドでは絶対パスが表現できなかったり、隣接したディレクトリにしか移動できなかったりと、色々とショボイcdコマンドでした。しかしながら今回の更新により、例えば、ルートディレクトリに直接移動出来たり、パス名を連続して綴ることで隣接していないディレクトリに移動出来たりします。
ただ「これだけだと従来のcdコマンドと何も変わらいじゃないか!面白くナス!」と思ったので、言語処理系の授業で習った誤り処理も追加してみました。これにより、cdコマンドが失敗したとき、なぜ失敗したのかを教えてくれます。
関係ない話だけど、cdコマンド改造後の方がソースコードが短くなっのはビビったw。元々のcdコマンドがnaiveだったという原因もあるだろうけど、それ以上に再帰降下関数が最強すぎるという罠なのだろう。2単位の癖にSoC設計×2よりキツイと噂の言語処理系を、糞真面目に取り組んでおいて心の底から良かった思った瞬間。実は、言語処理系はオープン科目として受講できるみたいだけど、どう見ても死亡フラグです。本当にありがとうございました。
※ちなみに、言語処理系のノート等はここら辺にあります。参考資料としてどうぞ。
※ちなみに、言語処理系のノート等はここら辺にあります。参考資料としてどうぞ。
さて、メモリの離散的な確保も実装したし、cdコマンドも強化したので、後はドキュメント書くだけかな。ガリガリ書いていきます。
0 件のコメント:
コメントを投稿