One of synopsis' main goals has been flexibility and extensibility with respect to how exactly the parsed data are manipulated. It must be possible for users to define their own output format, or their own way to annotate the source code in comments.
To achieve this flexibility, synopsis defines a Processor protocol, which allows multiple processors to be chained into processing pipelines. This way, a user can define his own pipeline, or even define his own processor.
Processors take an ASG as input, and return an ASG as output. One particular processor as Formatters.Dump.Processor, which dumps an ASG into an XML file. This may be useful for debugging purposes.
The scripting language used to define processors in terms of compound processors (i.e. pipelines) is documented here.