Files
regex/traits_class_ref.htm

872 lines
38 KiB
HTML
Raw Normal View History

<!DOCTYPE HTML PUBLIC "-//SoftQuad Software//DTD HoTMetaL PRO 5.0::19981217::extensions to HTML 4.0//EN" "hmpro5.dtd">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="keywords"
CONTENT="regex++, regular expressions, regular expression library, C++">
<META NAME="Template"
CONTENT="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
<META NAME="GENERATOR" CONTENT="Microsoft FrontPage Express 2.0">
<TITLE> regex++ traits-class reference </TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#800080">
<TABLE BORDER="0" CELLPADDING="7" CELLSPACING="0" WIDTH="624">
<TR>
<TD VALIGN="top" WIDTH="50%"><H3><IMG SRC="../../c++boost.gif" WIDTH="276"
HEIGHT="86" ALT="C++ Boost"> </H3>
</TD>
<TD VALIGN="top" WIDTH="50%"><H3 ALIGN="center">Regex++, Traits Class
Reference. <I>(version 3.12, 18 April 2000)</I>&nbsp; </H3>
<PRE>
<I>Copyright (c) 1998-2000
Dr John Maddock
Permission to use, copy, modify, distribute and sell this software
and its documentation for any purpose is hereby granted without fee,
provided that the above copyright notice appear in all copies and
that both that copyright notice and this permission notice appear
in supporting documentation. Dr John Maddock makes no representations
about the suitability of this software for any purpose.
It is provided &quot;as is&quot; without express or implied warranty.</I>
</PRE>
</TD>
</TR>
</TABLE>
<HR>
<P>This section describes the traits class requirements of the reg_expression
template class, these requirements are somewhat complex (sorry), and subject to
change as uses ask for new features, however I will try to keep them stable for
a while, and ideally the requirements should lessen rather than increase. </P>
<P>The <I>reg_expression</I> traits classes encapsulate both the properties of
a character type, and the properties of the locale associated with that type.
The associated locale may be defined at run-time (via std::locale), or
hard-coded into the traits class and determined at compile time. </P>
<P>The following example class illustrates the interface required by a
&quot;typical&quot; traits class for use with class reg_expression: </P>
<PRE>
class mytraits
{
typedef implementation_defined char_type;
typedef implementation_defined uchar_type;
typedef implementation_defined size_type;
typedef implementation_defined string_type;
typedef implementation_defined locale_type;
typedef implementation_defined uint32_t;
struct sentry
{
sentry(const mytraits&amp;);
operator void*() { return this; }
};
enum char_syntax_type
{
syntax_char = 0,
syntax_open_bracket = 1, // (
syntax_close_bracket = 2, // )
syntax_dollar = 3, // $
syntax_caret = 4, // ^
syntax_dot = 5, // .
syntax_star = 6, // *
syntax_plus = 7, // +
syntax_question = 8, // ?
syntax_open_set = 9, // [
syntax_close_set = 10, // ]
syntax_or = 11, // |
syntax_slash = 12, //
syntax_hash = 13, // #
syntax_dash = 14, // -
syntax_open_brace = 15, // {
syntax_close_brace = 16, // }
syntax_digit = 17, // 0-9
syntax_b = 18, // for \b
syntax_B = 19, // for \B
syntax_left_word = 20, // for \&lt;
syntax_right_word = 21, // for \
syntax_w = 22, // for \w
syntax_W = 23, // for \W
syntax_start_buffer = 24, // for \`
syntax_end_buffer = 25, // for \'
syntax_newline = 26, // for newline alt
syntax_comma = 27, // for {x,y}
syntax_a = 28, // for \a
syntax_f = 29, // for \f
syntax_n = 30, // for \n
syntax_r = 31, // for \r
syntax_t = 32, // for \t
syntax_v = 33, // for \v
syntax_x = 34, // for \xdd
syntax_c = 35, // for \cx
syntax_colon = 36, // for [:...:]
syntax_equal = 37, // for [=...=]
// perl ops:
syntax_e = 38, // for \e
syntax_l = 39, // for \l
syntax_L = 40, // for \L
syntax_u = 41, // for \u
syntax_U = 42, // for \U
syntax_s = 43, // for \s
syntax_S = 44, // for \S
syntax_d = 45, // for \d
syntax_D = 46, // for \D
syntax_E = 47, // for \Q\E
syntax_Q = 48, // for \Q\E
syntax_X = 49, // for \X
syntax_C = 50, // for \C
syntax_Z = 51, // for \Z
syntax_G = 52, // for \G
syntax_bang = 53, // reserved for future use '!'
syntax_and = 54, // reserve for future use '&amp;'
};
enum{
char_class_none = 0,
char_class_alpha,
char_class_cntrl,
char_class_digit,
char_class_lower,
char_class_punct,
char_class_space,
char_class_upper,
char_class_xdigit,
char_class_blank,
char_class_unicode,
char_class_alnum,
char_class_graph,
char_class_print,
char_class_word
};
static size_t length(const char_type* p);
unsigned int syntax_type(size_type c)const;
char_type translate(char_type c, bool icase)const;
void transform(string_type&amp; out, const string_type&amp; in)const;
void transform_primary(string_type&amp; out, const string_type&amp; in)const;
bool is_separator(char_type c)const;
bool is_combining(char_type)const;
bool is_class(char_type c, uint32_t f)const;
int toi(char_type c)const;
int toi(const char_type*&amp; first, const char_type* last, int radix)const;
uint32_t lookup_classname(const char_type* first, const char_type* last)const;
bool lookup_collatename(string_type&amp; buf, const char_type* first, const char_type* last)const;
locale_type imbue(locale_type l);
locale_type getloc()const;
std::string error_string(unsigned id)const;
mytraits();
~mytraits();
};
</PRE>
<P>The member types required by a traits class are defined as follows:<BR>
&nbsp;&nbsp; </P>
<TABLE BORDER="0" CELLPADDING="7" WIDTH="100%">
<TR>
<TD VALIGN="top" WIDTH="4%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="26%" BGCOLOR="#008080">Member name </TD>
<TD VALIGN="top" WIDTH="63%" BGCOLOR="#008080">Description </TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="4%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="26%" BGCOLOR="#C0C0C0">char_type </TD>
<TD VALIGN="top" WIDTH="63%" BGCOLOR="#C0C0C0">The character type encapsulated
by this traits class, must be a POD type, and be convertible to uchar_type.
</TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="4%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="26%" BGCOLOR="#C0C0C0">uchar_type </TD>
<TD VALIGN="top" WIDTH="63%" BGCOLOR="#C0C0C0">The unsigned type corresponding
to char_type, must be convertible to size_type. </TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="4%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="26%" BGCOLOR="#C0C0C0">size_type </TD>
<TD VALIGN="top" WIDTH="63%" BGCOLOR="#C0C0C0">An unsigned integral type, with
at least as much precision as uchar_type. </TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="4%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="26%" BGCOLOR="#C0C0C0">string_type </TD>
<TD VALIGN="top" WIDTH="63%" BGCOLOR="#C0C0C0">A type that offers the same
facilities as std::basic_string&lt;char_type. This is used for collating
elements, and sort strings, if char_type has no locale dependent collation (it
is not a &quot;character&quot;), then it could be something simpler than
std::basic_string. </TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="4%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="26%" BGCOLOR="#C0C0C0">locale_type </TD>
<TD VALIGN="top" WIDTH="63%" BGCOLOR="#C0C0C0">A type that encapsulates the
locale used by the traits class, probably std::locale but could be a platform
specific type, or a dummy type if per-instance locales are not supported by the
traits class. </TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="4%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="26%" BGCOLOR="#C0C0C0">uint32_t </TD>
<TD VALIGN="top" WIDTH="63%" BGCOLOR="#C0C0C0">An unsigned integral type with
at least 32-bits of precision, used as a bitmask type for character
classification. </TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="4%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="26%" BGCOLOR="#C0C0C0">sentry </TD>
<TD VALIGN="top" WIDTH="63%" BGCOLOR="#C0C0C0">A class or struct type which is
constructible from an instance of the traits class, and is convertible to
void*. An instance of type sentry will be constructed before compiling each
regular expression, it provides an opportunity to carry out prefix/suffix
operations on the traits class.&nbsp; <P>For example a traits class that
encapsulates the global locale, can use this as an opportunity to synchronize
with the global locale (by updating any cached data). </P>
</TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
</TABLE>
<P><BR>
&nbsp;The following member constants are used to represent the locale
independent syntax of a regular expression; the member function
<I>syntax_type</I> returns one of these values, and is used to convert a locale
dependent regular expression, into a locale-independent sequence of tokens.<BR>
&nbsp;</P>
<TABLE BORDER="0" CELLPADDING="7" WIDTH="100%">
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#008080">Member constant&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#008080">English language
representation&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_char&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">All non-special
characters.&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_open_bracket&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">(&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_close_bracket&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">)&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_dollar&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">$&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_caret&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">^&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_dot&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">.&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_star&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">*&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_plus&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">+&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_question&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">?&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_open_set&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">[&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_close_set&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">]&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_or&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">|&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_slash&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">\&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_hash&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">#&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_dash&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">-&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_open_brace&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">{&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_close_brace&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">}&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_digit&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">0123456789&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_b&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">b&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_B&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">B&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_left_word&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">&lt;&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_right_word&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_w&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">w&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_W&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">W&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_start_buffer&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">`&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_end_buffer&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">'&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_newline&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">\n&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_comma&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">,&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_a&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">a&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_f&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">f&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_n&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">n&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_r&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">r&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_t&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">t&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_v&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">v&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_x&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">x&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_c&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">c&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_colon&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">:&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_equal&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">=&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_e&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">e&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_l&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">l&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_L&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">L&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_u&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">u&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_U&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">U&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_s&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">s&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_S&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">S&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_d&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">d&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_D&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">D&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_E&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">E&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_Q&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">Q&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_X&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">X&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_C&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">C&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_Z&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">Z&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_G&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">G&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_bang&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">!&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="40%" BGCOLOR="#C0C0C0">syntax_and&nbsp; </TD>
<TD VALIGN="top" WIDTH="50%" BGCOLOR="#C0C0C0">&amp;&nbsp; </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
</TABLE>
<P> </P>
<P>The following member constants are used to represent particular character
classifications:<BR>
&nbsp; </P>
<TABLE BORDER="0" CELLPADDING="7" WIDTH="100%">
<TR>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="33%" BGCOLOR="#008080">Member constant&nbsp; </TD>
<TD VALIGN="top" WIDTH="56%" BGCOLOR="#008080">Description </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="33%" BGCOLOR="#C0C0C0">char_class_none&nbsp; </TD>
<TD VALIGN="top" WIDTH="56%" BGCOLOR="#C0C0C0">No classification, must be zero.
</TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="33%" BGCOLOR="#C0C0C0">char_class_alpha&nbsp; </TD>
<TD VALIGN="top" WIDTH="56%" BGCOLOR="#C0C0C0">All alphabetic characters. </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="33%" BGCOLOR="#C0C0C0">char_class_cntrl&nbsp; </TD>
<TD VALIGN="top" WIDTH="56%" BGCOLOR="#C0C0C0">All control characters. </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="33%" BGCOLOR="#C0C0C0">char_class_digit&nbsp; </TD>
<TD VALIGN="top" WIDTH="56%" BGCOLOR="#C0C0C0">All decimal digits. </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="33%" BGCOLOR="#C0C0C0">char_class_lower&nbsp; </TD>
<TD VALIGN="top" WIDTH="56%" BGCOLOR="#C0C0C0">All lower case characters. </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="33%" BGCOLOR="#C0C0C0">char_class_punct&nbsp; </TD>
<TD VALIGN="top" WIDTH="56%" BGCOLOR="#C0C0C0">All punctuation characters.
</TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="33%" BGCOLOR="#C0C0C0">char_class_space&nbsp; </TD>
<TD VALIGN="top" WIDTH="56%" BGCOLOR="#C0C0C0">All white-space characters.
</TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="33%" BGCOLOR="#C0C0C0">char_class_upper&nbsp; </TD>
<TD VALIGN="top" WIDTH="56%" BGCOLOR="#C0C0C0">All upper case characters. </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="33%" BGCOLOR="#C0C0C0">char_class_xdigit&nbsp; </TD>
<TD VALIGN="top" WIDTH="56%" BGCOLOR="#C0C0C0">All hexadecimal digit
characters. </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="33%" BGCOLOR="#C0C0C0">char_class_blank&nbsp; </TD>
<TD VALIGN="top" WIDTH="56%" BGCOLOR="#C0C0C0">All blank characters (space +
tab). </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="33%" BGCOLOR="#C0C0C0">char_class_unicode&nbsp; </TD>
<TD VALIGN="top" WIDTH="56%" BGCOLOR="#C0C0C0">All extended unicode characters
- those that can not be represented as a single narrow character. </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="33%" BGCOLOR="#C0C0C0">char_class_alnum&nbsp; </TD>
<TD VALIGN="top" WIDTH="56%" BGCOLOR="#C0C0C0">All alpha-numeric characters.
</TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="33%" BGCOLOR="#C0C0C0">char_class_graph&nbsp; </TD>
<TD VALIGN="top" WIDTH="56%" BGCOLOR="#C0C0C0">All graphic characters. </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="33%" BGCOLOR="#C0C0C0">char_class_print&nbsp; </TD>
<TD VALIGN="top" WIDTH="56%" BGCOLOR="#C0C0C0">All printable characters. </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="33%" BGCOLOR="#C0C0C0">char_class_word&nbsp; </TD>
<TD VALIGN="top" WIDTH="56%" BGCOLOR="#C0C0C0">All word characters
(alphanumeric characters + the underscore). </TD>
<TD VALIGN="top" WIDTH="5%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
</TABLE>
<P>The following member functions are required by all regular expression traits
classes, those members that are declared here as <I>const</I>, could be
declared <I>static</I> instead if the class does not contain instance data:<BR>
&nbsp; </P>
<TABLE BORDER="0" CELLPADDING="7" WIDTH="100%">
<TR>
<TD VALIGN="top" WIDTH="7%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="36%" BGCOLOR="#008080">Member function </TD>
<TD VALIGN="top" WIDTH="51%" BGCOLOR="#008080">Description </TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="7%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="36%" BGCOLOR="#C0C0C0">static size_t length(const
char_type* p); </TD>
<TD VALIGN="top" WIDTH="51%" BGCOLOR="#C0C0C0">Returns the length of the
null-terminated string p. </TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="7%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="36%" BGCOLOR="#C0C0C0">unsigned int
syntax_type(size_type c)const; </TD>
<TD VALIGN="top" WIDTH="51%" BGCOLOR="#C0C0C0">&nbsp;Converts an input
character into a locale independent token (one of the syntax_xxx member
constants). Called when parsing the regular expression into a
locale-independent parse tree.&nbsp; <P>Example: in English language regular
expressions we would use &quot;[[:word:]]&quot; to represent the character
class of all word characters, and &quot;\w&quot; as a shortcut for this.
Consequently syntax_type('w') returns syntax_w. In French language regular
expressions, we would use &quot;[[:mot:]]&quot; in place of
&quot;[[:word:]]&quot; and therefore &quot;\m&quot; in place of &quot;\w&quot;,
therefore it is syntax_type('m') that returns syntax_w. </P>
</TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="7%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="36%" BGCOLOR="#C0C0C0">char_type translate(char_type c,
bool icase)const; </TD>
<TD VALIGN="top" WIDTH="51%" BGCOLOR="#C0C0C0">&nbsp;Translates an input
character into a unique identifier that represents the equivalence class that
that character belongs to. If icase is true, then the returned value is
insensitive to case.&nbsp; <P>[An equivalence class is the set of all
characters that must be treated as being equivalent to each other.] </P>
</TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="7%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="36%" BGCOLOR="#C0C0C0">void transform(string_type&amp;
out, const string_type&amp; in)const; </TD>
<TD VALIGN="top" WIDTH="51%" BGCOLOR="#C0C0C0">&nbsp;Transforms the string
<I>in</I>, into a locale-dependent sort key, and stores the result in
<I>out</I>. </TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="7%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="36%" BGCOLOR="#C0C0C0">void
transform_primary(string_type&amp; out, const string_type&amp; in)const; </TD>
<TD VALIGN="top" WIDTH="51%" BGCOLOR="#C0C0C0">&nbsp;Transforms the string
<I>in,</I> into a locale-dependent primary sort key, and stores the result in
<I>out</I>. </TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="7%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="36%" BGCOLOR="#C0C0C0">bool is_separator(char_type
c)const; </TD>
<TD VALIGN="top" WIDTH="51%" BGCOLOR="#C0C0C0">&nbsp;Returns true only if
<I>c</I> is a line separator. </TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="7%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="36%" BGCOLOR="#C0C0C0">bool is_combining(char_type
c)const; </TD>
<TD VALIGN="top" WIDTH="51%" BGCOLOR="#C0C0C0">&nbsp;Returns true only if
<I>c</I> is a unicode combining character. </TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="7%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="36%" BGCOLOR="#C0C0C0">bool is_class(char_type c,
uint32_t f)const; </TD>
<TD VALIGN="top" WIDTH="51%" BGCOLOR="#C0C0C0">&nbsp;Returns true only if
<I>c</I> is a member of one of the character classes represented by the bitmap
<I>f</I>. </TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="7%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="36%" BGCOLOR="#C0C0C0">int toi(char_type c)const; </TD>
<TD VALIGN="top" WIDTH="51%" BGCOLOR="#C0C0C0">&nbsp;Converts the character
<I>c</I> to a decimal integer.&nbsp; <P>[Precondition:
is_class(c,char_class_digit)==true] </P>
</TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="7%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="36%" BGCOLOR="#C0C0C0">int toi(const char_type*&amp;
first, const char_type* last, int radix)const; </TD>
<TD VALIGN="top" WIDTH="51%" BGCOLOR="#C0C0C0">&nbsp;Converts the string
[first-last) into an integral value using base <I>radix.</I> Stops when it
finds the first non-digit character, and sets <I>first</I> to point to that
character.&nbsp; <P>[Precondition: is_class(*first,char_class_digit)==true]
</P>
</TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="7%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="36%" BGCOLOR="#C0C0C0">uint32_t lookup_classname(const
char_type* first, const char_type* last)const; </TD>
<TD VALIGN="top" WIDTH="51%" BGCOLOR="#C0C0C0">&nbsp;Returns the bitmap
representing the character class [first-last), or char_class_none if
[first-last) is not recognized as a character class name. </TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="7%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="36%" BGCOLOR="#C0C0C0">bool
lookup_collatename(string_type&amp; buf, const char_type* first, const
char_type* last)const; </TD>
<TD VALIGN="top" WIDTH="51%" BGCOLOR="#C0C0C0">If the sequence [first-last) is
the name of a known collating element, then stores the collating element in
buf, and returns true, otherwise returns false. </TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="7%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="36%" BGCOLOR="#C0C0C0">locale_type imbue(locale_type
l); </TD>
<TD VALIGN="top" WIDTH="51%" BGCOLOR="#C0C0C0">&nbsp;Imbues the class with the
locale <I>l</I>. </TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="7%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="36%" BGCOLOR="#C0C0C0">locale_type getloc()const; </TD>
<TD VALIGN="top" WIDTH="51%" BGCOLOR="#C0C0C0">&nbsp;Returns the traits-class
locale. </TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="7%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="36%" BGCOLOR="#C0C0C0">std::string
error_string(unsigned id)const; </TD>
<TD VALIGN="top" WIDTH="51%" BGCOLOR="#C0C0C0">&nbsp;Returns the
locale-dependent error-string associated with the error-number <I>id</I>. The
parameter <I>id</I> is one of the REG_XXX error codes described by the POSIX
standard, and defined in &lt;boost/cregex.hpp. </TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="7%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="36%" BGCOLOR="#C0C0C0">mytraits(); </TD>
<TD VALIGN="top" WIDTH="51%" BGCOLOR="#C0C0C0">&nbsp;Constructor. </TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
<TR>
<TD VALIGN="top" WIDTH="7%" BGCOLOR="#FFFFFF">&nbsp; </TD>
<TD VALIGN="top" WIDTH="36%" BGCOLOR="#C0C0C0">~ mytraits(); </TD>
<TD VALIGN="top" WIDTH="51%" BGCOLOR="#C0C0C0">&nbsp;Destructor. </TD>
<TD VALIGN="top" WIDTH="6%" BGCOLOR="#FFFFFF">&nbsp; </TD>
</TR>
</TABLE>
<P> </P>
<P><A NAME="intro"></A><BR>
</P>
<HR>
<P><I>Copyright</I> <A HREF="mailto:John_Maddock@compuserve.com"><I>Dr John
Maddock</I></A> <I>1998-2000 all rights reserved.</I> </P>
</BODY>
</HTML>