merged AI doc, some new pages

This commit is contained in:
2026-03-12 14:46:57 +03:00
parent 07ae277f9e
commit ed13838237
206 changed files with 14088 additions and 5152 deletions

View File

@@ -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);
}

View File

@@ -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;

View File

@@ -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:

View File

@@ -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;

View File

@@ -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) {

View File

@@ -29,7 +29,7 @@
#include "pistring.h"
//! \ingroup Text
//! \~\ingroup Text
//! \~\brief
//! \~english Based on \a PIDeque<PIString> strings list.
//! \~russian Основанный на \a PIDeque<PIString> массив строк.

View File

@@ -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

View File

@@ -29,7 +29,7 @@
#include "pistring.h"
//! \ingroup Text
//! \~\ingroup Text
//! \~\brief
//! \~english Text serialization functionality over PIBinaryStream.
//! \~russian Функциональность текстовой сериализации поверх PIBinaryStream.