Chapter 13. Reflection
Reflection, the ability to treat language constructs as data, is implemented in Rosetta using abstract syntax structures, template expressions, and interpretation functions. Abstract syntax structures, or simply AST structures, are Rosetta data types that internally represent the abstract syntax of Rosetta expressions. These structures are defined as Rosetta data types and can be manipulated like any other data type. Specifically, constructors, recognizers, and observers are defined for each AST structure to support creating and observing Rosetta specifications. AST structures are in every wadomainy Rosetta data structures and are defined in the standard
Template expressions define syntactic ...