ないブログに表示されています。新しい記事を書く事で広告が消えます。(Thu)地味なコンパイラ先週ファイルの読み書きを思い出しましたのと、文字コードの復習をいたしました。今週は構文解析を作ってみようと思ったんですが、これもすっかり忘却。再帰降下法の本を読みながらテストコードを書き、再学習しておりました。Writerの実行時は、皆さんが書いた数式を、コンパイラで後置記法にして処理すると、何かと都合が良くなります。後置記法にするためには、私の能力では再帰降下法が一番良さそうです。今日の所は、命令行とインライン行の区別をし、数式や変数なども分け、EditFieldに吐き出す段階です。これをあーでもないこーでもないと、いじっております。進んで、中間コードを吐き出せるようになると、fwdファイルの読み書きにとりかかれるんですがね。そんな段取りで考えております。コンパイラというのも、地味なわりに作るのは大変で、見た目はあまり進んでおりません。以前は毎週末にここを更新しておったわけですが、復帰一週目にして崩れました。昨日は日曜なので、酒を飲んだらうっかり寝てしまったと(笑)。ぬる燗の日本酒がおいしい季節です。先週は、REALbasicのヘルプを読みながら、いろいろいじっておりました。「ファイル」→「新規」で新しいプロジェクトを作った時に内包される、Appクラス、Windowクラスなどを洗い直しております。5以降に追加になったものをあまり使ってなかったようです。5以降の特徴として文字コードがあり、Rb内部でShift-JISからUTF-8に変わりました。この件は掲示板等で何度か書いておりますが、実はよく理解してなくて、サンプルコードのコピペ改変だったりします。このあたり、真面目に覚えてみようかと思っております。あと、ファイル入出力なども忘れてたので、data→setting.txtを読むあたりを作り直してみました。そんなことをやっております。Comment(0)ご無沙汰しております実に4ヶ月半ぶりの更新になってしまいました。Writerの開発を再開する所存です。メールを送っていただいた方、ご心配かけて誠に申し訳ございません。この間の顛末をご説明申し上げます。前回のエントリの直後、iBookが故障。仕事が忙しくて修理をサボる。7月1日から出向というか長期出張。ウイークリーマンション暮らし。ネットカフェより更新しようと思ったが、パスワードがiBookの中なのでわからず。11月1日付で本籍復帰。ダメ元でと思いサードパーティ製ACアダプタを買ってきたら、iBookあっさり動作。ACアダプタ故障→忙しくて使わないうちにバッテリ放電、で電源が入らなかったと予想。パスワードについては盲点でしたので、紙に印刷しておきました。パソコンの故障と、私の仕事に関しては、対策の取りようがないので、ご理解の上ご容赦ください。再開はいいのですが、プログラムをかなり忘れてしまいました(笑)。ソース見てもわかんないどころか、REALbasicやC++の言語仕様さえも。リハビリすれば戻るかなと思っております。週末ごとぐらいの更新になるかと思いますが、こちらで状況お知らせいたしますので、お時間のある時にでもご参照頂ければ幸いです。今後ともどうぞよろしくお願いいたします。Comment(1)5/20の近況Poserは結局、前回の「objでモーフ適用済のボディパーツを書きだして、再読込」を主体にして行くことにしました。Maconstructorでモーフをごっそりと削る方法です。六角は、やはり頂点順が変わってしまうため、JCMが仕込んであるパーツは滅茶苦茶になるということに気づきました。それと小数の精度の問題もあり、パーツ間に微妙なギャップができることがあります。従って、時と場合に応じて、という事になりますかな。DAZなどのフィギュアをいじるのはあれですけど、六角で1からモデリングするなら、問題ないんじゃないかなという感触です。やってみたいですけれど、モーフを作る手間とか考えると、当分は無理かな。目先、頂点をいじりたい場合は、Poserのマグネットを細かく使おうと思います。そんなこんなでPoserは一段落いたしまして、昨日からプログラムを再開しております。ボタンクラスを作り直し、描画とマウスに対する反応を分けております。時間軸の話としては、描画はFWのタイマーが主体になりますが、マウスに対する反応はユーザーのアクションが主体になります。この2つが確実にミリ秒の単位で合致すれば、プログラムが簡単でバグが紛れ込む余地はございませんが、まさかユーザーにそのようなことを要求するわけにはまいりません。v3までは、タイマーでもユーザーのアクションを受けたメソッドでも描画をしておりましたので、機能が増えるに従って、私自身がどのタイミングで描画しているのかわからなくなり、バグちっくな挙動を示すことがございました。修正すればするほど、ドツボにはまっていくという悪循環(笑)。v4ではこれを、ユーザーのアクションはフラグを立てるだけにして、描画はタイマーに任せる考え方に変更いたします。Writerも、やりたい事の具体的なイメージはあるんですが、学なき者の悲しさと申しましょうか。真面目にやろうとすると勉強する事柄が多く、なかなか成果物になりません。v4をお待ちいただいている方々には誠に申し訳ないのですが、千里の道も一歩からと申しますので、ご理解いただければ幸いです。Comment(0)ボタンをやりはじめました連休後半戦は、本日のみプログラムの時間がございました。昨日までの疲れが出ておりまして、あまりはかどっておりません。やったことは、ボタンを、とりあえずマウスに対する反応の部分だけ、作ってみました。現段階では、本当に「作ってみた」という状態で、まだレイヤー等の下にあるものと重ね合わせに難儀しております。それに付帯して、コンパイラも後回しの部分をやり、file型がより厳密な動作になりました。併せて、関数を解釈するメソッドを作っておきました。一応、4/29のエントリーで申し上げましたとおり、以下のような記述でテストしております。@Inputed;が、NewButton()はButton.New()に変更する予定です。これは右辺がまだドットに対応していないので、そのうちに。あと、Button.Jmpは、押された時に飛ぶ先をアンカーで指定します(新機能)。これを書いてて思ったのですが、ボタンのテストに必要という意味では、コンパイラは概ね終わっておりますな。明日はそれを踏まえて、実行側の重ね合わせに集中しようと思います。