While the previous section gave a brief overview on how to use the Phoenix library, this section will provide as the reference to the interfaces defined in phoenix.
With Phoenix being a domain specific embedded language this reference manual is different than most references to C++ libraries.
Phoenix is designed in a way that the language constructs are clearly separated from how they are evaluated. This follows the design principles of the C++ standard library. This design also allows us to see the code (i.e. Phoenix Actors) as data, and the different evaluation schemes, which act as the algorithms.
The remainder of this section is structured as following:
Definition of the Phoenix grammar
Reference to the mechanisms used to generate Phoenix actors
Extension mechanism of the Phoenix grammar
How Phoenix actors get evaluated
Reference to the predefined evaluators
Extension mechanism of the evaluation process
In depth discussion of the advertised features in the previous sections
Throughout this reference section various concepts are used. To disambiguate their meanings consider the following definitions.
A Phoenix Actor is the C++ Expression that is generated by the Phoenix Generators.
The Generator is a C++ Expression that results in a Phoenix Actor.
This Generator is: