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