タグ

defineとRubyに関するtyosuke2011のブックマーク (2)

  • 第12章 構文木の構築

    またnode.hではこの共用体メンバにアクセスするためのマクロも用意されて いる。 ▼NODEアクセス用マクロ 166 #define nd_head u1.node 167 #define nd_alen u2.argc 168 #define nd_next u3.node 169 170 #define nd_cond u1.node 171 #define nd_body u2.node 172 #define nd_else u3.node 173 174 #define nd_orig u3.value : : (node.h) 例えばこんなふうに使う。 NODE *head, *tail; head->nd_next = tail; /* head->u3.node = tail */ ソース中ではほぼ間違いなくこのマクロのほうが使われる。そのごくわずかな 例外はparse.

  • 第4章 クラスとモジュール

    章ではクラスとモジュールの作りだすデータ構造について詳細を見ていく。 クラスとメソッドの定義 まずはCレベルでRubyのクラスを定義する方法を少しだけ見ておきたいと思う。 この章ではある意味「特殊な」ところばかりを追求するので、圧倒的多数を占 める通常ルートを先に知っておいてほしいのだ。 クラスとメソッドを定義する主要なAPIは以下の六つである。 rb_define_class() rb_define_class_under() rb_define_module() rb_define_module_under() rb_define_method() rb_define_singleton_method() 多少の派生バージョンはあるものの、拡張ライブラリはもちろん、基クラス ライブラリまでのほとんどがこれだけのAPIで定義されている。順番に紹介し ていこう。 クラスの定義 rb_d

  • 1