Our task is to characterize a relationship between an abstract syntax tree and concrete syntax, much like the development in [Invertible Syntax Descriptions by Tillmann and Ostermann][1]. We have an additional constraint, however. We aim to make the mapping interactively editable -- that is, convert editing commands on the text to transformations on the abstract syntax.
For example, consider a simple arithmetic grammar with precedence. Given this abstract syntax tree (in S-expression notation):
(plus 3 4)
which is pretty-printed this way:
3 + 4