Как получить доступ к Ruby AST из кода уровня C?

Я понимаю, что Ruby 1.8 ASTво время выполнения используется большой оператор switch, и во многих случаях, например, при вызове метода в классе или родительском модуле, интерпретатор просматривает дерево по ходу дела. Есть ли простой способ получить доступ к этому ASTв Ruby Cрасширении? Включает ли он API расширения Ruby или требует прямого взлома внутренних структур данных?

17.08.2008 22:23:58
2 ОТВЕТА

Хорошей отправной точкой, вероятно, является чтение исходного кода библиотеки ParseTree , которая позволяет вам разобраться с AST из ruby.

1
17.08.2008 22:36:13

Спасибо за совет. Вы правы - ParseTreeкажется, что это единственный код, который когда-либо манипулировал AST, за исключением того, что он написан на RubyInline.

Итак, это странная смесь между Ruby и C-кодом. Очень интересное чтение, хотя.

Другая ссылка, конечно, eval.c от самого Ruby.

Потребуется немало времени прочитать обоим, чтобы обдумать это.

0
11.08.2015 07:46:15
Привет всем! из интереса, что ты пишешь? :)
horseyguy 10.08.2009 20:54:15