     @close_open_calls_and_indexes()
     @add_implicit_indentation()
     @add_implicit_parentheses()
+    @rewrite_object_keys()
     @ensure_balance BALANCED_PAIRS
     @rewrite_closing_parens()
     @tokens

# ---------

# List of the token pairs that must be balanced.
BALANCED_PAIRS: [['(', ')'], ['[', ']'], ['{', '}'], ['INDENT', 'OUTDENT'],
  ['PARAM_START', 'PARAM_END'], ['CALL_START', 'CALL_END'],
  ['INDEX_START', 'INDEX_END'], ['SOAKED_INDEX_START', 'SOAKED_INDEX_END']]

# The inverse mappings of `BALANCED_PAIRS` we're trying to fix up, so we can
# look things up from either end.


# Import the helpers we need.
{include}: helpers

# Helper method to check if the given stream of tokens matches the exit conditions
exits: (prev, token, post, cond) ->
  length: 0
  match:  0
  args:   {prev, token, post}
  for k, v of args when k in cond
    length: + 1
    for pair in cond[k]
      match: + 1 if v[0] is pair[0] and v[1] is pair[1]
  return match is length

# The **Rewriter** class is used by the [Lexer](lexer.html), directly against
# its internal array of tokens.
