Сейчас я работаю [над senjin/gglsl][1] — библиотекой для программирования шейдеров с помощью Groovy, о которой [недавно писал][2]. Здесь я опишу три подхода к анализу AST (abstract syntax tree), все на примерах под-задач, вытекающих одна из другой и связанных общим контекстом: рекурсивные функции, паттерн Visitor, и паттерн-матчинг. Паттерн-матчинг реализован на Java и [доступен на GitHub][3]. [Читать дальше →][4]
[1]:
https://github.com/kravchik/senjin
[2]:
http://habrahabr.ru/post/269591/
[3]:
https://github.com/kravchik/jcommon/wiki/pattern-matching
[4]:
http://habrahabr.ru/post/270173/#habracut