     o "Expression . . .",                       -> new SplatNode $1
   ]
   
+  # Variables and properties that can be assigned to.
   SimpleAssignable: [
     o "Identifier",                             -> new ValueNode $1
     o "Value Accessor",                         -> $1.push $2

    o "Super"
  ]

  Curry: [
    o "Value <- Arguments",                     -> new CurryNode $1, $3
  ]

  ]

  # The source of a comprehension is an array or object with an optional filter
  # clause. If it's an array comprehension, you can also choose to step through
  # in fixed-size increments.
  ForSource: [
    o "IN Expression",                               -> {source: $2}
    o "OF Expression",                               -> {source: $2, object: true}
    o "IN Expression WHEN Expression",               -> {source: $2, filter: $4}
    o "OF Expression WHEN Expression",               -> {source: $2, filter: $4, object: true}
    o "IN Expression BY Expression",                 -> {source: $2, step:   $4}
    o "IN Expression WHEN Expression BY Expression", -> {source: $2, filter: $4; step:   $6}
    o "IN Expression BY Expression WHEN Expression", -> {source: $2, step:   $4, filter: $6}
  ]

  # The CoffeeScript switch/when/else block replaces the JavaScript
