普段は流行りに乗ることは余り無いんだけど、今回は何かを受信したので時流に乗ってみることにしました。
それにしても、カラースク水なんてコスプレ用途しか思いつかないですよねー
pixivにはマイルド版を
こっちにはマイルドで無い(血表現あり)を
普段は流行りに乗ることは余り無いんだけど、今回は何かを受信したので時流に乗ってみることにしました。
それにしても、カラースク水なんてコスプレ用途しか思いつかないですよねー
pixivにはマイルド版を
こっちにはマイルドで無い(血表現あり)を
ディレクトリ間で一方向のミラーリングを行うコマンドラインツールです。
実行には .NET Framework 2.0 が必要です。
ミラー元のファイルがミラー先にないか、ミラー先のファイルより新しい場合のみコピーします。
後、引数つけずに実行すると簡単なhelpもでます。
社内でメールやらのバックアップを取るために作ったのですが、折角なので公開してみようかと。需要あるんかなー..
ネタ元: http://twitter.com/hi_saito/status/1524994613
の元ネタ: http://d.hatena.ne.jp/mzp/20090414/hello
のさらに元ネタ: http://d.hatena.ne.jp/Yuichirou/20090414#1239705258
を、見ていたのですが、激しい違和感が...
一番元ネタの設計を日本語で表すと概ね以下のようになると思います。
何か違わないか?
というわけで、自分なりに オブジェクト指向的HelloWorldを再設計してみた
前回 の続き。四則演算のパースに挑戦。
括弧が使えるようになるのと、単項+- に気をつけて、EBNFは
expr = NUM
| expr '+' expr
| expr '-' expr
| expr '*' expr
| expr '/' expr
| '(' expr ')'
| '-' expr
| '+' expr
以下、注意点
結合順序の問題: 例えば 1+2*3-5 を計算順序の曖昧さをなくして (1+(2*3))-5 と認識させるために 2項演算子に優先度をつけなければいけません。当然'*','/'の方が優先度高です。
「数」の表現: 正負を示す単項演算子を設定したので、 NUM は頭に'+'も'-'もつかない数値 でなければなりません。
'+', '-'の曖昧さ: 単項演算子'+','-' と2項演算子'+','-'との曖昧さをなくすため、単項演算子の優先度を2項演算子のそれより高くします。とはいえ、同じトークンで優先度設定することはできないので、'+' expr, '-' exprのルールに特殊な指示を入れます。
そんなこんなでできたコードが