Synopsis Combine concrete syntax with abstract syntax.
Details Automatic Manual
Description Concrete syntax gives full control over the textual appearance of a language and leads to parse trees in a standard format (i.e., values of type Tree).

Abstract syntax can be designed by the Rascal programmer according to his/her needs regarding the type checking, code generation, transformation, or optimization to be done on the abstract syntax trees.

How can we bridge this gap? We discuss two approaches:
  • Manual: a transformation is written manually to convert parse trees to abstract syntax trees.
  • Automatic: the library function Rascal:implode is used to automate this transformation.
Is this page unclear, or have you spotted an error? Please add a comment below and help us to improve it. For all other questions and remarks, visit