[1851] Re:crowbar ver2のnative pointerについて
投稿者:(ぱ)こと管理人
2013/01/11 04:38:38
>「プログラミング言語を作る」を購入し,勉強させていただいております.
ありがとうございます。はじめまして。
>著書の4-4-5において,以下のようにネイティブポインタ型の改修を記載されて
>おりますが,ご提供されているソースコードのcrowber_book_0_2では,実際の
>実装はされていないように思われます.
まさかと思ってcrowbar_book_0_2をダウンロードして確認しましたが、
確かに、このバージョンでは、ネイティブポインタ型が値型になっています。
以下のようになっているのは、おっしゃるとおり、ver.0.4からのようです。
>ネイティブポインタ -> CRB_Object->FILE型などの構造体
「プログラミング言語を作る」は、もともとWeb上の連載で、
いろいろ試行錯誤しながら作っておりました。
書籍化にあたり、後になって失敗したと思い改修した箇所を、
前のバージョンに取り込む作業をしており、この件も、ver.0.4から
ver.0.2に移動させたつもりだったのですが……
ちょっとありえないミスです。申しわけございませんでした。
該当の実装は、以下で正しいです。
>気になって探してみたところ,ver.4のソースコードに
>
>struct CRB_Object_tag {
> ObjectType type;
> unsigned int marked:1;
> union {
> CRB_Array array;
> CRB_String string;
> CRB_Assoc assoc;
> ScopeChain scope_chain;
> NativePointer native_pointer;
> } u;
> struct CRB_Object_tag *prev;
> struct CRB_Object_tag *next;
>};
ご報告いただきありがとうございました。週末あたりに正誤表に入れさせて
いただきます。