src/parser/Text_Token_Stream.cc
Text_Token_Stream::Text_Token_Stream(set<char> const &ws, bool const no_nonbreaking_ws)
    : buffer_(), whitespace_(ws), no_nonbreaking_ws_(no_nonbreaking_ws) {
  Ensure(check_class_invariants());
  Ensure(ws == whitespace());
  Ensure(line() == 1);
  Ensure(this->no_nonbreaking_ws() == no_nonbreaking_ws);
}
//------------------------------------------------------------------------------------------------//
/*!
 * \brief Constructs a Text_Token_Stream with the specified set of breaking
 * whitespace characters.
 *
 * \param ws String containing the user-defined whitespace characters for this
 * Text_Token_Stream.
 *
 * \param no_nonbreaking_ws If true, treat spaces and tabs as breaking
 * whitespace. This has the effect of forcing all keywords to consist of a
 * single identifier.
 *
 * Whitespace characters are classified as breaking or nonbreaking whitespace.
 * Nonbreaking whitespace separates non-keyword tokens and identifiers within a
 * keyword but has no other significance. Breaking whitespace is similar to
 * nonbreaking whitespace except that it always separates tokens; thus, two
 * identifiers separated by breaking whitespace are considered to belong to
 * separate keywords.
 *
 * Nonbreaking whitespace characters are the space and horizontal tab
 * characters.
 *
 * Breaking whitespace characters include all other characters for which the
 * standard C library function <CODE>isspace(char)</CODE> returns a nonzero
 * value, plus additional characters defined as nonbreaking whitespace by the
 * client of the Token_Stream. In particular, a newline character is always
 * breaking whitespace.
 *
 * Whitespace is stripped from the beginning and end of every token, and the
 * nonbreaking whitespace separating each identifier within a keyword is
 * replaced by a single space character.
 */
\brief Constructs a Text_Token_Stream with the specified set of breaking
whitespace characters.

\param ws String containing the user-defined whitespace characters for this
Text_Token_Stream.

\param no_nonbreaking_ws If true, treat spaces and tabs as breaking
whitespace. This has the effect of forcing all keywords to consist of a
single identifier.

Whitespace characters are classified as breaking or nonbreaking whitespace.
Nonbreaking whitespace separates non-keyword tokens and identifiers within a
keyword but has no other significance. Breaking whitespace is similar to
nonbreaking whitespace except that it always separates tokens; thus, two
identifiers separated by breaking whitespace are considered to belong to
separate keywords.

Nonbreaking whitespace characters are the space and horizontal tab
characters.

Breaking whitespace characters include all other characters for which the
standard C library function isspace(char) returns a nonzero
value, plus additional characters defined as nonbreaking whitespace by the
client of the Token_Stream. In particular, a newline character is always
breaking whitespace.

Whitespace is stripped from the beginning and end of every token, and the
nonbreaking whitespace separating each identifier within a keyword is
replaced by a single space character.
\ brief Constructs a Text_Token_Stream with the specified set of breaking whitespace characters . \ param ws String containing the user - defined whitespace characters for this Text_Token_Stream . \ param no_nonbreaking_ws If true treat spaces and tabs as breaking whitespace . This has the effect of forcing all keywords to consist of a single identifier . Whitespace characters are classified as breaking or nonbreaking whitespace . Nonbreaking whitespace separates non - keyword tokens and identifiers within a keyword but has no other significance . Breaking whitespace is similar to nonbreaking whitespace except that it always separates tokens ; thus two identifiers separated by breaking whitespace are considered to belong to separate keywords . Nonbreaking whitespace characters are the space and horizontal tab characters . Breaking whitespace characters include all other characters for which the standard C library function isspace ( char ) returns a nonzero value plus additional characters defined as nonbreaking whitespace by the client of the Token_Stream . In particular a newline character is always breaking whitespace . Whitespace is stripped from the beginning and end of every token and the nonbreaking whitespace separating each identifier within a keyword is replaced by a single space character .
Text_Token_Stream::Text_Token_Stream(set<char> const &ws, bool const no_nonbreaking_ws)
    : buffer_(), whitespace_(ws), no_nonbreaking_ws_(no_nonbreaking_ws) {
  Ensure(check_class_invariants());
  Ensure(ws == whitespace());
  Ensure(line() == 1);
  Ensure(this->no_nonbreaking_ws() == no_nonbreaking_ws);
}
Text_Token_Stream :: Text_Token_Stream ( set < char > const & ws , bool const no_nonbreaking_ws ) : buffer_ ( ) , whitespace_ ( ws ) , no_nonbreaking_ws_ ( no_nonbreaking_ws ) { Ensure ( check_class_invariants ( ) ) ; Ensure ( ws == whitespace ( ) ) ; Ensure ( line ( ) == 1 ) ; Ensure ( this -> no_nonbreaking_ws ( ) == no_nonbreaking_ws ) ; }
\brief Constructs a Text_Token_Stream with the specified set of breaking
 whitespace characters.
\ brief Constructs a Text_Token_Stream with the specified set of breaking whitespace characters .