мда, я теперь стал гораздо лучше понимать, почему в IDE для языков со смешанным синтаксисом (SSI, PHP, ASP.NET, etc.) так редко есть нормально работающий интеллисенс\рефакторинг
пока что ограничился в обфускаторе тем, что директивами нельзя рубить узлы AST на части, а там будем думать… ну вот теперь зато можно писать
a = b + (<%=Session[“UserName”] %>*5);
и оно нормально обрабатывается, if/else обычно тоже, но вот мысли о рекурсии все еще приводят меня в ужас %)
в голову приходят дикие идеи типа постройки графа возможных комбинаций того, что выдает интерпретатор на серверной стороне