プログラミング

DirectX

友人にシューティングゲームを作りたいからプログラミングを手伝ってくれと言われたので、DirectXをいじっているのですが、いやぁややこしいですね。 とりあえずメニュー画面をと思っても、何をどうすればいいのか分からない。 GDIベースだったら、スタティ…

今日ハマったこと

いやぁ、一日なでしこ関係のプログラム組んでいたら、こっちに書くことなくなりますね。 ということで、なでしこの話ですがこっちに書きます。 今日ハマったこと 構造体の配置の勘違い…1時間 ハンドル継承の設定ミス…1時間 パイプの入力/出力の間違い…1時間 …

ブラウザコンポーネント

Delphi用のブラウザコンポーネント、EmbeddedWBを入れようとしたら、すでに入っているブラウザコンポーネント、UIWebBorwserとユニット名が競合していると怒られました。 うーん、UIの方は消せないし、どうしましょう。どちらかのユニット名を変えてしまいま…

コンパイラ理論

コンパイラ (コンピューターサイエンス・ライブラリー)作者: 中田育男出版社/メーカー: 産業図書発売日: 1981/01/01メディア: 単行本 クリック: 4回この商品を含むブログ (4件) を見るこの本で勉強しているんですが、やっぱり難しいですね。おもしろいんです…

俺言語

少し前からちゃんとBNFでの定義を書こうと思い立って、ごりごりと書いていたんですが、それがやっと完成しました。 さあ、あとはこれを実装するだけ……って、どうやって実装したもんでしょうね、これ。 LRとかLLな解析は難しそうなので、再帰下降で解析すると…

MSDN

MSDN Libraryをローカルに入れておこうとして、イメージファイルをダウンロードしてきたんですが、Alcohol52%でマウントして仮想ドライブにアクセスしようとすると、svchost.exeがCPU100%奪っていって、さらにexplorerがフリーズします…… これはDVDに焼けと…

SSP更新チェッカ

SSP更新チェッカがまともに動かなくなっているので、修正しようと思ったのですが、なぜかSSPのフルセット版がcab32.dllで解凍できません…… 以前は解凍できていたはずなんですが。 と思って、以前(Ver.1.10ぐらい)の書庫と最近の書庫と見比べてみたんですが………

名前かぶり

FlashというかAdobeのツールって、名前のかぶってるのが多い気がします。 私にとってはFlexは字句解析器生成ツールですし、ApolloはRubyでVCL使うためのライブラリなんですよねぇ。 まあだからどうということもないんですが。

MSDN

MSDN2006/12英語版をインストールしようとしてイメージファイルを落としてきたんですが、マウントするとなぜかフリーズして電源ボタンに頼らないとシャットダウンできなくなってしまいます。 ファイルが壊れてるんでしょうかね。

貧乏性

変数を実現するために抽象クラスを作って、それを継承する形で各型を実現しようとしていました。 ……型キャストが起こるたびに、インスタンスを生成し直すのがもったいない。 たかだか数十バイトなんでしょうけど、やっぱりメモリがもったいないですよねぇ。…

変数テーブル完成

やっとこさ、変数テーブルに関わる部分(名前空間とかスコープとか)の実装ができました。 これで変数が使えます。 でもまだ比較演算すらできないんですよねぇ。 これを作らないと、制御構文が作れないので早々に実装したいです。

やっと電卓並み

C#で作っている言語が、やっと四則演算ができるようになりました。 うーん、本を見ながらやっている割には、ここまでたどり着くのに時間がかかりましたね。 年末からやり始めて、途中でPC壊れたりもしましたが、ふた月ですか。 ここからは、変数使えるように…

字句解析器、改良

[id:shiba-yan:20070102:1167743503] 芝やんさんのアドバイスと参考ページのおかげで、かなり速く処理できるようになりました。 具体的にはさっきのファイルが100ms以下。 多分まだ改善の余地はあるでしょうけれど、今はこれで十分です。 芝やんさん、ありが…

字句解析器半分完成

なでしこの文法に従って、トークンに切り分けるところは出来ました。 まだ予約語を識別子と分けるとか、例外クラスとか色々書けてませんが。 で、一応動くので試しに動かしてみたんですが……遅いです。それはもう遅いです。 gnako.nakoを読み込むのに10秒ぐら…

動的呼び出し

