mirror of
https://github.com/boostorg/spirit.git
synced 2026-01-19 04:42:11 +00:00
Fix some typos in docs and comments.
This commit is contained in:
@@ -1026,7 +1026,7 @@ matched value (`true` or `false`).
|
||||
[heading Boolean `Policies` Specializations]
|
||||
|
||||
The easiest way to implement a proper boolean parsing policy is to derive a
|
||||
new type from the the type `bool_policies` while overriding the aspects
|
||||
new type from the type `bool_policies` while overriding the aspects
|
||||
of the parsing which need to be changed. For example, here's the
|
||||
implementation of a boolean parsing policy interpreting the string `"eurt"`
|
||||
(i.e. "true" spelled backwards) as `false`:
|
||||
|
||||
@@ -38,7 +38,7 @@ using a semantic action to collect the numbers into a `std::vector`.
|
||||
return r;
|
||||
}
|
||||
|
||||
The full cpp file for this example can be found here: [@../../../example/x3/num_list2.cpp]
|
||||
The full cpp file for this example can be found here: [@../../../example/x3/num_list/num_list2.cpp]
|
||||
|
||||
This, again, is the same parser as before. This time, instead of summing up the
|
||||
numbers, we stuff them in a `std::vector`.
|
||||
|
||||
@@ -49,6 +49,6 @@ This sample, again a variation of our previous example, demonstrates just that:
|
||||
return r;
|
||||
}
|
||||
|
||||
The full cpp file for this example can be found here: [@../../../example/x3/num_list3.cpp]
|
||||
The full cpp file for this example can be found here: [@../../../example/x3/num_list/num_list3.cpp]
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -41,8 +41,8 @@ Our parser now is further simplified to:
|
||||
template <typename Iterator>
|
||||
bool parse_numbers(Iterator first, Iterator last, std::vector<double>& v)
|
||||
{
|
||||
using qi::double_;
|
||||
using qi::phrase_parse;
|
||||
using x3::double_;
|
||||
using x3::phrase_parse;
|
||||
using x3::_attr;
|
||||
using ascii::space;
|
||||
|
||||
@@ -62,7 +62,7 @@ Our parser now is further simplified to:
|
||||
return r;
|
||||
}
|
||||
|
||||
The full cpp file for this example can be found here: [@../../../example/x3/num_list4.cpp]
|
||||
The full cpp file for this example can be found here: [@../../../example/x3/num_list/num_list4.cpp]
|
||||
|
||||
[*Hey, no more actions!!!] Now we're entering the realm of attribute grammars.
|
||||
Cool eh?
|
||||
|
||||
@@ -99,8 +99,8 @@ Ok, so now let's parse!
|
||||
template <typename Iterator>
|
||||
bool parse_numbers(Iterator first, Iterator last)
|
||||
{
|
||||
using qi::double_;
|
||||
using qi::phrase_parse;
|
||||
using x3::double_;
|
||||
using x3::phrase_parse;
|
||||
using ascii::space;
|
||||
|
||||
bool r = phrase_parse(
|
||||
@@ -128,7 +128,7 @@ Here, we opted to make the parser generic by making it a template, parameterized
|
||||
by the iterator type. By doing so, it can take in data coming from any STL
|
||||
conforming sequence as long as the iterators conform to a forward iterator.
|
||||
|
||||
You can find the full cpp file here: [@../../../example/x3/num_list1.cpp]
|
||||
You can find the full cpp file here: [@../../../example/x3/num_list/num_list1.cpp]
|
||||
|
||||
[note `char` and `wchar_t` operands
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
namespace boost { namespace phoenix
|
||||
{
|
||||
// There's a bug in the Phoenix V2 type deduction mechanism that prevents
|
||||
// correct return type deduction for for the math operations below. Newer
|
||||
// correct return type deduction for the math operations below. Newer
|
||||
// versions of Phoenix will be switching to BOOST_TYPEOF. In the meantime,
|
||||
// we will use the specializations helping with return type deduction
|
||||
// below:
|
||||
|
||||
@@ -197,7 +197,7 @@ const refactor_action_gen<> refactor_action_d = refactor_action_gen<>();
|
||||
// attach_action_parser class
|
||||
//
|
||||
// This helper template allows to attach an action given separately
|
||||
// to to all parsers, out of which the given parser is constructed and
|
||||
// to all parsers, out of which the given parser is constructed and
|
||||
// reconstructs a new parser having the same structure.
|
||||
//
|
||||
// For instance the parser:
|
||||
@@ -208,7 +208,7 @@ const refactor_action_gen<> refactor_action_d = refactor_action_gen<>();
|
||||
// >> another_parser[some_attached_functor]
|
||||
//
|
||||
// The original parser should be a action_parser_category parser,
|
||||
// else the compilation will fail
|
||||
// else the compilation will fail.
|
||||
//
|
||||
// If the parser, to which the action is attached is not an binary parser,
|
||||
// no refactoring is done at all.
|
||||
|
||||
@@ -285,7 +285,7 @@ while_(CondT const& cond)
|
||||
// While the condition (an actor) evaluates to true, statement
|
||||
// (another actor) is executed. The statement is executed at least
|
||||
// once. The result type of this is void. Note the trailing
|
||||
// underscore after do_ and the the leading dot and the trailing
|
||||
// underscore after do_ and the leading dot and the trailing
|
||||
// underscore before and after .while_.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user