|
Boost-Commit : |
From: lists.drrngrvy_at_[hidden]
Date: 2007-10-16 21:36:14
Author: drrngrvy
Date: 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
New Revision: 40102
URL: http://svn.boost.org/trac/boost/changeset/40102
Log:
Adding a couple of files. Updating copyright on the rest (plus some other minor changes); not sure what the deal with copyright is, so I went overboard instead.
Still need to update the document info in spirit.qbk
Added:
sandbox/boost_docs/branches/spirit_qbking/doc/change_log.qbk (contents, props changed)
sandbox/boost_docs/branches/spirit_qbking/doc/src/introduction.qbk (contents, props changed)
sandbox/boost_docs/branches/spirit_qbking/doc/src/preface.qbk (contents, props changed)
Text files modified:
sandbox/boost_docs/branches/spirit_qbking/doc/ISSUES | 3 ++-
sandbox/boost_docs/branches/spirit_qbking/doc/Jamfile.v2 | 2 +-
sandbox/boost_docs/branches/spirit_qbking/doc/src/acknowledgements.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/character_sets.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/closures.qbk | 17 +++++++++++++++++
sandbox/boost_docs/branches/spirit_qbking/doc/src/confix.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/debugging.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/distinct.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/dynamic_parsers.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/error_handling.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/escape_char_parser.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/file_iterator.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/functional.qbk | 17 +++++++++++++++++
sandbox/boost_docs/branches/spirit_qbking/doc/src/functor_parser.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/includes.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/lazy_parser.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/list_parsers.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/loops.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/multi_pass.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/organisation.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/parametric_parsers.qbk | 17 +++++++++++++++++
sandbox/boost_docs/branches/spirit_qbking/doc/src/portability.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/position_iterator.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/rationale.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/refactoring.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/regular_expression_parser.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/scoped_lock.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/select_parser.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/spirit.qbk | 13 ++++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/stored_rule.qbk | 13 +++++++++++--
sandbox/boost_docs/branches/spirit_qbking/doc/src/style.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/switch_parser.qbk | 13 ++++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/symbols.qbk | 12 +++++++++++-
sandbox/boost_docs/branches/spirit_qbking/doc/src/trees.qbk | 12 +++++++++++-
34 files changed, 375 insertions(+), 32 deletions(-)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/ISSUES
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/ISSUES (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/ISSUES 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,4 +1,5 @@
-
+Note:
+ The abstract looking sentences after the asterix' are strings to search for. This page is also less helpful than it could be.
trees.html
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/Jamfile.v2
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/Jamfile.v2 (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/Jamfile.v2 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -5,7 +5,7 @@
../bin.v2
;
-import boostbook ;
+#import boostbook ;
import quickbook ;
# generate the Boost.Book XML
Added: sandbox/boost_docs/branches/spirit_qbking/doc/change_log.qbk
==============================================================================
--- (empty file)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/change_log.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -0,0 +1,194 @@
+[/
+/ Copyright © 1998-2003 Joel de Guzman
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
+/
+/ Distributed under the Boost Software License, Version 1.0. (See accompanying
+/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+/]
+
+[section:change_log Spirit Change Log]
+
+[h3 1.8.6]
+
+* Fixed a integer overflow bug preventing to fail parsing on certain large integers. This bug was reported and fixed by Michael Andersen Nexø
+
+[h3 1.8.5]
+
+* For performance reasons, leaf_node_d/token_node_d have been changed to implicit lexems that create leaf nodes in one shot. The old token_node_d is still available and called reduced_node_d, now.
+* It's now possible to phoenix::bind (version 1) symbols::add.
+
+[h3 1.8.4]
+
+* Fixed no_actions bug where no_action is applied recursively.
+* Fixed the regex_p parser for Boost >= V1.33.0
+* Implemented a workaround for namespace issues VC++ has with Spirit's file_iterators
+* Fixed bug in tree match policies that prevented using gen_pt/ast_node_d, reported by Jascha Wetzel.
+* Made position_iterator usable with wchar_t based strings.
+
+[h3 1.8.3]
+
+* Config correction for Sun C++ by Steve Clamage (see this link).
+* Fixed multi_pass_iterator for 64 platforms, where sizeof(int) != sizeof(ptr_type).Fixed bug that prevents the use of closures with grammars with multiple entry points, reported by David Pierre
+* Fixed bug that prevented embedding of grammars with multiple entry points, reported by David Pierre
+* Added '\0' to the set of valid escaped characters for escape_ch_p.
+* Fixed a switch_p bug when used with a phoenix::actor as the conditional expression.
+* __LINE__ macro now gets expanded in BOOST_SPIRIT_ASSERT_EXCEPTION
+* Fixed a bug in the intersection parser reported by Yusaku Sugai
+* The symbol parser uses the null character internally. Checks were added so that:
+ o tst.add asserts if string contains the null character
+ o tst.find doesn't match null characters in the input
+* Fixed match_attr_traits.ipp to allow non-POD to pass through. The previous version taking in the ellipsis "..." does not allow PODs to pass through.
+* Allow evaluation to int as condition to if_p parser.
+* Applied performance improvement changes to the PT/AST code as suggested by Stefan Slapeta.
+* Fixed several problems with AST tree node directives (inner_node_d[], discard_first_node[], discard_last_node[] and infix_node_d[]).
+
+[h3 1.8.2]
+
+Maintenance release (almost the same as 1.8.1 plus a few fixes here and there)
+
+* Added specializations to str_p and ch_p to allow str_p('c') and ch_p("c") thus fixing some non-bugs
+* Fixed bug where a match<T> is a variant.
+* added Jamfile/Jamrules from CVS to spirit-1.8.1/
+* added boost-build.jam from boost to spirit-1.8.1/
+* disabled template multi-threading in libs/spirit/test/Jamfile
+* added a boost-header-include rule (from spirit-header-include) pointing to miniboost in libs/spirit/test/Jamfile
+* Fixed if_p inconsistency
+
+[h3 1.6.2]
+
+The Spirit 1.6.2 release is a bug-fix release only, no new features were introduced.
+
+* wchar_t friendly implementation of graph_p
+* Modified escape_char_parser::parse() to use a static parser instead of a rule. This will make it more friendly to use in trees. It should also be a little more efficient.
+* Moved to Boost Software license 1.0.
+* workaround for Error 322 name lookup in base class specialization finds type
+* fixed limit_d bug
+* [numerics] Workaround for aC++
+* Fixed a bug in the switch_p parser.
+* Fixed a EOI problem in multi_pass
+* added Jamfile/Jamrules from CVS to spirit-1.6.1/
+* added boost-build.jam from boost to spirit-1.6.1/
+* disabled template multi-threading in libs/spirit/test/Jamfile
+* added a boost-header-include rule (from spirit-header-include) pointing to miniboost in libs/spirit/test/Jamfile
+
+[h3 1.8.1 (Released with Boost 1.32.0)]
+
+The Spirit 1.8.1 release is a bug-fix release only, no new features were introduced.
+
+* Spirit now requires at least Boost 1.32.0 to compile correctly
+* Removed the support for the older iterator adaptor library and
+* Moved to use the new MPL library
+* Spirit was moved to use the Boost Software License 1.0.
+* Fixed several parsers to support post-skips more correctly.
+* Fixed a no_node_d[] bug.
+* Fixed a bug in shortest_d[].
+* Fixed a bug in limit_d[].
+* Fixed parser traversal meta code.
+* Fixed several bugs in switch_p.
+* Fixed AST generating problems, in particular with the loops related parsers.
+* Fixed several bugs in the multi_pass iterator.
+ o Fixed a problem, when the used base iterator returned a value_type and not a reference from its dereferencing operator.
+ o Fixed iterator_traits problem
+ o Fixed an EOI problem
+ o Fixed a bug, when used with std::cin
+* Found a bug in grammar.ipp when BOOST_SPIRIT_SINGLE_GRAMMAR_INSTANCE is defined
+* Rewritten safe_bool to use CRTP - now works also on MWCW, fixed several bugs with the implementation.
+* Fixed and extended the debug diagnostics printed by the parse tree code.
+
+[h3 1.8.0 (Released with Boost 1.31.0; Includes unreleased 1.7.1)]
+
+* Fixed a wchar_t problem in the regex_p parser.
+* removed code and workarounds for old compilers (VC6/7 and Borland)
+* Changed license to the new boost license.
+* Modified escape_char_parser::parse() to use a static parser instead of a rule. This will make it more friendly to use in trees. It should also be a little more efficient.
+
+[h3 1.7.1 (Unreleased; becomes 1.8.0)]
+
+* Added a full suite of predefined actors.
+* Moved rule_alias and stored_rule from core/non-terminal to dynamic.
+ Made as_parser a public API in meta/as_parser.hpp
+* Separated Core.Meta into its own module
+* Refactored Utility module
+ Moved some files into Utility.Parsers
+
+ * utilities
+ o parsers
+ + chset, regex, escape_char
+ confix, list, distinct
+ functor_parser
+ * support
+ o scoped_lock
+ flush_multi_pass
+ grammar_def
+ * actors
+ o assign
+
+* Stored rules
+* Added the switch_p and select_p dynamic parsers.
+* Multiple scanner support for rules.
+* The Rule's Scanner, Context and Tag template parameters can be specified in any order now. If a template parameter is missing, it will assume the defaults. See test/rule_tests.cpp.
+* Introduced the possibility to specify more than one start rule from a grammar.
+* Added an implementation of the file_iterator iterator based on the new Boost iterator_adaptors (submitted originally by Thomas Witt).
+
+[The transition to the new iterator_adaptors should be complete now.]
+
+* Added an implementation of the fixed_size_queue iterator based on the new Boost iterator_adaptors.
+* wchar_t friendly implementation of graph_p
+* made the copy-constructor and assignment-operator of parser_error_base public to clear VC7.1 C4673 warning. Added copy-constructor and assignment operator to parser_error for clarity of intent.
+
+[h3 1.7.0]
+
+* assign(string) semantic action now works in VC6
+* parsers need not be default constructible
+* simplified aggregation of binary and unary parsers (more compiler friendly)
+* epsilon workarounds for VC++
+* match's attribute now uses boost.optional
+* subrules can now have closures
+* project wide 64 bit compatibility
+* dynamic_parser_tag, reissue of rule.set_id(id);
+* numerous primitives improvements and workarounds for problematic compilers
+* proper complement (~) of single char parser primitives and chsets
+* intuitive handling of lexeme_d
+* wide_phrase_scanner_t typedef
+* dynamic parser improvements (better support for more compilers)
+* complete rewrite of the file_iterator (using boost.iterator_adapters). Supports memory maps wherever available
+* multi_pass updates (compatibility with more compilers (e.g VC7) and more)
+* position_iterator improvements
+* better phoenix support for more compilers
+* phoenix new_(...) construct
+* new lazy_p parser
+* utility.distinct parser (undocumented)
+* chset operators improvements
+* confix_p streamlining and improvements
+* numerous Boost integration improvements
+
+[h3 Bug fixes (1.7.0 and 1.6.0)]
+
+* Fixed. Using MSVC++6 (SP5), calling the assign action with a string value on parsers using the file_iterator will not work.
+* Fixed: using assign semantic action in a grammar with a multi_pass iterator adaptor applied to an std::istream_iterator resulted in a failure to compile under msvc 7.0.
+* Fixed: There is a bug in the "range_run<CharT>::set (range<CharT> const& r)" function in the "boost\spirit\utility\impl\chset\range_run.ipp".
+* Fixed: handling of trailing whitespace bug (ast_parse/pt_parse related)
+* Fixed: comment_p and end of data bug
+* Fixed: Most trailing space bug:
+* Fixed:
+ chset<>::operator~(range<>) bug
+ operator&(chset<>, range<>) bug
+ operator&(range<>, chset<>) bug
+* Fixed: impl::detach_clear bug
+* Fixed: mismatch closure return type bug
+* Fixed: access_node_d[] and access_match_d[] iterator bugs
+* Fixed a bug regarding threadsafety of Phoenix/Spirit closures.
+* Added missing include files to miniboost
+
+[endsect] [/ change_log]
+
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/acknowledgements.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/acknowledgements.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/acknowledgements.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/character_sets.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/character_sets.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/character_sets.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/closures.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/closures.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/closures.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,3 +1,20 @@
+[/
+/ Copyright © 1998-2003 Joel de Guzman
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
+/
+/ Distributed under the Boost Software License, Version 1.0. (See accompanying
+/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+/]
[section Closures]
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/confix.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/confix.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/confix.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/debugging.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/debugging.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/debugging.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/distinct.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/distinct.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/distinct.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/dynamic_parsers.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/dynamic_parsers.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/dynamic_parsers.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/error_handling.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/error_handling.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/error_handling.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/escape_char_parser.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/escape_char_parser.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/escape_char_parser.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/file_iterator.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/file_iterator.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/file_iterator.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/functional.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/functional.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/functional.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,3 +1,20 @@
+[/
+/ Copyright © 1998-2003 Joel de Guzman
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
+/
+/ Distributed under the Boost Software License, Version 1.0. (See accompanying
+/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+/]
[section Functional]
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/functor_parser.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/functor_parser.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/functor_parser.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/includes.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/includes.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/includes.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Added: sandbox/boost_docs/branches/spirit_qbking/doc/src/introduction.qbk
==============================================================================
--- (empty file)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/introduction.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -0,0 +1,87 @@
+[/
+/ Copyright © 1998-2003 Joel de Guzman
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
+/
+/ Distributed under the Boost Software License, Version 1.0. (See accompanying
+/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+/]
+
+[section Introduction]
+
+Spirit is an object-oriented recursive-descent parser generator framework implemented using template meta-programming techniques. Expression templates allow us to approximate the syntax of Extended Backus-Normal Form (EBNF) completely in C++.
+
+The Spirit framework enables a target grammar to be written exclusively in C++. Inline EBNF grammar specifications can mix freely with other C++ code and, thanks to the generative power of C++ templates, are immediately executable. In retrospect, conventional compiler-compilers or parser-generators have to perform an additional translation step from the source EBNF code to C or C++ code.
+
+A simple EBNF grammar snippet:
+
+``
+ group ::= '(' expression ')'
+ factor ::= integer | group
+ term ::= factor (('*' factor) | ('/' factor))*
+ expression ::= term (('+' term) | ('-' term))*
+``
+
+is approximated using Spirit's facilities as seen in this code snippet:
+
+``
+ group = '(' >> expression >> ')';
+ factor = integer | group;
+ term = factor >> *(('*' >> factor) | ('/' >> factor));
+ expression = term >> *(('+' >> term) | ('-' >> term));
+``
+
+Through the magic of expression templates, this is perfectly valid and executable C++ code. The production rule `expression` is in fact an object that has a member function parse that does the work given a source code written in the grammar that we have just declared. Yes, it's a calculator. We shall simplify for now by skipping the type declarations and the definition of the rule `integer` invoked by `factor`. The production rule `expression` in our grammar specification, traditionally called the start symbol, can recognize inputs such as:
+
+``
+ 12345
+ -12345
+ +12345
+ 1 + 2
+ 1 * 2
+ 1/2 + 3/4
+ 1 + 2 + 3 + 4
+ 1 * 2 * 3 * 4
+ (1 + 2) * (3 + 4)
+ (-1 + 2) * (3 + -4)
+ 1 + ((6 * 200) - 20) / 6
+ (1 + (2 + (3 + (4 + 5))))
+``
+
+Certainly we have done some modifications to the original EBNF syntax. This is done to conform to C++ syntax rules. Most notably we see the abundance of shift `>>` operators. Since there are no 'empty' operators in C++, it is simply not possible to write something like:
+
+``
+ a b
+``
+
+as seen in math syntax, for example, to mean multiplication or, in our case, as seen in EBNF syntax to mean sequencing (b should follow a). The framework uses the shift `>>` operator instead for this purpose. We take the `>>` operator, with arrows pointing to the right, to mean "is followed by". Thus we write:
+
+``
+ a >> b
+``
+
+The alternative operator `|` and the parentheses `()` remain as is. The assignment operator `=` is used in place of EBNF's `::=`. Last but not least, the Kleene star `*` which used to be a postfix operator in EBNF becomes a prefix. Instead of:
+
+``
+ a* //... in EBNF syntax,
+``
+
+we write:
+
+``
+ *a //... in Spirit.
+``
+
+since there are no postfix stars, "`*`", in C/C++. Finally, we terminate each rule with the ubiquitous semi-colon, "`;`".
+
+[endsect] [/ introduction]
+
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/lazy_parser.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/lazy_parser.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/lazy_parser.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/list_parsers.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/list_parsers.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/list_parsers.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/loops.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/loops.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/loops.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/multi_pass.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/multi_pass.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/multi_pass.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/organisation.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/organisation.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/organisation.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/parametric_parsers.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/parametric_parsers.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/parametric_parsers.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,3 +1,20 @@
+[/
+/ Copyright © 1998-2003 Joel de Guzman
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
+/
+/ Distributed under the Boost Software License, Version 1.0. (See accompanying
+/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+/]
[def __boost_ref__ [@http://www.boost.org/doc/html/ref.html boost::ref]]
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/portability.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/portability.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/portability.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/position_iterator.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/position_iterator.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/position_iterator.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Added: sandbox/boost_docs/branches/spirit_qbking/doc/src/preface.qbk
==============================================================================
--- (empty file)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/preface.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -0,0 +1,65 @@
+[/
+/ Copyright © 1998-2003 Joel de Guzman
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
+/
+/ Distributed under the Boost Software License, Version 1.0. (See accompanying
+/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+/]
+
+[/ links done]
+
+[section Preface]
+
+[:['["Examples of designs that meet most of the criteria for "goodness" (easy to understand, flexible, efficient) are a recursive-descent parser, which is traditional procedural code. Another example is the STL, which is a generic library of containers and algorithms depending crucially on both traditional procedural code and on parametric polymorphism."]]
+-- Bjarne Stroustrup]
+
+[h4 History]
+
+A decade and a half ago, I wrote my first calculator in Pascal. It is one of my most unforgettable coding experiences. I was amazed how a mutually recursive set of functions can model a grammar specification. In time, the skills I acquired from that academic experience became very practical. Periodically I was tasked to do some parsing. For instance, whenever I need to perform any form of I/O, even in binary, I try to approach the task somewhat formally by writing a grammar using Pascal-like syntax diagrams and then write a corresponding recursive-descent parser. This worked very well.
+
+The arrival of the Internet and the World Wide Web magnified this thousand-fold. At one point I had to write an HTML parser for a Web browser project. I got a recursive-descent HTML parser working based on the W3C formal specifications easily. I was certainly glad that HTML had a formal grammar specification. Because of the influence of the Internet, I then had to do more parsing. RFC specifications were everywhere. SGML, HTML, XML, even email addresses and those seemingly trivial URLs were all formally specified using small EBNF-style grammar specifications. This made me wish for a tool similar to big-time parser generators such as YACC and [@http://www.antlr.org/ ANTLR], where a parser is built automatically from a grammar specification. Yet, I want it to be extremely small; small enough to fit in my pocket, yet scalable.
+
+It must be able to practically parse simple grammars such as email addresses to moderately complex grammars such as XML and perhaps some small to medium-sized scripting languages. Scalability is a prime goal. You should be able to use it for small tasks such as parsing command lines without incurring a heavy payload, as you do when you are using YACC or PCCTS. Even now that it has evolved and matured to become a multi-module library, true to its original intent, Spirit can still be used for extreme micro-parsing tasks. You only pay for features that you need. The power of Spirit comes from its modularity and extensibility. Instead of giving you a sledgehammer, it gives you the right ingredients to create a sledgehammer easily. For instance, it does not really have a lexer, but you have all the raw ingredients to write one, if you need one.
+
+The result was Spirit. Spirit was a personal project that was conceived when I was doing R&D in Japan. Inspired by the GoF's composite and interpreter patterns, I realized that I can model a recursive-descent parser with hierarchical-object composition of primitives (terminals) and composites (productions). The original version was implemented with run-time polymorphic classes. A parser is generated at run time by feeding in production rule strings such as "`prod ::= {âAâ | âBâ} âCâ;`". A compile function compiled the parser, dynamically creating a hierarchy of objects and linking semantic actions on the fly. A very early text can be found here.
+
+The version that we have now is a complete rewrite of the original Spirit parser using expression templates and static polymorphism, inspired by the works of Todd Veldhuizen ([@http://www.extreme.indiana.edu/%7Etveldhui/papers/Expression-Templates/exprtmpl.html "Expression Templates"], C++ Report, June 1995). Initially, the [*static-Spirit] version was meant only to replace the core of the original [*dynamic-Spirit]. Dynamic-spirit needed a parser to implement itself anyway. The original employed a hand-coded recursive-descent parser to parse the input grammar specification strings.
+
+After its initial "open-source" debut in May 2001, static-Spirit became a success. At around November 2001, the Spirit website had an activity percentile of 98%, making it the number one parser tool at Source Forge at the time. Not bad for such a niche project such as a parser library. The "static" portion of Spirit was forgotten and static-Spirit simply became Spirit. The framework soon evolved to acquire more dynamic features.
+
+[h4 How to use this manual]
+
+The Spirit framework is organized in logical modules starting from the core. This documentation provides a user's guide and reference for each module in the framework. A simple and clear code example is worth a hundred lines of documentation; therefore, the user's guide is presented with abundant examples annotated and explained in step-wise manner. The user's guide is based on examples -lots of them.
+
+As much as possible, forward information (i.e. citing a specific piece of information that has not yet been discussed) is avoided in the user's manual portion of each module. In many cases, though, it is unavoidable that advanced but related topics are interspersed with the normal flow of discussion. To alleviate this problem, topics categorized as "advanced" may be skipped at first reading.
+
+Some icons are used to mark certain topics indicative of their relevance. These icons precede some text to indicate:
+
+[table Icons
+ [[Note] [Information provided is moderately important and should be noted by the reader.]]
+ [[Alert] [Information provided is of utmost importance.]]
+ [[Detail] [Information provided is auxiliary but will give the reader a deeper insight into a specific topic. May be skipped.]]
+ [[Tip] [A potentially useful and helpful piece of information.]]
+]
+
+[h4 Support]
+
+Please direct all questions to Spirit's mailing list. You can subscribe to the mailing list [@https://lists.sourceforge.net/lists/listinfo/spirit-general here]. The mailing list has a searchable archive. A search link to this archive is provided in [@http://spirit.sf.net Spirit's home page]. You may also read and post messages to the mailing list through an [@http://news.gmane.org/thread.php?group=gmane.comp.parsers.spirit.general NNTP news portal] (thanks to [@www.gmane.org]). The news group mirrors the mailing list. Here are two links to the archives: via [@http://dir.gmane.org/gmane.comp.parsers.spirit.general gmane], via [@http://sourceforge.net/mailarchive/forum.php?forum_id=1595gmane.org geocrawler].
+
+[*To my dear daughter Phoenix]
+
+Joel de Guzman
+September 2002
+
+[endsect] [/preface]
+
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/rationale.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/rationale.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/rationale.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/refactoring.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/refactoring.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/refactoring.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/regular_expression_parser.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/regular_expression_parser.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/regular_expression_parser.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/scoped_lock.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/scoped_lock.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/scoped_lock.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/select_parser.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/select_parser.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/select_parser.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/spirit.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/spirit.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/spirit.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,5 +1,16 @@
[/
- / Copyright (c) 2007 Darren Garvey
+/ Copyright © 1998-2003 Joel de Guzman
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/stored_rule.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/stored_rule.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/stored_rule.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,15 @@
[/
-/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/style.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/style.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/style.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/switch_parser.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/switch_parser.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/switch_parser.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,17 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
+
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/symbols.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/symbols.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/symbols.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/boost_docs/branches/spirit_qbking/doc/src/trees.qbk
==============================================================================
--- sandbox/boost_docs/branches/spirit_qbking/doc/src/trees.qbk (original)
+++ sandbox/boost_docs/branches/spirit_qbking/doc/src/trees.qbk 2007-10-16 21:36:11 EDT (Tue, 16 Oct 2007)
@@ -1,6 +1,16 @@
[/
/ Copyright © 1998-2003 Joel de Guzman
-/ Copyright © 2007 Darren Garvey
+/ Portions of this document tree:
+/ Copyright © 2001-2003 Hartmut Kaiser
+/ Copyright © 2001-2002 Daniel C. Nuffer
+/ Copyright © 2002 Chris Uzdavinis
+/ Copyright © 2002 Jeff Westfahl
+/ Copyright © 2002 Juan Carlos Arevalo-Baeza
+/ Copyright © 2003 Martin Wille
+/ Copyright © 2003 Ross Smith
+/ Copyright © 2003 Jonathan de Halleux
+/ Conversion from HTML:
+/ Copyright © 2007 Darren Garvey
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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