use custom pretty printer for JS, because date needs to behave differently then in the normal one.
For now, include parenthesis when printing an operator. This makes sure priorities will be maintained correctly in JS.
Added warnings to compiled files about the autogeneration.
Print (too many) parenthesis. It is more important to be logically equivalent then to do it in a wrong way.
I have no idea how this parentheses stuff works...