$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r52677 - trunk/libs/spirit/doc
From: hartmut.kaiser_at_[hidden]
Date: 2009-04-30 12:06:52
Author: hkaiser
Date: 2009-04-30 12:06:52 EDT (Thu, 30 Apr 2009)
New Revision: 52677
URL: http://svn.boost.org/trac/boost/changeset/52677
Log:
Spirit: Updated what's new section to cover version 2.1
Text files modified: 
   trunk/libs/spirit/doc/spirit2.qbk    |     4                                         
   trunk/libs/spirit/doc/what_s_new.qbk |    93 +++++++++++++++++++++++++++++++++++++++ 
   2 files changed, 94 insertions(+), 3 deletions(-)
Modified: trunk/libs/spirit/doc/spirit2.qbk
==============================================================================
--- trunk/libs/spirit/doc/spirit2.qbk	(original)
+++ trunk/libs/spirit/doc/spirit2.qbk	2009-04-30 12:06:52 EDT (Thu, 30 Apr 2009)
@@ -29,8 +29,6 @@
 [def __phoenix2__               [@../../phoenix/doc/html/index.html Phoenix2]]
 [def __fusion__                 [@http://spirit.sourceforge.net/dl_more/fusion_v2/libs/fusion/doc/html/index.html Fusion]]
 [def __mpl__                    [@http://www.boost.org/libs/mpl/index.html MPL]]
-[def __boost_tuples__           [@http://www.boost.org/libs/tuple/index.html Boost.Tuples]]
-[def __boost_proto__            -Boost.Proto-]
 [def __boost__                  [@http://www.boost.org/ Boost]]
 [def __boost_tools__            [@http://www.boost.org/tools/index.html Boost Tools]]
 [def __spirit_list__            [@https://lists.sourceforge.net/lists/listinfo/spirit-general Spirit Mailing List]]
@@ -54,6 +52,8 @@
 [def __boost_iterator_range__   [@http://www.boost.org/libs/range/doc/utility_class.html#iter_range `boost::iterator_range<>`]]
 [def __boost_bind__             [@http://www.boost.org/libs/bind/index.html Boost.Bind]]
 [def __boost_lambda__           [@http://www.boost.org/libs/lambda/index.html Boost.Lambda]]
+[def __boost_tuples__           [@http://www.boost.org/libs/tuple/index.html Boost.Tuples]]
+[def __boost_proto__            [@http://www.boost.org/doc/libs/1_38_0/doc/html/proto.html Boost.Proto]]
 
 
 [def __classic__                /Spirit.Classic/]
Modified: trunk/libs/spirit/doc/what_s_new.qbk
==============================================================================
--- trunk/libs/spirit/doc/what_s_new.qbk	(original)
+++ trunk/libs/spirit/doc/what_s_new.qbk	2009-04-30 12:06:52 EDT (Thu, 30 Apr 2009)
@@ -1,5 +1,5 @@
 [/==============================================================================
-    Copyright (C) 2001-2008 Joel de Guzman
+    Copyright (C) 2001-2009 Joel de Guzman
     Copyright (C) 2001-2009 Hartmut Kaiser
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -41,5 +41,96 @@
 deprecated include files are being used. This ensures full backwards
 compatibility for existing applications.
 
+[heading Spirit V2.1] 
+
+[heading What's changed in __qi__ and __karma__ from V2.0 to 2.x]
+
+* __spirit__ is now based on the newest version of __boost_proto__
+* qi::phrase_parse, qi::phrase_format now post-skip by default.
+* karma::generate_delimited and karma::format_delimited now don't do pre-
+  delimiting by default.
+* Changed parameter sequence of qi::phrase_parse, qi::phrase_match, 
+  karma::generate_delimited, and match_delimited. The attribute is now the last 
+  parameter.
+* Added new overloads of those functions allowing to explicitely specify the
+  post-skipping and pre-delimiting behavior.
+* multi attribute API functions
+* removed grammar_def<>
+* removed functions make_parser() and make_generator()
+* removed qi::none and karma::none
+* sequences and lists now accept a standard container as its attribute
+* The string placeholder terminal now can take other strings as its parameter 
+  (i.e. std::string)
+* all terminals taking literals now accept a (lazy) function object as well
+* All placeholders for terminals and directives (such as int_, double_, 
+  verbatim, etc.) were previously defined in the namespace boost::spirit 
+  only. Now these are additionally imported into the namespaces
+  spirit::qi, spirit::karma, and spirit::lex (if they are supported by 
+  the corresponding sub-library.
+* The terminal placeholders char_ and string are not defined in the
+  namespace boost::spirit anymore as they have been moved to the 
+  character set namespaces, allowing to do proper character set 
+  handling based on the used namespace (as spirit::ascii, etc.)
+* The uint, ushort, ulong, and byte terminal placeholders have been renamed to
+  uint_, ushort_, ulong_, and byte_.
+* qi: skip[] now re-enables outer skipper if used inside lexeme[]
+* karma: maxwidth[] directive
+* karma: delimit[] now re-enables outer delimiter if used inside verbatim[]
+* karma: added and-predicate (operator&()) and not-predicate (operator!())
+
+
+[heading What's changed in __lex__ from V2.0 to 2.x]
+
+Here is a list of changes in __lex__ since version 2.0. __lex__ 2.x is a 
+complete rewrite of the original __lex__ distributed. As all parts of the 
+__spirit__ library it is usable either standalone or in conjunction with the
+other parts. __lex__ now uses the infrastructure provided by __spirit__ version 
+2.1.
+
+* The lex::lexer_def class has been renamed to lex::lexer, while the original
+  class lex::lexer does not exist anymore. This simplifies the creation of
+  lexers.
+* The lex::lexer class does not have the function `def(Self& self)` anymore, 
+  token definitions can be added to the lexer at any time, usually in the 
+  constructor of the user defined lexer class:
+
+      template <typename Lexer>
+      struct example_tokens : lex::lexer<Lexer>
+      {
+            example_lexer()
+            {
+                // your token definitions here
+                this->self = ...
+            }
+      };
+* The new lexer class now can be directly used, their is no need anymore to 
+  wrap it using the `make_lexer()` template as before. Therefor the function
+  `make_lexer()` has been removed.
+* The `lex::tokenize_and_parse()` and `lex::tokenize_and_phrase_parse()` functions 
+  have been changed to match the parameter sequence as implemented by the 
+  `qi::parse()` and `qi::phrase_parse()` functions. 
+  Both take a possibly arbitrary number of attribute arguments as its last 
+  parameters (well, the number of attributes is limited by the macro
+  `SPIRIT_ARGUMENTS_LIMIT`, which defaults to `PHOENIX_LIMIT`).
+* The `lex::lexertl_lexer`, `lex::lexertl_token_set`, and `lex::lexertl_token`
+  classes has been moved to the `lex::lexertl` namespace and the names have been 
+  changed to `lex::lexertl::lexer`, `lex::lexertl::token_set`, `lex::lexertl::token`
+  (the same applies to the `lex::lexert_actor_lexer`, and the `static_lexertl_*`
+  family of types).
+* The __lexer__ library has been updated to use the newest version of Ben 
+  Hansons __lexertl__ lexer construction library (Boost review pending).
+* The `lex::lexer<Lexer>` template constructor now takes an optional parameter
+  specifying the `match_flags` to be used for table generation. Currently, there
+  are the following flags available:
+
+        match_flags::match_default,          // no flags
+        match_flags::match_not_dot_newline,  // the regex '.' doesn't match newlines
+        match_flags::match_icase             // all matching operations are case insensitive
+
+  If no parameter is passed to the constructor, `match_flags::match_default` is 
+  used, i.e. the '.' matches newlines and matching is case sensitive.
+* Now the `char_()` and `string()` placeholders can be used for token 
+  definitions as a replacement for `token_def<>(...)`, although it is still
+  possible to use the latter one.
 
 [endsect]