     o "Class"
     o "Splat"
     o "Existence"
-    o "Comment"
-    o "Extension"
+    o "COMMENT"
+    o "EXTENSION"
   ]
 
   # A an indented block of expressions. Note that the [Rewriter](rewriter.html)

  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
  ]

  # The most basic form of *if* is a condition and an action. The following

  # Assignment when it happens within an object literal. The difference from
  # the ordinary **Assign** is that these allow numbers and strings as keys.
  AssignObj: [
    o "IDENTIFIER ASSIGN Expression",           -> new AssignNode new ValueNode($1), $3, 'object'
    o "AlphaNumeric ASSIGN Expression",         -> new AssignNode new ValueNode($1), $3, 'object'
    o "COMMENT"
  ]

  # A return statement from a function body.
  Return: [
    o "RETURN Expression",                      -> new ReturnNode $2
    o "RETURN",                                 -> new ReturnNode new ValueNode new LiteralNode 'null'
  ]

  # [The existential operator](http://jashkenas.github.com/coffee-script/#existence).
