Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r60296 - trunk/libs/spirit/example/qi/scheme
From: joel_at_[hidden]
Date: 2010-03-07 08:57:59


Author: djowel
Date: 2010-03-07 08:57:58 EST (Sun, 07 Mar 2010)
New Revision: 60296
URL: http://svn.boost.org/trac/boost/changeset/60296

Log:
some more tweaks
Text files modified:
   trunk/libs/spirit/example/qi/scheme/utree.hpp | 111 +++++++++++++++++++++++----------------
   1 files changed, 64 insertions(+), 47 deletions(-)

Modified: trunk/libs/spirit/example/qi/scheme/utree.hpp
==============================================================================
--- trunk/libs/spirit/example/qi/scheme/utree.hpp (original)
+++ trunk/libs/spirit/example/qi/scheme/utree.hpp 2010-03-07 08:57:58 EST (Sun, 07 Mar 2010)
@@ -171,6 +171,17 @@
         explicit utree(char const* str, std::size_t len);
         explicit utree(std::string const& str);
 
+ utree(utree const& other);
+ ~utree();
+
+ utree& operator=(utree const& other);
+ utree& operator=(bool b);
+ utree& operator=(unsigned i);
+ utree& operator=(int i);
+ utree& operator=(double d);
+ utree& operator=(char const* s);
+ utree& operator=(std::string const& s);
+
         template <typename F>
         typename F::result_type
         static visit(utree const& x, F f);
@@ -195,17 +206,6 @@
         typename F::result_type
         static visit(utree& x, utree& y, F f);
 
- utree(utree const& other) { copy(*this, other); }
- ~utree() { free(*this); }
-
- utree& operator=(utree const& other);
- utree& operator=(bool b);
- utree& operator=(unsigned i);
- utree& operator=(int i);
- utree& operator=(double d);
- utree& operator=(char const* s);
- utree& operator=(std::string const& s);
-
         template <typename T>
         void push_back(T const& val);
 
@@ -260,8 +260,8 @@
         type::info get_type() const;
         void set_type(type::info t);
         void ensure_list_type();
- static void free(utree& x);
- static void copy(utree& x, utree const& other);
+ void free();
+ void copy(utree const& other);
 
         struct construct_list {};
         utree(construct_list);
@@ -349,7 +349,9 @@
             set_type(utree_type::heap_string_type);
         }
         for (std::size_t i = 0; i != size; ++i)
+ {
             *str++ = *f++;
+ }
     }
 
     inline void fast_string::swap(fast_string& other)
@@ -411,15 +413,26 @@
         friend class boost::iterator_core_access;
         friend class scheme::utree;
 
- void increment() { node = node->next; }
- void decrement() { node = node->prev; }
+ void increment()
+ {
+ node = node->next;
+ }
+
+ void decrement()
+ {
+ node = node->prev;
+ }
 
         bool equal(node_iterator const& other) const
         {
             return node == other.node;
         }
 
- utree& dereference() const { return node->val; }
+ utree& dereference() const
+ {
+ return node->val;
+ }
+
         list::node* node;
     };
 
@@ -613,7 +626,7 @@
                 if (!is_string)
                 {
                     if (i != range.begin())
- out << ',';
+ out << ", ";
                 }
                 out << *i;
             }
@@ -798,26 +811,22 @@
         set_type(type::nil_type);
     }
 
- inline utree::utree(bool b)
- : b(b)
+ inline utree::utree(bool b) : b(b)
     {
         set_type(type::bool_type);
     }
 
- inline utree::utree(unsigned i)
- : i(i)
+ inline utree::utree(unsigned i) : i(i)
     {
         set_type(type::int_type);
     }
 
- inline utree::utree(int i)
- : i(i)
+ inline utree::utree(int i) : i(i)
     {
         set_type(type::int_type);
     }
 
- inline utree::utree(double d)
- : d(d)
+ inline utree::utree(double d) : d(d)
     {
         set_type(type::double_type);
     }
@@ -837,19 +846,29 @@
         s.construct(str.begin(), str.end());
     }
 
+ inline utree::utree(utree const& other)
+ {
+ copy(other);
+ }
+
+ inline utree::~utree()
+ {
+ free();
+ }
+
     inline utree& utree::operator=(utree const& other)
     {
         if (this != &other)
         {
- free(*this);
- copy(*this, other);
+ free();
+ copy(other);
         }
         return *this;
     }
 
     inline utree& utree::operator=(bool b_)
     {
- free(*this);
+ free();
         b = b_;
         set_type(type::bool_type);
         return *this;
@@ -857,7 +876,7 @@
 
     inline utree& utree::operator=(unsigned i_)
     {
- free(*this);
+ free();
         i = i_;
         set_type(type::int_type);
         return *this;
@@ -865,7 +884,7 @@
 
     inline utree& utree::operator=(int i_)
     {
- free(*this);
+ free();
         i = i_;
         set_type(type::int_type);
         return *this;
@@ -873,7 +892,7 @@
 
     inline utree& utree::operator=(double d_)
     {
- free(*this);
+ free();
         d = d_;
         set_type(type::double_type);
         return *this;
@@ -881,14 +900,14 @@
 
     inline utree& utree::operator=(char const* s_)
     {
- free(*this);
+ free();
         s.construct(s_, s_ + strlen(s_));
         return *this;
     }
 
     inline utree& utree::operator=(std::string const& s_)
     {
- free(*this);
+ free();
         s.construct(s_.begin(), s_.end());
         return *this;
     }
@@ -1033,7 +1052,7 @@
     inline void utree::clear()
     {
         BOOST_ASSERT(get_type() == type::list_type);
- free(*this);
+ free();
     }
 
     inline void utree::pop_front()
@@ -1151,43 +1170,41 @@
         }
     }
 
- inline void utree::free(utree& x)
+ inline void utree::free()
     {
- switch (x.get_type())
+ switch (get_type())
         {
- default:
- break;
             case type::heap_string_type:
- x.s.free();
+ s.free();
                 break;
             case type::list_type:
- x.l.free();
+ l.free();
                 break;
         };
     }
 
- inline void utree::copy(utree& x, utree const& other)
+ inline void utree::copy(utree const& other)
     {
- x.set_type(other.get_type());
+ set_type(other.get_type());
         switch (other.get_type())
         {
             case type::nil_type:
                 break;
             case type::bool_type:
- x.b = other.b;
+ b = other.b;
                 break;
             case type::int_type:
- x.i = other.i;
+ i = other.i;
                 break;
             case type::double_type:
- x.d = other.d;
+ d = other.d;
                 break;
             case type::small_string_type:
             case type::heap_string_type:
- x.s.copy(other.s);
+ s.copy(other.s);
                 break;
             case type::list_type:
- x.l.copy(other.l);
+ l.copy(other.l);
                 break;
         }
     }


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk