2013-03-01から1日間の記事一覧

強力なマクロ

Lispのような構文定義可能なマクロを実現させたい。 しかし大量にあるマクロを扱うとなると線形探索でのパターンマッチングではとても遅くなってしまいます。幅優先探索にしてツリー状にマクロのデータを保存して、範囲をしぼるとかいう手もあるでしょうし、…

片側括弧のみマクロ

#define BEGIN { #define END } のような括弧の対応が合わないマクロは凶悪です。 これに対応できる構造化されたマクロのアイディアが必要です。こいつらは、ネストした括弧の中におさめることができなかったりします。 #def (#BEGIN) ({) #def (#END) (}) …

複数行に渡るマクロが汚い

複数行に渡るマクロを書く場合、行末に、\をつければ可能ですが、あれは汚いです。\を付けない書き方をしたいです。 #def (#add($a,$b)) { ($a + $b) } みたいに書けたほうがよいでしょう。

ネストしよう

現状のC言語のマクロはネストしないのが常識のようになっていて非常に汚く感じます。 少なくともgccでは、プリプロセッサが行頭になくてはならない訳ではないようです。なので、#ifdef等があったらネストして書いたら良いと思うのですが、ネストしないで書き…

headmaster 2013

C Ada

おお、すげぇ。http://d.hatena.ne.jp/ytqwerty/20130301#p1すごい。mingwの条件付きでのみだそうですが、 windows.hのAdaへの自動変換が出来たそうです。でもって、どのプロジェクトでも出来てないってのは嘘だったそうです。すいません。TODO: 内容を修正…