 # `$1` would be the value of the first `Expression`, `$2` would be the token
 # for the `UNLESS` terminal, and `$3` would be the value of the second
 # `Expression`.
-grammar = {
+grammar =
 
   # The **Root** is the top-level node in the syntax tree. Since we parse bottom-up,
   # all parsing must end here.

    o "Expression ! OF Expression",             -> new OpNode '!', new ParentheticalNode new OpNode 'in', $1, $4
  ]

}

# Precedence
# ----------

  # The condition portion of a while loop.
  WhileSource: [
    o "WHILE Expression",                       -> new WhileNode $2
    o "WHILE Expression WHEN Expression",       -> new WhileNode $2, guard: $4
    o "UNTIL Expression",                       -> new WhileNode $2, invert: true
    o "UNTIL Expression WHEN Expression",       -> new WhileNode $2, invert: true, guard: $4
  ]

  # The while loop can either be normal, with a block of expressions to execute,
