merged AI doc, some new pages
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
/*! \file pichar.h
|
||||
* \ingroup Text
|
||||
* \~\brief
|
||||
* \~english Single string character
|
||||
* \~russian Один символ строки
|
||||
* \~english UTF-16 character type
|
||||
* \~russian Тип UTF-16 символа
|
||||
*/
|
||||
/*
|
||||
PIP - Platform Independent Primitives
|
||||
@@ -32,157 +32,163 @@ extern PIP_EXPORT char * __syslocname__;
|
||||
extern PIP_EXPORT char * __sysoemname__;
|
||||
extern PIP_EXPORT char * __utf8name__;
|
||||
|
||||
//! \ingroup Text
|
||||
//! \~\ingroup Text
|
||||
//! \~\brief
|
||||
//! \~english %PIChar represents a single character.
|
||||
//! \~russian %PIChar представляет собой один символ строки.
|
||||
//! \~english Single UTF-16 character.
|
||||
//! \~russian Один UTF-16 символ.
|
||||
class PIP_EXPORT PIChar {
|
||||
friend class PIString;
|
||||
friend PIP_EXPORT PICout operator<<(PICout s, const PIChar & v);
|
||||
|
||||
public:
|
||||
//! \~english Contructs Ascii symbol
|
||||
//! \~russian Создает символ Ascii
|
||||
//! \~english Constructs a character from an ASCII byte.
|
||||
//! \~russian Создает символ из ASCII байта.
|
||||
PIChar(char c) { ch = c; }
|
||||
|
||||
//! \~english Contructs ascii symbol
|
||||
//! \~russian Создает символ Ascii
|
||||
//! \~english Constructs a character from an ASCII byte.
|
||||
//! \~russian Создает символ из ASCII байта.
|
||||
PIChar(uchar c) { ch = c; }
|
||||
|
||||
//! \~english Contructs 2-bytes symbol
|
||||
//! \~russian Создает 2-байтный символ
|
||||
//! \~english Constructs a character from a UTF-16 code unit.
|
||||
//! \~russian Создает символ из UTF-16 кодовой единицы.
|
||||
PIChar(ushort c = 0) { ch = c; }
|
||||
|
||||
//! \~english Contructs 2-bytes symbol from `wchar_t`
|
||||
//! \~russian Создает 2-байтный символ из `wchar_t`
|
||||
//! \~english Constructs a character from `wchar_t`.
|
||||
//! \~russian Создает символ из `wchar_t`.
|
||||
PIChar(wchar_t c) { ch = c; }
|
||||
|
||||
//! \~english Contructs 2-bytes symbol from `char16_t`
|
||||
//! \~russian Создает 2-байтный символ из `char16_t`
|
||||
//! \~english Constructs a character from `char16_t`.
|
||||
//! \~russian Создает символ из `char16_t`.
|
||||
PIChar(char16_t c) { ch = c; }
|
||||
|
||||
//! \~english Copy operator
|
||||
//! \~russian Оператор присваивания
|
||||
//! \~english Assigns an ASCII byte.
|
||||
//! \~russian Присваивает ASCII байт.
|
||||
PIChar & operator=(const char v) {
|
||||
ch = v;
|
||||
return *this;
|
||||
}
|
||||
|
||||
//! \~english Copy operator
|
||||
//! \~russian Оператор присваивания
|
||||
//! \~english Assigns a `wchar_t` character.
|
||||
//! \~russian Присваивает символ `wchar_t`.
|
||||
PIChar & operator=(const wchar_t v) {
|
||||
ch = v;
|
||||
return *this;
|
||||
}
|
||||
|
||||
//! \~english Compare operator
|
||||
//! \~russian Оператор сравнения
|
||||
//! \~english Returns `true` if characters are equal.
|
||||
//! \~russian Возвращает `true`, если символы равны.
|
||||
bool operator==(const PIChar & o) const;
|
||||
|
||||
//! \~english Compare operator
|
||||
//! \~russian Оператор сравнения
|
||||
//! \~english Returns `true` if characters are not equal.
|
||||
//! \~russian Возвращает `true`, если символы не равны.
|
||||
bool operator!=(const PIChar & o) const { return !(*this == o); }
|
||||
|
||||
//! \~english Compare operator
|
||||
//! \~russian Оператор сравнения
|
||||
//! \~english Returns `true` if this character is greater than `o`.
|
||||
//! \~russian Возвращает `true`, если этот символ больше `o`.
|
||||
bool operator>(const PIChar & o) const;
|
||||
|
||||
//! \~english Compare operator
|
||||
//! \~russian Оператор сравнения
|
||||
//! \~english Returns `true` if this character is less than `o`.
|
||||
//! \~russian Возвращает `true`, если этот символ меньше `o`.
|
||||
bool operator<(const PIChar & o) const;
|
||||
|
||||
//! \~english Compare operator
|
||||
//! \~russian Оператор сравнения
|
||||
//! \~english Returns `true` if this character is greater than or equal to `o`.
|
||||
//! \~russian Возвращает `true`, если этот символ больше либо равен `o`.
|
||||
bool operator>=(const PIChar & o) const;
|
||||
|
||||
//! \~english Compare operator
|
||||
//! \~russian Оператор сравнения
|
||||
//! \~english Returns `true` if this character is less than or equal to `o`.
|
||||
//! \~russian Возвращает `true`, если этот символ меньше либо равен `o`.
|
||||
bool operator<=(const PIChar & o) const;
|
||||
|
||||
//! \~english Returns \b true if symbol is digit (from '0' to '9')
|
||||
//! \~russian Возвращает \b true если символ является цифрой (от '0' до '9')
|
||||
//! \~english Returns `true` if the character is a digit.
|
||||
//! \~russian Возвращает `true`, если символ является цифрой.
|
||||
bool isDigit() const;
|
||||
|
||||
//! \~english Returns \b true if symbol is HEX digit ('0' to '9', 'a' to 'f', 'A' to 'F')
|
||||
//! \~russian Возвращает \b true если символ является HEX цифрой ('0' до '9', 'a' до 'f', 'A' до 'F')
|
||||
//! \~english Returns `true` if the character is a hexadecimal digit.
|
||||
//! \~russian Возвращает `true`, если символ является шестнадцатеричной цифрой.
|
||||
bool isHex() const;
|
||||
|
||||
//! \~english Returns \b true if symbol is drawable (without space)
|
||||
//! \~russian Возвращает \b true если символ является графическим (исключая пробельные)
|
||||
//! \~english Returns `true` if the character is visible and not a space.
|
||||
//! \~russian Возвращает `true`, если символ является графическим и не является пробельным.
|
||||
bool isGraphical() const;
|
||||
|
||||
//! \~english Returns \b true if symbol is control byte (< 32 or 127)
|
||||
//! \~russian Возвращает \b true если символ является контрольным (< 32 or 127)
|
||||
//! \~english Returns `true` if the character is a control character.
|
||||
//! \~russian Возвращает `true`, если символ является управляющим.
|
||||
bool isControl() const;
|
||||
|
||||
//! \~english Returns \b true if symbol is in lower case
|
||||
//! \~russian Возвращает \b true если символ в нижнем регистре
|
||||
//! \~english Returns `true` if the character is lowercase.
|
||||
//! \~russian Возвращает `true`, если символ в нижнем регистре.
|
||||
bool isLower() const;
|
||||
|
||||
//! \~english Returns \b true if symbol is in upper case
|
||||
//! \~russian Возвращает \b true если символ в верхнем регистре
|
||||
//! \~english Returns `true` if the character is uppercase.
|
||||
//! \~russian Возвращает `true`, если символ в верхнем регистре.
|
||||
bool isUpper() const;
|
||||
|
||||
//! \~english Returns \b true if symbol is printable (with space)
|
||||
//! \~russian Возвращает \b true если символ является печатным (включая пробельные)
|
||||
//! \~english Returns `true` if the character is printable.
|
||||
//! \~russian Возвращает `true`, если символ является печатным.
|
||||
bool isPrint() const;
|
||||
|
||||
//! \~english Returns \b true if symbol is space or tab
|
||||
//! \~russian Возвращает \b true если символ является пробельным или табуляцией
|
||||
//! \~english Returns `true` if the character is whitespace.
|
||||
//! \~russian Возвращает `true`, если символ является пробельным.
|
||||
bool isSpace() const;
|
||||
|
||||
//! \~english Returns \b true if symbol is alphabetical letter
|
||||
//! \~russian Возвращает \b true если символ является алфавитной буквой
|
||||
//! \~english Returns `true` if the character is alphabetic.
|
||||
//! \~russian Возвращает `true`, если символ является буквой.
|
||||
bool isAlpha() const;
|
||||
|
||||
//! \~english Returns \b true if symbol is Ascii (< 128)
|
||||
//! \~russian Возвращает \b true если символ является Ascii (< 128)
|
||||
//! \~english Returns `true` if the character is ASCII.
|
||||
//! \~russian Возвращает `true`, если символ входит в ASCII.
|
||||
bool isAscii() const;
|
||||
|
||||
//! \~english Returns a `wchar_t` view of the internal single-character storage.
|
||||
//! \~russian Возвращает представление внутреннего буфера одного символа как `wchar_t`.
|
||||
const wchar_t * toWCharPtr() const;
|
||||
|
||||
//! \~english Returns as `char *` string
|
||||
//! \~russian Возвращает символ как указатель на `char *`
|
||||
//! \~english Returns a `char` view of the internal single-character storage.
|
||||
//! \~russian Возвращает представление внутреннего буфера одного символа как `char`.
|
||||
const char * toCharPtr() const;
|
||||
|
||||
//! \~english Returns the character as `wchar_t`.
|
||||
//! \~russian Возвращает символ как `wchar_t`.
|
||||
wchar_t toWChar() const;
|
||||
|
||||
//! \~english Returns symbol as Ascii
|
||||
//! \~russian Возвращает символ в Ascii
|
||||
//! \~english Returns the low ASCII byte of the character.
|
||||
//! \~russian Возвращает младший ASCII байт символа.
|
||||
char toAscii() const { return ch % 256; }
|
||||
|
||||
//! \~english Returns symbol as console codepage
|
||||
//! \~russian Возвращает символ в консольной кодировке
|
||||
//! \~english Returns the character as a single byte in console codepage.
|
||||
//! \~russian Возвращает символ как один байт в консольной кодировке.
|
||||
char toConsole1Byte() const;
|
||||
|
||||
//! \~english Returns symbol as system codepage
|
||||
//! \~russian Возвращает символ в системной кодировке
|
||||
//! \~english Returns the character as a single byte in system codepage.
|
||||
//! \~russian Возвращает символ как один байт в системной кодировке.
|
||||
char toSystem() const;
|
||||
|
||||
//! \~english Returns the UTF-16 code unit of the character.
|
||||
//! \~russian Возвращает UTF-16 кодовую единицу символа.
|
||||
ushort unicode16Code() const { return ch; }
|
||||
|
||||
//! \~english Returns symbol in upper case
|
||||
//! \~russian Возвращает символ в нижнем регистре
|
||||
//! \~english Returns an uppercase copy of the character.
|
||||
//! \~russian Возвращает копию символа в верхнем регистре.
|
||||
PIChar toUpper() const;
|
||||
|
||||
//! \~english Returns symbol in lower case
|
||||
//! \~russian Возвращает символ в верхнем регистре
|
||||
//! \~english Returns a lowercase copy of the character.
|
||||
//! \~russian Возвращает копию символа в нижнем регистре.
|
||||
PIChar toLower() const;
|
||||
|
||||
//! \~english Returns symbol from console codepage
|
||||
//! \~russian Возвращает символ из консольной кодировки
|
||||
//! \~english Creates a character from a single console-codepage byte.
|
||||
//! \~russian Создает символ из одного байта консольной кодировки.
|
||||
static PIChar fromConsole(char c);
|
||||
|
||||
//! \~english Returns symbol from system codepage
|
||||
//! \~russian Возвращает символ из системной кодировки
|
||||
//! \~english Creates a character from a single system-codepage byte.
|
||||
//! \~russian Создает символ из одного байта системной кодировки.
|
||||
static PIChar fromSystem(char c);
|
||||
|
||||
//! \~english Returns symbol from system codepage
|
||||
//! \~russian Возвращает символ из системной кодировки
|
||||
//! \~english Creates a character from the first system-codepage character in `c`.
|
||||
//! \~russian Создает символ из первого символа в `c` в системной кодировке.
|
||||
static PIChar fromSystem(const char * c);
|
||||
|
||||
//! \~english Returns symbol from UTF8 codepage
|
||||
//! \~russian Возвращает символ из UTF8 кодировки
|
||||
//! \~english Creates a character from the first UTF-8 character in `c`.
|
||||
//! \~russian Создает символ из первого UTF-8 символа в `c`.
|
||||
static PIChar fromUTF8(const char * c);
|
||||
|
||||
private:
|
||||
@@ -190,76 +196,76 @@ private:
|
||||
};
|
||||
|
||||
//! \relatesalso PIChar
|
||||
//! \~english Output operator to \a PICout
|
||||
//! \~russian Оператор вывода в \a PICout
|
||||
//! \~english Writes the character to \a PICout.
|
||||
//! \~russian Записывает символ в \a PICout.
|
||||
PIP_EXPORT PICout operator<<(PICout s, const PIChar & v);
|
||||
|
||||
//! \relatesalso PIChar
|
||||
//! \~english Compare operator
|
||||
//! \~russian Оператор сравнения
|
||||
//! \~english Returns `true` if the ASCII byte `v` is equal to `c`.
|
||||
//! \~russian Возвращает `true`, если ASCII байт `v` равен `c`.
|
||||
inline bool operator==(const char v, const PIChar & c) {
|
||||
return (PIChar(v) == c);
|
||||
}
|
||||
|
||||
//! \relatesalso PIChar
|
||||
//! \~english Compare operator
|
||||
//! \~russian Оператор сравнения
|
||||
//! \~english Returns `true` if the ASCII byte `v` is greater than `c`.
|
||||
//! \~russian Возвращает `true`, если ASCII байт `v` больше `c`.
|
||||
inline bool operator>(const char v, const PIChar & c) {
|
||||
return (PIChar(v) > c);
|
||||
}
|
||||
|
||||
//! \relatesalso PIChar
|
||||
//! \~english Compare operator
|
||||
//! \~russian Оператор сравнения
|
||||
//! \~english Returns `true` if the ASCII byte `v` is less than `c`.
|
||||
//! \~russian Возвращает `true`, если ASCII байт `v` меньше `c`.
|
||||
inline bool operator<(const char v, const PIChar & c) {
|
||||
return (PIChar(v) < c);
|
||||
}
|
||||
|
||||
//! \relatesalso PIChar
|
||||
//! \~english Compare operator
|
||||
//! \~russian Оператор сравнения
|
||||
//! \~english Returns `true` if the ASCII byte `v` is greater than or equal to `c`.
|
||||
//! \~russian Возвращает `true`, если ASCII байт `v` больше либо равен `c`.
|
||||
inline bool operator>=(const char v, const PIChar & c) {
|
||||
return (PIChar(v) >= c);
|
||||
}
|
||||
|
||||
//! \relatesalso PIChar
|
||||
//! \~english Compare operator
|
||||
//! \~russian Оператор сравнения
|
||||
//! \~english Returns `true` if the ASCII byte `v` is less than or equal to `c`.
|
||||
//! \~russian Возвращает `true`, если ASCII байт `v` меньше либо равен `c`.
|
||||
inline bool operator<=(const char v, const PIChar & c) {
|
||||
return (PIChar(v) <= c);
|
||||
}
|
||||
|
||||
//! \relatesalso PIChar
|
||||
//! \~english Compare operator
|
||||
//! \~russian Оператор сравнения
|
||||
//! \~english Returns `true` if the UTF-16 code unit `v` is equal to `c`.
|
||||
//! \~russian Возвращает `true`, если UTF-16 кодовая единица `v` равна `c`.
|
||||
inline bool operator==(ushort v, const PIChar & c) {
|
||||
return (PIChar(v) == c);
|
||||
}
|
||||
|
||||
//! \relatesalso PIChar
|
||||
//! \~english Compare operator
|
||||
//! \~russian Оператор сравнения
|
||||
//! \~english Returns `true` if the UTF-16 code unit `v` is greater than `c`.
|
||||
//! \~russian Возвращает `true`, если UTF-16 кодовая единица `v` больше `c`.
|
||||
inline bool operator>(ushort v, const PIChar & c) {
|
||||
return (PIChar(v) > c);
|
||||
}
|
||||
|
||||
//! \relatesalso PIChar
|
||||
//! \~english Compare operator
|
||||
//! \~russian Оператор сравнения
|
||||
//! \~english Returns `true` if the UTF-16 code unit `v` is less than `c`.
|
||||
//! \~russian Возвращает `true`, если UTF-16 кодовая единица `v` меньше `c`.
|
||||
inline bool operator<(ushort v, const PIChar & c) {
|
||||
return (PIChar(v) < c);
|
||||
}
|
||||
|
||||
//! \relatesalso PIChar
|
||||
//! \~english Compare operator
|
||||
//! \~russian Оператор сравнения
|
||||
//! \~english Returns `true` if the UTF-16 code unit `v` is greater than or equal to `c`.
|
||||
//! \~russian Возвращает `true`, если UTF-16 кодовая единица `v` больше либо равна `c`.
|
||||
inline bool operator>=(ushort v, const PIChar & c) {
|
||||
return (PIChar(v) >= c);
|
||||
}
|
||||
|
||||
//! \relatesalso PIChar
|
||||
//! \~english Compare operator
|
||||
//! \~russian Оператор сравнения
|
||||
//! \~english Returns `true` if the UTF-16 code unit `v` is less than or equal to `c`.
|
||||
//! \~russian Возвращает `true`, если UTF-16 кодовая единица `v` меньше либо равна `c`.
|
||||
inline bool operator<=(ushort v, const PIChar & c) {
|
||||
return (PIChar(v) <= c);
|
||||
}
|
||||
|
||||
@@ -29,31 +29,31 @@
|
||||
#include "picout.h"
|
||||
|
||||
|
||||
//! \ingroup Text
|
||||
//! \~\ingroup Text
|
||||
//! \~\brief
|
||||
//! \~english C-String class.
|
||||
//! \~russian Класс C-строки.
|
||||
class PIP_EXPORT PIConstChars {
|
||||
public:
|
||||
//! \~english Contructs an null string.
|
||||
//! \~english Constructs an null string.
|
||||
//! \~russian Создает нулевую строку.
|
||||
PIConstChars() {}
|
||||
|
||||
//! \~english Contructs string from C-string "string".
|
||||
//! \~english Constructs string from C-string "string".
|
||||
//! \~russian Создает строку из C-строки "string".
|
||||
PIConstChars(const char * string) {
|
||||
str = string;
|
||||
len = strlen(string);
|
||||
}
|
||||
|
||||
//! \~english Contructs string from "size" characters of buffer "data".
|
||||
//! \~english Constructs string from "size" characters of buffer "data".
|
||||
//! \~russian Создает строку из "size" символов массива "data".
|
||||
PIConstChars(const char * data, size_t size) {
|
||||
str = data;
|
||||
len = size;
|
||||
}
|
||||
|
||||
//! \~english Contructs a copy of string.
|
||||
//! \~english Constructs a copy of string.
|
||||
//! \~russian Создает копию строки.
|
||||
PIConstChars(const PIConstChars & o) {
|
||||
str = o.str;
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
/*! \file pistring.h
|
||||
* \ingroup Text
|
||||
* \brief
|
||||
* \~english Regular expression
|
||||
* \~russian Регулярное выражение
|
||||
*/
|
||||
//! \~\file piregularexpression.h
|
||||
//! \~\ingroup Text
|
||||
//! \brief
|
||||
//! \~english Regular expression
|
||||
//! \~russian Регулярное выражение
|
||||
/*
|
||||
PIP - Platform Independent Primitives
|
||||
Regular expression
|
||||
@@ -28,137 +27,102 @@
|
||||
|
||||
#include "pistring.h"
|
||||
|
||||
//! \ingroup Text
|
||||
//! \brief Regular expression class
|
||||
//! \~english Class for working with regular expressions
|
||||
//! \~russian Класс для работы с регулярными выражениями
|
||||
//!
|
||||
//! \~\ingroup Text
|
||||
//! \~\brief
|
||||
//! \~english Regular expression class.
|
||||
//! \~russian Класс регулярного выражения.
|
||||
class PIP_EXPORT PIRegularExpression {
|
||||
public:
|
||||
//! \brief
|
||||
//! \~english Options for regular expression matching behavior
|
||||
//! \~russian Опции поведения регулярного выражения
|
||||
//! \~english Matching options.
|
||||
//! \~russian Опции сопоставления.
|
||||
enum Option {
|
||||
None = 0x0, /*!< \~english No special options \~russian Без специальных опций */
|
||||
CaseInsensitive = 0x01, /*!< \~english Case insensitive matching \~russian Регистронезависимое сопоставление */
|
||||
Singleline = 0x02, /*!< \~english Dot matches newline \~russian Точка соответствует символу новой строки */
|
||||
Multiline = 0x04, /*!< \~english ^ and $ match at line boundaries \~russian ^ и $ соответствуют границам строк */
|
||||
InvertedGreediness = 0x08, /*!< \~english Quantifiers are non-greedy by default \~russian Квантификаторы по умолчанию нежадные */
|
||||
Extended = 0x10 /*!< \~english Extended pattern syntax \~russian Расширенный синтаксис шаблона */
|
||||
None = 0x0 /*!< \~english No extra options \~russian Без дополнительных опций */,
|
||||
CaseInsensitive = 0x01 /*!< \~english Ignore character case \~russian Игнорировать регистр символов */,
|
||||
Singleline = 0x02 /*!< \~english Let \c . match a newline \~russian Разрешить \c . совпадать с переводом строки */,
|
||||
Multiline =
|
||||
0x04 /*!< \~english Let \c ^ and \c $ work on line boundaries \~russian Разрешить \c ^ и \c $ работать на границах строк */,
|
||||
InvertedGreediness =
|
||||
0x08 /*!< \~english Make quantifiers non-greedy by default \~russian Сделать квантификаторы по умолчанию нежадными */,
|
||||
Extended = 0x10 /*!< \~english Use extended pattern syntax \~russian Использовать расширенный синтаксис шаблона */
|
||||
};
|
||||
|
||||
//! \brief
|
||||
//! \~english Combination of regular expression options
|
||||
//! \~russian Комбинация флагов опций регулярного выражения
|
||||
//! \~english Flag set of \a Option values.
|
||||
//! \~russian Набор флагов \a Option.
|
||||
typedef PIFlags<Option> Options;
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Creates regular expression with given pattern and options
|
||||
//! \~russian Создает регулярное выражение с указанным шаблоном и опциями
|
||||
//! \~english \param pattern Regular expression pattern
|
||||
//! \~russian \param pattern Шаблон регулярного выражения
|
||||
//! \~english \param opt Matching options
|
||||
//! \~russian \param opt Опции сопоставления
|
||||
//! \~english Creates a regular expression from \a pattern and \a opt.
|
||||
//! \~russian Создает регулярное выражение из \a pattern и \a opt.
|
||||
PIRegularExpression(const PIString & pattern = {}, Options opt = None);
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Creates copy of regular expression
|
||||
//! \~russian Создает копию регулярного выражения
|
||||
//! \~english \param o Source regular expression
|
||||
//! \~russian \param o Исходное регулярное выражение
|
||||
//! \~english Creates a copy of another regular expression.
|
||||
//! \~russian Создает копию другого регулярного выражения.
|
||||
PIRegularExpression(const PIRegularExpression & o);
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Assigns regular expression
|
||||
//! \~russian Присваивает регулярное выражение
|
||||
//! \~english \param o Source regular expression
|
||||
//! \~russian \param o Исходное регулярное выражение
|
||||
//! \~english Assigns another regular expression.
|
||||
//! \~russian Присваивает другое регулярное выражение.
|
||||
PIRegularExpression & operator=(const PIRegularExpression & o);
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Destroys regular expression object
|
||||
//! \~russian Уничтожает объект регулярного выражения
|
||||
//! \~english Destroys the regular expression object.
|
||||
//! \~russian Уничтожает объект регулярного выражения.
|
||||
~PIRegularExpression();
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Class containing regular expression match results
|
||||
//! \~russian Класс, содержащий результаты сопоставления регулярного выражения
|
||||
//! \~\brief
|
||||
//! \~english Match result and iterator state.
|
||||
//! \~russian Результат сопоставления и состояние итерации.
|
||||
class PIP_EXPORT Matcher {
|
||||
friend class PIRegularExpression;
|
||||
|
||||
public:
|
||||
//! \brief
|
||||
//! \~english Returns true if match was found
|
||||
//! \~russian Возвращает true, если совпадение найдено
|
||||
//! \~english Returns \c true when a match is available.
|
||||
//! \~russian Возвращает \c true, если найдено совпадение.
|
||||
operator bool() const { return hasMatch(); }
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns true if match was found
|
||||
//! \~russian Возвращает true, если совпадение найдено
|
||||
//! \~english Returns \c true when a match is available.
|
||||
//! \~russian Возвращает \c true, если найдено совпадение.
|
||||
bool hasMatch() const;
|
||||
|
||||
//! \brief
|
||||
//! \~english Attempts to find next match in subject string
|
||||
//! \~russian Пытается найти следующее совпадение в строке
|
||||
//! \~english \return true if next match was found
|
||||
//! \~russian \return true, если следующее совпадение найдено
|
||||
//! \~english Advances to the next match in the same subject.
|
||||
//! \~russian Переходит к следующему совпадению в той же строке.
|
||||
bool next();
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns list of all matched strings
|
||||
//! \~russian Возвращает список всех совпавших строк
|
||||
//! \~english Returns all captured strings of the current match.
|
||||
//! \~russian Возвращает все захваченные строки текущего совпадения.
|
||||
PIStringList matchedStrings() const;
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns matched substring by index
|
||||
//! \~russian Возвращает совпавшую подстроку по индексу
|
||||
//! \~english \param index Capture group index (0 for entire match)
|
||||
//! \~russian \param index Индекс группы захвата (0 для полного совпадения)
|
||||
//! \~english Returns the captured substring at \a index.
|
||||
//! \~russian Возвращает захваченную подстроку по \a index.
|
||||
PIString matchedString(int index = 0) const;
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns start position of matched substring
|
||||
//! \~russian Возвращает начальную позицию совпавшей подстроки
|
||||
//! \~english \param index Capture group index (0 for entire match)
|
||||
//! \~russian \param index Индекс группы захвата (0 для полного совпадения)
|
||||
//! \~english Returns the start position of the capture at \a index.
|
||||
//! \~russian Возвращает начальную позицию захвата по \a index.
|
||||
int matchedStart(int index = 0) const;
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns length of matched substring
|
||||
//! \~russian Возвращает длину совпавшей подстроки
|
||||
//! \~english \param index Capture group index (0 for entire match)
|
||||
//! \~russian \param index Индекс группы захвата (0 для полного совпадения)
|
||||
//! \~english Returns the size of the capture at \a index.
|
||||
//! \~russian Возвращает длину захвата по \a index.
|
||||
int matchedSize(int index = 0) const;
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns matched substring by group name
|
||||
//! \~russian Возвращает совпавшую подстроку по имени группы
|
||||
//! \~english \param gname Capture group name
|
||||
//! \~russian \param gname Имя группы захвата
|
||||
//! \~english Returns the captured substring of named group \a gname.
|
||||
//! \~russian Возвращает захваченную подстроку именованной группы \a gname.
|
||||
PIString matchedString(const PIString & gname) const;
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns start position of named capture group
|
||||
//! \~russian Возвращает начальную позицию именованной группы захвата
|
||||
//! \~english \param gname Capture group name
|
||||
//! \~russian \param gname Имя группы захвата
|
||||
//! \~english Returns the start position of named group \a gname.
|
||||
//! \~russian Возвращает начальную позицию именованной группы \a gname.
|
||||
int matchedStart(const PIString & gname) const;
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns length of named capture group match
|
||||
//! \~russian Возвращает длину совпадения именованной группы захвата
|
||||
//! \~english \param gname Capture group name
|
||||
//! \~russian \param gname Имя группы захвата
|
||||
//! \~english Returns the size of the named group \a gname.
|
||||
//! \~russian Возвращает длину именованной группы \a gname.
|
||||
int matchedSize(const PIString & gname) const;
|
||||
|
||||
//! \~english Move constructor.
|
||||
//! \~russian Перемещающий конструктор.
|
||||
Matcher(Matcher &&) = default;
|
||||
|
||||
private:
|
||||
@@ -183,141 +147,91 @@ public:
|
||||
};
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns regular expression pattern
|
||||
//! \~russian Возвращает шаблон регулярного выражения
|
||||
//! \~english Returns the stored pattern.
|
||||
//! \~russian Возвращает сохраненный шаблон.
|
||||
PIString pattern() const { return pat_; }
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns regular expression options
|
||||
//! \~russian Возвращает опции регулярного выражения
|
||||
//! \~english Returns the stored options.
|
||||
//! \~russian Возвращает сохраненные опции.
|
||||
Options options() const { return opt_; }
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Sets regular expression pattern
|
||||
//! \~russian Устанавливает шаблон регулярного выражения
|
||||
//! \~english \param pattern New pattern
|
||||
//! \~russian \param pattern Новый шаблон
|
||||
//! \~english Replaces the pattern and keeps current options.
|
||||
//! \~russian Заменяет шаблон и сохраняет текущие опции.
|
||||
void setPattern(const PIString & pattern);
|
||||
|
||||
//! \brief
|
||||
//! \~english Sets regular expression pattern and options
|
||||
//! \~russian Устанавливает шаблон и опции регулярного выражения
|
||||
//! \~english \param pattern New pattern
|
||||
//! \~russian \param pattern Новый шаблон
|
||||
//! \~english \param opt New options
|
||||
//! \~russian \param opt Новые опции
|
||||
//! \~english Replaces the pattern and options.
|
||||
//! \~russian Заменяет шаблон и опции.
|
||||
void setPattern(const PIString & pattern, Options opt);
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns true if regular expression is valid
|
||||
//! \~russian Возвращает true, если регулярное выражение валидно
|
||||
//! \~english Returns \c true when the compiled pattern is valid.
|
||||
//! \~russian Возвращает \c true, если скомпилированный шаблон корректен.
|
||||
bool isValid() const;
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns true if regular expression is not valid
|
||||
//! \~russian Возвращает true, если регулярное выражение невалидно
|
||||
//! \~english Returns \c true when the pattern is invalid.
|
||||
//! \~russian Возвращает \c true, если шаблон некорректен.
|
||||
bool isNotValid() const { return !isValid(); }
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns error description if pattern is invalid
|
||||
//! \~russian Возвращает описание ошибки, если шаблон невалиден
|
||||
//! \~english Returns the compilation error text for an invalid pattern.
|
||||
//! \~russian Возвращает текст ошибки компиляции для некорректного шаблона.
|
||||
PIString errorString() const;
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns position of error in pattern
|
||||
//! \~russian Возвращает позицию ошибки в шаблоне
|
||||
//! \~english Returns the error position inside the pattern.
|
||||
//! \~russian Возвращает позицию ошибки внутри шаблона.
|
||||
int errorPosition() const;
|
||||
|
||||
|
||||
//! \~english Gets the number of capture groups in the pattern
|
||||
//! \~russian Возвращает количество групп захвата в шаблоне
|
||||
//! \~english Returns the number of capture groups in the pattern.
|
||||
//! \~russian Возвращает количество групп захвата в шаблоне.
|
||||
int captureGroupsCount() const;
|
||||
|
||||
//! \~english Gets the list of named capture groups
|
||||
//! \~russian Возвращает список именованных групп захвата
|
||||
//! \~english Returns the names of all named capture groups.
|
||||
//! \~russian Возвращает имена всех именованных групп захвата.
|
||||
PIStringList captureGroupNames() const;
|
||||
|
||||
//! \~english Gets the name of capture group by index
|
||||
//! \~russian Возвращает имя группы захвата по индексу
|
||||
//! \~english \param index Group index
|
||||
//! \~russian \param index Индекс группы
|
||||
//! \~english Returns the capture group name by index.
|
||||
//! \~russian Возвращает имя группы захвата по индексу.
|
||||
PIString captureGroupName(int index) const;
|
||||
|
||||
//! \~english Gets the index of named capture group
|
||||
//! \~russian Возвращает индекс именованной группы захвата
|
||||
//! \~english \param gname Group name
|
||||
//! \~russian \param gname Имя группы
|
||||
//! \~english Returns the index of named capture group `gname`.
|
||||
//! \~russian Возвращает индекс именованной группы захвата `gname`.
|
||||
int captureGroupIndex(const PIString & gname) const;
|
||||
|
||||
|
||||
//! \~english Matches regular expression against deep copy of subject string
|
||||
//! \~russian Сопоставляет регулярное выражение с внутренней копией строки
|
||||
//! \~english \param subject String to match against
|
||||
//! \~russian \param subject Строка для сопоставления
|
||||
//! \~english \param offset Starting position for matching
|
||||
//! \~russian \param offset Начальная позиция для сопоставления
|
||||
//! \~english Matches against an internal copy of \a subject.
|
||||
//! \~russian Выполняет сопоставление по внутренней копии \a subject.
|
||||
Matcher match(const PIString & subject, size_t offset = 0) const;
|
||||
|
||||
//! \~english Matches regular expression against subject string
|
||||
//! \~russian Сопоставляет регулярное выражение со строкой
|
||||
//! \~english \param subject String to match against
|
||||
//! \~russian \param subject Строка для сопоставления
|
||||
//! \~english \param offset Starting position for matching
|
||||
//! \~russian \param offset Начальная позиция для сопоставления
|
||||
//! \~english Matches against \a subject by reference.
|
||||
//! \~russian Выполняет сопоставление со \a subject по ссылке.
|
||||
Matcher match(PIString & subject, size_t offset = 0) const;
|
||||
|
||||
//! \~english Matches regular expression against subject string
|
||||
//! \~russian Сопоставляет регулярное выражение со строкой
|
||||
//! \~english \param subject String to match against
|
||||
//! \~russian \param subject Строка для сопоставления
|
||||
//! \~english \param offset Starting position for matching
|
||||
//! \~russian \param offset Начальная позиция для сопоставления
|
||||
//! \~english Matches against an rvalue \a subject.
|
||||
//! \~russian Выполняет сопоставление с временной строкой \a subject.
|
||||
Matcher match(PIString && subject, size_t offset = 0) const;
|
||||
|
||||
|
||||
//! \~english Prepere match regular expression against deep copy of subject string
|
||||
//! \~russian Подготавливает сопоставление регулярного выражения с внутренней копией строки
|
||||
//! \~english \param subject String to match against
|
||||
//! \~russian \param subject Строка для сопоставления
|
||||
//! \~english \param offset Starting position for matching
|
||||
//! \~russian \param offset Начальная позиция для сопоставления
|
||||
//! \~english Prepares an iterator-style matcher over an internal copy of \a subject.
|
||||
//! \~russian Подготавливает итератор сопоставлений по внутренней копии \a subject.
|
||||
Matcher matchIterator(const PIString & subject, size_t offset = 0) const;
|
||||
|
||||
//! \~english Prepere match regular expression against subject string
|
||||
//! \~russian Подготавливает сопоставление регулярного выражения со строкой
|
||||
//! \~english \param subject String to match against
|
||||
//! \~russian \param subject Строка для сопоставления
|
||||
//! \~english \param offset Starting position for matching
|
||||
//! \~russian \param offset Начальная позиция для сопоставления
|
||||
//! \~english Prepares an iterator-style matcher over \a subject.
|
||||
//! \~russian Подготавливает итератор сопоставлений по \a subject.
|
||||
Matcher matchIterator(PIString & subject, size_t offset = 0) const;
|
||||
|
||||
//! \~english Prepere match regular expression against subject string
|
||||
//! \~russian Подготавливает сопоставление регулярного выражения со строкой
|
||||
//! \~english \param subject String to match against
|
||||
//! \~russian \param subject Строка для сопоставления
|
||||
//! \~english \param offset Starting position for matching
|
||||
//! \~russian \param offset Начальная позиция для сопоставления
|
||||
//! \~english Prepares an iterator-style matcher over an rvalue \a subject.
|
||||
//! \~russian Подготавливает итератор сопоставлений по временной строке \a subject.
|
||||
Matcher matchIterator(PIString && subject, size_t offset = 0) const;
|
||||
|
||||
|
||||
//! \~english Creates regular expression from glob pattern
|
||||
//! \~russian Создает регулярное выражение из glob-шаблона
|
||||
//! \~english \param pattern Glob pattern
|
||||
//! \~russian \param pattern Glob-шаблон
|
||||
//! \~english \param opt Matching options
|
||||
//! \~russian \param opt Опции сопоставления
|
||||
//! \~english Builds a regular expression from a glob pattern.
|
||||
//! \~russian Создает регулярное выражение из glob-шаблона.
|
||||
static PIRegularExpression fromGlob(const PIString & pattern, Options opt = None);
|
||||
|
||||
//! \~english Creates regular expression from POSIX pattern
|
||||
//! \~russian Создает регулярное выражение из POSIX-шаблона
|
||||
//! \~english \param pattern POSIX pattern
|
||||
//! \~russian \param pattern POSIX-шаблон
|
||||
//! \~english \param opt Matching options
|
||||
//! \~russian \param opt Опции сопоставления
|
||||
//! \~english Builds a regular expression from a POSIX pattern.
|
||||
//! \~russian Создает регулярное выражение из POSIX-шаблона.
|
||||
static PIRegularExpression fromPOSIX(const PIString & pattern, Options opt = None);
|
||||
|
||||
private:
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
class PIStringList;
|
||||
class PIRegularExpression;
|
||||
|
||||
//! \ingroup Text
|
||||
//! \~\ingroup Text
|
||||
//! \~\brief
|
||||
//! \~english String class.
|
||||
//! \~russian Класс строки.
|
||||
@@ -54,7 +54,7 @@ public:
|
||||
typedef const PIChar & const_reference;
|
||||
typedef size_t size_type;
|
||||
|
||||
//! \~english Contructs an empty string.
|
||||
//! \~english Constructs an empty string.
|
||||
//! \~russian Создает пустую строку.
|
||||
PIString() {}
|
||||
|
||||
@@ -106,7 +106,7 @@ public:
|
||||
PIString & operator+=(llong) = delete;
|
||||
PIString & operator+=(ullong) = delete;
|
||||
|
||||
//! \~english Contructs a copy of string.
|
||||
//! \~english Constructs a copy of string.
|
||||
//! \~russian Создает копию строки.
|
||||
PIString(const PIString & o) {
|
||||
d = o.d;
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
/*! \file pistring_std.h
|
||||
* \ingroup Text
|
||||
* \brief
|
||||
* \~english STD convertions for PIString
|
||||
* \~russian Преобразования в/из STD для строки
|
||||
* \~\brief
|
||||
* \~english Standard library conversions for PIString
|
||||
* \~russian Преобразования `PIString` для стандартной библиотеки
|
||||
*
|
||||
* \~\details
|
||||
* \~english Declares conversions and stream operators between \a PIString and standard library string types.
|
||||
* \~russian Объявляет преобразования и потоковые операторы между \a PIString и строковыми типами стандартной библиотеки.
|
||||
*/
|
||||
/*
|
||||
PIP - Platform Independent Primitives
|
||||
@@ -29,12 +33,17 @@
|
||||
#include <ostream>
|
||||
#include <string>
|
||||
#ifdef QNX
|
||||
//! \~english Compatibility alias for wide strings on QNX.
|
||||
//! \~russian Совместимый псевдоним для широких строк на QNX.
|
||||
typedef std::basic_string<wchar_t> wstring;
|
||||
#endif
|
||||
#include "piliterals.h"
|
||||
#include "pistringlist.h"
|
||||
|
||||
|
||||
//! \relatesalso PIString
|
||||
//! \~english Converts \a PIString to \c std::string by exporting 16-bit character codes byte by byte.
|
||||
//! \~russian Преобразует \a PIString в \c std::string, выгружая 16-битные коды символов побайтно.
|
||||
inline std::string PIString2StdString(const PIString & v) {
|
||||
std::string s;
|
||||
ushort wc;
|
||||
@@ -52,12 +61,18 @@ inline std::string PIString2StdString(const PIString & v) {
|
||||
}
|
||||
|
||||
|
||||
//! \relatesalso PIString
|
||||
//! \~english Builds \a PIString from \c std::string.
|
||||
//! \~russian Создает \a PIString из \c std::string.
|
||||
inline PIString StdString2PIString(const std::string & v) {
|
||||
return PIString(v.c_str(), v.length());
|
||||
}
|
||||
|
||||
|
||||
// #ifdef HAS_LOCALE
|
||||
//! \relatesalso PIString
|
||||
//! \~english Converts \a PIString to \c std::wstring.
|
||||
//! \~russian Преобразует \a PIString в \c std::wstring.
|
||||
inline std::wstring PIString2StdWString(const PIString & v) {
|
||||
std::wstring s;
|
||||
for (int i = 0; i < v.length(); ++i) {
|
||||
@@ -67,6 +82,9 @@ inline std::wstring PIString2StdWString(const PIString & v) {
|
||||
}
|
||||
|
||||
|
||||
//! \relatesalso PIString
|
||||
//! \~english Builds \a PIString from \c std::wstring.
|
||||
//! \~russian Создает \a PIString из \c std::wstring.
|
||||
inline PIString StdWString2PIString(const std::wstring & v) {
|
||||
PIString s;
|
||||
uint l = v.size();
|
||||
@@ -78,14 +96,18 @@ inline PIString StdWString2PIString(const std::wstring & v) {
|
||||
// #endif
|
||||
|
||||
|
||||
//! \relatesalso PIChar \brief Output operator to \c std::ostream
|
||||
//! \relatesalso PIChar
|
||||
//! \~english Writes a \a PIChar to \c std::ostream.
|
||||
//! \~russian Записывает \a PIChar в \c std::ostream.
|
||||
inline std::ostream & operator<<(std::ostream & s, const PIChar & v) {
|
||||
s << v.toCharPtr();
|
||||
return s;
|
||||
}
|
||||
|
||||
|
||||
//! \relatesalso PIString \brief Return concatenated string
|
||||
//! \relatesalso PIString
|
||||
//! \~english Returns concatenation of \a PIString and \c std::string.
|
||||
//! \~russian Возвращает конкатенацию \a PIString и \c std::string.
|
||||
inline PIString operator+(const PIString & f, const std::string & str) {
|
||||
PIString s(f);
|
||||
s += StdString2PIString(str);
|
||||
@@ -93,13 +115,17 @@ inline PIString operator+(const PIString & f, const std::string & str) {
|
||||
}
|
||||
|
||||
|
||||
//! \relatesalso PIString \brief Return concatenated string
|
||||
//! \relatesalso PIString
|
||||
//! \~english Returns concatenation of \c std::string and \a PIString.
|
||||
//! \~russian Возвращает конкатенацию \c std::string и \a PIString.
|
||||
inline PIString operator+(const std::string & str, const PIString & f) {
|
||||
return StdString2PIString(str) + f;
|
||||
}
|
||||
|
||||
|
||||
//! \relatesalso PIString \brief Output operator to std::ostream (cout)
|
||||
//! \relatesalso PIString
|
||||
//! \~english Writes \a PIString to \c std::ostream.
|
||||
//! \~russian Записывает \a PIString в \c std::ostream.
|
||||
inline std::ostream & operator<<(std::ostream & s, const PIString & v) {
|
||||
for (int i = 0; i < v.length(); ++i) {
|
||||
s << v[i];
|
||||
@@ -108,7 +134,9 @@ inline std::ostream & operator<<(std::ostream & s, const PIString & v) {
|
||||
}
|
||||
|
||||
|
||||
//! \relatesalso PIString \brief Input operator from std::istream (cin)
|
||||
//! \relatesalso PIString
|
||||
//! \~english Reads a whitespace-delimited token from \c std::istream into \a PIString.
|
||||
//! \~russian Читает из \c std::istream токен до пробельного символа в \a PIString.
|
||||
inline std::istream & operator>>(std::istream & s, PIString & v) {
|
||||
std::string ss;
|
||||
s >> ss;
|
||||
@@ -117,7 +145,9 @@ inline std::istream & operator>>(std::istream & s, PIString & v) {
|
||||
}
|
||||
|
||||
|
||||
//! \relatesalso PIStringList \brief Output operator to std::ostream (cout)
|
||||
//! \relatesalso PIStringList
|
||||
//! \~english Writes \a PIStringList to \c std::ostream in brace-delimited form.
|
||||
//! \~russian Записывает \a PIStringList в \c std::ostream в формате со скобками.
|
||||
inline std::ostream & operator<<(std::ostream & s, const PIStringList & v) {
|
||||
s << PIChar('{');
|
||||
for (uint i = 0; i < v.size(); ++i) {
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
#include "pistring.h"
|
||||
|
||||
|
||||
//! \ingroup Text
|
||||
//! \~\ingroup Text
|
||||
//! \~\brief
|
||||
//! \~english Based on \a PIDeque<PIString> strings list.
|
||||
//! \~russian Основанный на \a PIDeque<PIString> массив строк.
|
||||
|
||||
@@ -1,3 +1,13 @@
|
||||
/*! \file pitextmodule.h
|
||||
* \ingroup Text
|
||||
* \~\brief
|
||||
* \~english Umbrella header for the text module
|
||||
* \~russian Зонтичный заголовок текстового модуля
|
||||
*
|
||||
* \~\details
|
||||
* \~english Includes the main public string, stream, and regular expression APIs.
|
||||
* \~russian Подключает основные публичные API для строк, потоков и регулярных выражений.
|
||||
*/
|
||||
/*
|
||||
PIP - Platform Independent Primitives
|
||||
Module includes
|
||||
@@ -18,8 +28,8 @@
|
||||
*/
|
||||
//! \defgroup Text Text
|
||||
//! \~\brief
|
||||
//! \~english String classes.
|
||||
//! \~russian Классы строк.
|
||||
//! \~english Text classes and helpers.
|
||||
//! \~russian Текстовые классы и вспомогательные средства.
|
||||
//!
|
||||
//! \~\details
|
||||
//! \~english \section cmake_module_Text Building with CMake
|
||||
@@ -29,24 +39,6 @@
|
||||
//! find_package(PIP REQUIRED)
|
||||
//! target_link_libraries([target] PIP)
|
||||
//! \endcode
|
||||
//!
|
||||
//! \~english \par Common
|
||||
//! \~russian \par Общее
|
||||
//!
|
||||
//! \~english
|
||||
//!
|
||||
//!
|
||||
//! \~russian
|
||||
//!
|
||||
//!
|
||||
//! \~\authors
|
||||
//! \~english
|
||||
//! Ivan Pelipenko peri4ko@yandex.ru;
|
||||
//! Andrey Bychkov work.a.b@yandex.ru;
|
||||
//! \~russian
|
||||
//! Иван Пелипенко peri4ko@yandex.ru;
|
||||
//! Андрей Бычков work.a.b@yandex.ru;
|
||||
//!
|
||||
|
||||
#ifndef PITEXTMODULE_H
|
||||
#define PITEXTMODULE_H
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
#include "pistring.h"
|
||||
|
||||
|
||||
//! \ingroup Text
|
||||
//! \~\ingroup Text
|
||||
//! \~\brief
|
||||
//! \~english Text serialization functionality over PIBinaryStream.
|
||||
//! \~russian Функциональность текстовой сериализации поверх PIBinaryStream.
|
||||
|
||||
Reference in New Issue
Block a user