2008-03-01から1ヶ月間の記事一覧

以前秀丸マクロでsprintf実装したときにtwitterに残っていたメモ

printf("[%#.3o]",10);がRubyが"[0012]"でそれ以外(BCC,VC++,Perl)で"[012]"。これは"[012]"のほうがよさそうだ 存在しない変換指定子を指定した場合の結果 printf( "[% #+-0*.*T]", 0, 0 ); VC++は"[T]"、BCC,Perlは"[% #+-0*.*T]"、Rubyはエラー printf("…

strf関数を可変長に&型が合わない場合は変換するようにするパッチ作成中

static char *cnvformat() { // フォーマット付き文字列を作成する // char *fstr, *p, *fp, *tmp; int i, len; p = ctx->stmp; // フォーマット文字列をコピーして使う fp = code_gets(); fstr = sbAlloc( strlen( fp ) + 1 ); sbCopy( &fstr, fp, strlen( …

はじめてのこみっと

http://dev.onionsoft.net/trac/changeset/65

HSP Dev ML と OpenHSP プロジェクトに参加完了しました

まずは Subversion の使い方から始めないと...

テトリス

こんな宙に浮く状態ってありえるのか。。。

使用可能な言語?

そうそう、HSP Dev MLの登録フォームで使用可能な言語を尋ねられた。 選択できるのは、HSP C C++ Delphi Visual Basic。でそれ以外はその他の欄に記述できる。で、HSP、C を選んで、その他の欄にRubyと書いた。他にも試したことのある言語は色々あるけれど、…

HSP開発wiki IRC チャットでellerさんにアドバイスをもらってDev MLに登録、OpenHSPに参加希望したよ!

質問の回答とアドバイスどうもありがとうございました>id:ellerDev ML の登録でなぜか送信しても案内ページに戻されるので結局管理人の坂本さんにメールしました。案内ページに戻されるので問題なかったようです...そのあとOpenHSPにも参加希望のメールを送…

if や else の直後でなくてもブレース使えるのかよよよ

HSP

if 1:mes "a":mes "b"{ mes "c" } else : mes "d" { mes "e" }

HSP開発WikiのIRCチャットで少し話してきました

HSP

主にだるだるのfさん、begriffさん、GENKIさん、Asさんたちと。 なかなか面白かったです。 HSPについて思うことについて話したり、HSP対応版kmyaccをちょっぴり宣伝したりしました。 - ちょっと抜粋。 22:54 f_the_darudaru ところで、PF-Xは、表示時に文字…

HSP 対応版 kmyacc を公開しました

HSP

http://www.fujidig.com/2008/03/kmyacc-hsp.html HSP 対応版 kmyacc ダウンロード ぜひお使いください。

HSPのダサいところ

HSP

ここ何日かで挙げれるだけ挙げてみた。 スタックサイズの上限が128とか少なすぎる プリプロセス文きもい。モジュールや関数定義までプリプロセス文とか意味不明 関数の定義より前にその関数の呼び出しができない 明示的な指定をしなければ関数内の変数も全部…

HSPでワンライナするときのポイント

HSP

if のブレースの後のコロンは省略できる $を使うことでスペースを削れることがある(mes 0はmes$に) 関数呼び出しや配列の要素取り出しは . を使える場合は使うべし。ただし使えるのは単純な変数と単純な負の数以外の整数リテラルぐらい。括弧でくくれば式…

HSPの大きな特徴の一つは低レベルなところにアクセスできるところだと思う

HSP

たとえば、 varptr や dupptr で C レベルのメモリアドレスにアクセスできたり HSP 内部で使われている構造体(HSPCTXやHSPEXINFOなど)にアクセスできたり 機械語を埋め込んでそれを実行できたり

回転する八面体が一瞬おかしく見える

HSP

どう書くに投稿した以下のスクリプト。 http://ja.doukaku.org/comment/6009/ #include "d3m.hsp" xs = -1, 1, 1,-1 ys = -1,-1, 1, 1 repeat redraw 0 color 255, 255, 255 : boxf d3setcam 1500, 0, 500 color d3initlineto rad = 0.05 * cnt repeat 5 x =…

VALUE

README.EXT.ja読んだ。 へええ、VALUEは1ビット目(LSB)でFixnumかそれ以外(メモリアドレスとか)かを判別しているんだなーー。ヒープからアロケートしたメモリアドレスはまずほとんどの処理系で2の倍数になっているだろうというのを利用して。つまり Fixn…

defuncall

define function call

typedef struct

typedef struct list list; struct list { int value; list *next; }; こんな風なコードを見た。 structの定義の前にtypedefすることできるんだなー。 typedef struct list { int value; struct list *next; }; では「struct list *next;」の部分だけstruct…

構文解析に興味

Raccで計算スクリプト作り直そうと考えている。

記号もメソッド名に使える

class C define_method( '(>_<)', proc{ puts 'hello' } ) end p C.new.methods - Object.new.methods #=> ["(>_<)"] C.new.send( '(>_<)' ) #=> hello

単項演算子の結合性が理解できない

単項演算子に右結合も左結合もないと思うんだけど... 非結合は...重ねて使えないってことだろうか。 ~ が非結合だったとしたら「~~1」がsyntax errorになったり? 1 http://php.benscom.com/manual/ja/language.operators.php いや使えるじゃん。単項演算子…

結合しない演算子

nonassocの代表格は比較演算子だろう。 a == b == c # パースエラー a 第9章 速習yacc わわっ。本当だ! a == b == c って( a == b ) == c のように解釈されるもんだと思っていたし、計算スクリプトでもそうなるように作ったんだけど...うひゃあ。 計算スク…

計算スクリプト進捗 - カンマ演算子

そーす http://www.fujidig.com/archives/calc002.rb.txt 追加変更点 カンマ演算子を追加 文字列リテラルにバックスラッシュ記法(手抜き実装) 関数か変数かの区別はlexで行う

計算スクリプト進捗 - ショートサーキットやif関数、times関数、文字列型etc

そーす http://www.fujidig.com/archives/calc001.rb.txt 追加変更点 string型を追加 &&, || 演算子を追加 if 関数、 times 関数、 eval 関数を追加 char 関数、 print 関数、 puts 関数を追加。putchar関数は削除 string型はまだバックスラッシュ記法があり…

計算スクリプト進捗 - int型と演算子の追加

int型を追加 int用リテラルを追加 演算子を追加(>,&,|,^,,>=,,~,!) 各演算はOperatorクラスでなくValueクラスでやるように(各型はValue::* Valueなクラスになっている) 1+0.5の1が1.0に暗黙の型変換されて、1.5を返すようになっています。 やりたい! 論…

演算子オーバーロード

RubyのソースコードのREADME.jaにも「演算子オーバーロード」って書いてあった。 そんだけ。

計算スクリプト進捗 - bool型とnull型

関数呼び出し以外の()や関数呼び出し以外のカンマを変換時にエラーになるようにした ex. 1+(); a((1,2)) bool型とnull型を作った。 演算子==と!=を作った。 でも、17KBとブログに全部載せるような量じゃなくなってきた。

ポスター44種類コンプリート問題

CD1枚購入のたびに、ポスターが44種類のうち1種類ランダムに得られるとする。Q1. 44種類コンプリートするには、平均何枚のCDを購入する必要があるか。Q2. 44種類コンプリートした人はその時点で何種類のポスターを持っているか。 http://d.hatena.ne.jp/text…