C#では、型不定のDLL関数を動的に呼び出すのは出来ないのかなと思っていたのですが、どうやら出来るようです。 ネイティブでやる時と同じように、オペコード書いてスタックに乗せる代わりに、ILGenerator使ってメソッドを作成すると良いらしい。 ネイティブ…

なでしこonC#

もう作ろうと思い立ってから3ヶ月も経つのに、字句解析すらままなりません。 やはり自動生成ツールで、日本語の字句解析をやろうというのが間違いなのでしょうか? 上手いこと助詞で区切れないんですよねぇ。

イベントとかグループとか

ちょっと気分転換にプログラム組みたくなった時、やりたいことがバグと思われるものとか実装上の制限とかに阻まれるとぐんにょりしますよね。 今まさにそれ。 vnakoのラベルの「背景色」が反映されない。 vnakoのラベルを「作成」したときの文字位置の「中央…

やっとできた

と思ったら。 hi_setIntOrFloatにTruncが使われていてまたエラーですよ。 なんで例外投げるのではなくエラーなんでしょうね…… これもif文書いて回避するしかないのでしょうか。

テスト前になるとプログラム組みたくなる病

発病中。 なでしこのDLL呼び出しに関するコードをいじっていました。 ある程度出来たのですが、64bit整数を引数に取る時、なでしこは32bitまでしか扱えないので実数で使っているのですが、実数→整数に変換するのをTruncでやると、2^63以上の数渡した時にinva…

なでしこグループ

g:nadesiko 参加しました。 はてな内のなでしこユーザーの皆さんは是非参加しましょう。

関西オープンソース

行ってきました。 非常に充実した時間を過ごせました。 クジラ飛行机さん、EZNaviさん、粗茶さん、比呂野さん、mrさん、お疲れ様でした。 以下、話した内容を順不同で。

なでしこの妙な仕様

「あ」という ●うう 「う」という うう 「い」という これを実行すると、「あ」と「う」だけ表示され、「い」は表示されません。 一番最初の行のインデントレベルが基準と見なされて、それ以下のレベルのインデントの記述は無視されるようです。 N88BASICみ…

lexgenerator

やっと常識的な分量のコードを吐く識別子用正規表現が書けました。 [^-+*/%^\\{}[\]()&$#"`'=;:,.?!|~@−+*/%^¥{}[]()&$#`’=;:,.?!|〜@、。「」『』【】●・ \n\r\t0-90-9かがくしだってでとなにのはほまよを][^-+*/%^\\{}[\]()&$#…

再現方法がわからない

それ待避用スタックとは配列 ●それプッシュ それ待避用スタックの0にそれを配列挿入 ●それポップ それはそれ待避用スタック[0] それ待避用スタックの0を配列削除 このコードの「それポップ」を実行すると、「Invalid pointer operation」やら「Access Violat…

助詞の字句解析

なでしこの文は、「式+助詞+式+...」の形になりますが、これをlexの定義ファイルに書くにはどうするのが適当なんでしょうねぇ。 例えば、「ひまわりとは花」と言う文の場合、「ひまわり」「とは」「花」とトークンに切り分けて欲しいんですが、適当に書い…

lex

C#のlexに [$A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF〝〟ぁ-ヶ一-龠釗¥耦輶𥧄-鄕釤釻A-Z_a-zヲ-゚]+ のような正規表現を突っ込んだら、15MB近い状態遷移表を吐きました。 うーむ、やっぱり「一-龠」(漢字全部)は無理があったのか…

C#で字句解析/構文解析

最近、C#に手を出し始めました。 .NET系の言語も扱えるようになっておきたいですしね。じゃあ別にC++.NETでいいじゃないというのは置いといて。 で、そんなC#初心者がいきなりコンパイラコンパイラを使うプログラミングに挑戦ですよ。 使うのは、Compiler To…

なでしこブログ

クジラ飛行机さんがなでしこの開発ブログを開設されました。 これでもう少しはなでしこの開発状況について知ることが出来る……のですかね?

DAEv2、ソース公開へ

個人的にはとても嬉しいニュース。 ベースウェアって結構いろんな事してますから、非常によいサンプルコード集にもなると思うんです。 で、ちょっとコードの拝借を(ry

cdecl

またもや時間が空いてしまった日記&久方ぶりのなでしこの話題。 なでしこではDLLを呼び出す時に呼び出し規約の指定が出来ません。 stdcallしかないのです。 つまりSHIORIとか呼び出せません。無理矢理呼び出すと変なところでエラーが出ます。 そこでこれ、cd…