2

Ruby 1.8 ASTは実行時に大きな switch ステートメントを使用してトラバースされ、クラスまたは親モジュールでメソッドを呼び出すなどの多くのことには、インタプリタがツリーを上下に検索する必要があることを理解しています。拡張機能でこれASTにアクセスする簡単な方法はありますか? Ruby Cそれには Ruby 拡張 API が関係していますか、それとも内部データ構造を直接ハッキングする必要がありますか?

4

2 に答える 2

1

良い出発点はおそらく、ParseTreeライブラリーのソースを読むことです。これにより、Ruby から AST にアクセスして操作することができます。

于 2008-08-17T22:36:13.103 に答える
0

先端をありがとう。ParseTreeその通りです。実際にRubyInlineで記述されていることを除けば、ASTの操作が行われているコードはこれだけのようです。

つまり、RubyとCコードの奇妙な組み合わせです。しかし、非常に興味深い読書です。

もちろん、他の参照はRuby自体からのeval.cです。

私の頭を動かすには、両方をかなり読む必要があります。

于 2008-08-18T12:11:19.837 に答える