TokenConsumers that format code to an output buffer.

There are three types of renderers:

JS Renderer
Render languages that use {...} to delimit statement blocks; (...) and [...] to delimit expression blocks; and /*...*/ and //... style comments.
CSS Renderer
Like the JS Renderer but sensitive to the ways in which adding whitespace between tokens can change the meaning of CSS.
Simple token concatenator
Suitable for XML and HTML tokens.

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.