modifies ast. gets precedence errors.