$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r59321 - branches/quickbook-1.5-spirit2
From: daniel_james_at_[hidden]
Date: 2010-01-27 17:06:48
Author: danieljames
Date: 2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
New Revision: 59321
URL: http://svn.boost.org/trac/boost/changeset/59321
Log:
Try to reduce the amount of header dependencies.
Added:
   branches/quickbook-1.5-spirit2/fwd.hpp
      - copied, changed from r59320, /branches/quickbook-1.5-spirit2/code.hpp
Text files modified: 
   branches/quickbook-1.5-spirit2/actions.cpp              |    18 ++++++------------                      
   branches/quickbook-1.5-spirit2/actions.hpp              |    13 ++-----------                           
   branches/quickbook-1.5-spirit2/actions_class.cpp        |     5 ++++-                                   
   branches/quickbook-1.5-spirit2/actions_class.hpp        |     6 +++++-                                  
   branches/quickbook-1.5-spirit2/block.cpp                |    17 ++++++++---------                       
   branches/quickbook-1.5-spirit2/block.hpp                |     6 +-----                                  
   branches/quickbook-1.5-spirit2/block_actions.cpp        |     9 +++++----                               
   branches/quickbook-1.5-spirit2/block_list.cpp           |     5 +++--                                   
   branches/quickbook-1.5-spirit2/code.hpp                 |     4 ++++                                    
   branches/quickbook-1.5-spirit2/code_snippet_grammar.cpp |     8 ++------                                
   branches/quickbook-1.5-spirit2/code_snippet_types.hpp   |     8 ++++++--                                
   branches/quickbook-1.5-spirit2/collector.cpp            |    12 +++++++++---                            
   branches/quickbook-1.5-spirit2/collector.hpp            |    13 ++++++-------                           
   branches/quickbook-1.5-spirit2/fwd.hpp                  |    29 ++++++++++++++---------------           
   branches/quickbook-1.5-spirit2/grammars.hpp             |     3 +--                                     
   branches/quickbook-1.5-spirit2/input_path.hpp           |     2 +-                                      
   branches/quickbook-1.5-spirit2/parse_types.hpp          |     6 +-----                                  
   branches/quickbook-1.5-spirit2/parse_utils.hpp          |    20 +++++---------------                    
   branches/quickbook-1.5-spirit2/phrase.cpp               |    28 ++++++++++++++--------------            
   branches/quickbook-1.5-spirit2/phrase.hpp               |     2 +-                                      
   branches/quickbook-1.5-spirit2/phrase_actions.cpp       |     4 +++-                                    
   branches/quickbook-1.5-spirit2/phrase_image.cpp         |     5 +++--                                   
   branches/quickbook-1.5-spirit2/phrase_template.cpp      |     9 +++++----                               
   branches/quickbook-1.5-spirit2/syntax_highlight.cpp     |     2 +-                                      
   branches/quickbook-1.5-spirit2/template_stack.hpp       |     6 ++----                                  
   branches/quickbook-1.5-spirit2/utils.hpp                |     1 -                                       
   26 files changed, 112 insertions(+), 129 deletions(-)
Modified: branches/quickbook-1.5-spirit2/actions.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/actions.cpp	(original)
+++ branches/quickbook-1.5-spirit2/actions.cpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -8,19 +8,13 @@
     License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
     http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
-#include <numeric>
-#include <functional>
-#include <algorithm>
-#include <iterator>
-#include <boost/filesystem/convenience.hpp>
-#include <boost/filesystem/fstream.hpp>
+
 #include <boost/spirit/include/support_unused.hpp>
-#include "quickbook.hpp"
 #include "actions.hpp"
-#include "utils.hpp"
-#include "markups.hpp"
 #include "actions_class.hpp"
