Towards high-level editing in syntax-based editors

Syntax-based editors typically provide rudimentary operations for manipulating abstract syntax trees. The incorporation of higher level manipulation facilities into such editors can make editing both easier and less error-prone. The authors have implemented a prototype editor that adds useful higher level manipulation facilities, including mid-level semantics-altering manipulations and high-level semantics-preserving transformations. They describe the basic organisation of these manipulations into a manageable number of overloaded commands and show how the commands can be combined in useful editing scripts.