Como faço para acessar o AST Ruby a partir de código de nível C?

votos
2

Entendo que o Ruby 1.8 ASTé atravessado em tempo de execução usando uma instrução switch grande, e muitas coisas como chamar um método em um módulo de classe ou pai envolvem o intérprete olhando para cima e para baixo da árvore em que vai. Existe uma maneira simples de aceder a este ASTem uma Ruby Cextensão? Será que isso envolve a extensão API Ruby, ou tornem indispensável cortar as estruturas de dados internos diretamente?

Publicado 17/08/2008 em 23:23
fonte usuário
Em outras línguas...                            


2 respostas

votos
1

Obrigado pela dica. Você está certo - ParseTreeparece ser o único código lá fora, com qualquer manipulação da AST acontecendo, exceto que ele é realmente escrito em RubyInline.

Então, é uma estranha mistura entre Ruby e código C. Muito leitura interessante, no entanto.

A outra referência, claro, é eval.c da própria Ruby.

Vai levar um pouco de leitura de ambos, para colocar minha cabeça em torno dele.

Respondeu 18/08/2008 em 13:11
fonte usuário

votos
1

Um bom ponto de partida é, provavelmente, para ler a fonte do ParseTree biblioteca, que lhe permite obter a e mexer com a AST de rubi.

Respondeu 17/08/2008 em 23:36
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more