def wrap_up(expressions, stack, buf, stack_depth, multiple_expressions)
      stack << buf if (buf.length > 0)
      return stack unless multiple_expressions
      
      expressions << stack if stack.any?
      
      # Make sure that all of the expresisons get collapsed
      expressions = expressions.map do | e |
        compact_subexpr(e, stack_depth + 1)
      end
      
      return expressions
    end
def wrap_up(expressions, stack, buf, stack_depth, multiple_expressions)
      stack << buf if (buf.length > 0)
      return stack unless multiple_expressions
      
      expressions << stack if stack.any?
      
      # Make sure that all of the expresisons get collapsed
      expressions = expressions.map do | e |
        compact_subexpr(e, stack_depth + 1)
      end
      
      return expressions
    end
Package the expressions, stack and buffer.
 We use a special flag to tell us whether we need multuple expressions.
 If we do, the expressions will be returned. If not, just the stack.
 Also, anything that remains on the stack will be put on the expressions
 list if multiple_expressions is true.