...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
The no_skip[]
directive turns off white space skipping. The difference to lexeme
is that it does not do
pre-skipping in any case. Otherwise it is completely equivalent to the
lexeme
directive.
// forwards to <boost/spirit/home/qi/directive/no_skip.hpp> #include <boost/spirit/include/qi_no_skip.hpp>
Also, see Include Structure.
Name |
---|
|
Notation
a
A Parser
.
Semantics of an expression is defined only where it differs from, or
is not defined in UnaryParser
.
Expression |
Semantics |
---|---|
|
Turns off white space skipping for the subject parser, |
See Compound Attribute Notation.
Expression |
Attribute |
---|---|
|
a: A --> no_skip[a]: A a: Unused --> no_skip[a]: Unused
|
The complexity is defined by the complexity of the subject parser,
a
Note | |
---|---|
The test harness for the example(s) below is presented in the Basics Examples section. |
Some using declarations:
using boost::spirit::qi::no_skip; using boost::spirit::qi::char_;
Simple usage of no_skip[]
:
The use of no_skip here will prevent skipping of whitespace in front
and in between the characters of the string '
abc '
.
std::string str; test_phrase_parser_attr("' abc '", '\'' >> no_skip[+~char_('\'')] >> '\'', str); std::cout << str << std::endl; // will output: > abc <