Synopsis The entities that can be declared in Rascal programs.
Description The following concepts are relevant for declarations:
  • Module: Declare a module.
  • Import: Declare the import a module.
  • Program: A Rascal program consists of a number of Modules.
  • StaticTyping: The static type system of Rascal.
  • AlgebraicDataType: Define a user-defined type (Algebraic Data Type).
  • Variable: Declare a variable.
  • Function: Declare a function.
  • SyntaxDefinition: Syntax Definitions allow the definition of parsers for programming languages, domain-specific languages and data formats.
  • Alias: Declare an alias for a type.
  • Annotation: Declare an annotation type for nodes.
  • Tag: b Tag declarations are not implemented (yet).
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