-------------------------- ColdFusion::ParseTree used by : ColdFusion::Parser, ColdFusion::TAGS::* created by : ColdFusion::Parser, ColdFusion::TAGS::* uses : ColdFusion::ParseRules Munches on a chunk of a ColdFusion-like template producing a tag parse tree in the end. Here's it's parse logic in point form: 1. Search for first recognized tag (consulting ColdFusion::ParseRules object). 2. If found, create a new tag object tasked to handle this tag (based on tag<->object mapping supplied by the ColdFusion::ParseRules object). 3. Complete initializing the newly created tag object by searching for it's end tag (in the template text) and setting tag's body to whatever's found enclosed within the pair opening/closing tags. 4. Repeat until entire template is parsed. Note: the first instance of a ParseTree class (initialized inside Parser class) will thus create 1-st level of the parse tree. The task of completing entire tree rests on nested tags each of which will use ParseTree objects to transform their bodies into tag trees. Here's an example of how 1-st level parse tree might look like: --------------------------- #### --------------------- Hello World! Welcome, #foo_name#! BOOL is true! BOOL is false! ---------------------