« シェルスクリプトだって整数演算くらいできるぜ! | トップページ | yash 2 開発順調 その 2 »

2008年3月18日 (火)

yash 2 開発順調

一から書き直している yash は、現在構文パーサの実装の途中。従来の yash では対応していなかった if コマンドなどもこの機会に実装する。

以前よりも処理ごとに関数を細かく分けているので、関数の数が多くなってコード行数も増えているが、個個のコードが何をしているのか把握しやすくなったと思う。

ところで、bash でも ksh でも dash でも (従来の yash でも) { (:)>/dev/null } が構文エラーになるのだが、規格書を読む限りこれは文法的に正しいとしか思えない。yash 2 ではこれはエラーにしないことにする。(zsh でもエラーにならない)

何が問題かというと、{ (:); }{ (:) }{ (:)>/dev/null; } もエラーにならないのになぜ { (:)>/dev/null } だけエラーになるのか、ということだ。本来 } の直前には ; が必要なのだが、前に ) があるので ; は不要の筈。そして ) の後にリダイレクトがあるからといって ; が必要になることもない筈。

|

« シェルスクリプトだって整数演算くらいできるぜ! | トップページ | yash 2 開発順調 その 2 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/169172/40546312

この記事へのトラックバック一覧です: yash 2 開発順調:

« シェルスクリプトだって整数演算くらいできるぜ! | トップページ | yash 2 開発順調 その 2 »