The major design goal of Chaperon was to make a clear separation of concerns between components: the models, the builders, the automata and the processors. The most distinguishing feature was the fact if the component hold a state or not.
The designs were chosen to give the greatest calculation time to the builders while making the parsing process as fast and least-memory-intensive as possible.
Another reason to separate automata and processor was to make most of the component part threadsafe.
The automata and processors can be excellent used in thin clients, because of the fact that automata and processor doesn't depend to the models and builders,
The processor impements a 'push' architecture, which means that events are pushed from the source to the parser. Most of the parser implements a 'pull' architecture, in which the parser pulls the event from the source. The architecture is similar to the SAX pipelines, and helps to integrate the components in such SAX pipelines.