 
   top_sensitive: ->
     true
+
+  toString: (idt) ->
+    idt: (idt || '') + TAB
+    children: _.flatten [@params, @body.expressions]
+    @type + '\n' + _.map(children, (child) -> idt + child.toString(idt)).join('')
 
 }
 

    @statement ||= !!(@comment or @tags.statement or @body.is_statement() or (@else_body and @else_body.is_statement()))

  compile_condition: (o) ->
    (cond.compile(o) for cond in flatten([@condition])).join(' || ')

  compile_node: (o) ->
    if @is_statement() then @compile_statement(o) else @compile_ternary(o)

    end: if @is_statement() then ';' else ''
    idt + @value + end

  toString: (idt) ->
    '"' + @value + '"' + '\n'

}

LiteralNode::is_statement_only: LiteralNode::is_statement
