Projectional editing is an approach where the user directly edits an abstract syntax tree (AST) representation of code rather than text. The editor mimics a text editor to some extent by allowing the user to see and edit placeholders that represent the AST, though the user is actually editing the AST directly rather than text. This approach allows languages to evolve more easily than with text-based parsing since the AST structure is unambiguously defined, and it also allows languages to be more easily combined by defining a common set of node types.