class Erubi::Engine

def with_buffer

code where << will append to the bufvar.
This method should only be called if the block will result in

of the next append after the block executes.
before yielding to the block. Mark that the buffer is the target
Make sure the buffer variable is the target of the next append
def with_buffer
  if @chain_appends
    unless @buffer_on_stack
      @src << '; ' << @bufvar
    end
    yield
    @buffer_on_stack = true
  else
    @src << ' ' << @bufvar
    yield
    @src << ';'
  end
end