-#include "grammars.hpp"
+#include "grammars.hpp" // TODO: Needed for doc_info
+#include "quickbook.hpp" // TODO: Quickbook version number
+#include "utils.hpp"
 
 namespace quickbook
 {
@@ -46,7 +40,7 @@
 
     void error_action::operator()(iterator_range x, unused_type, unused_type) const
     {
-        boost::spirit::classic::file_position const pos = x.begin().get_position();
+        file_position const pos = x.begin().get_position();
         detail::outerr(pos.file,pos.line)
             << "Syntax Error near column " << pos.column << ".\n";
         ++error_count;
@@ -64,7 +58,7 @@
 
     void element_id_warning_action::operator()(iterator_range x, unused_type, unused_type) const
     {
-        boost::spirit::classic::file_position const pos = x.begin().get_position();
+        file_position const pos = x.begin().get_position();
         detail::outwarn(pos.file,pos.line) << "Empty id.\n";        
     }
 
Modified: branches/quickbook-1.5-spirit2/actions.hpp
==============================================================================
--- branches/quickbook-1.5-spirit2/actions.hpp	(original)
+++ branches/quickbook-1.5-spirit2/actions.hpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -16,13 +16,8 @@
 #include <vector>
 #include <stack>
 #include <algorithm>
-#include <boost/spirit/include/classic_iterator.hpp>
-#include <boost/filesystem/operations.hpp>
-#include <boost/foreach.hpp>
-#include <boost/tuple/tuple.hpp>
-#include "collector.hpp"
-#include "template_stack.hpp"
-#include "utils.hpp"
+#include <boost/spirit/include/qi_symbols.hpp>
+#include "fwd.hpp"
 
 #ifdef BOOST_MSVC
 // disable copy/assignment could not be generated, unreferenced formal params
@@ -33,7 +28,6 @@
 namespace quickbook
 {
     namespace qi = boost::spirit::qi;
-    namespace fs = boost::filesystem;
     using boost::spirit::unused_type;
 
     struct macro {
@@ -46,9 +40,6 @@
 
     typedef qi::symbols<char, macro> macro_symbols;    
 
-    typedef boost::spirit::classic::position_iterator<
-        std::string::const_iterator> iterator;
-    typedef boost::spirit::classic::file_position file_position;
     typedef boost::iterator_range<iterator> iterator_range;
     typedef std::map<std::string, std::string> attribute_map;
 
Modified: branches/quickbook-1.5-spirit2/actions_class.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/actions_class.cpp	(original)
+++ branches/quickbook-1.5-spirit2/actions_class.cpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -8,8 +8,9 @@
     License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
     http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
+
+#include <boost/filesystem/operations.hpp>
 #include "actions_class.hpp"
-#include "markups.hpp"
 
 #if (defined(BOOST_MSVC) && (BOOST_MSVC <= 1310))
 #pragma warning(disable:4355)
@@ -17,6 +18,8 @@
 
 namespace quickbook
 {
+    namespace fs = boost::filesystem;
+
     actions::actions(char const* filein_, fs::path const& outdir_, string_stream& out_)
     // header info
         : doc_id()
Modified: branches/quickbook-1.5-spirit2/actions_class.hpp
==============================================================================
--- branches/quickbook-1.5-spirit2/actions_class.hpp	(original)
+++ branches/quickbook-1.5-spirit2/actions_class.hpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -10,8 +10,12 @@
 #if !defined(BOOST_SPIRIT_ACTIONS_CLASS_HPP)
 #define BOOST_SPIRIT_ACTIONS_CLASS_HPP
 
-#include "actions.hpp"
 #include <boost/tuple/tuple.hpp>
+#include <boost/filesystem/path.hpp>
+#include "fwd.hpp"
+#include "actions.hpp"
+#include "collector.hpp"
+#include "template_stack.hpp"
 
 namespace quickbook
 {
Modified: branches/quickbook-1.5-spirit2/block.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/block.cpp	(original)
+++ branches/quickbook-1.5-spirit2/block.cpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -8,13 +8,6 @@
     http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
 
-#include "grammars.hpp"
-#include "block.hpp"
-#include "quickbook.hpp"
-#include "utils.hpp"
-#include "actions_class.hpp"
-#include "parse_utils.hpp"
-#include "markups.hpp"
 #include <boost/spirit/include/qi_core.hpp>
 #include <boost/spirit/include/qi_eol.hpp>
 #include <boost/spirit/include/qi_eps.hpp>
@@ -23,10 +16,16 @@
 #include <boost/spirit/include/qi_repeat.hpp>
 #include <boost/spirit/include/phoenix_core.hpp>
 #include <boost/spirit/include/phoenix_operator.hpp>
-#include <boost/spirit/include/phoenix_container.hpp>
-#include <boost/spirit/include/phoenix_bind.hpp>
 #include <boost/spirit/include/phoenix_fusion.hpp>
 #include <boost/fusion/include/adapt_struct.hpp>
+#include "grammars.hpp"
+#include "block.hpp"
+#include "quickbook.hpp"
+#include "utils.hpp"
+#include "actions_class.hpp"
+#include "parse_utils.hpp"
+#include "markups.hpp"
+#include "code.hpp"
 
 BOOST_FUSION_ADAPT_STRUCT(
     quickbook::paragraph,
Modified: branches/quickbook-1.5-spirit2/block.hpp
==============================================================================
--- branches/quickbook-1.5-spirit2/block.hpp	(original)
+++ branches/quickbook-1.5-spirit2/block.hpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -13,15 +13,11 @@
 #include <string>
 #include <vector>
 #include <boost/optional.hpp>
-#include <boost/spirit/include/classic_position_iterator.hpp>
+#include "fwd.hpp"
 #include "parse_types.hpp"
-#include "code.hpp"
 
 namespace quickbook
 {
-    class actions;
-    typedef boost::spirit::classic::file_position file_position;
-
     struct hr
     {
     };
Modified: branches/quickbook-1.5-spirit2/block_actions.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/block_actions.cpp	(original)
+++ branches/quickbook-1.5-spirit2/block_actions.cpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -8,15 +8,16 @@
     http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
 
+#include <numeric>
+#include <boost/assert.hpp>
+#include <boost/filesystem/convenience.hpp>
 #include "block.hpp"
 #include "actions_class.hpp"
 #include "markups.hpp"
 #include "quickbook.hpp"
 #include "grammars.hpp"
 #include "code_snippet_types.hpp"
-#include <numeric>
-#include <boost/assert.hpp>
-#include <boost/filesystem/convenience.hpp>
+#include "utils.hpp"
 
 namespace quickbook
 {
@@ -450,7 +451,7 @@
             std::string tname = boost::get<0>(ts)[0];
             if (actions.templates.find_top_scope(tname))
             {
-                boost::spirit::classic::file_position const pos = boost::get<1>(ts);
+                file_position const pos = boost::get<1>(ts);
                 detail::outerr(pos.file, pos.line)
                     << "Template Redefinition: " << tname << std::endl;
                 ++actions.error_count;
Modified: branches/quickbook-1.5-spirit2/block_list.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/block_list.cpp	(original)
+++ branches/quickbook-1.5-spirit2/block_list.cpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -8,9 +8,10 @@
     http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
 
+#include <boost/assert.hpp>
 #include "block.hpp"
 #include "actions_class.hpp"
-#include <boost/assert.hpp>
+#include "utils.hpp"
 
 namespace quickbook
 {
@@ -76,7 +77,7 @@
     
             if (it->mark != list_marks.top().first)
             {
-                boost::spirit::classic::file_position const pos = it->position;
+                file_position const pos = it->position;
                 detail::outerr(pos.file,pos.line)
                     << "Illegal change of list style near column " << pos.column << ".\n";
                 detail::outwarn(pos.file,pos.line)
Modified: branches/quickbook-1.5-spirit2/code.hpp
==============================================================================
--- branches/quickbook-1.5-spirit2/code.hpp	(original)
+++ branches/quickbook-1.5-spirit2/code.hpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -10,6 +10,10 @@
 #if !defined(BOOST_SPIRIT_QUICKBOOK_CODE_HPP)
 #define BOOST_SPIRIT_QUICKBOOK_CODE_HPP
 
+#include <string>
+#include <boost/fusion/include/adapt_struct.hpp>
+#include "fwd.hpp"
+
 namespace quickbook
 {
     struct code {
Modified: branches/quickbook-1.5-spirit2/code_snippet_grammar.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/code_snippet_grammar.cpp	(original)
+++ branches/quickbook-1.5-spirit2/code_snippet_grammar.cpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -11,18 +11,14 @@
 #include <boost/spirit/include/qi_eol.hpp>
 #include <boost/spirit/include/qi_eps.hpp>
 #include <boost/spirit/include/qi_attr.hpp>
-#include <boost/spirit/include/phoenix_core.hpp>
-#include <boost/spirit/include/phoenix_bind.hpp>
-#include <boost/spirit/include/phoenix_operator.hpp>
+#include "fwd.hpp"
 #include "code_snippet_types.hpp"
 #include "grammars.hpp"
 #include "parse_utils.hpp"
-#include "actions.hpp"
-#include "actions_class.hpp"
 
 namespace quickbook
 {
-    namespace ph = boost::phoenix;
+    namespace qi = boost::spirit::qi;
 
     namespace
     {
Modified: branches/quickbook-1.5-spirit2/code_snippet_types.hpp
==============================================================================
--- branches/quickbook-1.5-spirit2/code_snippet_types.hpp	(original)
+++ branches/quickbook-1.5-spirit2/code_snippet_types.hpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -15,11 +15,15 @@
 #include <vector>
 #include <string>
 #include <boost/fusion/include/adapt_struct.hpp>
-#include "parse_types.hpp"
-#include "actions.hpp"
+#include <boost/spirit/include/support_unused.hpp>
+#include "fwd.hpp"
+// TODO: Convert template_symbol into a struct so it can be forward declared.
+#include "template_stack.hpp"
 
 namespace quickbook
 {
+    using boost::spirit::unused_type;
+
     struct code_snippet
     {
         file_position position;
Modified: branches/quickbook-1.5-spirit2/collector.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/collector.cpp	(original)
+++ branches/quickbook-1.5-spirit2/collector.cpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -6,14 +6,20 @@
     License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
     http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
-#include "collector.hpp"
+
 #include <boost/assert.hpp>
+#include <boost/iostreams/device/back_inserter.hpp>
+#include <boost/iostreams/filtering_stream.hpp>
+#include "collector.hpp"
 
 namespace quickbook
 {
+    typedef boost::iostreams::filtering_ostream filtering_ostream;
+
     string_stream::string_stream()
         : buffer_ptr(new std::string())
-        , stream_ptr(new ostream(boost::iostreams::back_inserter(*buffer_ptr.get())))
+        , stream_ptr(new filtering_ostream(
+            boost::iostreams::back_inserter(*buffer_ptr.get())))
     {}
 
     string_stream::string_stream(string_stream const& other)
@@ -28,7 +34,7 @@
         stream_ptr = other.stream_ptr;
         return *this;
     }
-        
+
     collector::collector()
         : main(default_)
         , top(default_)
Modified: branches/quickbook-1.5-spirit2/collector.hpp
==============================================================================
--- branches/quickbook-1.5-spirit2/collector.hpp	(original)
+++ branches/quickbook-1.5-spirit2/collector.hpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -11,18 +11,14 @@
 
 #include <string>
 #include <stack>
+#include <ostream>
 #include <boost/ref.hpp>
 #include <boost/shared_ptr.hpp>
-#include <boost/noncopyable.hpp>
-#include <boost/iostreams/device/back_inserter.hpp>
-#include <boost/iostreams/filtering_stream.hpp>
 
 namespace quickbook
 {
     struct string_stream
     {
-        typedef boost::iostreams::filtering_ostream ostream;
-
         string_stream();
         string_stream(string_stream const& other);
         string_stream& operator=(string_stream const& other);
@@ -58,10 +54,10 @@
     private:
 
         boost::shared_ptr<std::string> buffer_ptr;
-        boost::shared_ptr<ostream> stream_ptr;
+        boost::shared_ptr<std::ostream> stream_ptr;
     };
 
-    struct collector : boost::noncopyable
+    struct collector
     {
         collector();
         collector(string_stream& out);
@@ -101,6 +97,9 @@
         boost::reference_wrapper<string_stream> main;
         boost::reference_wrapper<string_stream> top;
         string_stream default_;
+        
+        collector(collector const&);
+        collector& operator=(collector const&);
     };
     
     template <typename T>
Copied: branches/quickbook-1.5-spirit2/fwd.hpp (from r59320, /branches/quickbook-1.5-spirit2/code.hpp)
==============================================================================
--- /branches/quickbook-1.5-spirit2/code.hpp	(original)
+++ branches/quickbook-1.5-spirit2/fwd.hpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -7,25 +7,24 @@
     License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
     http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
-#if !defined(BOOST_SPIRIT_QUICKBOOK_CODE_HPP)
-#define BOOST_SPIRIT_QUICKBOOK_CODE_HPP
+#if !defined(BOOST_SPIRIT_FWD_HPP)
+#define BOOST_SPIRIT_FWD_HPP
+
+#include <boost/spirit/include/classic_iterator.hpp>
 
 namespace quickbook
 {
-    struct code {
-        bool block;
-        file_position position;
-        std::string code;
-    };
+    struct macro;
+
+    struct actions;
+    struct code_snippet_actions;
+
+    struct collector;
+    struct string_stream;
     
-    void process(quickbook::actions&, code const&);
+    typedef boost::spirit::classic::position_iterator<
+        std::string::const_iterator> iterator;
+    typedef boost::spirit::classic::file_position file_position;
 }
 
-BOOST_FUSION_ADAPT_STRUCT(
-    quickbook::code,
-    (quickbook::file_position, position)
-    (std::string, code)
-    (bool, block)
-)
-
 #endif
\ No newline at end of file
Modified: branches/quickbook-1.5-spirit2/grammars.hpp
==============================================================================
--- branches/quickbook-1.5-spirit2/grammars.hpp	(original)
+++ branches/quickbook-1.5-spirit2/grammars.hpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -11,9 +11,8 @@
 #define BOOST_SPIRIT_QUICKBOOK_GRAMMARS_HPP
 
 #include <boost/spirit/include/qi_core.hpp>
-#include <boost/spirit/include/qi_symbols.hpp>
 #include <boost/scoped_ptr.hpp>
-#include "actions_class.hpp"
+#include "fwd.hpp"
 
 namespace quickbook
 {
Modified: branches/quickbook-1.5-spirit2/input_path.hpp
==============================================================================
--- branches/quickbook-1.5-spirit2/input_path.hpp	(original)
+++ branches/quickbook-1.5-spirit2/input_path.hpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -10,8 +10,8 @@
 #define BOOST_QUICKBOOK_DETAIL_INPUT_PATH_HPP
 
 #include <vector>
-#include <boost/any.hpp>
 #include <string>
+#include <boost/any.hpp>
 
 namespace quickbook { namespace detail
 {
Modified: branches/quickbook-1.5-spirit2/parse_types.hpp
==============================================================================
--- branches/quickbook-1.5-spirit2/parse_types.hpp	(original)
+++ branches/quickbook-1.5-spirit2/parse_types.hpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -11,15 +11,11 @@
 #define BOOST_SPIRIT_QUICKBOOK_PARSE_TYPES_HPP
 
 #include <string>
-#include <boost/spirit/include/classic_position_iterator.hpp>
 #include <boost/fusion/include/adapt_struct.hpp>
+#include "fwd.hpp"
 
 namespace quickbook
 {
-    // TODO: Add to a forward header somewhere.
-    class actions;
-    struct macro;
-    typedef boost::spirit::classic::file_position file_position;
 
     struct markup {
         markup()
Modified: branches/quickbook-1.5-spirit2/parse_utils.hpp
==============================================================================
--- branches/quickbook-1.5-spirit2/parse_utils.hpp	(original)
+++ branches/quickbook-1.5-spirit2/parse_utils.hpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -14,14 +14,13 @@
 
 #include <boost/spirit/include/phoenix_core.hpp>
 #include <boost/spirit/include/phoenix_function.hpp>
-#include <boost/spirit/include/support_attributes.hpp>
 #include <boost/spirit/include/phoenix_bind.hpp>
-#include <boost/spirit/include/qi_core.hpp>
+#include <boost/spirit/include/support_attributes.hpp>
 #include <string>
 
 namespace quickbook
 {
-    namespace qi = boost::spirit::qi;
+    namespace spirit = boost::spirit;
     namespace ph = boost::phoenix;
 
     // as_string - converts a char range to a string.
@@ -60,10 +59,7 @@
     
         template <typename Context>
         void operator()(Member& attrib, Context& context, bool& pass) const {
-            namespace qi = boost::spirit::qi;
-            namespace ph = boost::phoenix;
-        
-            (ph::bind(mem_ptr_, qi::_val) = attrib)(attrib, context, pass);
+            (ph::bind(mem_ptr_, spirit::_val) = attrib)(attrib, context, pass);
         }
         
         Member Struct::*mem_ptr_;
@@ -75,18 +71,12 @@
     
         template <typename Context>
         void operator()(std::string& attrib, Context& context, bool& pass) const {
-            namespace qi = boost::spirit::qi;
-            namespace ph = boost::phoenix;
-        
-            (ph::bind(mem_ptr_, qi::_val) = attrib)(attrib, context, pass);
+            (ph::bind(mem_ptr_, spirit::_val) = attrib)(attrib, context, pass);
         }
 
         template <typename Attrib, typename Context>
         void operator()(Attrib& attrib, Context& context, bool& pass) const {
-            namespace qi = boost::spirit::qi;
-            namespace ph = boost::phoenix;
-        
-            (ph::bind(mem_ptr_, qi::_val) = std::string(attrib.begin(), attrib.end()))(attrib, context, pass);
+            (ph::bind(mem_ptr_, spirit::_val) = std::string(attrib.begin(), attrib.end()))(attrib, context, pass);
         }
         
         std::string Struct::*mem_ptr_;
Modified: branches/quickbook-1.5-spirit2/phrase.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/phrase.cpp	(original)
+++ branches/quickbook-1.5-spirit2/phrase.cpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -8,26 +8,26 @@
     http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
 
-#include "phrase.hpp"
-#include "grammars.hpp"
-#include "quickbook.hpp"
-#include "utils.hpp"
-#include "markups.hpp"
-#include "actions_class.hpp"
-#include "parse_utils.hpp"
 #include <map>
 #include <boost/spirit/include/qi_core.hpp>
-#include <boost/spirit/include/qi_auxiliary.hpp>
 #include <boost/spirit/include/qi_symbols.hpp>
-#include <boost/spirit/repository/include/qi_confix.hpp>
-#include <boost/spirit/include/phoenix_core.hpp>
+#include <boost/spirit/include/qi_attr.hpp>
+#include <boost/spirit/include/qi_eoi.hpp>
+#include <boost/spirit/include/qi_eol.hpp>
+#include <boost/spirit/include/qi_eps.hpp>
 #include <boost/spirit/include/phoenix_operator.hpp>
-#include <boost/spirit/include/phoenix_container.hpp>
-#include <boost/spirit/include/phoenix_fusion.hpp>
-#include <boost/spirit/include/phoenix_bind.hpp>
-#include <boost/spirit/include/phoenix_function.hpp>
 #include <boost/fusion/include/std_pair.hpp>
 #include <boost/fusion/include/adapt_struct.hpp>
+#include "code.hpp"
+#include "phrase.hpp"
+#include "grammars.hpp"
+#include "actions_class.hpp"
+#include "markups.hpp"
+#include "quickbook.hpp"
+#include "parse_utils.hpp"
+/*
+#include "utils.hpp"
+*/
 
 BOOST_FUSION_ADAPT_STRUCT(
     quickbook::anchor,
Modified: branches/quickbook-1.5-spirit2/phrase.hpp
==============================================================================
--- branches/quickbook-1.5-spirit2/phrase.hpp	(original)
+++ branches/quickbook-1.5-spirit2/phrase.hpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -12,8 +12,8 @@
 
 #include <string>
 #include <map>
+#include "fwd.hpp"
 #include "parse_types.hpp"
-#include "code.hpp"
 #include "template_stack.hpp"
 
 namespace quickbook
Modified: branches/quickbook-1.5-spirit2/phrase_actions.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/phrase_actions.cpp	(original)
+++ branches/quickbook-1.5-spirit2/phrase_actions.cpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -8,10 +8,12 @@
     http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
 
+#include <boost/assert.hpp>
 #include "phrase.hpp"
 #include "actions_class.hpp"
 #include "markups.hpp"
-#include <boost/assert.hpp>
+#include "utils.hpp"
+#include "code.hpp"
 
 namespace quickbook
 {    
Modified: branches/quickbook-1.5-spirit2/phrase_image.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/phrase_image.cpp	(original)
+++ branches/quickbook-1.5-spirit2/phrase_image.cpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -8,10 +8,11 @@
     http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
 
-#include "phrase.hpp"
-#include "actions_class.hpp"
 #include <boost/filesystem/convenience.hpp>
 #include <boost/filesystem/fstream.hpp>
+#include "phrase.hpp"
+#include "actions_class.hpp"
+#include "utils.hpp"
 
 namespace quickbook
 {
Modified: branches/quickbook-1.5-spirit2/phrase_template.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/phrase_template.cpp	(original)
+++ branches/quickbook-1.5-spirit2/phrase_template.cpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -12,6 +12,7 @@
 #include "grammars.hpp"
 #include "actions_class.hpp"
 #include "quickbook.hpp"
+#include "utils.hpp"
 
 namespace quickbook
 {    
@@ -70,7 +71,7 @@
         bool break_arguments(
             std::vector<std::string>& params
           , std::vector<std::string> const& template_
-          , boost::spirit::classic::file_position const& pos
+          , file_position const& pos
         )
         {
             // Quickbook 1.4-: If there aren't enough parameters seperated by
@@ -123,7 +124,7 @@
             std::vector<std::string>& params
           , std::vector<std::string> const& template_
           , template_scope const& scope
-          , boost::spirit::classic::file_position const& pos
+          , file_position const& pos
           , quickbook::actions& actions
         )
         {
@@ -157,7 +158,7 @@
         bool parse_template(
             std::string& body
           , std::string& result
-          , boost::spirit::classic::file_position const& template_pos
+          , file_position const& template_pos
           , bool template_escape
           , quickbook::actions& actions
         )
@@ -242,7 +243,7 @@
                 actions.templates.set_parent_scope(*boost::get<2>(x.symbol));
 
             std::vector<std::string> template_ = boost::get<0>(x.symbol);
-            boost::spirit::classic::file_position template_pos = boost::get<1>(x.symbol);
+            file_position template_pos = boost::get<1>(x.symbol);
 
             std::vector<std::string> params = x.params;
     
Modified: branches/quickbook-1.5-spirit2/syntax_highlight.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/syntax_highlight.cpp	(original)
+++ branches/quickbook-1.5-spirit2/syntax_highlight.cpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -16,9 +16,9 @@
 #include <boost/spirit/include/qi_directive.hpp>
 #include <boost/fusion/include/adapt_struct.hpp>
 #include "actions_class.hpp"
-#include "parse_types.hpp"
 #include "grammars.hpp"
 #include "phrase.hpp"
+#include "utils.hpp"
 
 namespace quickbook
 {
Modified: branches/quickbook-1.5-spirit2/template_stack.hpp
==============================================================================
--- branches/quickbook-1.5-spirit2/template_stack.hpp	(original)
+++ branches/quickbook-1.5-spirit2/template_stack.hpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -13,12 +13,10 @@
 #include <deque>
 #include <vector>
 #include <boost/tuple/tuple.hpp>
-#include <boost/assert.hpp>
-#include <boost/spirit/include/classic_position_iterator.hpp>
 #include <boost/spirit/include/qi_symbols.hpp>
 #include <boost/spirit/include/qi_parse.hpp>
-#include <boost/spirit/include/support_attributes.hpp>
 #include <boost/next_prior.hpp>
+#include "fwd.hpp"
 
 namespace quickbook
 {
@@ -38,7 +36,7 @@
 
     typedef boost::tuple<
             std::vector<std::string>
-          , boost::spirit::classic::file_position
+          , file_position
           , template_scope const*>
     template_symbol;
 
Modified: branches/quickbook-1.5-spirit2/utils.hpp
==============================================================================
--- branches/quickbook-1.5-spirit2/utils.hpp	(original)
+++ branches/quickbook-1.5-spirit2/utils.hpp	2010-01-27 17:06:45 EST (Wed, 27 Jan 2010)
@@ -14,7 +14,6 @@
 #include <iostream>
 #include <cctype>
 #include <boost/ref.hpp>
-#include <boost/assert.hpp>
 
 namespace quickbook { namespace detail
 {