Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Click here to view the latest version of this page.
PrevUpHomeNext
Character Classification Parsers (alnum, digit, etc.)
Description

The library has the full repertoire of single character parsers for character classification. This includes the usual alnum, alpha, digit, xdigit, etc. parsers. These parsers have an associated Character Encoding Namespace. This is needed when doing basic operations such as inhibiting case sensitivity.

Header
// forwards to <boost/spirit/home/qi/char/char_class.hpp>
#include <boost/spirit/include/qi_char_class.hpp>

Also, see Include Structure.

Namespace

Name

ns::alnum

ns::alpha

ns::blank

ns::cntrl

ns::digit

ns::graph

ns::lower

ns::print

ns::punct

ns::space

ns::upper

ns::xdigit

In the table above, ns represents a Character Encoding Namespace.

Model of

PrimitiveParser

Notation

ns

A Character Encoding Namespace.

Expression Semantics

Semantics of an expression is defined only where it differs from, or is not defined in PrimitiveParser.

Expression

Semantics

ns::alnum

Matches alpha-numeric characters

ns::alpha

Matches alphabetic characters

ns::blank

Matches spaces or tabs

ns::cntrl

Matches control characters

ns::digit

Matches numeric digits

ns::graph

Matches non-space printing characters

ns::lower

Matches lower case letters

ns::print

Matches printable characters

ns::punct

Matches punctuation symbols

ns::space

Matches spaces, tabs, returns, and newlines

ns::upper

Matches upper case letters

ns::xdigit

Matches hexadecimal digits

Attributes

The character type of the Character Encoding Namespace, ns.

Complexity

O(N)

Example
[Note] Note

The test harness for the example(s) below is presented in the Basics Examples section.

Some using declarations:

using boost::spirit::ascii::alnum;
using boost::spirit::ascii::blank;
using boost::spirit::ascii::digit;
using boost::spirit::ascii::lower;

Basic usage:

test_parser("1", alnum);
test_parser(" ", blank);
test_parser("1", digit);
test_parser("a", lower);


PrevUpHomeNext