I'm looking for functionality that can do source-to-source transformation of elisp programs given a set of rewriting rules. For example, given a rule like:
(set (make-local-variable (quote ?var) ?value)) => (setq-local ?var ?value)
It will find all occurrences of the pattern and replace it with replacement. A welcome feature would be to do minimum amount of changes.
Edit: I found this http://www.informatik.uni-bremen.de/st/lehre/Arte-fakt/Seminar/papers/06/Formal/pattern-language-for-refactoring.pdf sadly no implementation.