1. Inner workings
2. Python API
4. Types and exceptions
A little top-down explanation of the inner structure of AHTS:
The Writer asks the Parser for a abstract represantation of the template, called an Abstract Syntax Tree. It writes this tree to the prefered outputfile, while resolving all references to variables (@identifiers@) and other templates (via the <master>-tag). It also computes the <if ...> comparisons.
The writer is implemented in ahts/writer.py.
The Parser drives the Scanner. It asks the Scanner for a token, and then looks where this token belongs to. (If it is an <if, it starts the part of the Parser which handles the <if ...>...</if> part.). The Parser checks whether the template adheres to the ACS Templating syntax.
The Parser emits a symbolic description of the template in a form called an Abstract Syntax Tree.
The parser is a handwritten recursive decent parser, who operates on one token lookahead.
The parser is implemented in ahts/parser.py.
Your template is scanned by the Scanner, generated by Plex, This scanner splits the template into its significant parts (tokens), and strips comments from the template.
The scanner is implemented in ahts/scanner.py.
You don't need to download Plex yourself, I included a slightly modified copy. See ahts/README.plex for details.
|$Id: index.tml,v 1.1 2001/04/09 22:36:19 benderydt Exp $|