   When: [
     o "LEADING_WHEN SimpleArgs Block",            -> new IfNode $2, $3, null, {statement: true}
     o "LEADING_WHEN SimpleArgs Block TERMINATOR", -> new IfNode $2, $3, null, {statement: true}
-    o "COMMENT TERMINATOR When",                  -> $3.comment: $1; $3
+    o "Comment TERMINATOR When",                  -> $3.comment: $1; $3
   ]
 
   # The most basic form of *if* is a condition and an action. The following

    o "Body TERMINATOR Line",                   -> $1.push $3
    o "Body TERMINATOR"
  ]

  # Expressions and statements, which make up a line in a body.
  Line: [
    o "Expression"
    o "Statement"
  ]

  # Pure statements which cannot be expressions.
  Statement: [
    o "Return"
    o "Throw"
    o "BREAK",                                  -> new LiteralNode $1
    o "CONTINUE",                               -> new LiteralNode $1
  ]

  # All the different types of expressions in our language. The basic unit of

  # (optional) reference to the current index. Or, *key, value*, in the case
  # of object comprehensions.
  ForVariables: [
    o "Identifier",                             -> [$1]
    o "Identifier , Identifier",                -> [$1, $3]
  ]

  # The source of a comprehension is an array or object with an optional filter
