A structural syntactic editor