How To Write a Transformational Attribute Grammar