2009年5月28日木曜日

Ocean Script の威力。

ども。たです。

本日もせっせと ocean script を書き書き。
午前中にひと通り書き終えて、チェック。
そして、当然のように出まくるエラーをせっせとつぶす。

とりあえず if 文でどハマり。。。
ついついクセで

if ( ( 条件文 ) then
 ~
else
 ~
) ; end of if

な~んて書いてたところ、ずーっと構文エラーで落ちまくり。
で、ふと思い立ち、

if( ( 条件文 ) then
 ~
else
 ~
) ; end of if

ってしたら、通るんですね~w
ちなみに、違い分かるかな?w

ocean には他の言語のように、命令終了の合図として
「;」がいらない分、どうやら空白 (スペース) で命令の
区切りを意識している模様。

なんで、if と ( の間にある空白がダメだったってオチ。
#そもそも ocean では「;」がコメントアウト。

その他にも、普通に spectre を流す分には、
自分の組んだ数式に答えがなくても問題ないが、
ocean だと、そこで落ちるため、いちいちその数式に
答えがあるかどうかを調べてから、数式を評価
させるようにしたり。。。

何よりも面倒だったのは、ocean の吐くエラーが
えらく不親切なこと。
○○なんて文字列知らねぇ!とか、○行目が
間違えてるよん、みたいな感じのエラーなら
まだ対策のしようがあるものの、さっきの
if 文の構文エラーなどは、一体どの if 文が
引っかかっているのかすら分からない始末。
#ま、結局全部だったんだけど ^^;

なんで、最終的には、要所要所に、
printf でアンカーを打って、とりあえず、
ここまでは正常に流れているってのを確認しながら
デバッグしてますた。

ただ、スクリプトができてしまえば、400 近い条件を
勝手に流して、さらにその結果まで tab 区切りの
csv ファイルチックなファイルを吐かせることもでき、
今まで、条件を手で変えては、run して、結果を
エクセルに手打ち、、、なんて手順を踏んでいた
操作が、ocean 上でスクリプトを実行するだけになり、
こいつはとんでもないインパクト。

手でやったら、人が完全に張り付いて 2 ~ 3 日かかる
作業が、スクリプト実行して、ひと晩待てば結果の
ファイルまで作成されて出てくるってんだから。

スクリプト作成に丸々 2 日ほど費やしたが、
スクリプトの流用性などを考えるに簡単に
取り戻せそうな感じもあるので、なぜ今まで
手を付けてこなかったのか悔やまれてならない。

まー、ここで気付けたことだし、まだ遅くはないさw
またシステム管理者から怒られちゃう位
sim. 流しまくっちゃおうと思いまつ (・∀・)
#ただ今回のは series な sim. なので、多分無理かなw

そんなこんなで。
では。

0 件のコメント: