           # Unexpected close, insert correct close, adding to the debt.
           debt[mtag] += 1
           val: if mtag is 'INDENT' then match[1] else INVERSES[mtag]
-          this.tokens.splice(i, 0, [INVERSES[mtag], val])
+          @tokens.splice(i, 0, [INVERSES[mtag], val])
           return 1
     else
       return 1

      # If the tag is already in our debt, swallow it.
      if debt[inv] > 0
        debt[inv] -= 1
        this.tokens.splice(i, 1)
        return 0
      else
        # Pop the stack of open delimiters.

# Leading newlines would introduce an ambiguity in the grammar, so we
# dispatch them here.
re::remove_leading_newlines: ->
  @tokens.shift() if @tokens[0][0] is 'TERMINATOR'

# Some blocks occur in the middle of expressions -- when we're expecting
# this, remove their trailing newlines.
re::remove_mid_expression_newlines: ->
  @scan_tokens (prev, token, post, i) =>
    return 1 unless post and EXPRESSION_CLOSE.indexOf(post[0]) >= 0 and token[0] is 'TERMINATOR'
    @tokens.splice(i, 1)
    return 0

# Make sure that we don't accidentally break trailing commas, which need
# to go on the outside of expression closers.
re::move_commas_outside_outdents: ->
  @scan_tokens (prev, token, post, i) =>
    @tokens.splice(i, 1, token) if token[0] is 'OUTDENT' and prev[0] is ','
    return 1

# We've tagged the opening parenthesis of a method call, and the opening
