Update of /cvsroot/boost/boost/libs/xpressive/proto/doc
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv7769
Modified Files:
calculator.qbk grammars.qbk history.qbk installation.qbk
preface.qbk rationale.qbk transforms.qbk
Log Message:
doc tweaks
Index: calculator.qbk
===================================================================
RCS file: /cvsroot/boost/boost/libs/xpressive/proto/doc/calculator.qbk,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- calculator.qbk 20 Jun 2007 06:30:39 -0000 1.12
+++ calculator.qbk 20 Jun 2007 18:53:00 -0000 1.13
@@ -16,7 +16,7 @@
expression, such as `(_2 - _1) / _2 * 100`, where `_1` and `_2` are
placeholders for values to be passed in when the expression is evaluated.
-[header Defining Terminals]
+[heading Defining Terminals]
The first order of business is to define the placeholders `_1` and `_2`. For
that, we'll use the _terminal_ expression generator.
@@ -37,7 +37,7 @@
Initialization] section in the [link boost_proto.appendices.rationale
Rationale]
appendix for more information.
-[header Constructing Expression Trees]
+[heading Constructing Expression Trees]
Now that we have terminals, we can use Proto's operator overloads to combine
these terminals into larger expressions. So, for instance, we can immediately
@@ -49,7 +49,7 @@
behavior. In particular, it is not yet a calculator. Below we'll see how
to make it a calculator by defining an evaluation context.
-[header Defining an Evaluation Context]
+[heading Defining an Evaluation Context]
No doubt you want your expression templates to actually /do/ something. One
approach is to define an ['evaluation context]. The context is like a function
@@ -133,7 +133,7 @@
// This prints "10"
std::cout << d << std::endl;
-[header Default Expression Evaluation]
+[heading Default Expression Evaluation]
You might notice that the `calculator_context` has a lot of boilerplate. It
is fairly common for addition nodes to be handled by evaluating the left and
Index: grammars.qbk
===================================================================
RCS file: /cvsroot/boost/boost/libs/xpressive/proto/doc/grammars.qbk,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- grammars.qbk 18 Jun 2007 02:56:21 -0000 1.11
+++ grammars.qbk 20 Jun 2007 18:53:00 -0000 1.12
@@ -255,9 +255,9 @@
[endsect]
-[/============================================================]
-[section Condition and Conjunction with [^if_<>] and [^and_<>]]
-[/============================================================]
+[/=======================================================================]
+[section:if_and_and Condition and Conjunction with [^if_<>] and [^and_<>]]
+[/=======================================================================]
We've already seen how to use expression generators like `terminal<>` and
`shift_right<>` as patterns. We've also seen _or_, which we can use to
@@ -287,6 +287,21 @@
`mpl::_` should appear in your patterns is in an _if_, or in
tranform::applyN<>,
as we'll see later. Elsewhere in your patterns you should be using `proto::_`.]
+The _if_ template has a couple of variants. In additon to `if_<Condition>` you
+can also say `if_<Condition, ThenGrammar>` and
+`if_<Condition, ThenGrammar, ElseGrammar>`. These let you select one
sub-grammar
+or another based on the `Condition`. They following table shows their
+equivalencies:
+
+[table If-Then-Else Equivalencies
+[[Short-Cut Grammar][Equivalent Grammar]]
+[[`if_<Condition, ThenGrammar>`][`and_<if_<Condition>, ThenGrammar>`]]
+[[`if_<Condition, ThenGrammar, ElseGrammar>`][``or_<
+ and_<if_<Condition>, ThenGrammar>
+ , and_<not_<if_<Condition> >, ElseGrammar>
+>``]]
+]
+
[endsect]
[/================================]
Index: history.qbk
===================================================================
RCS file: /cvsroot/boost/boost/libs/xpressive/proto/doc/history.qbk,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- history.qbk 18 Jun 2007 06:51:27 -0000 1.3
+++ history.qbk 20 Jun 2007 18:53:00 -0000 1.4
@@ -9,7 +9,12 @@
[variablelist
[
- [April 4, 2006]
+ [April 15, 2007]
+ [Boost.Xpressive is ported from Proto compilers to Proto transforms.
+ Support for old Proto compilers is dropped.]
+]
+[
+ [April 4, 2007]
[Preliminary submission of Proto to Boost.]
]
[
Index: installation.qbk
===================================================================
RCS file: /cvsroot/boost/boost/libs/xpressive/proto/doc/installation.qbk,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- installation.qbk 18 Jun 2007 02:56:21 -0000 1.4
+++ installation.qbk 20 Jun 2007 18:53:00 -0000 1.5
@@ -7,13 +7,13 @@
[section Installing Proto]
-[header Getting Proto]
+[heading Getting Proto]
Currently the only way to get Proto is through CVS via the boost project on
SourceForge.net. Just go to [EMAIL PROTECTED]://sf.net/projects/boost] and
follow the
instructions there for anonymous CVS access.
-[header Building with Proto]
+[heading Building with Proto]
Proto is a header-only template library, which means you don't need to alter
your build scripts or link to any separate lib file to use it. All you need
@@ -21,11 +21,11 @@
core of Proto. If you want to use any transforms, you must include the
appropriate header from the [^boost\/xpressive\/proto\/transform\/] directory.
-[header Requirements]
+[heading Requirements]
Proto depends on Boost. You must use the version in CVS HEAD.
-[header Supported Compilers]
+[heading Supported Compilers]
Currently, Boost.Proto is known to work on the following compilers:
Index: preface.qbk
===================================================================
RCS file: /cvsroot/boost/boost/libs/xpressive/proto/doc/preface.qbk,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- preface.qbk 18 Jun 2007 02:56:21 -0000 1.5
+++ preface.qbk 20 Jun 2007 18:53:00 -0000 1.6
@@ -10,7 +10,7 @@
[:Something witty.]
[:[*['-- Someone Famous]]]
-[header Description]
+[heading Description]
Proto is a framework for building Domain Specific Embedded Languages
in C++. It provides tools for constructing, type-checking, transforming and
@@ -25,7 +25,7 @@
* An extensible set of tree transformations to apply to expression trees.
* A mechanism for giving expressions additional behaviors and members.
-[header Motivation]
+[heading Motivation]
Expression Templates are an advanced technique that C++ library developers use
to define embedded mini-languages that target specific problem domains. The
@@ -45,7 +45,7 @@
In short, Proto is a DSEL for defining DSELs.
-[header Influences and Related Work]
+[heading Influences and Related Work]
Proto was initially developed as part of _xpressive_ to simplify the job of
transforming an expression template into an executable finite state machine
Index: rationale.qbk
===================================================================
RCS file: /cvsroot/boost/boost/libs/xpressive/proto/doc/rationale.qbk,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- rationale.qbk 18 Jun 2007 02:56:21 -0000 1.1
+++ rationale.qbk 20 Jun 2007 18:53:00 -0000 1.2
@@ -20,7 +20,7 @@
`_1` and `_2` from the Boost.Lambda library. Were these object to require
run-time initialization, it might be possible to use these objects before they
are initialized. That would be bad. Statically initialized objects cannot be
-misused that way.]
+misused that way.
[endsect]
Index: transforms.qbk
===================================================================
RCS file: /cvsroot/boost/boost/libs/xpressive/proto/doc/transforms.qbk,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- transforms.qbk 18 Jun 2007 02:56:21 -0000 1.15
+++ transforms.qbk 20 Jun 2007 18:53:00 -0000 1.16
@@ -570,6 +570,7 @@
[endsect]
+[/
[section:conditional [^conditional<>]]
namespace boost { namespace proto { namespace transform
@@ -608,6 +609,7 @@
{};
[endsect]
+]
[section:list [^list<>]]
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Boost-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/boost-cvs