 
 {Scope} = require './scope'
 {RESERVED, STRICT_PROSCRIBED} = require './lexer'
+iced = require './iced'
 
 # Import the helpers we plan to use.
 {compact, flatten, extend, merge, del, starts, ends, last, some,

NO      = -> no
THIS    = -> this
NEGATE  = -> @negated = not @negated; this

#### CodeFragment


  # `toString` representation of the node, for inspecting the parse tree.
  # This is what `coffee --nodes` prints out.
  toString: (idt = '', name = @constructor.name) ->
    extras = [] 
    extras.push "A" if @icedNodeFlag
    extras.push "L" if @icedLoopFlag
    extras.push "P" if @icedCpsPivotFlag
    extras.push "C" if @icedHasAutocbFlag
    extras.push "D" if @icedParentAwait
    extras.push "G" if @icedFoundArguments
    if extras.length
      extras = " (" + extras.join('') + ")"
    tree = '\n' + idt + name
    tree = '\n' + idt + name
    tree += '?' if @soak
    tree += extras
    @eachChild (node) -> tree += node.toString idt + TAB
    if @icedContinuationBlock
      idt += TAB
      tree += '\n' + idt + "Continuation"
      tree += @icedContinuationBlock.toString idt + TAB
    tree

  # Passes each child to a function, breaking when the function returns `false`.
