無差別に技術をついばむ鳥

情報処理技術全般を気まぐれにつつくゆるいブログです

ネタつつき31ーなんじゃこりゃ!MPPG&MPLEXの脅威。

本日επιστημη さんから面白いネタを聞きました。それは、あのyacc/lexのC#バージョンがあるという事でした。こう聞いてはコンパイラ好きとしては居ても立っても居られません。επιστημη さんからダウンロードページを教えてもらって早速ダウンロードしました。やったね♪
でもダウンロード後επιστημη さんが言っていたMPPG&MPLEXの色々な意味での凄さが身を持って分かりました。先ず第一に マニュアルでの説明が殆どありません!何とMPPGのマニュアルの量はたった8ページ!予め警告を受けていましたが、こんなに酷いとは予想外です。でもこんな事で挫ける私ではありません。元々英語が苦手なので無問題です(本当か?)
とう言う事で電卓のプログラムを書籍を参考にして書いてみました。


//MPPG用
%token  NL
%token  NUMBER
%token  LP
%token  RP
%left   ADDOP SUBOP
%left   MULOP DIVOP
%%
s       : list
        ;
list    : 
        | list expr NL      { Console.WriteLine ( "%d\n", $2 ); }
        ;
expr    : expr ADDOP expr   { $$ = $1 + $3; }
        | expr SUBOP expr   { $$ = $1 - $3; }
        | expr MULOP expr   { $$ = $1 * $3; }
        | expr DIVOP expr   { $$ = $1 / $3; }
        | LP expr RP        { $$ = $2; }
        | NUMBER              { $$ = $1; }
        ;
%%

//MPLEX用
%namespace Test
%%
+       return (ADDOP);
-       return (SUBOP);
*       return (MULOP);
/     return (DIVOP);
[0-9]+  { yylval = Coonvert.ToInt32( yytext );
            return (NUMBER); }
[\t]    ;
\n      return (NUL);
.       return (yytext[0]);
%%


ふぅー苦労しました。特にMPLEXが邪悪すぎます。何で”+”じゃないのでしょうか・・・細かいところで文法変えるな!何はともあれ、どっちも出力できました。これで漸く電卓を作れそうです・・・あれ?エラーが沢山出たぞ?何々・・・クラスが足りないorzそれはないよー。仕方が無いので苦手な薄すぎる英語マニュアルを読んで問題点を発見しました。どうやらマニュアルに散在している抽象クラスとインタフェースをコピペする必要があるようです。何という邪悪さだ!昔のMSのヘルプを連想してしまいます。でも何とかそれも完了しました。
これで漸く電卓が・・・あれ?まだエラーが出ているぞ?何々・・・Babelパッケージが足りないオーマイゴット!でも、マニュアルが何とかあるぞ・・・・・・・やっぱりこのマニュアルも役に立たねぇッ!VSと連携するものらしいけど、どこにそのライブラリあるんだよぉ・・・
あっははは(壊れた)もう自分でyacc/lex実装した方が早そうですよεπιστημη さん♪
この記事は邪悪なMPPG&MPLEXに立ち向かう人の為に書きました。参考になるかな?
でも何はともあれ結局は楽しかったです♪こんな日があってもいいと思います♪
ここまで分からないのは久しぶりです。初心者の頃を思い出していい気分になりました。
別窓 | ネタ | コメント:6 | トラックバック:1 | ∧top | under∨
<<書籍をつつく84−分散システム 原理とパラダイム 第2版。出た♪名著♪ | 無差別に技術をついばむ鳥 | 書籍をつつく83ー802.11高速無線LAN教科書。隠れているのはだーれだ?>>

この記事のコメント

いつもお世話になっています
インドリさんは、directxなどにはかなり詳しいのでしょうか?
もしお暇なときでよろしいのでdoirectxについての
基礎的な部分をレクチャーしていただけたらうれしく思います。
2009-02-16 Mon 19:33 | URL | ken #-[ 内容変更]
毎度どうもKenさん。
ボクはDirectX知らないから残念ながら要望にお答えできません。
2009-02-16 Mon 21:00 | URL | インドリ #-[ 内容変更]
Link 先は Visual Studio 2008 SDK 1.1 の download page でおk?
dowonlaod 実行後に遷移する page を示してもしょうがないと思いますよ。
2009-02-16 Mon 21:58 | URL | ちゃっぴ #bces9Cb6[ 内容変更]
ちゃぴさんコメント有難う♪
すぐさまダウンロード出来るから便利だと思ったからこうしたんだけど、直前のページにするべきだったかな?
2009-02-16 Mon 22:16 | URL | インドリ #-[ 内容変更]
> すぐさまダウンロード出来るから便利だと思ったからこうしたんだけど

Scripts off にしているので、気付かなかった。。。orz

とはいえ、いきなり download させるのは良くないですよ。
User に download しても大丈夫か判断させることが重要ですね。

どうしようもない場合は別ですが。。。
2009-02-16 Mon 23:12 | URL | ちゃっぴ #bces9Cb6[ 内容変更]
ちゃっぴさん了解しました♪
早速URLを直前の物に変更しました。
2009-02-17 Tue 08:19 | URL | インドリ #-[ 内容変更]
∧top | under∨

コメントの投稿

 

管理者だけに閲覧
 

この記事のトラックバック

re: 丸裸にされますた …
2009-02-15 Sun 12:48 東方算程譚
∧top | under∨
| 無差別に技術をついばむ鳥 |