def each_expression(include_self = false, &block)
      traverse(include_self) do |event, exp, index|
        yield(exp, index) unless event == :exit
      end
    end
def each_expression(include_self = false, &block)
      traverse(include_self) do |event, exp, index|
        yield(exp, index) unless event == :exit
      end
    end
Iterates over the expressions of this expression as an array, passing
 the expression and its index within its parent to the given block.