Notation

The syntax of the language is specified using Extended Backus-Naur Form (EBNF):

  1. Production = production_name "=" [ Expression ] "." .
  2. Expression = Alternative { "|" Alternative } .
  3. Alternative = Term { Term } .
  4. Term = production_name | token [ "…" token ] | Group | Option | Repetition .
  5. Group = "(" Expression ")" .
  6. Option = "[" Expression "]" .
  7. Repetition = "{" Expression "}" .

A production is an expression constructed from terms and the following operators, in increasing precedence:

  1. | alternation
  2. () grouping
  3. [] option (0 or 1 times)
  4. {} repetition (0 to n times)

Lowercase production names are used to identify lexical tokens. Non-terminals are in camel case. Lexical tokens are enclosed in double quotes ("") or back quotes (``).