 # flexibility or more speed than a comprehension can provide.
 exports.While = class While extends Base
 
-  children:     ['condition', 'guard', 'body']
-  isStatement: YES
+  children: ['condition', 'guard', 'body']
+
+  topSensitive: YES
+  isStatement : YES
 
   constructor: (condition, opts) ->
     super()

      first = new Parens first   if first instanceof Code and first.bound
    super()
    @operator = @CONVERSIONS[op] or op
    (@first  = first ).tags.operation = yes
    (@second = second).tags.operation = yes if second
    @flip     = !!flip

  isUnary: ->
    not @second

  isComplex: -> @operator isnt '!' or @first.isComplex()

  isChainable: ->
    @operator in @CHAINABLE

  invert: ->
    if @operator in ['===', '!==']
      @operator = @INVERSIONS[@operator]
      this
    else if @second
      new Parens(this).invert()

# The CoffeeScript class definition.
exports.Class = class Class extends Base

  children: ['variable', 'parent', 'properties']

  isStatement:  YES

  # Initialize a **Class** with its name, an optional superclass, and a
  # list of prototype property assignments.
  constructor: (variable, @parent, props) ->
    super()
    @variable   = if variable is '__temp__' then new Literal variable else variable
    @properties = props or []
    @returns    = false

  makeReturn: ->
