Meta Explode
Stratego -- Strategies for Program Transformation
When using
concrete syntax for the
object language? the input is parsed against the combined syntax of the object language (for example Tiger, Java, XML or Stratego) and the
meta language? (in this case Stratego). This will result in an
abstract syntax tree that contains a mixture of meta- and object language abstract syntax. Since the
meta language? compiler only deals with the meta-language abstract syntax, the embedded object language abstract syntax needs to be expressed in terms of meta abstract syntax.
The transitions from the meta language to the object language and vice versa are marked by special constructors:
meta transition markers.
meta explode uses these constructors to determine the object fragments in the abstract syntax tree that have to be exploded to the meta language.
For Stratego this transformation is indepedent of the object language and is therefore generic. The
meta explode transformation component implements this explosion. It is used by the
Stratego Compiler
CategoryConcreteObjectSyntax