Specifying Transformation Sequences as Computation on Program Fragments with an Abstract Attribute Grammar