Publicado por Rafael Rosa em 13 de Agosto de 2009
SexpPath - Uma DSL Ruby para pattern matching de S-Expressions
Clique aqui para adicionar ao del.icio.us | Nenhum comentário - Deixe o seu agora!
Vira e mexe as pessoas começam a falar sobre a questão de "Código versus Dados", e começa a fazer sentido sermos capazes de processar código da mesma maneira que processamos uma string. Sexp Path é uma ferramenta de processamento de código que nos permite procurar e processar código Ruby na forma de S-Expressions.
Para quem não conhece, uma S-Expression (ou simplesmente "sexp") é um modo de representar código ou dados de forma que podemos iterar por ele. Usando o Parse Tree, criado pelo Ryan Davis, você pode fazer o parsing de arquivos Ruby e processá-los usando Sexp Path. É como usar XPath ou expressões regulares no seu código.
O Sexp Path se baseia no comando de pesquisa formado com Q?{ ... }, que é executado pelo sexp através do método /. Esses métodos podem ser encadeados, e os resultados processados através do método each. Usando esse código como exemplo, Sexp Path também suporta named captures como Q?{ s(:class, atom % 'class_name', _, _) } na linha 16, de forma que o um segundo "átomo" é acessível no atributo class_name na linha 25.
O código está no GitHub. O autor do projeto, Adam Sanderson, ele encoraja que os usuários "forkem" o projeto e enviem feedback, uma vez que ele ainda não sabe muito bem para onde o projeto vai.


