Pattern transform

a long time we speak about it.... Here it is.
It is done this way for ast.py so I though it was good.