TokenConsumers that format code to an output buffer.
There are three types of renderers:
{...}
to delimit statement blocks;
(...)
and [...]
to delimit expression blocks;
and /*...*/
and //...
style comments.Some of the renderers pretty print code by indenting it to make the block structure clear. Others try to produce the most compact code.
There are a few meta-renderers, such as the line-break-matching renderer which tries to wrap code to appear on the same lines as the mark positions, and the side-by-side renderer which interleaves original and translated source code.