Skip to content

Mapping

VladD2 edited this page Jul 7, 2016 · 5 revisions
| MapSyntax = "map" sm "syntax" sm RuleName=QualifiedReference ParametersOpt=MapSyntaxParameters? sm "->" sm AstName=NitraType MapSyntaxBody


  syntax MapSyntaxParameters = "(" (RuleMethodParam; "," sm)* ")"

  syntax RuleMethodParam = Name sm ":" sm Type=NitraType


  syntax MapSyntaxBody
  {
    | Empty = ";" nl
    | Expression1 = outline_begin_before nl "{" inl Expr=MapSyntaxExpression nl d "}" outline_end_before nl
    | Expression2 = sm "->" inl Expr=MapSyntaxExpression nl d
    | Inline = sm "=" inl Code=MapSyntaxCode d
    | Extensions = outline_begin_before nl OpenBrace="{" inl Extensions=MapExtension+ d CloseBrace="}" outline_end_before nl
      {
        syntax MapExtension = "|" sm Reference Body=MapSyntaxBody
      }
    | PerMember = outline_begin_before nl OpenBrace="{" inl Members=MapSyntaxExpressionAstMember* d CloseBrace="}" outline_end_before nl
  }

Clone this wiki locally