stdlib.dll

Classes:

Functions:

Index

Common index


Class BaseString

Methods:


BaseString::LeftEx(int)

#rus Вернет len символов с начала строки. В отличии
#rus от String::Left не возбуждает ошибку, если строка
#rus имеет длину меньшую, чем запрошенная длина, а просто
#rus вернет строку целиком.  

BaseString::MidEx(int, int)

#rus Вернет len символов с позиции offset строки. В отличии
#rus от String::Mid не возбуждает ошибку, если строка
#rus не имеет len символов от заданной позиции, а просто
#rus вернет все симаолы от этой позиции. Тот же
#rus результат будет если len отрицательное число.  

BaseString::RightEx(int)

#rus Вернет len символов с конца строки. В отличии
#rus от String::Right не возбуждает ошибку, если строка
#rus имеет длину меньшую, чем запрошенная длина, а просто
#rus вернет строку целиком.  

Class BigTime

#module root.baseclasses
#rus Временная метка, не ограниченная сутками как в классе Time.
#rus В классе определены следующие глобальные поля:
#rus PrintMod24H		Режим печати времени по модулю, равному продолжительности
#rus 				суток. Например, 26:10:20 печатается в виде:
#rus 				26:10:20, если поле равно 0;
#rus 				2:10:20, если поле равно 1;
#rus 				2:10:20+1d, если поле равно 2.

Methods:


BigTime::BigTime(number)

param time;

#rus Создает временную метку.
#rus time	Количество секунд. Может быть отрицательным числом.

BigTime::BigTime(object String)

param time;

#rus Создает временную метку.
#rus time			См. комментарии.
#rus Комментарии
#rus В параметре time задается:
#rus 1) количество часов в виде плавающего числа и символа H/h;
#rus 2) количество минут в виде плавающего числа и символа M/m;
#rus 3) количество секунд в виде плавающего числа и символа S/s;
#rus 4) количество секунд в виде плавающего числа;
#rus 5) количество минут в виде плавающего числа, символа : и
#rus    количество секунд в виде плавающего числа;
#rus 6) количество часов в виде плавающего числа, символа :,
#rus    количество минут в виде плавающего числа, символа : и
#rus    количество секунд в виде плавающего числа.
#rus В начале параметра time может быть задан минус, который
#rus определяет отрицательное значение времени.
#rus В конце параметра time может быть задан +nd, где n -
#rus количество суток, которое надо добавить к времени.

BigTime::Fract(void)

#rus Получает количество сотых долей секунд во
#rus временной метке (не считая сотые в полных секундах).

BigTime::Hour(void)

#rus Получает количество часов во временной метке.

BigTime::IsNeg(void)

#rus Получает знак временной метки.
#rus Возвращает FALSE - метка положительная, TRUE - отрицательная.

BigTime::Min(void)

#rus Получает количество минут во временной метке (не считая
#rus минуты в полных часах).

BigTime::Print(void)

#rus Печатает временную метку в виде строки.

BigTime::Sec(void)

#rus Получает количество секунд во временной метке (не считая
#rus секунды в полных минутах).

BigTime::Time(void)

#rus Получает количество секунд во временной метке. Может быть
#rus отрицательным числом.

Class Buffer

#module root.baseclasses
The Buffer class is designed for storing large-scale arrays of binary 
information shared between processes.
Buffer can be created independently (the Buffer::Buffer(int) 
constructor). At that, after the creation the ShareName field contains 
the name which can be used to open the buffer that shares common 
memory (the Buffer::Buffer(refer object String) constructor).

Methods:


Buffer::Buffer(copy)

Creates buffer copy in the separate memory space;

Buffer::Buffer(int)

param Size;

Creates new Buffer with the size specified via the Size parameter;

Buffer::Buffer(int, boolean)

param Size, NoCache;

Creates new Buffer with the size specified via the Size parameter;
The NoCache flag indicates whether to use operation cashing for file 
access.

Buffer::Buffer(refer object String)

param ShareName;

Creates Buffer that shares information with the buffer whose name is 
specified via the ShareName;

Buffer::Buffer(refer object String, boolean)

param ShareName, NoCache;

Creates Buffer that shares information with the buffer whose name is 
specified via the ShareName;
The NoCache flag indicates whether to use operation cashing for file 
access.

Buffer::ClearBuffer(void)

Nulls buffer.

Buffer::ConnectBuffer(boolean)

param NoCache;

Restores the object connection with the shared memory and maps it to 
the process address space.
The NoCache flag indicates whether to use operation cashing for file 
access.

Buffer::ConnectBuffer(void)

Restores the object connection with the shared memory and maps it to 
the process address space.

Buffer::Copy(refer object Buffer, int, int, int)

param Src, dstOffset, srcOffset, Size;

Copies the number of bytes determined via the Size parameter from the 
buffer specified via the Src parameter beginning with the offset 
specified via the srcOffset parameter to the self buffer with the 
offset specified via the dstOffset parameter.

Buffer::Copy(refer object String, int)

param Src, dstOffset;

Copies the string specified via the Src parameter to the self buffer 
with the offset specified via the dstOffset parameter.

Buffer::Copy(refer object String, int, int, int)

param Src, dstOffset, srcOffset, Size;

Copies the number of bytes determined via the Size parameter from the 
string specified via the Src parameter beginning with the offset 
specified via the srcOffset parameter to the self buffer with the 
offset specified via the dstOffset parameter.

Buffer::DisconnectBuffer(boolean)

param FlushLazy;

Disconnects shared memory from the object. (It is not realized for 
Windows 3.xx).
It is used to optimize the virtual memory manager performance by 
temporary excluding the unnecessary memory from the process address 
space.
If the FlushLazy parameter == TRUE then the unconnected block is 
written to disk in the lazy mode, otherwise recording is performed 
immediately.

Buffer::Find(char, number)

param ch, offset;

Searches the character specified via the ch parameter in the initial 
buffer beginning with the position specified via the offset parameter.
Returns the character specified via the ch parameter offset in the 
initial buffer if succeeded; Otherwise - returns -1.

Buffer::Find(refer object Buffer, number)

param pattern, offset;

Searches the sub-string specified via the pattern parameter in the 
initial buffer beginning with the position specified via the offset 
parameter.
Returns the sub-string specified via the pattern parameter offset in 
the initial buffer if succeeded; Otherwise - returns -1.

Buffer::Find(refer object String, number)

param pattern, offset;

Searches the sub-string specified via the pattern parameter in the 
initial buffer beginning with the position specified via the offset 
parameter.
Returns the sub-string specified via the pattern parameter offset in 
the initial buffer if succeeded; Otherwise - returns -1.

Buffer::GetByte(number)

param offset;

Returns a byte from the position specified via the offset parameter.

Buffer::GetString(int, int)

param srcOffset, Size;

Returns string that contains the number of bytes determined via the 
Size parameter from the buffer beginning with the offset specified via 
the srcOffset parameter.

Buffer::IsBufferConnected(void)

Returns TRUE if the buffer is connected (mapped to the process address 
space), otherwise - FALSE.

Buffer::Len(void)

Returns buffer length.

Buffer::PutByte(number, number)

param offset, ch;

Writes the byte specified via the ch parameter to the buffer for which 
the method was called to the position specified via the offset parameter.

Buffer::SetBuffer(number)

param Char;

Fills buffer with the character specified via the Char parameter.

Buffer::~Buffer(void)

The destructor destroys buffer and releases resources.

Class ClassGroupItem

#module root.system
Element of the group collected according to the class membership.
Comments
If an application derives its own class from the current class, 
then it is possible to call an arbitrary method with the help 
of the Pluk::SendMessageToClassGroup method for all the objects 
of the class (or derived from it).
The Pluk::SendMessageToClassGroup method is faster than the 
Pluk::SendMessageToAllObjects system method because it uses group 
information (as the internal list of the identifiers of group objects) 
in contrast to the Pluk::SendMessageToAllObjects which searches all 
the application objects that takes significant time even for a hundred 
of objects. 

Methods:


ClassGroupItem::AddSelf(void)

Adds an object identifier to the internal list.
Comments
It is useless to call this method if the 
ClassGroupItem::ClassGroupItem constructor 
which performs the same action was previously 
called.

ClassGroupItem::ClassGroupItem(copy)

Creates an object by adding its identifier to the internal list.

ClassGroupItem::ClassGroupItem(void)

Creates an object by adding its identifier to the internal list.

ClassGroupItem::RemoveSelf(void)

Deletes an object identifier from the internal list.
Comments
Identifier is deleted automatically on 
the ClassGroupItem::~ClassGroupItem destructor call.

ClassGroupItem::~ClassGroupItem(void)

Deletes an object by removing its identifier from the internal list.

Class Clipboard

#module root.communication.clipboard
A cell in the clipboard for exchange between different applications on 
a single computer. Supports data communications and storing protocol 
which is different from the system clipboard.

Methods:


Clipboard::Clipboard(object String)

param slot;

Creates an access object for a clipboard cell.
slot			Cell name.
Comments
Applications that work on a single computer can create 
objects of this class with the same value of the slot parameter.
At that data written to the cell with the help of one 
object can be read with the help of others.
You also can create several access objects for one 
cell within a single application.

Clipboard::Read(void)

Reads data from a cell.
Returns data that was stored in the cell by one 
of the access objects of the current cell.

Clipboard::SendMessageToAll(object String, refer ...)

param messageName, [messagePars];

Calls a method for all access objects of the current cell.
messageName		Method name.
messagePars		Method parameters.
Comments
The method specified via the messageName parameter can also 
be called for the current object.

Clipboard::Write(refer any)

param data;

Writes data to a cell.
data			Data.
Comments 
Data should meet the serialization capability.

Class Date

#module root.baseclasses
The Date class is included in the set of standard Pluk classes. It 
allows to determine the current date.
class Date {
	julian;// Julian date (the number of days since the World creation)
};

Methods:


Date::+(int)

patam days;
Returns an object of the Date class which is some days in the future 
relatively to the object for which the method was called. The number 
of days specified via the days parameter 

Date::+=(int)

patam Days;
Shifts date to the future on the number of days specified via the Days 
parameter. Returns the pointer to self.

Date::-(int)

patam days;
Returns an object of the Date class which is some days in the past 
relatively to the object for which the method was called. The number 
of days specified via the days parameter 

Date::-(refer object Date)

patam anotherDate;
Returns the number of days between the date of the object for which 
the method was called and the date specified via the anotherDate 
parameter.

Date::-=(int)

patam Days;
Shifts date to the past on the number of days specified via the Days 
parameter. Returns the pointer to self.

Date::Date(int)

param JulianeDate;

This is the Constructor which creates the Date object initiated by the 
passed Julian date that is it is initiated by the number of days since 
the World creation. 

Date::Date(int, int, int)

param day, month, year;

This is the Constructor which creates the Date object initiated by the 
passed parameters.

Date::Date(refer object Date)

param date;

This is the Constructor which creates the Date object initiated by the 
date specified via the Date parameter.

Date::Date(refer object String)

param date;

This is the Constructor which creates the Date object initiated by the 
date specified via the Date parameter.
The Date parameter should contain date in the following format: "dd:mm:yyyy".

Date::Date(void)

This is the Constructor which creates the Date object initiated by the 
current date.
 

Date::Day(void)

Returns day of month

Date::DayOfWeek(void)

Returns day of week

Date::DayOfYear(void)

Returns ordinal day of year

Date::GetDateAsVector(void)

Returns the vector which consists of three - <<year, month, day>>.

Date::GetJulianDate(void)

Returns date conversion to the Julian date that is to the number of 
days since the World creation.

Date::HowOld(void)

#rus Получает возраст данной даты (в годах).

Date::HowOldByMonths(void)

#rus Получает возраст данной даты (в месяцах).

Date::Month(void)

Returns month

Date::Print(void)

Returns String which contains date and time in text representation in 
the following format: "DD/MM/YYYY".

Date::PrintDMY(void)

Returns String which contains date and time in text representation in 
the following format: "DD/MM/YYYY".

Date::PrintHowOld(void)

#rus Печатает возраст данной даты:
#rus 1) в годах, если больше либо равно одному году;
#rus 2) в месяцах, если больше либо равно одному месяцу;
#rus 3) в днях.

Date::PrintMDY(void)

Returns String which contains date and time in text representation in 
the following format: "MM/DD/YYYY".

Date::SetDateDMY(int, int, int)

param day, month, year;

Initiates date according to the day, month, year parameters.
If fails the ERR_WRONG_FORMAT error is raised.

Date::SetDateDMY(refer object String)

param Str;

Initiates date from the string specified via the Str parameter, which 
contains date in one of the following formats:
"dd/mm/yy" or "dd.mm.yy" or "dd:mm:yy" or "dd mm yy".

Date::SetDateMDY(refer object String)

param Str;

Initiates date from the string specified via the Str parameter, which 
contains date in one of the following formats:
"mm/dd/yy" or "mm.dd.yy" or "mm:dd:yy" or "mm dd yy".

Date::SetJulianDate(int)

param JulianeDate;

Updates the object contents by the passed Julian date that is by the 
number of days since the World creation. The day of week and the day 
of year are calculated.

Date::Update(void)

Updates the object contents by the current time/date value.

Date::Year(void)

Returns year (A.D.)

Class DateInterval : Interval

Methods:


Class Dictionary

The Dictionary base class is designed for storing 
and quick search of named (without duplicate names) elements.
Two descendants are produced from it: DictionaryInt and DictionaryStr.
#module root.baseclasses

Methods:


Dictionary::Dictionary(void)

Initiates an empty table.

Dictionary::GetCurrent(void)

Finds the current (in terms of GetFirst/GetNext iterator)
element in a dictionary.
Returns a pointer to the found element or EMPTY 
if the iterator is not activated.

Dictionary::GetFirst(void)

Finds the first nonempty element in a dictionary.
Returns a pointer to the found element or EMPTY 
if the dictionary is empty.

Dictionary::GetNext(void)

Finds the next nonempty element in a dictionary.
Returns a pointer to the found element or EMPTY 
if the dictionary does not have more elements.

Dictionary::GetNumbItems(void)

#rus Возвращает количество записей в словаре.

Dictionary::RemoveCurrent(void)

#rus Удаляет текущий (в смысле итератора GetFirst/GetNext)
#rus элемент в словаре.
#rus Текущий элемент становится не определен,
#rus но GetNext возвратит следующий элемент за удаленным.

Dictionary::Reset(void)

#rus Очищает таблицу.

Class DictionaryAny : Dictionary

The DictionaryAny class is designed for storing and 
quick search of named (without duplicate names) elements.
Names are arbitrary objects with the specified order 
(comparison operations).
#module root.baseclasses

Methods:


DictionaryAny::Add(refer any, refer any)

param ItemName, Item;

Adds (transfers) an element to a dictionary. 
Returns a pointer to the added element.

DictionaryAny::Check(refer any)

param ItemName;

Searches an element in a dictionary, 
returns TRUE if it is found; otherwise FALSE.

DictionaryAny::DictionaryAny(void)

Initiates an empty table.

DictionaryAny::Find(refer any)

param ItemName;

Searches an element in a dictionary, returns 
a pointer to the found element if it is found; 
otherwise EMPTY.

DictionaryAny::Remove(refer any)

param ItemName;

Deletes an element from a dictionary, 
returns TRUE if the element is deleted;
otherwise FALSE.

Class DictionaryAnyObj : DictionaryAny

#rus Класс DictionaryAnyObj предназначен для хранения и быстрого
#rus поиска именнованых (без дубликатов имен) элементов.
#rus Имена - произвольные объекты с заданным порядком (операциями сравнения).
#rus Хранимые элементы являются объектами языка Pluk, т.е.
#rus не относятся к примитивным типам (char, int, float, double, boolean)
#module root.baseclasses

Methods:


DictionaryAnyObj::DictionaryAnyObj(void)

#rus Инициирует пустую таблицу.

DictionaryAnyObj::FindPtr(refer any)

param ItemName;

#rus Ищет эленент в словаре, возвращает указатель на найденый
#rus элемент, если он найден, иначе - EMPTY.

Class DictionaryInt : Dictionary

The DictionaryInt class is designed for storing and 
quick search of named (without duplicate names) elements.
Names are integer numbers.
#module root.baseclasses

Methods:


DictionaryInt::Add(int, refer any)

param ItemName, Item;

Adds (transfers) an element to a dictionary. 
Returns a pointer to the added element.

DictionaryInt::Check(int)

param ItemName;

Searches an element in a dictionary, 
returns TRUE if it is found; otherwise FALSE.

DictionaryInt::DictionaryInt(void)

Initiates an empty table.

DictionaryInt::Find(int)

param ItemName;

Searches an element in a dictionary, returns 
a pointer to the found element if it is found; 
otherwise EMPTY.

DictionaryInt::Remove(int)

param ItemName;

Deletes an element from a dictionary, 
returns TRUE if the element is deleted;
otherwise FALSE.

Class DictionaryIntObj : DictionaryInt

#rus Класс DictionaryIntObj предназначен для хранения и быстрого
#rus поиска именнованых (без дубликатов имен) элементов.
#rus Имена - целые числа. Хранимые элементы являются объектами
#rus языка Pluk, т.е. не относятся к примитивным типам (char, int, float, double, boolean)
#module root.baseclasses

Methods:


DictionaryIntObj::DictionaryIntObj(void)

#rus Инициирует пустую таблицу.

DictionaryIntObj::FindPtr(int)

param ItemName;

#rus Ищет эленент в словаре, возвращает указатель на найденый
#rus элемент, если он найден, иначе - EMPTY.

Class DictionaryItem

Element of a table of the Dictionary class
#module root.baseclasses.helper

Methods:


DictionaryItem::<>(int)

Comparison of a dictionary element by name.

DictionaryItem::<>(refer any)

#rus Сравнение элемента словаря по имени.

DictionaryItem::<>(refer object DictionaryItem)

Comparison of two dictionary elements by name.

DictionaryItem::<>(refer object String)

Comparison of a dictionary element by name.

DictionaryItem::DictionaryItem(any)

param ItemName;

#rus Создает именованный элемент

DictionaryItem::DictionaryItem(int)

param ItemName;

Creates the named element 

DictionaryItem::DictionaryItem(object String)

param ItemName;

Creates the named element 

Class DictionaryPtr : DictionaryAny

#rus Класс DictionaryPtr предназначен для хранения и быстрого
#rus поиска именованых (без дубликатов имен) элементов.
#rus Имена - указатели.
#module root.baseclasses

Methods:


DictionaryPtr::Add(refer any, refer any)

param ItemName, Item;

#rus Добавляет (переносит) элемент в словарь. Возвращает
#rus ссылку на добавленный элемент.

DictionaryPtr::Check(refer any)

param ItemName;

#rus Ищет элемент в словаре, возвращает TRUE, если он найден,
#rus иначе - FALSE.

DictionaryPtr::DictionaryPtr(void)

#rus Инициирует пустую таблицу.

DictionaryPtr::Find(refer any)

param ItemName;

#rus Ищет элемент в словаре, возвращает ссылку на найденый
#rus элемент, если он найден, иначе - EMPTY.

DictionaryPtr::FindPtr(any)

param ItemName;

#rus Ищет эленент в словаре, возвращает указатель на найденый
#rus элемент, если он найден, иначе - EMPTY.

DictionaryPtr::Remove(refer any)

param ItemName;

#rus Удаляет элемент из словаря, возвращает TRUE
#rus если элемент удален, иначе - FALSE.

Class DictionaryStr : Dictionary

The DictionaryStr class is designed for storing and 
quick search of named (without duplicate names) elements.
Names are strings.
#module root.baseclasses

Methods:


DictionaryStr::Add(refer object String, refer any)

param ItemName, Item;

Adds (transfers) an element to a dictionary. 
Returns a pointer to the added element.

DictionaryStr::Check(refer object String)

param ItemName;

Searches an element in a dictionary, 
returns TRUE if it is found; otherwise FALSE.

DictionaryStr::DictionaryStr(void)

Initiates an empty table.

DictionaryStr::Find(refer object String)

param ItemName;

Searches an element in a dictionary, returns 
a pointer to the found element if it is found; 
otherwise EMPTY.

DictionaryStr::FindPtr(any)

param ItemName;

#rus Ищет эленент в словаре, возвращает указатель на найденый
#rus элемент, если он найден, иначе - EMPTY.

DictionaryStr::Remove(refer object String)

param ItemName;

Deletes an element from a dictionary, 
returns TRUE if the element is deleted;
otherwise FALSE.

Class Dir

#module root.system.filesystem
The Dir class is included in the set of standard Pluk libraries which
provides the interaction with file system folders. Its function is to 
isolate an application from the peculiarities of file system which is 
applied to the current platform. The FD constant is defined within 
this library. It determines the symbol that separates folder names. 
This class is specified in the following manner:
class Dir { 
		DirName; 
		Files; 
		SubDirs; 
	};

Methods:


Dir::Access(int)

param mode;

Returns TRUE if the folder has the access mode specified via the mode 
parameter;
Otherwise - FALSE.
The following mode parameter values are available:
	ACCESS_EXIST - checks whether the folder exists,
	ACCESS_WRITE - checks write rights,
	ACCESS_READ - checks read rights,
	ACCESS_READ_WRITE - check read-write rights.

Dir::CalculateVolume(boolean)

param CheckSubDirs;

#rus Метод считает занимаемый объем. Если CheckSubDirs == TRUE, то включая поддиректории.

Dir::ChangeDir(refer object BaseString)

param Name;

Changes the working (current) folder to the folder whose name is 
contained in the DirName field of the Dir object. 
Returns TRUE and changes the contents of the DirName field if succeeded; 
Otherwise - FALSE.

Dir::ChangeDir(void)

Changes the working (current) folder to the folder whose name is 
contained in the DirName field of the Dir object. 
Returns TRUE if succeeded; Otherwise - FALSE.

Dir::Clear(void)

#rus Удаляет все поддиректории и файлы в данной директории.
#rus Возвращает TRUE, если все поддиректории и файлы удалось удалить.
#rus FALSE - иначе.

Dir::CopyTo(refer object String, refer ...)

param dstName, [callbackFunc, callbackParams]

Copies a folder to another folder.
dstName		Folder name to which all files (including sub-
			folders) of the current folder must be copied.
callbackFunc	Function which is called after copying of each 
			file. This function receives a reference to the 
			copied folder (current or its sub-folder), file 
			number in it (this number coincides with the file 
			access number of the Dir class methods: for 
			instance, Dir::FileName)and parameters specified 
			via the callbackParams parameter.
callbackParams	Parameter passed to the function specified via the 
			callbackFunc parameter.

Dir::Create(object String)

param DirName;

#rus Метод создает директорию по имени DirName.
#rus В отличие от метода Create(void), 
#rus если отсутсвуют промежуточные родительские директории
#rus то они тоже создаются.

Dir::Create(void)

Cretes the folder which name is contained in the DirName field of the 
Dir object. Returns TRUE if succeeded; Otherwise - FALSE.

Dir::Dir(char)

Constructor of the object that points to the working folder at the 
specified disk, the folder's name is written down to the DirName field 
(for UNIX the created object coincide with the object created by the 
Dir::Dir(void) constructor).

Dir::Dir(refer object BaseString)

param Name;

Constructor of the object that points to the folder which may not 
exist. The Name parameter represents the folder name and is written 
down to the DirName field.

Dir::Dir(void)

Constructor of the object that points to the working (current) folder, 
the folder's name is written down to the DirName field.

Dir::FileAttr(int)

param n;

Returns the attribute of the file that has the number specified via 
the n parameter from the list of folder files.

Dir::FileDate(int)

param n;

Returns modification date and time of the file that has the number 
specified via the n parameter from the list of folder files (object of 
the TimeDate class).

Dir::FileName(int)

param n;

Returns the name of the file that has the number specified via the n 
parameter from the list of folder files.

Dir::FileSize(int)

param n;

Returns the size of the file that has the number specified via the n 
parameter from the list of folder files.

Dir::GetDate(void)

Returns modification time of the folder (object of 
the TimeDate class).

Dir::GetNumbFiles(void)

Returns the number of files in the folder (the folder should be 
written beforehand, for more information see the Dir::Read method).

Dir::GetNumbSubDir(void)

Returns the number of subfolders in the folder (the folder should be 
written beforehand, for more information see the Dir::Read method).

Dir::GetSize(void)

Returns the size of the folder.

Dir::Read(refer object BaseString)

param Mask;

Reads the contents of the folder which name is contained in the 
DirName field of the Dir object. At that the name of the files that 
correspond to the mask specified by the Mask parameter are read out.
Returns TRUE if succeeded; Otherwise - FALSE.

Dir::Read(void)

Reads the contents of the folder which name is contained in the 
DirName field of the Dir object. 
Returns TRUE if succeeded; Otherwise - FALSE.

Dir::Remove(void)

Deletes the folder whose name is contained in the DirName field of the 
Dir object. Returns TRUE if succeeded; Otherwise - FALSE.

Dir::SetFileAccessMode(int, boolean, boolean)

param FileIndex, ReadPermition, WritePermition;

Sets file access mode. 

Dir::SetFileAttribute(int, int)

param FileIndex, Attribute;

Sets file attributes. 

Dir::SubDirDate(int)

param n;

Returns modification time of the subfolder that has the number specified 
via the n parameter from the list of folder subfolders (object of 
the TimeDate class).

Dir::SubDirName(int)

param n;

Returns the name of the subfolder that has the number specified via 
the n parameter from the list of folder subfolders.

Dir::SubDirSize(int)

param n;

Returns the size of the subfolder that has the number specified via 
the n parameter from the list of folder subfolders.

Class DirectFile

Methods:


Class Dump

#module root.system
It is designed for substitution of destroyed ones for the objects for 
which pointers exist.

Class FBuffer : String

#module root.baseclasses
The FBuffer class is designed for storing large-scale arrays of binary 
information shared between processes.
This class replicates the interface of the Buffer class but in contrast 
to the Buffer class the FBuffer class is a string which is read from a 
file and is written to a file. This class I srealised on basis of a common 
file which can not be shared between the processes.
The following fields are defined in this class:
FileName			File name.
The following global fields are defined in this class:
ToConnectOnCreate		TRUE - immediately after creating an object 
				data is located in memory, FALSE - immediately 
				after creating an object data is located in 
				a file.
				The default value is TRUE.

Methods:


FBuffer::ClearBuffer(void)

Clears a buffer with zero.

FBuffer::ConnectBuffer(void)

Places buffer data in memory.

FBuffer::Copy(refer object Buffer, int, int, int)

param src, dstOffset, srcOffset, size;

Copies a buffer part to a buffer.
src				Initial buffer.
dstOffset			Offset in the destination buffer beginning 
				with which the part of the initial buffer is
				inserted.
srcOffset			Offset of the copied part in the initial 
				buffer.
size				Size of the copied part.

FBuffer::Copy(refer object String, int)

param src, dstOffset;

Copies a string to a buffer.
src				Initial string.
dstOffset			Offset in the destination buffer beginning 
				with which the initial string is inserted.

FBuffer::Copy(refer object String, int, int, int)

param src, dstOffset, srcOffset, size;

Copies a string part to a buffer.
src				Initial string.
dstOffset			Offset in the destination buffer beginning 
				with which the part of the initial string is
				inserted.
srcOffset			Offset of the copied part in the initial 
				string.
size				Size of the copied part.

FBuffer::DisconnectBuffer(boolean)

param isLazy;

Places buffer data in a file and releases memory.
isLazy			Specifies whether memory releasing 
				will be held in the "idle" mode.
Comments
The isLazy parameter is not in effect and implemented for 
the compatibility with the Buffer class where the 
Buffer::DisconnectBuffer method supports such a parameter.
After calling this method the object is a string 
(as it was before) but its size equals to 0.

FBuffer::DisconnectBuffer(void)

Places buffer data in a file and releases memory.
Comments
After calling this method the object is a string 
(as it was before) but its size equals to 0.

FBuffer::FBuffer(copy)

param s;

Creates a buffer.
s				Object of the current class whose 
				copy is being created.

FBuffer::FBuffer(int)

param len;

Creates a buffer.
len				Buffer length.

FBuffer::GetString(int, int)

param srcOffset, size;

Gets a sub-string from a buffer.
srcOffset		Offset of the obtained string in the buffer.
size			Size the obtained string.

FBuffer::IsBufferConnected(void)

Checks whether buffer data is located in memory.
Returns TRUE if data is located in memory, 
FALSE if data is located in a file.

FBuffer::SetBuffer(number)

param ch;

Sets all buffer bytes to a specific value.
ch				Specified value.

FBuffer::~FBuffer(void)

Deletes a buffer.

Class File

#module root.system.filesystem
The File class includes all the file manipulation functions supported 
by Pluk.
class File { 
		FileName; 
		IsLocked; 
		LockOffset; 
		LockSize; 
};
 

Methods:


File::Access(int)

param type;

Returns file access rights: TRUE - access enabled, FALSE - access 
denied. The type parameter specifies access type. Available values of 
the type parameter include:
	ACCESS_EXIST - file existence checking,
	ACCESS_WRITE - write access checking,
	ACCESS_READ - read access checking,
	ACCESS_READ_WRITE - read/write access checking.

File::Close(void)

Closes file in terms of operating system. Returns operating system response 
code or -1 if this file was not opened.

File::CopyTo(refer object BaseString)

param NewFileName;

Copies file whose name is contained in the FileName field to file 
whose name is passed via the NewFileName parameter.

File::File(refer object BaseString)

param Name;

Constructor which creates the File object with the name specified via 
the Name parameter. The File object creation does not mean file 
creation or opening in terms operating system. Just the control 
structure in terms of Pluk is created. The name form the Name 
parameter is copied to the FileName field of the File object.

File::GetAccessTime(void)

Returns the time of the last access to file.

File::GetAttribute(void)

Reads file attributes. 
Available attribute values are obtained via OR merging of the following 
constants:
	FILE_ATTRIBUTE_READONLY
	FILE_ATTRIBUTE_HIDDEN
	FILE_ATTRIBUTE_SYSTEM
	FILE_ATTRIBUTE_ARCHIVE
	FILE_ATTRIBUTE_NORMAL

File::GetCreateTime(void)

Returns file creation time.

File::GetLength(void)

Returns file length. 

File::GetModifTime(void)

Returns the time of the last file modification.

File::GetVersion(void)

Return file version as four numbers.
If version resource are absent in file return EMPTY.
If file not exist rise error ERR_FILE_OPEN_ERROR.

File::Gets(void)

Reads a string from text file. The end of line character is truncated.

File::Getv(void)

Reads arbitrary object in terms of Pluk from file. Unserialization is 
performed automatically (for more information see the 
Pluk::Unserialize method). Raises the "Unserialize Error" error in 
case of error. 

File::Lock(int, int)

param offset, size;

Forbids (locks) part of the file for access from other processes. 
The offset parameter determines offset within the file, the size 
parameter determines the number of protected bytes.

File::Move(object String)

param Destination, DelayUntilReboot;

Same as File::Move( object String, FALSE )			

File::Move(object String, boolean)

param Destination, DelayUntilReboot;

Destination 		- новый путь и имя для файла;
DelayUntilReboot 	- если установлен, то перемещение будет отложено до перезагрузки системы;	
	Move file to Destination despite file is locked by system. 
	If DelayUntilReboot is true than Destination can be emplty string.
In this case file will be deleted after system reboot.
			

File::Open(refer object String)

param type;

Opens (or creates) file in terms of operating system, its name is 
acquired from the FileName field of the File object. The type 
parameter indicates in which manner the file is opened. Available 
values include:
	"wt" - open (create) text file for writing. If this file already 
		exists then old content is destroyed. If opening 
		(creation) fails, "File open error" error is raised.
	"rt" - open text file for reading. If this file is missed then
		"File open error" error is raised.
	"at" - open (create) text file for writing. If this file already 
		exists then old content is saved. The pointer of writing 
		position is placed the end of file. If opening(creation) 
		fails, "File open error" error is raised.
	"w+t" - open (create) text file for writing and reading. If this 
		file already exists then old content is destroyed. If
		opening (creation) fails, "File open error" error is 
		raised.
	"r+t" - open text file for writing and reading. If opening fails 
		(for instance, file is missed), "File open error" error is 
		raised.
	"wb" - open (create) binary file for writing. If this file 
		already exists then old content is destroyed. If opening 
		(creation) fails, "File open error" error is raised.
	"rb" - open binary file for reading. If such file is missed, 
		"File open error" error is raised.
	"ab" - open (create) binary file for writing. If this file 
		already exists then old content is saved. The pointer of 
		writing position is placed the end of file. If opening 
		(creation) fails, "File open error" error is raised.
	"w+b" - open (create) binary file for writing and reading. If 
		this file already exists then old content is destroyed. If 
		opening (creation) fails, "File open error" error is 
		raised.
	"r+b" - open binary file for writing and reading. If opening 
		fails (for instance, file is missed), "File open error" 
		error is raised.

File::Printf(object BaseString, refer ...)

param format;

The File::Printf method writes the formatted text to file. The method 
parameters are similar to the Printf global function parameters.

File::Puts(refer object String)

param line;

Writes the string specified via the line parameter to text file. If 
the end of line character is missed, it is added automatically.

File::Putv(refer any)

param var;

Writes the variable specified via the var parameter to file. 
Variable serialization is performed automatically when writing. 
(for more information see the Pluk::Serialize method).

File::Read(number)

param len;

Returns an object of the String class to which a certain number of 
bytes specified via the len parameter was read out from the file. The 
number of bytes is. 
If file does not include the necessary number of bytes, then all bytes 
to the end of file are read out. Returns String of 0 length at the end 
of file.
Raises the "File read error" error in case of error. 

File::Remove(void)

Deletes file whose name is contained in the FileName field. Returns 
TRUE if succeeded; Otherwise - FALSE.

File::Rename(object BaseString)

param NewName;

Renames file to the value specified via the NewName parameter. 
Returns TRUE if succeeded; Otherwise - FALSE.

File::Seek(refer object String, number)

param where, pos;

Positions the read/write pointer within the file. The where parameter 
determines from which position the new one is counted, the pos parameter 
determines the new position value. 
Available values of the where parameter include:
	"SEEK_SET" - position is counted from the beginning of the file,
	"SEEK_END" - position is counted from the end of the file,
	"SEEK_CUR" - position is counted from the current position within 
			the file.

File::SetAccessMode(boolean, boolean)

param ReadPermition, WritePermition;

Sets file access mode. 

File::SetAccessTime(object TimeDate)

param ModifTime;

Sets the time of the last access to file equal to the ModifTime 
parameter value.

File::SetAttribute(int)

param Attribute;

Sets file attributes. 
Available attribute values are obtained via OR merging of the following 
constants:
	FILE_ATTRIBUTE_READONLY
	FILE_ATTRIBUTE_HIDDEN
	FILE_ATTRIBUTE_SYSTEM
	FILE_ATTRIBUTE_ARCHIVE
	FILE_ATTRIBUTE_NORMAL

File::SetModifTime(object TimeDate)

param ModifTime;

Sets the time of the last file modification equal to the ModifTime 
parameter value.

File::Tell(void)

Returns the position of the read/write pointer within the file.

File::UnLock(void)

Removes file protection that was set by the File::Lock method.

File::Write(refer object String)

param buffer;

Writes the contents of the buffer specified via the buffer parameter 
to file. Raises the "File write error" error in case of error. 

File::Write(refer object String, number)

param buffer, len;

Writes a certain number of bytes specified via the len parameter from 
the buffer specified via the buffer parameter to file. Raises the 
"File write error" error in case of error. 

File::~File(void)

The File object destructor. When the object is destroyed, the file in 
terms of operating system is closed (if it was opened).

Class Function

#module root.system
The synonym of the func key word, it is designed for creation of 
the classes which are function descendants.

Class Idle

#module root.system
The Idle class allows the activating/deactivating of the Idle 
flag of the Pluk-machine together with restoring of the old 
value after deleting of an object of the current class.

Methods:


Idle::Idle(boolean)

param isIdle;

Creates a n object by activating/deactivating the Idle flag.
isIdle			TRUE - activates flag, 
				FALSE - deactivates flag.

Idle::Idle(void)

Creates a n object by activating the Idle flag.

Idle::~Idle(void)

Deletes an object by setting the Idle flag to 
the value that were before the constructor call.

Class Interval

Methods:


Class Locale

#module root.system
International settings that depend on the language.
The following fields are defined in this class:
Code			Language code in the form of several Latin letters.
The following global fields are defined in this class:
CodeToName		Translation of the language code to the full 
			language name.
			It is the vector of pairs: language code, 
			full language name.
			Only supported languages are enumerated here.

Methods:


Locale::CodeToName(object String)

param Code;

Return localization name by localization code.

Locale::Locale(void)

Creates international settings for the language whose code is written 
in the Pluk.ini configuration file, in the Locale section, the Code key.

Class MemoryUsage


Class Money

#module root.common
The Money class is designed for currency input/output. 
The amount of money is stored with 4 digits after point precision.

Methods:


Money::GetAmount(void)

Returns an amount stored in an object.
Returns the amount of double type.

Money::Money(number)

param amount;

Creates an object for the specified amount.
amount		Amount.

Money::Money(object String)

param amount;

Creates an object for the specified amount in the text form.
amount		Amount in the American notation 
			(for instance, 100,510,123.11).

Money::Money(object String, boolean)

param amount, isEuro;

Creates an object for the specified amount in the text form.
amount		Amount.
isEuro		FALSE - if the amount is in the American notation 
			(for instance, 100,510,123.11), TRUE - if the amount 
			is in the European notation (for instance,
			100.510.123,11).

Money::Money(void)

Creates an object for 0 amount.

Money::Print(boolean)

param isEuro;

Prints an object.
Returns the string that represents the amount.
isEuro		FALSE - if the amount is in the American notation 
			(for instance, 100,510,123.11), TRUE - if the amount 
			is in the European notation (for instance,
			100.510.123,11).

Money::Print(void)

Prints an object.
Returns the string that represents the amount in the American notation 
(for instance, 100,510,123.11).

Class Name

#module root.common
#rus Если объект имеет имя, то можно его сделать наследником этого класса.
#rus Многие методы других классов созданы с рассчетом на это.
#rus Например Vector::FindName, Vector::FindAllName.
#rus Поля объекта:
#rus name			Имя.

Methods:


Name::GetName(void)

#rus Возвращает имя.

Name::Name(refer any)

param nm;

#rus Создает объект.
#rus Параметры:
#rus nm				Имя.

Name::Name(void)

#rus Создает объект.
#rus Имя равно EMPTY.

Name::SetName(refer any)

param nm;

#rus Устанавливает имя.
#rus nm				Имя.

Class Number

#module root.system
The synonym of the number key word, it is designed for creation of the 
classes which are number descendants.

Methods:


Number::Char(void)

The interface designed for type conversion to char. It must 
overwritten for the descendant.

Number::Double(void)

The interface designed for type conversion to double. It must 
overwritten for the descendant.

Number::Float(void)

The interface designed for type conversion to float. It must 
overwritten for the descendant.

Number::Integer(void)

The interface designed for type conversion to int. It must overwritten 
for the descendant.

Class PCom

#module root.communication.network
This class is designed for the encapsulation of a network software-to-software 
interaction in the manner of sockets stream connection. There are two types of 
sockets in this scheme - servers and clients. Server "listens" to the network 
and waits for a client's call. 
When a client applies for a service, server creates a socket to connect 
to a client and keeps listening to the network and waits for another client.
Server object "listens" to the network and waits for a connection. When 
somebody tries to connect, it creates its duplicate which is placed in 
the list of active server objects.
The OnConnect(int) method is called before the duplicate creation. 
The duplicate is created if the OnConnect method returns TRUE; Otherwise 
it is supposed that a user "manually" creates the object of server 
connection using the client's connection identifier which is passed to 
the OnConnect method as a parameter. This duplicate server or "manually" 
created connection object supports the connection with the client.
When client's data or queries are received the following methods are called: 
(OnReceive(void), OnRequest(any), OnDisconnect(void)). You can rewrite event 
handlers to act in a certain way on different client's actions. 
It should be mentioned that the established connection is duplex and queries 
(just as data) can be send both from the client to the server and backward. 
The server duplicate object is destroyed automatically when the connection 
is lost. The initial server keeps record of established connections. 
When the maximum number of connections is reached, any attempt to establish 
connection (connect to the server) is rejected. When the object which "listens" 
to the network is destroyed, all its duplicates are also destroyed, 
all corresponding connections are broken and resources are released. 
The listed properties (duplicates creation) are inherited when the descendants 
of the PCom class are created. If you have made the descendant class 
MyCom : PCom {}; and use it as a server, duplicate objects are of MyCom type. 
Take into account that duplicate objects of the MyCom class are created by 
the Constructor which refers to object MyCom and they receive the reference 
to the "main server" as a parameter. 
That is why you should write the appropriate Constructor. 
Client object tries to establish connection and is used immediately for 
interaction (without duplicates) if succeeded.
//---------------------------------------------
class PCom { 
		Service; 
		Topic; 
		Sync;
	};
The contents of the Service and Topic fields determine service and topic 
which the server object provides. It should be noted that these two fields 
either contain strings (for server) or are not initiated for a client. 
As a matter of fact the subdivision into the service and topic is very relative. 
We just decided that two strings are enough to specify a server.

Methods:


PCom::CheckContact(void)

This method is called both for a client and a duplicate server. 
This method returns TRUE if the connection is established; Otherwise - FALSE. 
The purpose of this method is to check the connection activity, because 
the situation, when the other side has closed the connection 
(for instance, abnormal termination) but the notification about closing 
was not sent, may occur.
If the connection is lost the duplicate server is destroyed.

PCom::ConnectTo(object String, object String, object String, object String, object String)

param Address, Account, Password, Service, Topic;

This method is called for a client object. Client object tries to establish 
connection with the server object when this method called. 
The Address parameter contains the network (TCP/IP) address of 
the computer with which the client tries to establish connection. 
The Account parameter contains the user name, 
the Password parameter contains the user password. 
These strings may be empty when working on a single computer. 
This method returns TRUE if succeeded; Otherwise - FALSE.

PCom::Disconnect(void)

Calling of this method brakes the connection. If this method is called 
from server, the duplicate object, for which it was called, is destroyed.
This method returns TRUE when the other side successfully notifies about 
the release; Otherwise - FALSE.

PCom::ExecAtConnectAccount(object String, object String, boolean)

param Application, Arguments, Hide;

Launches the application specified via the Application parameter with 
parameters specified in the Arguments parameter using the name and password 
of the connection partner. It is convenient when developing server application 
which launches processes that service the client under his/her name and 
password. Only server object has rights to call this method from the 
OnConnect method.
The Hide parameter specifies visibility of the main window of the launched 
application.

PCom::GetConnectAccount(void)

Returns the name of the connection partner account.
Only server object has rights to call this method from the OnConnect method.

PCom::GetContact(number)

param n;

This method is called for a server object. Returns a pointer to the server 
duplicate object that serves the connection specified via the n parameter.

PCom::GetInQueueLen(void)

Returns the length of the buffered receive queue.
Measurement units are objects.

PCom::GetInVolume(void)

Returns the number of bites received via the transmission channel 
per communication session

PCom::GetMaxInTraffic(void)

Returns input peak transfer rate (bite/sec).

PCom::GetMaxOutTraffic(void)

Returns output peak transfer rate (bite/sec).

PCom::GetNumberOfConnections(void)

This method is called for a server object. Returns the number of 
connections established with the server. 

PCom::GetNumberOfFreeConnections(void)

This method is called for a server object. Returns the number of 
vacant (idle) server connections. 

PCom::GetOutQueueLen(void)

Returns the length of the buffered transfer queue.
Measurement units are objects.

PCom::GetOutVolume(void)

Returns the number of bites transferred via the transmission channel 
per communication session.

PCom::GetRemoteHostName(void)

Returns the network name of thew remote host.

PCom::GetTimeout(void)

Returns specifed connection latency time (sec).

PCom::Listen(number)

param nConnect;

This method is called for a server object to begin the network "listening". 
The nConnect parameter determines the maximum number of connection for 
this server.

PCom::OnConnect(int)

param PeerID;

This method is called when the client's side sends the connection request 
to the server. If you are not satisfied with the creation of the connection 
object within the server object list, you can rewrite this method. In the 
rewritten method create the connection object using the PCom(PeerID) 
Constructor and return FALSE in order to prevent creation of the connection 
object within the server object list.

PCom::OnDisconnect(void)

This method is called when the connection partner calls the Disconnect method, 
that is when the connection is broken. Rewrite this method in the descendant 
class if you want to perform any actions on the connection closing.

PCom::OnReceive(void)

This method is called when receiving data. Data is zeroised by default. 
In order to use data the OnReceive method should be rewritten in the PCom 
class descendant.
(See PCom::Receive()).

PCom::OnRequest(refer any)

param request;

This method is called when receiving request. The request parameter contains 
data which was sent within the request (for more information see 
the PCom::Request(any) method). The return value of this method is sent 
back over the network as the request answer. 
Rewrite this method in the descendant class in order to create server 
which reacts on the inquiries.

PCom::PCom(copy)

Constructor which raises an error when an attempt of PCom object copying 
is made.

PCom::PCom(int)

param PeerID;

Constructor which creates an object which is linked to the client 
whose connection identifier is equal to the PeerID parameter. 
It is designed to create the object of server connection "manually". 
To call this Constructor you should use the PeerID parameter which is 
received as a parameter in the OnConnect(int)method. The object has 
the established connection right after finishing the Constructor if succeeded.

PCom::PCom(refer object PCom)

param Src;

Constructor which creates an object with not initiated Service and Topic fields 
(in general - client object or duplicate server).
The connection from the Src object is not inherited. 
If the Constructor is called by the "main server" to create duplicate server, 
the "main server" will link up the connection to the object AFTER finishing 
the Constructor.
The Src parameter is a reference to the "main server" when creating a 
duplicate server.

PCom::PCom(refer object String, refer object String)

param aService, aTopic;

Constructor which creates an object with initiated Service and Topic 
fields (in general - server object).

PCom::PCom(void)

Constructor which creates an object with not initiated Service and Topic 
fields (in general - client object or duplicate server).

PCom::Receive(void)

Returns data which was either send by the PCom::Transmit(refer any) method or 
received as a return from the OnRequest method in the out-of-sync state over 
the network. In any case this method should be called in order to get data 
after calling the OnReceive method.

PCom::Request(refer any)

param var;

This method is called both for a client and a duplicate server. Transfers 
the var variable over the network in the self-containded (serialized) format. 
If the Sync field is set to TRUE, this method works in the in-sync state 
and waits for the end of transmission notification from the other side. 
The PCom::Request(refer any) method returns answer from the other side. 
If it is impossible to bring request message the OnDisconnect method is called.
If the Sync field is set to FALSE, this method works in the out-of-sync state 
and immediately returns right after the var object is enqueued on transmission.
Returns TRUE if the connection exists; Otherwise - FALSE. 
A user can destroy the var object right after returning from the function 
because the serialized duplicate of the var object is stored in the 
transmission queue. The request answer calls the OnReceive(void) method. 
Data which is sent in such a way invokes the recipient's OnRequest(any)method.

PCom::Return(refer any)

param Data;

	This method is called from the OnRequest method in order to 
return the result to a client before (for more information see 
the PCom::Request(any)method) processing the request. The Data parameter 
is passed to the client as the return of the PCom::Request(any) method. 
In this case the return from the OnRequest method is not performed.

PCom::SetNumberOfFreeConnections(int)

param NumberFreeConnection;

This method is called for a server object. Sets (changes) the number of 
vacant (idle) server connections. 

PCom::SetTimeout(number)

param t;

Sets connection latency time t (sec).

PCom::StopWaiting(void)

Calling of this method results in the idle termination when in the 
in-sync request (or when waiting for the network connection establishing). 
When in idle mode Pluk passes messages from the window system. That is why 
it is possible to set window timer and to stop waiting for the answer on 
the in-sync request, when the message from the timer is received.

PCom::Transmit(refer any)

param var;

This method is called both for a client and a duplicate server. Transfers 
the var variable over the network in the self-containded (serialized) format. 
If the Sync field is set to TRUE, this method works in the in-sync state and 
waits for the end of transmission. Returns TRUE if succeeded; 
Otherwise - FALSE.
If the Sync field is set to FALSE, this method works in the out-of-sync 
state and immediately returns right after the var object is enqueued on 
transmission.
Returns TRUE if the connection exists; Otherwise - FALSE. 
A user can destroy the var object right after returning from the function 
because the serialized duplicate of the var object is stored in 
the transmission queue. Data which is sent in such a way invokes 
the recipient's OnReceive(void) method.

PCom::~PCom(void)

Destructor which closes connection (it notifies the other side about 
closing and releases socket).

Class PDebCom : PCom

#module root.communication.network
The PDebCom class is a descendant of the PCom class and intended for 
communication purposes between the debugger and the debugged program.
On launching the Pluk application with the /debug key an object of the 
PDebCom class is automatically created. This object is linked to a Pluk 
machine  and is not accessible from the level of the executed Pluk program. 
This object is a server and allows only one connection. The peculiarity of 
this object is in the fact that it stops the current Pluk program execution 
when receiving requests and execute this request. At the same time it has 
access to all debug functions of the Pluk object. 
The PDebCom client that connects to the PDebCom server of the debugged 
program is created in the debug program in order to create a debugger.
The debugger can control the behavior of the debugged Pluk program and 
get all the information about its status by sending appropriate 
request/commands.
The PDebCom server interpret reports which are sent by 
the PCom::Transmit(refer any) method in a particular way. These reports 
contain vectors which consist of two numbers (command and parameter).
	<<PCD_STOP, 0>> - Switches Pluk machine to the "stop" state, 
			and command idle.
	<<PCD_CONTINUE, 0>> - Quits Pluk machine from the "stop" state. The 
			execution of the stopped program is continued.
	<< PCD_STEP, 0>> - At this command Pluk machine which is in 
			the "stop" state executes code of one string 
			of the source program text and returns to the 
			"stop" state. If this string contains function 
			call then program stop is performed right after 
			entering this function.
	<<PCD_BLOCK, 0>> - At this command Pluk machine which is in the 
			"stop" state executes code of one string of the 
			source program text and returns to the "stop" state. 
			If this string contains function call then this 
			function is executed without program stop.
	<<PCD_BREAK, 0>> - At this command Pluk machine breaks the currently 
			executed function and returns to the invoking function.
	<<PCD_END, 0>> - At this command the Pluk application is closed.
	<<PCD_STOPONERROR, TRUE>> - At this command Pluk machine switches 
			to the "error stop " state, that is if an error 
			occurs then Pluk machine switches to the "stop" 
			state right after error information but before 
			jump to the error handle code.
	<<PCD_STOPONERROR, FALSE>> - At this command Pluk machine toggles 
			off the "error stop" state.
class PDebCom : PCom { 
	};

Methods:


PDebCom::Debug(object String, object String, object String, object String)

param Address, Account, Password, Application;

Establishes connection with server object of the debugged application. 
Returns TRUE if succeeded; Otherwise - FALSE.

PDebCom::GetStatus(void)

Returns the number that represents the binary OR combination of all 
status flags (fro more information see PCD_STATUS_... constants) of 
the debugged program. 

PDebCom::PDebCom(void)

Constructor which creates an object with not initiated Service and Topic 
fields (in general - client object or duplicate server).

PDebCom::Run(refer object String)

param Program;

Called from the client object. Forces the debugged program to interrupt 
the current work and execute function whose text is defined in the string 
of the Program parameter. 
If the Sync field is set to TRUE, this method works in the in-sync state 
and waits for the end of the Program function. The return of the Program 
function is sent back and is represented as the return 
PDebCom::Run(refer object String) method. If it is impossible to bring 
request message the OnDisconnect method is called.
If the Sync field is set to FALSE, this method works in the out-of-sync 
state and immediately returns right after the Program function is enqueued 
on transmission.
Returns TRUE if the connection exists; Otherwise - FALSE. 
A user can destroy the Program parameter string right after returning from 
the function because the serialized duplicate of the Program parameter string 
is stored in the transmission queue. Getting of the Program execution result 
leads to the call of the OnReceive method. 

PDebCom::Run(refer object Vector)

param ProgAndPar;

The PDebCom::Run(refer object Vector) method works similarly to 
the PDebCom::Run(refer object String) method, at the same time it 
is intended that the first vector element contains function body, 
other elements contain parameters for calling this function.

PDebCom::RunFile(refer object String)

param FileName;

The method results in execution of the file specified via the FileName 
parameter by the debugged program. 

PDebCom::RunOnLevel(refer object String, number)

param Program, level;

This method executes code of the function defined in the Program 
parameter at the stack nesting level specified via the level parameter. 
In that way the debugger has an opportunity to read and modify local 
variables that belong to functions which lies deeper in the call stack.

PDebCom::RunOnLevelSys(refer object String, number)

It is the complete analog of 
the PDebCom::RunOnLevel(refer object String, number) method, 
only that before the execution the StopOnError flag is cleaned.

PDebCom::RunSys(refer object String)

It is the complete analog of the PDebCom::Run(refer object String) method, 
only that before the execution the StopOnError flag is cleaned.

PDebCom::RunSys(refer object Vector)

It is the complete analog of the PDebCom::Run(refer object Vector) method, 
only that before the execution the StopOnError flag is cleaned.

PDebCom::StartUp(object String, object String, object String, object String, object String, object String)

param Address, Account, Password, Application, Project, Arguments;

Called from the client object. Calling of this method results in breaking of 
the current connection and launching the application specified via 
the Application parameter with /debug and /pProject keys. The first key 
forces the application to create the PDebCom server, the second one forces 
the application to execute project from the file whose name is specified via 
the Project parameter. When execution is performed on a single machine the 
Address parameter string may be empty. If the Project parameter string is 
empty, the application executes built-in project. If the built-in project 
does not exist, the application executes the project defined in the pluk.ini 
file. The Arguments parameter value is passed to the application as the 
command line.
Returns "OK" string if succeeded.

PDebCom::Update(refer object String, int, refer object String)

param FileName, LineNumber, FuncBody;

Updates code which is defined in the FuncBody parameter, 
it is assigned to the file specified via the FileName parameter 
to the line specified via the LineNumber parameter. It means that 
henceforward the debugged Pluk program will consider that the 
appropriate code was successfully read from the file specified 
via the FileName parameter beginning with the line specified via 
the LineNumber parameter and was not received from the network.

PDebCom::UpdateFile(refer object String)

param FileName;

This method calls the update of classes and methods specifications from 
the file specified via the FileName parameter. The difference between 
the update and execution is that if the class/method has been already defined, 
an error is not raised but the specification is updated. Moreover, when 
the class specification is updated, all existing class objects are not 
destroyed but brought in accordance with the new specification. The same 
operation is carried-out with all class descendants.

Class PLogCom : PCom

Methods:


Class POINT

#module root.geometry
The POINT class represents a two-dimensional point and 
is designed for work with planar images.
This class is specified as:
class POINT { 
		x;
		y; 
	};

Methods:


POINT::*(number)

param k;

This method multiplies a vector on the scalar specified via the k 
parameter.

POINT::*(refer object POINT)

This method returns the scalar product of vectors.

POINT::*=(number)

param k;

This method multiplies a vector on the scalar specified via the k 
parameter.

POINT::+(number)

param n;

This method returns an object of the POINT class with the coordinates 
obtained by shifting the point-recipient of '+' message on diagonal on 
the value specified via the n parameter.

POINT::+(refer object POINT)

This method returns a point that represents the vector sum of two 
points.

POINT::+=(number)

param n;

This method shifts the point-recipient of '+' message on diagonal on 
the value specified via the n parameter. Returns a reference to the 
recipient.

POINT::+=(refer object POINT)

This method shifts the point-recipient of '+' message according to 
vector sum with point-parameter. Returns a reference to the recipient.

POINT::-(number)

param n;

This method returns an object of the POINT class with the coordinates 
obtained by shifting the point-recipient of '-' message on diagonal on 
the value specified via the -n parameter.

POINT::-(refer object POINT)

This method returns a point that represents the vector difference of 
two points.

POINT::-=(number)

param n;

This method shifts the point-recipient of '-' message on diagonal on 
the value specified via the -n parameter. Returns a reference to the 
recipient.

POINT::-=(refer object POINT)

This method shifts the point-recipient of '-' message according to 
vector difference with point-parameter. Returns a reference to the 
recipient.

POINT::/(number)

param k;

This method divides a vector on the scalar specified via the k 
parameter.

POINT::/=(number)

param k;

This method divides a vector on the scalar specified via the k 
parameter.

POINT::Angle(void)

This method gets the vector orientation angle relatively to the origin 
of coordinates. The angle range is between 0 and 2 * PI.

POINT::Flip(refer object POINT, refer object POINT)

This method gets the vector obtained from the current vector as its 
mirror image relatively the straight line which passes the p1, p2 
points.

POINT::GetLineCoeff(refer object POINT)

#rus Возвращает вестор << a, b, c >> коэффициентов уравнения прямой, проходящей
#rus через эти точки ( a*x + b*y + c = 0 ).

POINT::Module(void)

This method gets the scalar of a vector.

POINT::Module2(void)

This method gets the scalar of a vector.

POINT::POINT(number, number)

param x, y;

Constructor of the point with (x, y) coordinates.

POINT::POINT(void)

Constructor of the point with (0,0) coordinates.

POINT::Rotate(number)

This method gets the vector obtained from the current vector by its 
rotation around the (0, 0) point on the a angle.

POINT::Rotate(refer object POINT, number)

This method gets the vector obtained from the current vector by its 
rotation around the o point on the a angle.

POINT::Zoom(refer object POINT, number)

This method gets the vector obtained from the current vector using the 
homothety relatively the o point with the ratio of similitude which is 
equal to k.

Class POINT3 : POINT

#module root.geometry
The POINT3 class represents a three-dimensional point and 
is designed for work with 3D graphic presentation.
This class I specified as:
class POINT3 : POINT { 
		z;
	};

Methods:


POINT3::*(number)

param k;

This method multiplies a vector on the scalar specified via the k 
parameter.

POINT3::*(refer object POINT3)

This method returns the scalar product of vectors.

POINT3::*=(number)

param k;

This method multiplies a vector on the scalar specified via the k 
parameter.

POINT3::+(refer object POINT3)

#rus Метод возвращает точку, являющуюся векторной суммой двух точек.

POINT3::+=(refer object POINT3)

This method shifts the point-recipient of '+' message according to 
vector sum with point-parameter. Returns a reference to the recipient.

POINT3::-(refer object POINT3)

This method returns a point that represents the vector difference of 
two points.

POINT3::-(void)

#rus Унарный минус

POINT3::-=(refer object POINT3)

This method shifts the point-recipient of '-' message according to 
vector difference with point-parameter. Returns a reference to the 
recipient.

POINT3::/(number)

param k;

This method divides a vector on the scalar specified via the k 
parameter.

POINT3::/=(number)

param k;

This method divides a vector on the scalar specified via the k 
parameter.

POINT3::Module(void)

This method gets the scalar of a vector.

POINT3::Module2(void)

This method gets the scalar of a vector.

POINT3::VectorMul(refer object POINT3)

Returns vector product.

Class ParseTree

#module root.system
The ParseTree class is designed for connecting to the Pluk-machine 
semantic analyzer. The semantic tree of syntactically correct 
construction (according to the Pluk language) can be obtained with its 
help.
This class has the following fields that are accessible from Pluk 
	Type -  contains the integer number from the group of constants:
		TRST_CODE -     "operator" node type
		TRST_NAME -     "name" node type
		TRST_VALUE -    "constant" node type
		
	Name -  variable name or code name ( in case of constant 
			it is  EMPTY).
	
	Value - constant value or input representation of code 
			 (in case of name it is EMPTY).
	
	Childs - vector that consists of ParseTree type objects 
			which are child relatively to the current one. 
In case of terminal element it is an empty vector.

Methods:


ParseTree::Fuse(refer object String, refer object String)

param Dst, Offset;

Synthesizes the source code on basis of the parsed sub-tree.
	Dst			- string for the result creation 
	Offset 		- general code offset 

ParseTree::Fuse(void)

Synthesizes the source code on basis of the parsed tree 
Returns the synthesized text.

ParseTree::FuseBlock(refer object String, object String)

param Dst, Offset;

Synthesizes the source code of the block on basis of the parsed tree.
	Dst		- string for the result creation 
	Offset  	- offset for text formatting.

ParseTree::FuseCode(refer object String, object String)

param Dst, Offset;

Synthesizes the source code on basis of the parsed sub-tree.
	Dst		- string for the result creation 
	Offset  	- offset for text formatting.

ParseTree::FuseSubExpression(refer object String, refer object String, int)

param Dst;

Synthesizes the source code of the sub-expression on basis of the 
parsed sub-tree.
	Dst			- string for the result creation 

ParseTree::Parse(refer object String)

param Func;

The method that builds the semantic tree of the function 
specified via the Func parameter.

ParseTree::Parse(refer rfunc)

param Func;

The method that builds the semantic tree of the function 
specified via the Func parameter.

ParseTree::Parse(refer sfunc)

param Func;

The method that builds the semantic tree of the function 
specified via the Func parameter.

ParseTree::ParseTree(refer object String)

param Func;

The constructor that builds the semantic tree of the function 
specified via the Func parameter.

ParseTree::ParseTree(refer rfunc)

param Func;

The constructor that builds the semantic tree of the function 
specified via the Func parameter.

ParseTree::ParseTree(refer sfunc)

param Func;

The constructor that builds the semantic tree of the function 
specified via the Func parameter.

ParseTree::ParseTree(void)

Empty constructor.

ParseTree::Print(void)

Returns String that contains text representation of the tree. <EndComment>

ParseTree::[](int)

This operator provides access to the N child node of the first level 

Class Pluk

#module root.system
One global Pluk object of the Pluk class always exists in Pluk. The 
Pliuk class does not have class members and its methods provides 
access to the set of special and general-duty functions which can be 
called system functions.

Methods:


Pluk::*(number, refer object POINT)

param k;

This method multiplies the scalar specified via the k 
parameter on the p vector.

Pluk::*(number, refer object POINT3)

param k;

This method multiplies the scalar specified via the k 
parameter on the p vector.

Pluk::AddClassMembers(object String, object Vector)

param name, members;

Adds new global fields to the class specification.
name			Class name.
members		Vector of global field names which are to be added.

Pluk::AddMembers(object String, object Vector)

param name, members;

Adds new fields to the class specification.
name			Class name.
members		Vector of field names which are to be added.

Pluk::AddParents(object String, object Vector)

param name, parents;

Adds new parents to the class specification.
name			Class name.
parents		Vector of parent class names which are to be added.

Pluk::AllowIdle(boolean)

param BoolFlg;

Sets the Idle flag value according to the BoolFlg parameter. 
If the Idle flag is set to TRUE then propagation of Windows messages 
to the application during execution of Pluk-functions is allowed.
Returns the previous value of the Idle flag.
Note 1:
When the Idle flag is set the message queue is inquired between each 
pair of Pluk-processor commands. If messages are encountered in a 
queue, they are executed as interrupts that is the current state is 
placed to the stack, the Idle flag is set to FALSE and the message 
handler is called. When the message handler operations are completed, 
the Pluk-machine state is restored from the stack, the Idle flag is 
set to TRUE and the execution of the interrupted code continues.
Node 2:
In the completely compiled code the Idle flag does not work. If it is 
necessary to allow propagation of Windows messages in the completely 
compiled code the Pluk::Idle(void) method should be called.
Note 3:
In Windows 3.xx messages are propagated not only to the current 
application but also to other applications that realizes preemptive 
multitasking.

Pluk::CGetError(void)

Returns the string (text) of the last raised error in the system.
The method is designed to obtain the error string from the onerror 
block of errors interception (for more information see the description 
of the Pluk language).

Pluk::CGetErrorEx(void)

Returns the additional string (text) delivered with the last raised 
error in the system.
The method is designed to obtain the error string from the onerror 
block of errors interception (for more information see the description 
of the Pluk language).

Pluk::CRegError(refer object String)

param ErrStr;

Registers a user's error with text specified via the ErrStr parameter 
in the system. 
The function returns the error number (code).

Pluk::CRegError(refer object String, refer object String)

param ErrStr, ConstName;

Registers a user's error with text specified via the ErrStr parameter 
in the system. 
The function returns the error number (code). The constant with the 
name specified via the ConstName parameter and whose value is equal to 
the error code is registered in the system.

Pluk::CSetError(refer object String)

param ErrStr;

Initiates the error with text specified via the ErrStr parameter and 
consequent rollback with errors intercepting. The list of possible 
standard errors texts can be found in the error.dat file.

Pluk::CSetError(refer object String, refer any)

param ErrStr, AdditionalString;

Initiates the error with text specified via the ErrStr parameter, 
extension text specified via the AdditionalString parameter and 
consequent rollback with errors intercepting. The list of possible 
standard errors texts can be found in the error.dat file.

Pluk::CheckFunc(refer rfunc)

param Func;

Checks the method for syntax errors, unknown global variables and 
class members presence.

Pluk::CheckFunc(refer sfunc)

param Func;

Checks the method for syntax errors, unknown global variables and 
class members presence.

Pluk::CheckLogin(object BaseString, object BaseString, object BaseString)

param UserName, DomainName, Password;

This method returns TRUE if a user is authorized to logon, otherwise 
it returns FALSE.
If an empty string is passed as a domain then all available domains 
are scanned during checking.

Pluk::ClearBreakPoints(void)

Switches all breakpoints to the "Off" state in all Pluk-processor 
functions and methods.

Pluk::ClearCode(void)

This method deletes all compiled Pluk-code (both B-code and completed 
compiled code). The compilation is performed repeatedly upon calling 
any method (function). This method is useful for abnormal memory 
release from the unused Pluk-code.

Pluk::CodePassword(object String)

param Password;

Returns the coded value of the string specified via the Password parameter.

Pluk::Compress(refer any)

param var;

This method serializes the variable specified via the var parameter 
(if it is not the serialized string) and compresses using the LZW 
method that is transforms it into the string which can be written to a 
file or transferred via the network. The reverse transforming is performed 
by the Pluk::Decompress(refer object String) method. 
The outstanding peculiarity of this method is that the created string 
is cross-platform (system), in other words the reverse transforming 
can be correctly performed on any machine and under any operating 
system, not depending on the platform where the serialized string was 
created.
This method returns string. 
Note.
	If the serialized object specified via the var parameter
 	contains a pointer to outside of the serialized object then the 
	"Can't serialize pointer" error is raised.

Pluk::CopyResource(object String, object String)

param ExeFile, ResFile.

Copies a resource from the resource object file specified via the 
ResFile parameter to the executable module specified via the ExeFile 
parameter.

Pluk::Decode(refer object String, refer object String)

param Src, Key;

The method decodes the object specified via the Src 
parameter using the key specified via the Key parameter that was 
previously encoded by the Encode method.
The method returns the restored object.

Pluk::Decompress(refer object String)

param SerStr;

This method performs operation which is reverse to the operation 
performed by the Pluk::Compress(refer any) method.
This method returns reconstructed variable. 
If the compressed object is the object of the class which is unknown 
to Pluk-processor (for instance the compressed string was obtained via 
the network) then if it is possible to reconstruct the class 
specification, it will be reconstructed and Pluk-processor can use it 
in the future. If the compressed object is the object of the class 
which is known to Pluk-processor but its specification does not match 
the specification which is already defined in Pluk-processor then the 
object will be created according to the Pluk-processor specification 
and the contents of the compressed object fields will be transferred 
if possible (according to name compliance). 
Note.
	Constructor is not called when reconstructing an object of the 
class. The fields' contents are filled according to the 
information from the compressed string. In case of violations or 
corrupted compressed string specified via the SerStr parameter 
(for instance, the checksum does not match) one of the following 
errors is raised:
	"Unserialize error"
	"Can't reconstruct object"
	"It isn't compressed buffer"
	"Decompress error"

Pluk::Delay(number)

param t;

The t seconds delay. During this delay all other applications can 
work correctly under Windows 3.11.

Pluk::Encode(refer any, refer object String)

param Src, Key;

This method serializes and encodes the object specified via the Src 
parameter using the key specified via the Key parameter.
The symmetric RC-algorithm with 128-bit key is used for encoding.
The method returns the String object that contains the encoded object.

Pluk::Exec(object BaseString, boolean, boolean, ...)

param CommandLine, wait, hide, Environment, Priority;

Launches a program as it is specified via the CommandLine string.
If the wait parameter == TRUE then it waits till the process is 
finished if it is set to FALSE then the immediate return to function 
is performed.
If the hide parameter == TRUE then the process window is hidden on 
launching, if it is set to FALSE then the process window is visible on 
launching.
The Environment parameter contains the vector of the following pairs: 
<<VarName,VarValue>>
(for instance << <<"INCLUDE", "c:\pluk\\include;c:\\pluk\\loc\\eng>>, ...>>),
that describe addition environment variables.
The Priority parameter specifies the priority of the process.
Available values include:
	PRIORITY_CLASS_IDLE
	PRIORITY_CLASS_NORMAL
	PRIORITY_CLASS_HIGH
	PRIORITY_CLASS_REALTIME
Using the PRIORITY_CLASS_REALTIME process priority for long time may 
cause the system failure because this priority exceeds the priority of 
several operating system functions, for instance, disk cashing, mouse 
messages processing etc.
If you need to create preemptive process it is recommended to use the 
PRIORITY_CLASS_HIGH priority.
The PRIORITY_CLASS_IDLE priority is designed for background processes.
Possible errors include: 
	ERR_CANT_LOAD_MODULE	- module loading error

Pluk::ExecAsUser(object BaseString, boolean, object BaseString, refer object BaseString, object BaseString, ...)

param CommandLine, hide, UserName, Domain, Password, Environment, Priority;

Launches a program as it is specified via the CommandLine string under 
the user name specified via the UserName parameter from the domain 
specified via the DomainName parameter using the password specified 
via the Password parameter.
If the hide parameter == TRUE then the process window is hidden on 
launching, if it is set to FALSE then the process window is visible on 
launching.
The Environment parameter contains the vector of the following pairs: 
<<VarName,VarValue>>
(for instance << <<"INCLUDE", "c:\pluk\\include;c:\\pluk\\loc\\eng>>, ...>>),
that describe addition environment variables.
The Priority parameter specifies the priority of the process.
Available values include:
	PRIORITY_CLASS_IDLE
	PRIORITY_CLASS_NORMAL
	PRIORITY_CLASS_HIGH
	PRIORITY_CLASS_REALTIME
Using the PRIORITY_CLASS_REALTIME process priority for long time may 
cause the system failure because this priority exceeds the priority of 
several operating system functions, for instance, disk cashing, mouse 
messages processing etc.
If you need to create preemptive process it is recommended to use the 
PRIORITY_CLASS_HIGH priority.
The PRIORITY_CLASS_IDLE priority is designed for background processes.
Possible errors include: 
	ERR_PRIVILEGE_NOT_HELD	- no privilege for launching process 
					under the current user account 
	ERR_LOGON_FAILED		- Name/password are wrong
	ERR_CANT_LOAD_MODULE	- module loading error 

Pluk::FileOf(refer func)

Returns the file name from which the function was loaded (if it was 
loaded from Pluk-file).

Pluk::FlushIdle(void)

Explicitly transfers control to the Windows operating system by 
calling selection/dispatching messages functions from the application 
queue untill it becomes empty. 

Pluk::FormatCode(refer object String)

param code;

Parses the contents of the code parameter and synthesizes text with 
formatting according to the obtained parsed semantic tree.
Returns formatted text.

Pluk::FormatCode(refer object String, int)

param code, offset;

Parses the contents of the code parameter and synthesizes text with 
formatting according to the obtained parsed semantic tree.
The offset parameter specifies the general offset of the formatted text.
Returns formatted text.

Pluk::FormatCode(refer rfunc)

param code;

Parses the contents of the code parameter and synthesizes text with 
formatting according to the obtained parsed semantic tree.
Returns formatted text.

Pluk::FormatCode(refer sfunc)

param code;

Parses the contents of the code parameter and synthesizes text with 
formatting according to the obtained parsed semantic tree.
Returns formatted text.

Pluk::Free(object String)

param DLLName;

This mrthod frees DLL. 
WARNING:
	In case of DLL free it is user responsibility to sutisfy inner program integrity.
He (she) must either reload this DLL again or delete/redefine classes and methods 
stored in the DLL and does not use windows templates stored in the DLL.
If those conditions will be broken the GPF crash is inevitable.

Pluk::GetBreakPointsList(refer sfunc)

param Func;

Returns the vector that consists of line numbers where breakpoints in 
the function specified via the Func parameter are in the "On" state.

Pluk::GetBreakPointsListIP(refer sfunc)

param Func;

Returns the vector that consists of code numbers where breakpoints in 
the function specified via the Func parameter are in the "On" state.

Pluk::GetClassComment(refer object String)

param ClassName;

Returns the system comment of the class specified via the ClassName 
parameter. If this comment is not defined then EMPTY is returned.

Pluk::GetClassFileName(refer object String)

Returns the file name from which the class specification was loaded 
(if it was loaded from Pluk-file).

Pluk::GetClassLineNumb(refer object String)

Returns the number of the starting line of the class specification 
within the file from which the specification was loaded (if it was 
loaded from Pluk-file).

Pluk::GetClassList(boolean)

param WithPrivate;

Returns the vector that contains the class names defined in Pluk-
processor. If the WithPrivate parameter == TRUE then the list includes 
classes that contains the key word "private" in their comments.

Pluk::GetClassList(refer object String, boolean)

param ModuleName, WithPrivate;

Returns the vector that contains the class names defined in Pluk-
processor which belong to the module specified via the ModuleName 
parameter. If the WithPrivate parameter == TRUE then the list includes 
classes that contains the key word "private" in their comments.

Pluk::GetClassList(void)

Returns the vector that contains the class names defined in Pluk-processor. 

Pluk::GetClassMemberList(refer object String)

param ClassName;

Returns vector that contains names of members (static class members) 
of the class specified via the ClassName parameter. 

Pluk::GetCodeLen(refer rfunc)

param Func;

Returns the number of obtained b-operators when compiling the function 
specified via the Func parameter.

Pluk::GetCodeLen(refer sfunc)

param Func;

Returns the number of obtained b-operators when compiling the function 
specified via the Func parameter.

Pluk::GetCodeName(int)

param n;

Returns the code name which is executed within the stack at a depth 
specified via the n parameter. If the code is indeterminate then the 
"UNKNOWN" string is returned.

Pluk::GetCodeStat(refer rfunc)

param Func;

Returns statistical information that is the vector of b-operator using 
number in the function specified via the Func parameter.

Pluk::GetCodeStat(refer sfunc)

param Func;

Returns statistical information that is the vector of b-operator using 
number in the function specified via the Func parameter.

Pluk::GetComment(refer func)

param Func;

Returns the system comment of the function/method specified via the 
Func parameter. If this comment is not defined then EMPTY is returned.

Pluk::GetConstList(void)

Returns the vector that contains constant names defined in Pluk-
processor. 

Pluk::GetCurLineOnAbsLevel(int)

param FrameLevel;

#rus Возврашает номер выполняемой строки (если доступен) в функции 
#rus находящейся в стэке на глубине FrameLevel от дна стэка.

Pluk::GetCurLineOnLevel(int)

param FrameLevel;

Returns the number of the executed line (if it is accessible) in the 
function which is located at a stack depth specified via the 
FrameLevel parameter.

Pluk::GetCurrentProcessData(void)

This method returns the ProcessData object for the current process 

Pluk::GetDLLList(void)

Returns the vector that contains the dynamic library names loaded to 
Pluk-processor.

Pluk::GetDLLMethodsSpec(object String)

param DLLName;

This method returns the vector which consists of full names of Pluk-
methods written on C++ and included in the DLLName dynamic library.

Pluk::GetDiskFreeSpace(object String)

param DiskName;

Returns free disk space in bytes on the disk specified via the 
DiskName parameter.
Returns EMPTY in case of missing the disk specified via the DiskName 
parameter.

Pluk::GetEnvVar(object BaseString)

#rus Возвращает значение переменной из окружения если найдет;
#rus Для версии UNICODE результат будет иметь тип аргумента.

Pluk::GetEnvironment(void)

Returns the vector which consists of pairs: EnvironmentVariableName, 
EnvironmentVariableValue. 
	<< <<VarName1, VarValue1>>, <<VarName2, VarValue2>>, ... >>

Pluk::GetError(void)

Returns the number (code) of the last raised error in the system.
The method is designed to obtain the error code from the onerror block 
of errors interception (for more information see the description of 
the Pluk language).

Pluk::GetErrorText(int)

param Err;

Returns string (text) of the error with the number specified via 
the Err parameter. 

Pluk::GetFrameSize(int)

param FrameLevel;

Returns the number of local/temporary variables in the frame at a 
depth specified via the FrameLevel parameter.

Pluk::GetFreeMem(void)

Returns free space amount.

Pluk::GetFuncList(number)

Returns the vector that contains function names defined in Pluk-
processor at a stack depth specified via the n parameter. If n == -1 
then the global functions are returned; if  n == 0 then the functions 
of the current stack level are returned; if n > 0 then the functions 
of the appropriate deep into level are returned.

Pluk::GetFuncOnAbsLevel(int)

param FrameLevel;

#rus Возврашает ссылку на функцию находящуюся в стэке на глубине FrameLevel от дна стэка.

Pluk::GetFuncOnLevel(int)

param FrameLevel;

Returns the pointer to the function which is located at a stack depth 
specified via the FrameLevel parameter.

Pluk::GetHomePath(void)

Returns the path to the folder from which the executable module was 
launched.

Pluk::GetIPOnAbsLevel(int)

param FrameLevel;

#rus Возврашает значение указателя инструкций (если доступен) в функции 
#rus находящейся в стэке на глубине FrameLevel от дна стэка..
#rus Если IP не доступен, то возвращается -1.

Pluk::GetIPOnLevel(int)

param FrameLevel;

Returns the instruction pointer value (if it is accessible) in the 
function which is located at a stack depth specified via the 
FrameLevel parameter.
If the IP is not accessible then -1 is returned.

Pluk::GetMemberList(refer object String)

param ClassName;

Returns vector that contains names of object members of the class 
specified via the ClassName parameter. 

Pluk::GetMethodList(refer object String)

param ClassName;

Returns vector that contains method names of the class specified via 
the ClassName parameter.

Pluk::GetMethodList(refer object String, boolean)

param ClassName, WithPrivate;

Returns vector that contains method names of the class specified via 
the ClassName parameter. If the WithPrivate parameter == TRUE then the 
list includes methods that contains the key word "private" in their comments.

Pluk::GetModuleList(void)

Returns the vector that contains the module names defined in Pluk-processor.

Pluk::GetModuleName(object String)

param ClassName;

Returns the module name to which the class specified via the ClassName 
parameter is assigned.

Pluk::GetNameOfLoadingDLL(void)

This method returns the DLL name being loaded. It may be necessary 
when code loaded from DLL needs to be adjusted according to the DLL's 
name. For instance, when it needs to know this name in the future for 
loading resources.

Pluk::GetNumbParents(refer object String)

param ClassName;

Returns the number of parents for the class specified via the 
ClassName parameter. In case of single inheritance it is always 
equal to 1.

Pluk::GetNumbPointers(refer any)

param Object;

The method returns the number of pointers to the object specified via 
the Object parameter.

Pluk::GetNumberActiveObjects(void)

Returns the number of active objects in Pluk-machine. 

Pluk::GetNumberInactiveObjects(void)

Returns the number of objects in Pluk-machine that are subject to be 
destroyed but are not destroyed yet. 

Pluk::GetOSVersion(void)

Returns string with the description of the operating system version.

Pluk::GetObjectByID(int)

param ID;

Returns the pointer to the object that has the identifier specified via 
the ID parameter. If the object with the certain identifier is not found 
then the ERR_UNKNOWN_ID error is raised.

Pluk::GetObjectID(refer any)

param Obj;

Returns the identifier of the object specified via the Obj parameter. 
If the Obj parameter represents an object without identifier then 0 is 
returned.

Pluk::GetParentName(refer object String, int)

param ClassName, ParentNumb;

Returns the name of the parent class whose number is specified via the 
ParentNumb parameter for the class specified via the ClassName 
parameter. The number specified via the ParentNumb parameter may have 
\value that differs from 0 only in case of multiple inheritance.

Pluk::GetParentsList(refer object String)

param ClassName;

Returns vector that contains parent names of the class specified via 
the ClassName parameter.

Pluk::GetPriority(void)

Returns process priority.

Pluk::GetProcessID(void)

This method returns the process identifier.

Pluk::GetProcessList(void)

Returns the list of ProcessData objects.

Pluk::GetProjectName(void)

Returns the project name for the application that executes external 
project (non-export version). 

Pluk::GetRCodeLen(refer rfunc)

param Func;

Returns the number of bytes in the code which is obtained after the 
completed compiling of the function specified via the Func parameter 
up to the real processor codes.

Pluk::GetReferList(refer func)

param Func;

	Returns the vector that indicates parameters which are passed to 
the method specified via the Func parameter by pointer.
The vector consists of Boolean values, 
	TRUE - parameter is passed by pointer 
	FALSE - parameter is passed by value

Pluk::GetResDLLName(void)

Returns the name of resource DLL for the application that executes 
external project (non-export version).

Pluk::GetSerializedSize(refer any)

Returns the serialized variable size without taking into consideration 
the header length and checksum.

Pluk::GetStackDepth(void)

Returns stack depth that is the number of function calls frames in the stack.

Pluk::GetStackList(void)

Returns the list of functions enumerated in the stack.

Pluk::GetStackVarFromFrame(int, int)

param FrameLevel, VarNumber;

Returns the pointer to the local/temporary variable that has the 
offset specified via the VarNumber parameter in the frame at a depth 
specified via the FrameLevel parameter.

Pluk::GetUUID(void)

Returns 16-byte UUID - global unique identifier.

Pluk::GetUserName(void)

This method returns the name of the user to whom the process belongs.

Pluk::GetVarList(int)

Returns the vector that contains variable names defined in Pluk-
processor at a stack depth specified via the n parameter. If n == -1 
then the global variables are returned; if  n == 0 then the variables 
of the current stack level are returned; if n > 0 then the variables 
of the appropriate deep into level are returned.

Pluk::GetVarListOnAbsLevel(int)

param FrameLevel;

#rus Возвращает вектор, содержащий имена переменных, определенных в Плюк-процессоре
#rus на уровне стека n от дна стэка. При этом, если n == -1, то возвращаются глобальные переменные;

Pluk::GetVersion(void)

Returns vector that consists of 6 elements.
The first - virtual Pluk-machine version,
The second - Pluk-object version (service facility)
The third - minor version number (bugs fixing etc.)
The fourth - processor type (I86)
The fifth - code capacity (16 or 32)
The sixth - release version (r) or debug version (d)

Pluk::HasClassMember(refer object String, refer object String)

param className, memberName;

Returns TRUE if the member specified via the memberName parameter is 
present in the specification of static part of the class specified via 
the className parameter, otherwise - FALSE.

Pluk::HasMember(refer object String, refer object String)

param className, memberName;

Returns TRUE if the member specified via the memberName parameter is 
present in the specification of the class specified via the className 
parameter, otherwise - FALSE.

Pluk::HideMainWindow(boolean)

param Hide;

If the Hide parameter == TRUE then the main application window becomes 
invisible.

Pluk::Idle(void)

Explicitly transfers control to the Windows operating system by 
calling selection/dispatching messages functions from the application 
queue. 

Pluk::IsClass(refer object String)

param ClassName;

Returns TRUE if the class specified via the ClassName parameter is 
defined in Pluk-machine, otherwise FALSE.

Pluk::IsClassInheritFrom(refer object String, refer object String)

param childName, parentName;

Returns TRUE if the class specified via the childName parameter is 
inherited from the class specified via the parentName parameter, 
otherwise - FALSE.

Pluk::IsCompressed(refer object String)

param SerStr;

This method returns TRUE if the SerStr parameter contains 
the compressed variable, otherwise - FALSE.

Pluk::IsConst(refer object String)

param ConstName;

Returns TRUE if the constant specified via the ConstName parameter is 
defined in Pluk-machine, otherwise FALSE.

Pluk::IsGlobalFunc(refer object String)

param FuncName;

Returns TRUE if the global function specified via the FuncName 
parameter is defined in Pluk-machine, otherwise FALSE.

Pluk::IsGlobalVar(refer object String)

param VarName;

Returns TRUE if the global variable specified via the VarName 
parameter is defined in Pluk-machine, otherwise FALSE.

Pluk::IsInheritFrom(refer any, refer object String)

patam Object, parentName;
Returns TRUE if the object specified via the Object parameter is the 
object of the descendant class from the class specified via the 
parentName parameter, otherwise - FALSE.

Pluk::IsMethod(refer object String, refer object String)

param ClassName, MethodName;

Returns TRUE if the class specified via the ClassName parameter has 
the method specified via the MethodName parameter, otherwise FALSE.

Pluk::IsMethod(refer object String, refer object String, boolean)

param ClassName, MethodName, CheckParents;

Checks whether the class specified via the ClassName parameter has the 
method specified via the MethodName parameter. If the CheckParents 
parameter == TRUE then presence of this method is checked for all 
class parents.
Returns TRUE if the method is found, otherwise FALSE.

Pluk::IsSerialized(refer object String)

param SerStr;

This method returns TRUE if the SerStr parameter contains 
the serialized variable, otherwise - FALSE.

Pluk::KillProcess(int)

param ProcessID;

This method the process specified via the ProcessID parameter.

Pluk::LineOf(refer func)

Returns the number of the starting line of the function within the 
file from which the function was loaded (if it was loaded from Pluk-
file).

Pluk::Load(object String)

param DLLName;

This method performs the DLLName dynamic library loading. This library 
contains the specification of the Pluk class and methods written on C++.

Pluk::MyName(void)

Returns the name of the procedure being executed at the moment.

Pluk::MyPointer(void)

Returns the pointer to the variable that contains the procedure being 
executed at the moment.

Pluk::MySource(void)

Returns the source code of the procedure being executed at the moment.
(If it is accessible)

Pluk::NameOf(refer any)

param var;

Returns the name of the variable specified via the var parameter if it 
is named.

Pluk::OpenDoc(object String)

param docName;

#rus Открывает файл справки docName.

Pluk::PrintBCode(refer rfunc)

param Func;

Returns text with BCocd listing of the function specified via 
the Func parameter.

Pluk::PrintBCode(refer sfunc)

param Func;

Returns text with BCocd listing of the function specified via 
the Func parameter.

Pluk::PrintVersion(void)

Returns the Pluk version as a string 

Pluk::ReLoad(object String, object String)

param DstDLLName, SrcDLLName;

This method releases the DstDLLName dynamic library that contains the 
specification of Pluk class and methods written on C++ substitutes it 
from the SrcDLLName and reloads. At that the specifications of classes 
and methods defined in the dynamic library are updated according to 
the contents of the last loaded version.

Pluk::RemoveClassMembers(object String, object Vector)

param name, members;

#rus Удаляет глобальные поля из спецификации класса.
#rus name			Имя класса.
#rus members			Вектор имен глобальных полей, которые требуется удалить.

Pluk::RemoveMembers(object String, object Vector)

param name, members;

#rus Удаляет поля из спецификации класса.
#rus name			Имя класса.
#rus members			Вектор имен полей, которые требуется удалить.

Pluk::RemoveParent(object String, object String)

param ClassName, ParentName;

Deletes the parent specified via the ParentName parameter from the 
class specified via the ClassName parameter

Pluk::RemoveParents(object String, object Vector)

param name, parents;

#rus Удаляет из спецификации класса родителей.
#rus name			Имя класса.
#rus parents			Вектор имен классов-родителей, которые требуется удалить.

Pluk::RunFile(object String)

param FileName;

The method executes the Pluk-file specified via the FileName 
parameter. This method is designed for creation of integrated shells 
and debuggers.

Pluk::RunNonPlukFile(object String, object String)

param FileName, FileType;

Performs loading/execution of a non-Pluk file 
Must return TRUE if succeeded; otherwise FALSE

Pluk::SaveCode(refer rfunc, refer object String)

param Func, FileName;

Writes the result of the second pass of the Pluk-compiler over the 
function specified via the Func parameter to the file specified via 
the FileName parameter in the text representation. The result of the 
second pass represents the b-code. Generally, this method is designed 
for Pluk-compiler debugging but it also can be used for the executed 
Pluk-code analysis. 

Pluk::SaveCode(refer sfunc, refer object String)

param Func, FileName;

Writes the result of the second pass of the Pluk-compiler over the 
function specified via the Func parameter to the file specified via 
the FileName parameter in the text representation. The result of the 
second pass represents the b-code. Generally, this method is designed 
for Pluk-compiler debugging but it also can be used for the executed 
Pluk-code analysis. 

Pluk::SaveRCode(refer rfunc, refer object String)

param Func, FileName;

Writes the result of the completed compiling of the function specified 
via the Func parameter by the Pluk-compiler up to the real processor 
codes to the file specified via the FileName parameter in the binary 
representation. Generally, this method is designed for Pluk-compiler 
debugging but it also can be used for the executed Pluk-code analysis. 

Pluk::SaveTree(refer rfunc, refer object String)

param Func, FileName;

Writes the result of the first pass of the Pluk-compiler over the 
function specified via the Func parameter to the file specified via 
the FileName parameter in the text representation. The result of the 
first pass represents the semantic tree. Generally, this method is 
designed for Pluk-compiler debugging but it also can be used for the 
executed Pluk-code analysis. 

Pluk::SaveTree(refer sfunc, refer object String)

param Func, FileName;

Writes the result of the first pass of the Pluk-compiler over the 
function specified via the Func parameter to the file specified via 
the FileName parameter in the text representation. The result of the 
first pass represents the semantic tree. Generally, this method is 
designed for Pluk-compiler debugging but it also can be used for the 
executed Pluk-code analysis. 

Pluk::SendMessageToAllObjects(refer object String, refer object String, refer ...)

param ClassName, MethodName;

parest Params;
This method sends the message specified via the MethodName parameter 
with the parameters contained in the Params to all objects of the 
ClassName class. For instance, let we have the defined MyClass class 
and it has the defined MyClass::MyMethod(int, int) method.
Then calling the following method 
	Pluk->SendMessageToAllObjects("MyClass", "MyMethod", 1, 2);
results in calling the MyMethod method with 1 and 2 parameters for all 
instances of the MyClass class and for all instances of the descendant 
classes of the MyClass class.

Pluk::SendMessageToClassGroup(object String, object String, refer ...)

param type, methodName, [pars];

Sends the specified method for all objects of the given class (and 
classes derived from it).
type			Class name for which objects the method is to be sent.
methodName		Method name.
pars			Method parameters.
Comments
The Pluk::SendMessageToClassGroup method is faster than the 
Pluk::SendMessageToAllObjects system method because it uses group 
information (as the internal list of the identifiers of group objects) 
in contrast to the Pluk::SendMessageToAllObjects which searches all 
the application objects that takes significant time even for a hundred 
of objects.

Pluk::Serialize(refer any)

param var;

This method serializes the variable specified via the var parameter 
that is transforms it into the string which can be written to a file 
or transferred via the network. The reverse transforming is performed 
by the Pluk::UnSerialize(refer object String) method. 
The outstanding peculiarity of this method is that the created string 
is cross-platform (system), in other words the reverse transforming 
can be correctly performed on any machine and under any operating 
system, not depending on the platform where the serialized string was 
created.
This method returns string. 
If the serialized object has the associated C++ object then it has the 
opportunity to serialize it. In order to do it Pluk checks the 
existence of the GetCPPClassSize(void), SerializeCPPClass(void) and 
calls them.
	
	GetCPPClassSize(void) - this method should return the buffer 
size necessary for serialization.
	
	SerializeCPPClass(void) - this method should return the String 
object which contains the serialized C++ object.
			The string size which is returned by this method 			should be equal to the size returned by the 				GetCPPClassSize mrthod.
	
Note.
	If the serialized object specified via the var parameter 	
	contains a pointer to outside of the serialized object then the 	
	"Can't serialize pointer" error is raised.

Pluk::SetBreakPointsList(refer sfunc, refer object Vector)

param Func, BreakPointList;

Sets breakpoints to the "On" state within the function specified via 
the Func parameter in those lines whose numbers are enumerated in the 
vector specified via the BreakPointList parameter.

Pluk::SetBreakPointsListIP(refer sfunc, refer object Vector)

param Func, BreakPointList;

Sets breakpoints to the "On" state within the function specified via 
the Func parameter in B-code instructions whose numbers are enumerated 
in the vector specified via the BreakPointList parameter.

Pluk::SetClassComment(refer object String, refer object String)

param ClassName, Comment;

Sets the system comment specified via the Comment parameter to the 
class specified via the ClassName parameter.

Pluk::SetComment(refer func, refer object String)

param Func, Comment;

Sets the system comment specified via the Comment parameter to the 
function/method specified via the Func parameter.

Pluk::SetError(number)

param er;

Initiates the error whose number (code) is specified via the er 
parameter and consequent rollback with errors intercepting. The list 
of possible error numbers is described by the ERR_ group constants.

Pluk::SetError(number, refer any)

param er, AdditionalString;

Initiates the error whose number (code) is specified via the er 
parameter, extension text is specified via the AdditionalString 
parameter and consequent rollback with errors intercepting. 
The list of possible error numbers is described by the ERR_ group constants.

Pluk::SetModuleName(object String, object String)

param ClassName, ModuleName;

Assigns the class specified via the ClassName parameter to the module 
specified via the ModuleName parameter.

Pluk::SetPriority(int)

param Priority;

Sets process priority.
Available values of the Priority parameter include:
	PRIORITY_ABOVE_NORMAL
	PRIORITY_BELOW_NORMAL
	PRIORITY_HIGHEST
	PRIORITY_IDLE
	PRIORITY_LOWEST
	PRIORITY_NORMAL
	PRIORITY_TIME_CRITICAL
Returns TRUE if succeeded, otherwise FALSE.

Pluk::SetReferList(refer func, refer object Vector)

param Func, ReferList;

	Sets the parameters passed to the method specified via the 
Func parameter by pointer according to the vector specified via 
the ReferList parameter.
The ReferList vector consists of Boolean values, 
	TRUE - parameter is passed by pointer 
	FALSE - parameter is passed by value

Pluk::SetTempBreakPoint(refer sfunc, int)

param Func, LineNumber;

Sets temporary (till the first passing) breakpoint in the function 
specified via the Func parameter at the line specified via the 
LineNumber parameter.

Pluk::SetTempBreakPointIP(refer sfunc, int)

param Func, IPNumber;

Sets temporary (till the first passing) breakpoint in the function 
specified via the Func parameter in the code with number specified via 
the IPNumber parameter.

Pluk::ToggleBreakPoint(refer sfunc, int)

param Func, LineNumber;

Switching of the breakpoint state (On/Off) in the function specified 
via the Func parameter at the line specified via the LineNumber 
parameter.

Pluk::ToggleBreakPointIP(refer sfunc, int)

param Func, IPNumber;

Switching of the breakpoint state (On/Off) in the function specified 
via the Func parameter in the code with number specified via the 
IPNumber parameter.

Pluk::UUIDFromText(object String)

Converts the following printable form:
	3fad3020-16b7-11ce-80eb-00aa003d7352
to 16-byte UUID - global unique identifier to: 

Pluk::UUIDToText(object String)

Converts 16-byte UUID - global unique identifier to the following 
printable form: 
	3fad3020-16b7-11ce-80eb-00aa003d7352.

Pluk::UnSerialize(refer object String)

param SerStr;

This method performs operation which is reverse to the operation 
performed by the Pluk::Serialize(refer any) method.
This method returns reconstructed variable. 
If the serialized object is the object of the class which is unknown 
to Pluk-processor (for instance the serialized string was obtained via 
the network) then if it is possible to reconstruct the class 
specification, it will be reconstructed and Pluk-processor can use it 
in the future. If the serialized object is the object of the class 
which is known to Pluk-processor but its specification does not match 
the specification which is already defined in Pluk-processor then the 
object will be created according to the Pluk-processor specification 
and the contents of the serialized object fields will be transferred 
if possible (according to name compliance). 
If the serialized object had the associated C++ object then it has the 
opportunity to reconstruct it. In order to do it Pluk checks the 
existence of the UnSerializeCPPClass(refer object String) method and 
calls it.
	
	UnSerializeCPPClass(refer object String) - this method receives 
the String object which was made by the 
SerializeCPPClass(void) method as the 
parameter.
The class is checked for the OnUnSerialize(void) method existence when 
reconstructing an object. If method is found, it is called when the 
object reconstruction is completed.
Note.
	Constructor is not called when reconstructing an object of the 
class. The fields' contents are filled according to the 
information from the serialized string. In case of violations or 
corrupted serialized string specified via the SerStr parameter 
(for instance, the checksum does not match) one of the following 
errors is raised:
	"Unserialize error";
	"Can't reconstruct object".

Pluk::Update(object String)

param DLLName;

This method performs the DLLName dynamic library loading. This library 
contains the specification of the Pluk class and methods written on C++.
In case if library was loaded before, the specification and methods in memory
will be updated according to library contents.

Pluk::UpdateFile(object String)

param FileName;

The method updates the specifications of classes and methods from the 
file specified via the FileName parameter. This method is designed for 
creation of integrated shells and debuggers.

Pluk::VarFromResource(refer object String, refer object String, refer object String)

param Name, Type, Module;

This method allows to read out an object (of arbitrary type) from the 
module that contains Windows resources. The Name parameter specifies 
the resource name, the Type parameter specifies the resource type 
name, the Module parameter specifies the name of the module (EXE or 
DLL) which contains resources.

Pluk::WaitEvent(void)

Sleep until message (event) appear in the queue. Dispatch message
and return. If there are messages in the queue, it process one message
and return.

Class PlukCriticalSection

#module root.common

Methods:


Class PlukThread

#module root.common

Methods:


Class Pointer

#module root.system
The synonym of the pointer key word.

Class RECT

#module root.geometry
The RECT class represents a two-dimensional rectangular region and is 
designed for work with planar images.
This class is specified as:
class RECT { 
	left;       // left region boundary 
	top;        // top region boundary 
	right;      // right region boundary 
	bottom;     // bottom region boundary 
};

Methods:


RECT::&(refer object RECT)

param r;

Calculates the largest rectangle which contains all the points that 
belong to the first and the second rectangles.
r - the second rectangle.
Returns a rectangle or EMPTY if intersection is empty.

RECT::*=(number)

param scale;

	Scale rectangle by factor scale

RECT::AbsHorz(number)

param val;

Returns the absolute point position on the horizontal straight line 
relatively to the left rectangular edge supposing that the rectangular 
width is equal to 1.0.

RECT::AbsVert(number)

param val;

Returns the absolute point position on the vertical straight line 
relatively to the bottom rectangular edge supposing that the 
rectangular height is equal to 1.0.

RECT::CrossLine(refer object POINT, refer object POINT)

param p1, p2;

#rus Возвращает вектор точек пересечения
#rus прямой, проходящей через точки p1 и p2, с прямоугольником.
#rus Если точек пересечения нет, то возвращает EMPTY.

RECT::CrossSegment(object POINT, object POINT)

param p1, p2;

RECT::CrossSegment(refer object POINT, refer object POINT)
Checks the (p1, p2) section clipping by a rectangle according to the 
Sazerlend-Cohen clipping algorithm.
Returns EMPTY if the section does not have common points with the 
rectangle. 
Otherwise returns a vector that consists of two points which are the 
ends of the section that represents the clipping of the section by the 
rectangle.

RECT::Height(void)

This method returns the rectangle height.

RECT::IsInRect(number, number)

param x, y;

RECT::IsInRect(number, number)
Checks whether a point belongs to a rectangle.
x - x point coordinate.
y - y point coordinate.
Returns a Boolean value. TRUE if the point belongs 
to a rectangle; otherwise FALSE.

RECT::IsInRect(refer object POINT)

param pt;

Checks whether a point belongs to a rectangle.
pt - Point.
Returns a Boolean value. TRUE if the point belongs 
to a rectangle; otherwise FALSE.

RECT::Move(number, number)

param dx, dy;

This method shifts a rectangle on the (dx, dy) vector.

RECT::Move(refer object POINT)

param p;

This method shifts a rectangle on the pt vector.

RECT::MoveTo(number, number)

param x, y;

This method moves a rectangle to the (x, y) point.

RECT::MoveTo(refer object POINT)

param p;

This method moves a rectangle to the point specified via the p 
parameter.

RECT::OrderBounds(void)

Orders rectangle boundaries according to the .left <= .right,
.top <= .bottom rule.

RECT::RECT(number, number, number, number)

param left, top, right, bottom;

This constructor creates a rectangle with boundaries specified via the 
passed parameters.

RECT::RECT(refer object POINT, refer object POINT)

param p1, p2;

#rus Констрктор, создающий прямоугольник с границами определяемыми 
#rus двумя точками - p1 и p2.

RECT::RECT(void)

This constructor creates a zero-size rectangle with (0, 0, 0, 0) 
boundaries.

RECT::RelHorz(number)

param val;

Returns the relative point position on the horizontal straight line 
relatively to the left rectangular edge supposing that the rectangular 
width is equal to 1.0.

RECT::RelVert(number)

param val;

Returns the relative point position on the vertical straight line 
relatively to the bottom rectangular edge supposing that the 
rectangular height is equal to 1.0.

RECT::ToInt(void)

Convert boundaries of rectangle to integer grid

RECT::Width(void)

RECT::Width(void) 
This method returns the rectangle width.

RECT::|(refer object RECT)

param r;

RECT::|(refer object RECT)
Calculates the smallest rectangle which contains all the points of the 
first and the second rectangles.
r - the second rectangle.
Returns a rectangle.

Class SFunction : Function, String

#module root.system
The synonym of the sfunc key word, it is designed for creation of 
the classes which are Pluk-function descendants.

Class Silent

#module root.system
Creation of an object of the Silent class suppresses the delivery of 
Pluk-machine system messages.
While any object of the Silent class exists, Pluk-machine works "silently".

Methods:


Silent::Silent(void)

Increases "silent" counter by one.

Silent::~Silent(void)

Decreases "silent" counter by one.

Class String : BaseString

#module root.baseclasses
The String class that encapsulates major string operations is defined 
in Pluk. This class does not have any visible fields from Pluk level 
and its contents can be accessed only via the appropriate methods.

Methods:


String::!=(refer object String)

param Str;

The '!=' operator compares the string for which it was called with the 
string specified via the Str parameter. Returns TRUE if the string for 
which the method was called is not equal to the string specified via 
the Str parameter; Otherwise - FALSE.

String::&(refer object String)

param Str;

If the length of the string for which the method is called and the 
length of the string specified via the Str parameter are equal then 
bytewise AND operation is performed. The result is returned in the new 
string. If lengths are not equal then the "Casting Error" error is 
raised.

String::&=(refer object String)

param Str;

If the length of the string for which the method (operator) is called 
and the length of the string specified via the Str parameter are equal 
then bytewise AND operation is performed. The string copy is not 
created. The string for which the method was called is modified. The 
pointer to this string is returned. If string lengths are not equal 
then the "Casting Error" error is raised.
"Casting Error".

String::<(refer object String)

param Str;

The '<' operator compares the string for which it was called with the 
string specified via the Str parameter. Returns TRUE if the string for 
which the method was called is less than the string specified via the 
Str parameter; Otherwise - FALSE.

String::<=(refer object String)

param Str;

The '<=' operator compares the string for which it was called with the 
string specified via the Str parameter. Returns TRUE if the string for 
which the method was called is less or equal to the string specified 
via the Str parameter; Otherwise - FALSE.

String::<>(refer object String)

param Str;

Compares the string for which the method was called with the string 
specified via the Str parameter. 
Returns 0 if these strings are equal, returns number greater than zero 
if the string for which the method was called contains character with 
greater code than the string specified via the Str parameter in the 
same position when using the character-oriented comparison; Otherwise 
returns -1.

String::==(refer object String)

param Str;

The '==' operator compares the string for which it was called with the 
string specified via the Str parameter. Returns TRUE if the string for 
which the method was called is equal to the string specified via the 
Str parameter; Otherwise - FALSE.

String::>(refer object String)

param Str;

The '>' operator compares the string for which it was called with the 
string specified via the Str parameter. Returns TRUE if the string for 
which the method was called is greater than the string specified via 
the Str parameter; Otherwise - FALSE.

String::>=(refer object String)

param Str;

The '>=' operator compares the string for which it was called with the 
string specified via the Str parameter. Returns TRUE if the string for 
which the method was called is greater or equal to the string 
specified via the Str parameter; Otherwise - FALSE.

String::@(refer object String)

param Str;

The @ operator is the operator of two strings concatenation (merging). 
A new string which consists of operands merging is the result of its 
performing.
For instance, as a result of the following expression:
	c = "Hello " @ "World!";
the c variable contains the following string:
	"Hello World!".

String::@=(refer object String)

param Str;

The @= operator is the operator of two strings concatenation 
(merging). The second string is added to the first one as a result of 
its performing.
The pointer to the first string is returned.

String::AppendNumbSubStr(number, refer object String)

param nCopy, SubStr;

This method adds nCopy times the string specified via the SubStr 
parameter to the end of the string for which this method was called. 
This method returns nothing.

String::CharToLine(number)

param offset;

If a string contains a set of carriage returns (a set of lines) then 
this method returns the number of the line to which the character with 
the offset specified via the offset parameter belongs. If the offset 
is out of the string range then -1 is returned.

String::ClearString(void)

Cleares string (populates it with zeros) in the self object.
Returns nothing.

String::ConvertToWindowsString(void)

Substitutes all strings ending with \n
on strings ending with \r\n.

String::CopyString(refer object String)

param Str;

Copies information from the string specified via the Str parameter to 
the object from which class the method was called.  The method is 
designed to be used from descendant classes of the String class.

String::CopyString(refer object WString)

param Str;

Copies information from the Unicode-string specified via the Str 
parameter to the object from which class the method was called.  The 
method is designed to be used from descendant classes of the String 
class. 

String::DosToWin1251(void)

If a string contains Russian text in DOS encoding then 
this method returns its code translation into Windows 1251.

String::DoubleToString(int, number)

param Offset, Number;

Copies the 64-bit number with floating point determined via the Number 
parameter to self beginning with the position specified via the Offset 
parameter.
Returns the number of bytes occupied in the buffer (self).

String::Find(char)

param ch;

Searches the character specified via the ch parameter in the initial 
string beginning with the 0 position.
Returns the character specified via the ch parameter offset in the 
initial string if succeeded; Otherwise - returns -1.

String::Find(char, number)

param ch, offset;

Searches the character specified via the ch parameter in the initial 
string beginning with the position specified via the offset parameter.
Returns the character specified via the ch parameter offset in the 
initial string if succeeded; Otherwise - returns -1.

String::Find(refer object String)

param pattern;

Searches the sub-string specified via the pattern parameter in the 
initial string beginning with the 0 position.
Returns the sub-string specified via the pattern parameter offset in 
the initial string if succeeded; Otherwise - returns -1.

String::Find(refer object String, number)

param pattern, offset;

Searches the sub-string specified via the pattern parameter in the 
initial string beginning with the position specified via the offset 
parameter.
Returns the sub-string specified via the pattern parameter offset in 
the initial string if succeeded; Otherwise - returns -1.

String::FindMax(int)

param depth;

Finds the maximum image pixel value.
depth		The number of bytes per pixel (can be equal to 1, 2).
Returns the maximum value of the int type. 
Returns nothing in case of an empty string.

String::FindMin(int)

param depth;

Finds the minimum image pixel value.
depth		The number of bytes per pixel (can be equal to 1, 2).
Returns the minimum value of the int type. 
Returns nothing in case of an empty string.

String::FindNon(char)

param ch;

Searches the character which is not coincide with the character 
specified via the ch parameter in the initial string beginning with 
the 0 position.
Returns the character offset in the initial string if succeeded; 
Otherwise - returns -1.

String::FindNon(char, number)

param ch, offset;

Searches the character which is not coincide with the character 
specified via the ch parameter in the initial string beginning with 
the position specified via the offset parameter.
Returns the character offset in the initial string if succeeded; 
Otherwise - returns -1.

String::FloatToString(int, number)

param Offset, Number;

Copies the 32-bit number with floating point determined via the Number 
parameter to self beginning with the position specified via the Offset 
parameter.
Returns the number of bytes occupied in the buffer (self).

String::FromSixBits(void)

Returns string that represents the restored string that was created by 
the String::ToSixBits() method.

String::GetByte(number)

param offset;

Returns a byte from the position specified via the offset parameter.

String::GetCRC(void)

Returns CRC-16 for its contents.

String::GetHash(void)

Returns hash-index for its contents.

String::GetLastByte(void)

Returns the contents of the last byte.
Complete equivalent of String->GetByte(String->Len() -1);

String::GetWord(number)

param offset;

This method returns string, which contains the word that consists of 
numbers and letters and includes the position specified via the offset 
parameter. If there is no any letter or number at the position 
specified via the offset parameter then empty string is returned. for 
instance, calling the  "This is the example of using the 
String::GetWord method"->GetWord(14) method returns the following 
string: "example".

String::GetvAll(void)

Если строка есть последовательность сериализованных объектов,
то вернет вектор этих объектов.

String::Insert(refer object String, number)

param Str, offset;

Inserts the string specified via the Str parameter into the string for 
which the method is called. Insertion is performed from the position 
specified via the offset parameter.

String::Int16ToString(int, number)

param Offset, Number;

Copies the 16-bit integer number determined via the Number parameter to 
self beginning with the position specified via the Offset parameter using 
the Little Endian format.
Returns the number of bytes occupied in the buffer (self).

String::Int32ToString(int, number)

param Offset, Number;

Copies the 32-bit integer number determined via the Number parameter to 
self beginning with the position specified via the Offset parameter using 
the Little Endian format.
Returns the number of bytes occupied in the buffer (self).

String::IsAlNum(number)

param offset;

This function returns TRUE if string contains letter or number at the 
position specified via the offset parameter; Otherwise - FALSE.

String::IsAlpha(number)

param offset;

This function returns TRUE if string contains letter at the position 
specified via the offset parameter; Otherwise - FALSE.

String::IsDigit(number)

param offset;

This function returns TRUE if string contains number at the position 
specified via the offset parameter; Otherwise - FALSE.

String::IsDos866(void)

#rus Возвращает TRUE, если строка содержит русский текст в кодировке DOS,
#rus иначе - FALSE.

String::IsGrayDIBits(number)

param allowedDiff;

Checks whether a triple-byte image is a gray one with some precision.
allowedDiff		Maximum allowable deviation of the R, G and B 
			components from their average.
Returns TRUE if the image is gray, otherwise - FALSE.

String::IsHexDigit(number)

This function returns TRUE if string contains number or a, b, c, d, e, 
f letter at the position specified via the offset parameter; Otherwise 
- FALSE.

String::IsNumber(void)

Returns TRUE if string represents the string that contains number;
Otherwise - FALSE.

String::IsPrint(number)

param offset;

This function returns TRUE if string contains printable character at 
the position specified via the offset parameter; Otherwise - FALSE.

String::IsSpace(number)

param offset;

This function returns TRUE if string contains blank, tabulation 
character, carriage return character, line-feed character or form-feed 
character at the position specified via the offset parameter; 
Otherwise - FALSE.

String::IsZero(void)

Returns TRUE if String is entirely populated with zeros; Otherwise - FALSE.

String::Left(number)

param len;

Returns sub-string that consists of left string character whose number 
is specified via the len parameter.

String::Len(void)

Returns string length.

String::LineToChar(number)

patam n;
If a string contains a set of carriage returns (a set of lines) then 
this method returns the offset of the line whose number is specified 
via the n parameter. If there is no line with this number within the 
string then -1 is returned.

String::Mid(number, number)

param offset, len;

Returns the sub-string that has length specified via the len parameter 
and begins with the position specified via the offset parameter from 
the appropriate string.

String::PutByte(number, number)

param offset, ch;

Writes the byte specified via the ch parameter to the position 
specified via the offset parameter within the string for which the 
method was called.

String::Remove(int, int)

param offset, len;

Deletes len bytes from the string beginning with the position 
specified via the offset parameter.

String::Replace(number, refer object String, number)

param offset, Str, len;

Deletes len bytes from the initial string beginning with the position 
specified via the offset parameter; then inserts the string specified 
via the Str parameter to the position specified via the offset 
parameter;

String::ReplaceAll(refer object String, refer object String)

param a, b;

Substitutes in the current string all sub-strings specified via the a 
parameter on the value of the string specified via the b parameter 
a			Replaceable sub-string.
b			String that substitutes a sub-string.

String::ReplaceChar(number, number, number)

param offset, oChar, nChar;

Replaces all the characters in the string specified via the oChar 
parameter to the characters specified via the nChar parameter 
beginning with the position specified via the offset parameter.

String::Right(number)

param len;

Returns sub-string that consists of right string character whose 
number is specified via the len parameter.

String::SetLen(number)

param len;

Sets the string length to the value specified via the len parameter.
If string becomes longer then its end is cleared (added with zeros). 

String::SetString(number)

param c;

Populates string with the 'char(c)' characters.

String::String(char)

param c;

Creates a string composed of one character.

String::String(copy)

Copy-constructor which is always called indirectly. (for more 
information see the Pluk language description).

String::String(number)

param len;

Constructor of an empty string whose length is determined via 
the len parameter.

String::String(refer object String)

param Str;

Constructor that creates a copy of the string specified via the Str 
parameter. As the assignment operator is applicable for string 
copying, this constructor is designed for direct calling from 
descendant classes of the String class.

String::String(refer object WString)

param Str;

Constructor that creates a single byte version of the string specified 
via the Str parameter.

String::String(refer rfunc)

param Func;

Constructor that creates a string by copying the contents of the 
function specified via the Func parameter.

String::String(refer sfunc)

param Func;

Constructor that creates a string by copying the contents of the 
function specified via the Func parameter.

String::StringToDouble(int, refer any)

param Offset, Value;

Reads the 64-bit number with floating point from the buffer position 
specified via the Offset parameter to the value specified via the 
Value parameter.
Returns the number of bytes occupied by value in the buffer (self).

String::StringToFloat(int, refer any)

param Offset, Value;

Reads the 32-bit number with floating point from the buffer position 
specified via the Offset parameter to the value specified via the 
Value parameter.
Returns the number of bytes occupied by value in the buffer (self).

String::StringToInt16(int, refer any)

param Offset, Value;

Reads the 16-bit integer number from the buffer position specified via 
the Offset parameter using the Little Endian format to the value 
specified via the Value parameter.
Returns the number of bytes occupied by value in the buffer (self).

String::StringToInt32(int, refer any)

param Offset, Value;

Reads the 32-bit integer number from the buffer position specified via 
the Offset parameter using the Little Endian format to the value 
specified via the Value parameter.
Returns the number of bytes occupied by value in the buffer (self).

String::StringToUInt16(int, refer any)

param Offset, Value;

Reads the 16-bit unsignedinteger number from the buffer position 
specified via the Offset parameter using the Little Endian format to 
the value specified via the Value parameter.
Returns the number of bytes occupied by value in the buffer (self).

String::Tail(number)

param offset;

Returns the sub-string that begins with the position specified via the 
offset parameter and continued till the end of the string from which 
the method was called.

String::ToCString(void)

This function converts string to the C-string that is cut of the 
string at the first encountered zero.

String::ToLower(void)

This function returns string which represent the copy of the initial 
string but all Latin letters are converted to small letters.

String::ToSixBits(void)

Returns string recoded to 6-bit representation with the offset to 
print region. Initial string restoring is performed via the 
String::FromSixBits() method.

String::ToUpper(void)

This function returns string which represent the copy of the initial 
string but all Latin letters are converted to capital letters.

String::ToVolapuk(void)

#rus Преобразует русский текст в VOLAPUK

String::Tokenize(refer object String)

param sym;

This method returns vector which consists of strings that are obtained 
via cutting the initial string in the positions where the characters 
specified via the sym parameter are encountered. For instance, calling 
the "This is the example of using the String::Tokenize method"-
>Tokenize(" :") method returns vector which consists of 10 elements:
<<"This", "is", "the", "example", "of", "using", "the", "String", 
"Tokenize", "method">>.

String::TrimLead(refer object String)

param Space;

Deletes characters that are contained in the string specified via the 
Space parameter in the beginning of the string for the self object.
Returns nothing.

String::TrimLead(void)

Deletes blanks in the beginning of the string for the self object.
Returns nothing.

String::TrimTrail(refer object String)

param Space;

Deletes characters that are contained in the string specified via the 
Space parameter at the end of the string for the self object.
Returns nothing.

String::TrimTrail(void)

Deletes blanks at the end of the string for the self object.
Returns nothing.

String::Win1251ToDos(void)

#rus Если строка содержит русский текст в кодировке Windows 1251,
#rus то метод возвращает ее перекодировку в DOS.

String::XLat(refer object String, refer object String)

param OldCode, newCode;

This method returns string obtained from the initial string via recoding 
all characters from the table specified via the OldCode parameter to the 
table specified via the newCode parameter.

String::^(refer object String)

param Str;

If the length of the string for which the method is called and the 
length of the string specified via the Str parameter are equal then 
bytewise EXCLUSIVE OR operation is performed. The result is returned 
in the new string. If lengths are not equal then the "Casting Error" 
error is raised.

String::^=(refer object String)

param Str;

If the length of the string for which the method (operator) is called 
and the length of the string specified via the Str parameter are equal 
then bytewise EXCLUSIVE OR  operation is performed. The string copy is 
not created. The string for which the method was called is modified. 
The pointer to this string is returned. If string lengths are not 
equal then the "Casting Error" error is raised.
"Casting Error".

String::|(refer object String)

param Str;

If the length of the string for which the method (operator) is called 
and the length of the string specified via the Str parameter are equal 
then bytewise OR operation is performed. The result is returned in the 
new string. If lengths are not equal then the "Casting Error" error is 
raised.

String::|=(refer object String)

param Str;

If the length of the string for which the method (operator) is called 
and the length of the string specified via the Str parameter are equal 
then bytewise OR operation is performed. The string copy is not 
created. The string for which the method was called is modified. The 
pointer to this string is returned. If string lengths are not equal 
then the "Casting Error" error is raised.
"Casting Error".

Class Time

#module root.baseclasses
The Time class is included in the set of standard Pluk classes. It 
allows to determine the current time.
class Time {
	time;	//time from the beginning of day measured in milliseconds
};

Methods:


Time::Fract(void)

Returns milliseconds

Time::GetTime(void)

Returns the number of milliseconds passed from the beginning of day. 

Time::GetTimeAsVector(void)

Returns the vector which consists of four elements - << hour, min, 
sec, fraction >>

Time::Hour(void)

Returns hour.

Time::Min(void)

Returns minutes

Time::Print(void)

Returns String which contains printed time in the following format: 'hh:mm:ss'.

Time::Sec(void)

Returns seconds

Time::SetTimeHMS(int, int, int)

param hour, min, sec;

Initiates date according to the hour, min, sec parameters.
If fails the ERR_WRONG_FORMAT error is raised.

Time::SetTimeHMS(refer object String)

param Str;

Initiates date from the string specified via the Str parameter, which 
contains time in one of the following formats:
"hh/mm/ss" or "hh.mm.ss" or "hh:mm:ss" or "hh mm ss".

Time::Time(int, int, int, int)

param hour, min, sec, fraction;

This is the Constructor which creates the Time object initiated by the 
passed parameters.

Time::Time(number)

param sec;

This is the Constructor which creates the Time object initiated by the 
number of seconds passed from the 0 moment.

Time::Time(refer object String)

param time;

This is the Constructor which creates the Time object initiated by the 
time specified via the time parameter.
The time parameter should contain time in the following format: "hh:mm:ss".

Time::Time(refer object Time)

param time;

This is the Constructor which creates the Time object initiated by the 
time specified via the time parameter.

Time::Time(void)

This is the Constructor which creates the Time object initiated by the 
current time.

Time::Update(void)

Updates the object contents by the current time value.

Class TimeDate : Time, Date

#module root.baseclasses
The TimeDate class is included in the set of standard Pluk classes. 
It represents the combination of the Time and Date classes.

Methods:


TimeDate::Print(void)

Returns string which contains date and time in text representation.

TimeDate::PrintSystem(void)

Returns String which contains date and time in text representation.

TimeDate::TimeDate(int)

param JulianDate;

This is the Constructor which creates the TimeDate object initiated by 
the Julian date specified via the Juliandate parameter, at that time 
is set to 12:00.

TimeDate::TimeDate(int, int, int)

param day, month, year;

This is the Constructor which creates the TimeDate object initiated by 
the passed parameters. Time is set to 12:00.

TimeDate::TimeDate(int, int, int, int, int, int, int)

param hour, min, sec, fraction, day, month, year;

This is the Constructor which creates the TimeDate object initiated by 
the passed parameters.

TimeDate::TimeDate(object String)

param date_time;

This is the Constructor which creates the TimeDate object initiated by 
the time specified via the date_time parameter.
The date_time parameter should contain time in the following format: 
"dd:mm:yyyy hh:mm:ss"
.

TimeDate::TimeDate(refer object Date)

param date;

This is the Constructor which creates the TimeDate object initiated by 
the date from the object specified via the date parameter, at that 
time is set to 12:00.

TimeDate::TimeDate(void)

This is the Constructor which creates the TimeDate object initiated by 
the current time and date.

TimeDate::Update(void)

Updates the object contents by the current time/date value.

Class TimeDateInterval : Interval

Methods:


Class TimeInterval : Interval

Methods:


Class Vector

#module root.baseclasses
The Vector class which can not numbered among primitive type but it also 
can not be defined via others types or structures. Therefore the Vector 
class does not have any visible fields from Pluk level 
and its data can be accessed only via the appropriate methods.

Methods:


Vector::!=(refer object Vector)

param Vect;

The '!=' operator compares the vector for which it was called with the 
vector specified via the Vect parameter. Returns 1 if the vector for 
which the method was called is not equal to the vector specified via 
the Vect parameter; Otherwise - 0.

Vector::,=(refer any)

param var;

The ,= operator is the operator of adding an element to the vector for 
which the method (operator) was called.
For instance:
	new a = << b, c, d, e >>;
	a ,= << f, g, h>>
After the ,= operator execution, the a variable contains the following vector:
	<<b, c, d, e, << f, g, h>> >>
The reference to the vector is returned.

Vector::<(refer object Vector)

param Vect;

The '<' operator compares the vector for which it was called with the 
vector specified via the Vect parameter. Returns 1 if the vector for 
which the method was called is less than the vector specified via the 
Vect parameter; Otherwise - 0.

Vector::<=(refer object Vector)

param Vect;

The '<=' operator compares the vector for which it was called with the 
vector specified via the Vect parameter. Returns 1 if the vector for 
which the method was called is less or equal to the vector specified 
via the Vect parameter; Otherwise - 0.

Vector::<>(refer object Vector)

param Vect;

Compares the vector for which the method was called with the vector 
specified via the Vect parameter. 
Returns 0 if these vectors are equal. Returns 1 if the vector for 
which the method was called is longer than the vector specified via 
the Vect parameter, returns -1 if smaller. 
If vectors have the same length the elementwise comparison of these 
vectors is performed. Returns 1 if the vector for which the method was 
called has the greater element at the appropriate position or returns 
-1 if this element is smaller.

Vector::==(refer object Vector)

param Vect;

The '==' operator compares the vector for which it was called with the 
vector specified via the Vect parameter. Returns 1 if the vector for 
which the method was called is equal to the vector specified via the 
Vect parameter; Otherwise - 0.

Vector::>(refer object Vector)

param Vect;

The '>' operator compares the vector for which it was called with the 
vector specified via the Vect parameter. Returns 1 if the vector for 
which the method was called is greater than the vector specified via 
the Vect parameter; Otherwise - 0.

Vector::>=(refer object Vector)

param Vect;

The '>=' operator compares the vector for which it was called with the 
vector specified via the Vect parameter. Returns 1 if the vector for 
which the method was called is greater or equal to the vector 
specified via the Vect parameter; Otherwise - 0.

Vector::@(refer object Vector)

param Vect;

The @ operator is the operator of two vectors concatenation (merging). 
A new vector which consists of operands merging is the result of its 
performing.
For instance, as a result of the following expression:
	c = << a, b, c, d >>  @ <<e, f, g >>;
the c variable contains the following vector:
	<< a, b, c, d, e, f, g >>; 

Vector::@=(refer object Vector)

param Vect;

The @= operator is the operator of two vectors concatenation 
(merging). The second vector is added to the first one as a result of 
its performing.
The reference to the first vector is returned.

Vector::AppendByMove(refer any)

param var;

The method AppendByMove adds an element to the vector for 
which the method was called and move data from var to this element.
For instance:
	new a = << b, c, d, e >>;
	new v =  << f, g, h>>;
	a->AppendByMove(v)
After the method AppendByMove execution, the a variable contains the following vector:
	<<b, c, d, e, << f, g, h>> >>
and v is EMPTY.
The reference to the vector is returned.

Vector::BFind(refer any)

param key;

This method performs binary search within the sorted array according 
to the key specified via the key parameter. Returns the element's 
index if succeeded (the element is found); Otherwise returns -1.

Vector::BFind(refer any, refer func)

param key, Func;

This method performs binary search within the sorted array according to 
the key specified via the key parameter. The function specified via the 
Func parameter is used for the elements' comparison. This function 
is provided by a user and receives 3 parameters. As the first 
parameter this functions receives the pointer to the key element, as 
the second parameter this functions receives the pointer to the 
vector's element which is compared to, as the third parameter this 
functions receives the pointer to the vector for which this method is 
called. The function specified via the Func parameter should return 1 
if the key is greater than the element, -1 if the key is smaller than 
the element or 0 if they are equal.
The method returns the element's index if succeeded (the element is 
found); Otherwise returns -1.

Vector::BFindName(refer any)

#rus Метод производит бинарный поиск в сортированом массиве.
#rus Возвращает индекс элемента с именем name.
#rus Элементы вектора должны иметь метод GetName(void).
#rus Возвращает -1, если таких элементов нет.
#rus См. также класс Name.

Vector::BInsert(refer any)

param elem;

This method inserts the element determined via the elem parameter to 
the sorted array.
Returns the index of the inserted element.

Vector::BInsert(refer any, refer func)

param elem, Func;

This method inserts the element determined via the elem parameter to 
the sorted array. The function specified via the Func parameter is 
used for the elements' comparison. This function is provided by a user 
and receives 3 parameters. As the first parameter this functions 
receives the pointer to the key element, as the second parameter this 
functions receives the pointer to the vector's element which is 
compared to, as the third parameter this functions receives the 
pointer to the vector for which this method is called. The function 
specified via the Func parameter should return 1 if the key is greater 
than the element, -1 if the key is smaller than the element or 0 if 
they are equal.
The method returns the index of the inserted element.

Vector::BInsertName(refer any)

#rus Метод производит вставку элемента elem в сортированый массив
#rus по именам элементов. 
#rus Возвращает индекс вставленного элемента.
#rus Элементы вектора должны иметь метод GetName(void).
#rus См. также класс Name.

Vector::CopyVector(refer object Vector)

param Vect;

Copies information from the vector specified via the Vect parameter to 
the object from which class the method was called.  The method is 
designed to be used from descendant classes of the Vector class.

Vector::Find(refer any)

param pattern;

Searches the element specified via the pattern parameter in the 
initial string beginning with the 0 position.
Returns the element specified via the pattern parameter offset in the 
initial string if succeeded; Otherwise - returns -1.

Vector::Find(refer any, number)

param pattern, offset;

Searches the element specified via the pattern parameter in the 
initial string beginning with the position specified via the offset 
parameter.
Returns the element specified via the pattern parameter offset in the 
initial string if succeeded; Otherwise - returns -1.

Vector::Find(refer any, number, refer func)

param pattern, offset, Func;

Searches the element specified via the pattern parameter in the 
initial string beginning with the position specified via the offset 
parameter.
Returns the element specified via the pattern parameter offset in the 
initial string if succeeded; Otherwise - returns -1.
To determine the elements' equality the function specified via the 
Func parameter is used. This function is provided by a user and 
receives 3 parameters. As the first parameter this functions receives 
the pointer to the pattern parameter, as the second parameter this 
functions receives the pointer to the vector's element which is compared 
to, as the third parameter this functions receives the pointer the vector 
for which this method is called. The function specified via the Func 
parameter returns TRUE in case of equality; 
Otherwise - FALSE.

Vector::FindAll(refer any, refer func)

param pattern, funct;

This method returns a vector that consists of all the indexes of 
the sample specified via the pattern parameter occurrence within 
the self vector.
pattern		Sample.
funct			Comparison function.

Vector::FindAllByField(refer any, object String)

param key, path;

#rus Метод производит поиск всех элементов вектора по полю заданному "путем" в элементах. 
#rus Примеры путей: ".Name", ".Person.Name".
#rus Вернет вектор индексов на найденный елемент вектора.

Vector::FindAllByFieldP(refer any, object String)

param key, path;

#rus Метод производит поиск всех элементов вектора по полю заданному "путем" в элементах. 
#rus Примеры путей: ".Name", ".Person.Name".
#rus Вернет вектор указателей на найденные елементы вектора.

Vector::FindAllName(refer any)

param name;

#rus Возвращает вектор индексов всех существующих элементов с именем name.
#rus Элементы вектора должны иметь метод GetName(void).
#rus См. также класс Name.

Vector::FindByField(refer any, object String)

param key, path;

#rus Метод производит поиск элементов вектора по полю заданному "путем" в элементах. 
#rus Примеры путей: ".Name", ".Person.Name".
#rus Вернет индекс первого подходящего элемента или -1.

Vector::FindByFieldP(refer any, object String)

param key, path;

#rus Метод производит поиск элементов вектора по полю заданному "путем" в элементах. 
#rus Примеры путей: ".Name", ".Person.Name".
#rus Вернет указатель на найденный елемент вектора или EMPTY.

Vector::FindExtrem(refer func)

param Func;

Returns the index of an element in which the function has the maximum 
value (according to the function specified via the Func parameter).
The function specified via the Func parameter receives two vector 
elements and returns TRUE if the first element is larger than the 
second one; otherwise FALSE.

Vector::FindMax(void)

Returns the index of the maximum element 

Vector::FindMin(void)

Returns the index of the minimum element 

Vector::FindName(refer any)

#rus Возвращает индекс первого элемента с именем name.
#rus Элементы вектора должны иметь метод GetName(void).
#rus Возвращает -1, если таких элементов нет.
#rus См. также класс Name.

Vector::For_Each(object String, refer ...)

param MethodName, [Params];

Executes the method whose name is specified 
via the MethodName parameter for all vector 
elements.
Params - parameters (the same for all) that 
are passed to the method specified via the 
MethodName parameter which is called for 
each vector element.

Vector::For_Each(refer object Function)

param Op;

Performs the procedure specified via the Op 
parameter on all vector elements.
The Op parameter should specify the function 
that receives only one parameter.

Vector::For_Each(refer object Function, refer ...)

param Op, [Params];

Performs the procedure specified via the Op 
parameter on all vector elements.
The reference to the next vector element is 
passed to the function specified via the Op 
parameter, if there are any other parameters 
they are also passed.

Vector::For_Each_SkipError(object String, refer ...)

param MethodName, [Params];

#rus Выполняет метод с именем MethodName для всех
#rus элементов вектора.
#rus Params - параметры (одни и те же) передаваемые в
#rus вызываемый для каждого элемента метод MethodName.
#rus Наличие ошибки при выполнении процедуры над одним элементом
#rus не прекращает выполнение цикла.
#rus Метод возвращает кол-во успешных иттераций.

Vector::For_Each_SkipError(refer object Function)

param Op;

#rus Выполняет процедуру Op над всеми элементами вектора.
#rus Op должена быть функцией принимающей один параметр.
#rus Наличие ошибки при выполнении процедуры над одним элементом
#rus не прекращает выполнение цикла.
#rus Метод возвращает кол-во успешных иттераций.

Vector::For_Each_SkipError(refer object Function, refer ...)

param Op, [Params];

#rus Выполняет процедуру Op над всеми элементами вектора.
#rus В функцию Op передается в качестве первого параметра
#rus ссылка на очередной элемент вектора, и, если есть
#rus дополнительные параметры, то они передаются также.
#rus Наличие ошибки при выполнении процедуры над одним элементом
#rus не прекращает выполнение цикла.
#rus Метод возвращает кол-во успешных иттераций.

Vector::Fusion(refer object Vector, refer func, boolean)

param v, compFunc, SaveDublicate;

#rus Возвращает слияние двух, сортированных векторов v и self, 
#rus используя функцию compFunc для бинарного поиска.
#rus Если SaveDublicate == FALSE, то в результирующий вектор елемент, присутствующий в обоих вектора v и self
#rus будет записан только раз. При этом предполагаеться, что в этом случае вектора v и self не содержат дубликатов.
#rus Если SaveDublicate == TRUE, то результирующий вектор будет содержать все элементы векторов v и self.

Vector::GetElement(number)

param i;

Returns thevector element with the number 
specified via the i parameter.

Vector::Insert(refer any, number)

param var, offset;

Inserts var into vector to the position specified via the offset 
parameter. If var represents vector which consists of n elements then 
n elements are inserted.

Vector::InsertElem(refer any, number)

param var, offset;

Inserts the value specified via the var parameter as the vector's 
element to the position specified via the offset parameter.

Vector::Intersect(refer object Vector, refer func)

param v, compFunc;

#rus Возвращает пересечение двух, сортированных векторов v и self, 
#rus используя функцию compFunc для бинарного поиска.

Vector::Last(void)

Returns the pointer to the last vector's element.

Vector::Left(number)

param len;

Returns sub-vector that consists of left vector character whose number 
is specified via the len parameter.

Vector::Len(void)

Returns vector length (according to the first dimension for the 
multidimensional vector).

Vector::Mid(number, number)

param offset, len;

Returns the sub-vector that begins with the position specified via 
the offset parameter and has length specified via the len parameter 
from the appropriate vector.

Vector::PutElement(number, refer any)

param i, ch;

Sets the element with the number specified via the 
i parameter to the value specified via the ch parameter.

Vector::QRemove(refer object Vector, refer func)

#rus Удаляет из сортированного массива self все элементы имеющиеся в excludeList
#rus используя функцию compFunc для бинарного поиска.

Vector::QSort(boolean)

param order;

This method performs sorting of the vector's elements. The order 
parameter determines the sorting order: FALSE - direct, TRUE - reverse 
with respect to the natural order which is defined by the comparison 
method for the vector's elements (the vector's elements should be 
comparable, otherwise the "Casting Error" error is raised).

Vector::QSort(int, int, boolean)

param from, to, order;

This method performs sorting of the vector's elements beginning from 
the element whose number is specified via the from parameter to the 
element whose number is specified via the to parameter. The order 
parameter determines the sorting order: FALSE - direct, TRUE - reverse 
with respect to the natural order which is defined by the comparison 
method for the vector's elements (the vector's elements should be 
comparable, otherwise the "Casting Error" error is raised).

Vector::QSort(int, int, refer func)

param from, to, Func;

This method performs sorting of the vector's elements beginning from 
the element whose number is specified via the from parameter to the 
element whose number is specified via the to parameter. The elements 
order is defined by the comparison function specified via the Func 
parameter This function is provided by a user and receives 3 
parameters. As the first parameter this functions receives the pointer 
to the key element, as the second parameter this functions receives 
the pointer to the vector's element which is compared to, as the third 
parameter this functions receives the pointer to the vector for which 
this method is called. The function specified via the Func parameter 
should return 1 if the key is greater than the element, -1 if the key 
is smaller than the element or 0 if they are equal.

Vector::QSort(refer func)

param Func;

This method performs sorting of the vector's elements. The elements 
order is defined by the comparison function specified via the Func parameter. 
This function is provided by a user and receives 3 parameters. As the first 
parameter this functions receives the pointer to the key element, as 
the second parameter this functions receives the pointer to the vector's 
element which is compared to, as the third parameter this functions 
receives the pointer to the vector for which this method is called. 
The function specified via the Func parameter should return 1 if the 
key is greater than the element, -1 if the key is smaller than the 
element or 0 if they are equal.

Vector::QSort(void)

This method performs sorting of the vector's elements in the natural 
order which is defined by the comparison method for its elements (the 
vector's elements should be comparable, otherwise the "Casting 
Error" error is raised).

Vector::QSortByField(object String, boolean)

param order;

#rus Метод производит сортировку элементов вектора по полю заданному "путем" в элементах. 
#rus Параметр order определяет порядок сортировки: TRUE - по возрастанию, FALSE - по убыванию.
#rus Примеры путей: ".Name", ".Person.Name".
#rus Вернет ссылку на себя.

Vector::QSortByName(boolean)

param order;

#rus Метод производит сортировку элементов вектора по имени. 
#rus Элементы вектора должны иметь метод GetName(void).
#rus Параметр order определяет порядок сортировки: TRUE - по возрастанию, FALSE - по убыванию.
#rus См. также класс Name.

Vector::Remove(int)

param offset;

Deletes one element from the vector from the position specified via 
the offset parameter.

Vector::Remove(int, int)

param offset, len;

Deletes len elements from the vector beginning with the position 
specified via the offset parameter.

Vector::Remove(object Vector)

param indexes;

Deletes several elements from a vector.
indexes		Vector of element indexes that must be deleted.

Vector::Remove(void)

#rus Удаляет все элементы вектора.

Vector::RemoveDups(refer func)

param f;

Deletes duplicate elements from a vector.
f			Function of elements equality. Receives references 
			to two compared elements and returns TRUE if they 
			are equal or FALSE if not.

Vector::RemoveDups(void)

Deletes duplicate elements from a vector.

Vector::RemoveEMPTY(void)

Deletes elements that are equal to EMPTY from a vector.

Vector::RemoveLast(void)

#rus Удаляет последний элемент вектора.

Vector::RemoveSortableDups(refer func)

param f;

#rus Удаляет из вектора повторяющиеся элементы.
#rus f			Функция сортировки элементов. Получает ссылки
#rus 			на два сравниваемых элемента и возвращает
#rus 			-1, если первый элемент меньше второго, 0,
#rus 			если первый элемент равен второму, 1, если
#rus 			первый элемент больше второго.
#rus Комментарии
#rus В отличие от метода Vector::RemoveDups, данный метод
#rus предполагает возможность сортировки элементов вектора.
#rus Данный метод удаляет повторяющиеся элементы гораздо
#rus быстрее, чем метод Vector::RemoveDups.

Vector::RemoveSortableDups(void)

Deletes duplicate elements from a vector.
Comments
In contrast to the Vector::RemoveDups method this 
method assumes the elements sorting capability.
This method deletes duplicate elements much faster 
than the Vector::RemoveDups method.

Vector::Replace(number, refer object Vector)

param offset, Vect;

Replaces the elements of the vector for which the method was called 
with the elements of the vector specified via the Vect parameter 
beginning with the position specified via the offset parameter.

Vector::Right(number)

param len;

Returns sub-vector that consists of right vector character whose 
number is specified via the len parameter.

Vector::Set(any)

param a;

Fills all the vector's elements with the 'a' value.

Vector::SetLen(number)

param len;

Sets the vector length to the value specified via the len parameter 
(according to the first dimension for the multidimensional vector).

Vector::Sum(refer object Function)

param Func;

Sums all vector elements by calling the function 
specified via the Func parameter and passing to it 
the Item vector element by reference.
The value returned by the function specified via 
the Func parameter as added to the sum.
This method returns the summation result.

Vector::Sum(void)

Sums all vector elements.
This method assumes that the '+=' method is 
defined for all vector elements.
This method returns the summation result.

Vector::SynStr(refer object BaseString)

param delim;

#rus Синтезирует строку из элементов вектора, являющихся
#rus строками.
#rus delim			Разделитель, который должен быть вставлен
#rus 			между элементами вектора.
#rus Возвращает синтезируемую строку.

Vector::SynStrEx(refer object BaseString)

param delim;

#rus Синтезирует строку из элементов вектора.
#rus delim			Разделитель, который должен быть вставлен
#rus 				между элементами вектора.
#rus Возвращает синтезируемую строку.
#rus Комментарии
#rus В отличие от метода Vector::SynStr данный метод синтезирует
#rus строки, получающиеся с помощью вызова функции Print для
#rus каждого элемента.

Vector::SynStrEx(refer object BaseString, refer func)

param delim, f;

#rus Синтезирует строку из элементов вектора.
#rus delim			Разделитель, который должен быть вставлен
#rus 				между элементами вектора.
#rus f				Функция, вызываемая для каждого элемента и
#rus 				возвращающая строку.
#rus Возвращает синтезируемую строку.
#rus Комментарии
#rus В отличие от метода Vector::SynStr данный метод синтезирует
#rus строки, получающиеся с помощью вызова функции f для
#rus каждого элемента.

Vector::Tail(number)

param offset;

Returns the sub-vector that begins with the position specified via the 
offset parameter and continued till the end of the vector from which 
the method was called.

Vector::Vector(copy)

param Vect;

Copy-constructor which is always called indirectly. (for more 
information see the Pluk language description).

Vector::Vector(number, ...)

param x, ...;

This is the Constructor of the vector whose dimension is x, ... . That 
is if more than one parameter is passed then the multidimensional 
vector is created.

Vector::Vector(refer object Vector)

param Vect;

This is the Constructor that creates copy of the vector specified via 
the Vect parameter. As the assignment operator is applicable for vectors 
copying, this constructor is designed for direct calling from descendant 
classes of the Vector class.

Vector::[](number)

This is the operator of the vector's elements access. The parameter is 
converted to the integer index.

Class VectorDif

#rus Класс VectorDif выполняет сравнение двух векторов.
#rus Add1 - индексы элементов в первом векторе, которых нет во втором.
#rus Add2 - индексы элементов во втором векторе, которых нет в первом.
#rus Common - вектор пар индексов, совпадающих элементов двух векторов.
#module root.baseclasses.helper

Methods:


VectorDif::CompareSets(refer object Vector, refer object Vector, refer any)

param Vect1, Vect2, Func;

#rus Сравнивает два неупорядоченных вектора ( множества ).
#rus Параметры:
#rus Vect1 - Первый вектор.
#rus Vect2 - Второй вектор.
#rus Func - Функция сравнения двух элементов векторов.
#rus Внимание:
#rus Поле VectorDif::Common в этой функции не заполняется.

VectorDif::CompareVectors(refer object Vector, refer object Vector, refer any)

param Vect1, Vect2, Func;

#rus Сравнивает два упорядоченных вектора.
#rus Параметры:
#rus Vect1 - Первый вектор.
#rus Vect2 - Второй вектор.
#rus Func - Функция сравнения двух элементов векторов.

VectorDif::IsEmpty(void)

#rus Возвращает TRUE, если сравненные вектора одинаковы,
#rus FALSE - иначе.

Class WString : BaseString

#module root.baseclasses
The WString class that encapsulates major Unicode-string operations is 
defined in Pluk. 

Methods:


WString::!=(refer object BaseString)

param Str;

The '!=' operator compares the string for which it was called with the 
string specified via the Str parameter. Returns TRUE if the string for 
which the method was called is not equal to the string specified via 
the Str parameter; Otherwise - FALSE.

WString::<(refer object BaseString)

param Str;

The '<' operator compares the string for which it was called with the 
string specified via the Str parameter. Returns TRUE if the string for 
which the method was called is less than the string specified via the 
Str parameter; Otherwise - FALSE.

WString::<=(refer object BaseString)

param Str;

The '<=' operator compares the string for which it was called with the 
string specified via the Str parameter. Returns TRUE if the string for 
which the method was called is less or equal to the string specified 
via the Str parameter; Otherwise - FALSE.

WString::<>(refer object BaseString)

param Str;

Compares the string for which the method was called with the string 
specified via the Str parameter. 
Returns 0 if these strings are equal, returns number greater than zero 
if the string for which the method was called contains character with 
greater code than the string specified via the Str parameter in the 
same position when using the character-oriented comparison; Otherwise 
returns -1.

WString::==(refer object BaseString)

param Str;

The '>=' operator compares the string for which it was called with the 
string specified via the Str parameter. Returns TRUE if the string for 
which the method was called is greater or equal to the string 
specified via the Str parameter; Otherwise - FALSE.

WString::>(refer object BaseString)

param Str;

The '>' operator compares the string for which it was called with the 
string specified via the Str parameter. Returns TRUE if the string for 
which the method was called is greater than the string specified via 
the Str parameter; Otherwise - FALSE.

WString::>=(refer object BaseString)

param Str;

The '>=' operator compares the string for which it was called with the 
string specified via the Str parameter. Returns TRUE if the string for 
which the method was called is greater or equal to the string 
specified via the Str parameter; Otherwise - FALSE.

WString::@(refer object BaseString)

param Str;

The @ operator is the operator of two strings concatenation (merging). 
A new string which consists of operands merging is the result of its 
performing.
For instance, as a result of the following expression:
	c = "Hello " @ "World!";
the c variable contains the following string:
	"Hello World!".

WString::@=(refer object BaseString)

param Str;

The @= operator is the operator of two strings concatenation 
(merging). The second string is added to the first one as a result of 
its performing.
The pointer to the first string is returned.

WString::AppendNumbSubStr(number, refer object BaseString)

param nCopy, SubStr;

This method adds nCopy times the string specified via the SubStr 
parameter to the end of the string for which this method was called. 
This method returns nothing.

WString::CharToLine(number)

param offset;

If a string contains a set of carriage returns (a set of lines) then 
this method returns the number of the line to which the character with 
the offset specified via the offset parameter belongs. If the offset 
is out of the string range then -1 is returned.

WString::ClearString(void)

Cleares string (populates it with zeros) in the self object.
Returns nothing.

WString::ConvertToWindowsString(void)

#rus Замеoщает все строки заканичивающиеся на \n
#rus на строки заканчивающиеся на \r\n.

WString::CopyString(refer object BaseString)

param Str;

Copies information from the string specified via the Str parameter to 
the object from which class the method was called.  The method is 
designed to be used from descendant classes of the String class.

WString::Find(char)

param ch;

Searches the character specified via the ch parameter in the initial 
string beginning with the 0 position.
Returns the character specified via the ch parameter offset in the 
initial string if succeeded; Otherwise - returns -1.

WString::Find(char, number)

param ch, offset;

Searches the character specified via the ch parameter in the initial 
string beginning with the position specified via the offset parameter.
Returns the character specified via the ch parameter offset in the 
initial string if succeeded; Otherwise - returns -1.

WString::Find(int)

param ch;

Searches the character specified via the ch parameter in the initial 
string beginning with the 0 position.
Returns the character specified via the ch parameter offset in the 
initial string if succeeded; Otherwise - returns -1.

WString::Find(int, number)

param ch, offset;

Searches the character specified via the ch parameter in the initial 
string beginning with the position specified via the offset parameter.
Returns the character specified via the ch parameter offset in the 
initial string if succeeded; Otherwise - returns -1.

WString::Find(refer object BaseString)

param pattern;

Searches the sub-string specified via the pattern parameter in the 
initial string beginning with the 0 position.
Returns the sub-string specified via the pattern parameter offset in 
the initial string if succeeded; Otherwise - returns -1.

WString::Find(refer object BaseString, number)

param pattern, offset;

Searches the sub-string specified via the pattern parameter in the 
initial string beginning with the position specified via the offset 
parameter.
Returns the sub-string specified via the pattern parameter offset in 
the initial string if succeeded; Otherwise - returns -1.

WString::FindNon(char)

param ch;

Searches the character which is not coincide with the character 
specified via the ch parameter in the initial string beginning with 
the 0 position.
Returns the character offset in the initial string if succeeded; 
Otherwise - returns -1.

WString::FindNon(char, number)

param ch, offset;

Searches the character which is not coincide with the character 
specified via the ch parameter in the initial string beginning with 
the position specified via the offset parameter.
Returns the character offset in the initial string if succeeded; 
Otherwise - returns -1.

WString::FindNon(int)

param ch;

Searches the character which is not coincide with the character 
specified via the ch parameter in the initial string beginning with 
the 0 position.
Returns the character offset in the initial string if succeeded; 
Otherwise - returns -1.

WString::FindNon(int, number)

param ch, offset;

Searches the character which is not coincide with the character 
specified via the ch parameter in the initial string beginning with 
the position specified via the offset parameter.
Returns the character offset in the initial string if succeeded; 
Otherwise - returns -1.

WString::GetByte(number)

param offset;

Returns a Unicode-character from the position specified via the offset 
parameter.

WString::GetCRC(void)

Returns CRC-16 for its contents.

WString::GetHash(void)

Returns hash-index for its contents.

WString::GetLastByte(void)

Returns the contents of the last byte.
Complete equivalent of String->GetByte(String->Len() -1);

WString::GetWord(number)

param offset;

This method returns string, which contains the word that consists of 
numbers and letters and includes the position specified via the offset 
parameter. If there is no any letter or number at the position 
specified via the offset parameter then empty string is returned. for 
instance, calling the  "This is the example of using the 
String::GetWord method"->GetWord(14) method returns the following 
string: "example".

WString::Insert(refer object BaseString, number)

param Str, offset;

Inserts the string specified via the Str parameter into the string for 
which the method is called. Insertion is performed from the position 
specified via the offset parameter.

WString::IsAlNum(number)

param offset;

This function returns TRUE if string contains letter or number at the 
position specified via the offset parameter; Otherwise - FALSE.

WString::IsAlpha(number)

param offset;

This function returns TRUE if string contains letter at the position 
specified via the offset parameter; Otherwise - FALSE.

WString::IsDigit(number)

param offset;

This function returns TRUE if string contains number at the position 
specified via the offset parameter; Otherwise - FALSE.

WString::IsHexDigit(number)

This function returns TRUE if string contains number or a, b, c, d, e, 
f letter at the position specified via the offset parameter; Otherwise 
- FALSE.

WString::IsNumber(void)

Returns TRUE if string represents the string that contains number;
Otherwise - FALSE.

WString::IsPrint(number)

param offset;

This function returns TRUE if string contains printable character at 
the position specified via the offset parameter; Otherwise - FALSE.

WString::IsSpace(number)

param offset;

This function returns TRUE if string contains blank, tabulation 
character, carriage return character, line-feed character or form-feed 
character at the position specified via the offset parameter; 
Otherwise - FALSE.

WString::IsZero(void)

Returns TRUE if String is entirely populated with zeros; Otherwise - FALSE.

WString::Left(number)

param len;

Returns sub-string that consists of left string character whose number 
is specified via the len parameter.

WString::Len(void)

Returns string length.

WString::LineToChar(number)

patam n;
If a string contains a set of carriage returns (a set of lines) then 
this method returns the offset of the line whose number is specified 
via the n parameter. If there is no line with this number within the 
string then -1 is returned.

WString::Mid(number, number)

param offset, len;

Returns the sub-string that has length specified via the len parameter 
and begins with the position specified via the offset parameter from 
the appropriate string.

WString::PutByte(number, number)

param offset, ch;

Writes the Unicode-character specified via the ch parameter to the 
position specified via the offset parameter within the string for 
which the method was called.

WString::Remove(int, int)

param offset, len;

Deletes len bytes from the string beginning with the position 
specified via the offset parameter.

WString::Replace(number, refer object BaseString, number)

param offset, Str, len;

Deletes len bytes from the initial string beginning with the position 
specified via the offset parameter; then inserts the string specified 
via the Str parameter to the position specified via the offset 
parameter;

WString::ReplaceAll(refer object BaseString, refer object BaseString)

param a, b;

#rus Замещает в данной строке все подстроки a на значение строки b.
#rus a			Замешаемая подстрока.
#rus b			Замещающая подстроку строка.

WString::ReplaceChar(number, number, number)

param offset, oChar, nChar;

Replaces all the characters in the string specified via the oChar 
parameter to the characters specified via the nChar parameter 
beginning with the position specified via the offset parameter.

WString::Right(number)

param len;

Returns sub-string that consists of right string character whose 
number is specified via the len parameter.

WString::SetLen(number)

param len;

Sets the string length to the value specified via the len parameter.
If string becomes longer then its end is cleared (added with zeros). 

WString::SetString(number)

param c;

Populates string with the character specified via the c parameter.

WString::Tail(number)

param offset;

Returns the sub-string that begins with the position specified via the 
offset parameter and continued till the end of the string from which 
the method was called.

WString::ToCString(void)

This function converts string to the C-string that is cut of the 
string at the first encountered zero.

WString::ToLower(void)

This function returns string which represent the copy of the initial 
string but all Latin letters are converted to small letters.

WString::ToUpper(void)

This function returns string which represent the copy of the initial 
string but all Latin letters are converted to capital letters.

WString::Tokenize(refer object BaseString)

param sym;

This method returns vector which consists of strings that are obtained 
via cutting the initial string in the positions where the characters 
specified via the sym parameter are encountered. For instance, calling 
the "This is the example of using the String::Tokenize method"-
>Tokenize(" :") method returns vector which consists of 10 elements:
<<"This", "is", "the", "example", "of", "using", "the", "String", 
"Tokenize", "method">>.

WString::TrimLead(refer object BaseString)

param Space;

Deletes characters that are contained in the string specified via the 
Space parameter in the beginning of the string for the self object.
Returns nothing.

WString::TrimLead(void)

Deletes blanks in the beginning of the string for the self object.
Returns nothing.

WString::TrimTrail(refer object BaseString)

param Space;

Deletes characters that are contained in the string specified via the 
Space parameter at the end of the string for the self object.
Returns nothing.

WString::TrimTrail(void)

Deletes blanks at the end of the string for the self object.
Returns nothing.

WString::WString(char)

param c;

Creates a string composed of one character.

WString::WString(copy)

Copy-constructor which is always called indirectly. (for more 
information see the Pluk language description).

WString::WString(number)

param len;

Constructor of an empty string whose length is determined via 
the len parameter.

WString::WString(refer object BaseString)

param Str;

Constructor that creates a Unicode-copy of the string specified via 
the Str parameter. 

WString::WString(refer rfunc)

param Func;

Constructor that creates a string by copying the contents of the 
function specified via the Func parameter.

WString::WString(refer sfunc)

param Func;

Constructor that creates a string by copying the contents of the 
function specified via the Func parameter.

Abs(any)

param x;

Returns the absolute value of the value determined via the x 
parameter.

Acos(any)

param x;

Returns arccosine of the value determined via the x parameter.

AddPathName

Returns the complete file name obtained from the folder 
name and file name. Inserts a delimiter (slash) if it 
is necessary.
Parameters: folder name (String), extension (String).

Asin(any)

param x;

Returns arcsine of the value determined via the x parameter.

Atg(any)

param x;

Returns arctangent of the value determined via the x parameter.

Clock(void)

The Clock function returns the number of seconds (float) since 
the program launching.
  

ComparePath

Compares two file names (regardless of characters' case).
Returns TRUE if these names are coincident.
Parameters: the 1-st file name (String), the 2-nd file name (String).

Cos(any)

param x;

Returns cosine of the value determined via the x parameter.

DefaultExtension

Returns a pathname with the default extension attached.
Parameters: string - pathname, string - extension
Parameters: file name (String), extension (String).

Exp(any)

param x;

Returns exponent from the value determined via the x parameter.

ForceExtension

Returns a pathname with the specified extension attached.
Parameters: string - pathname, string - extension
Parameters: file name (String), extension (String).

GetDim(refer any)

param var;

In order to determine the vector dimension (the first one) the Len() 
can be used. But if the variable, for which the Len method is called, 
is not an object of the Vector class or its descendant then the 
"Method not found" error may be raised. Moreover, if this object has 
the defined Len method, an error is not raised in spite of the fact 
that this object neither vector nor its descendant (for instance, it 
may be string).
The GetDim function returns the dimensionality of the variable 
specified via the var parameter if this variable is a vector or its 
descendant; otherwise it returns -1.

GetTempFileName(refer object String, refer object String)

param path, ext;

Returns the name of temporary file. The path parameter specifies the 
folder where the temporary file is created; the ext parameter contains 
the temporary file name extension.

GetTempPath(void)

Returns path to the folder where temporary files are stored.

IntPart(number)

param x;

Returns maximal integer number less than the value determined via the 
x parameter.

IntPartEx(number)

param x;

Returns minimum integer number greater than the value determined via 
the x parameter.

IsAbsPath

Checks whether path is absolute that is whether it is independent on 
the current volume or folder.
Returns TRUE if the path is absolute; otherwise FALSE.

IsAlNum(char)

param ch;

Returns TRUE if the ch parameter is a number or letter, otherwise FALSE.

IsAlpha(char)

param ch;

Returns TRUE if the ch parameter is a letter, otherwise FALSE.

IsDigit(char)

param ch;

Returns TRUE if the ch parameter is a number, otherwise FALSE.

IsHexDigit(char)

param ch;

Returns TRUE if the ch parameter is a number or hexadecimal sign (that 
is a, b, c, d, e, f letter), otherwise FALSE.

IsNumber(any)

param var;

Returns TRUE if the var parameter is a number, otherwise FALSE.

IsPrint(char)

param ch;

Returns TRUE if the ch parameter is a printable character, otherwise FALSE.

IsSpace(char)

param ch;

Returns TRUE if the ch parameter is a  blank, tabulation character, 
carriage return character, line-feed character, form-feed character; 
Otherwise - FALSE.

IsStrFunc(any)

param var;

Returns TRUE if the var parameter is a function/string, otherwise FALSE.

JustDirName

Returns a folder name from the complete file name.
Parameter: file name (String).

JustExtension

Returns the file name extension.
Parameter: file name (String).

JustFileName

Returns name + extension from the complete file name.
Parameter: file name (String).

JustName

Returns only name (without extension and folder) from the complete 
file name.
Parameter: file name (String).

Lg(any)

param x;

Returns common logarithm of the value determined via the x parameter.

Ln(any)

param x;

Returns natural logarithm of the value determined via the x parameter.

Log(number, any)

param a, b;

Returns logarithm a to the base b.

Max

param a, b;

param a, b;
Returns the minimum element from the a, b pair 

Min

param a, b;

Returns the maximum element from the a, b pair

Print(refer ...)

The arbitrary set of variables is passed to the Print function as 
parameters. Variables are printed in the "default" format. The Print 
function returns string that contains printed variables. In contrast 
to the trace operator the outside output is not generated. 
Notes.
	The "default" format has the 512 bytes per string limitation. 
	That is why if the string whose length is more than 512 bytes is 
	being printed then the first 512 bytes are printed and then 
	omission points "..." are printed. 
	The C- convention is accepted when printing a string, that is 
	the string is printed till the first zero character if it is 
	encountered within the string.
	Similarly there is a limitation concerning printing vector 
	elements. Not more than 25 elements are printed and then 
	omission points "..." are printed. 

PrintString(object String)

param Str;

The PrintString function returns string where all " characters are 
substituted for \", all \ characters are substituted for \\, etc.

Printf(object BaseString, refer ...)

param format;

The Printf function as the Print function returns string that contains 
printed variables which were passed as parameters. In contrast to the 
trace operator the outside output is not generated. 
The first (required) parameter is the printer format, others 
parameters (not required) are printed variables.
The format parameter contains string which is reprinted to the 
returned string as is except for the print formatting characters 
beginning with the % sign (if it is necessary to print the percent 
sign itself in the returned string, you should write %%). Formatting 
characters are adjusted in point-to-point accordance with passed 
parameters as it is performed in the printf function in C.
Automatic type conversion is performed to the type specified in the 
format parameter when printing numbers and strings. If conversion is 
impossible then the "Casting Error" error is raised.
The following format character values are available:
	v - variable printing in the "default" format. In addition all 
	possible types including structures, vectors etc. are printed. 
	d - integer number printing (for more information see C printing 
	format),
	x - integer number  in hexadecimal format printing,
	f, g, e - numbers with floating point printing (for more 
	information see C printing format), 
	c - character printing,
	s - string printing,
	m - string in the memory dump form printing.

Rand(number)

param N;

Returns random number of double type in the range of 0..N.
Note 1:
Initiate the random-number generator via the SeedRand function to 
obtain the unique sequence .
It is reasonable to take the number of milliseconds from the beginning 
of day (the time field of the Time class) as the SeedRand function 
parameter.
Note 2:
In spite of N normalization, the random-number generator in fact 
realizes integer random numbers in the range of 0 .. 2147483647 
according to the algorithm that was designed by Park and Miller and 
modified by Base and Darhamn.

ScanString(refer object String)

param Str;

The ScanString function returns string where all \" characters are 
substituted for ", all \\ characters are substituted for \, etc.

SeedRand(int)

param Seed;

Initiate the random-number generator for new sequence.
Numbers in the range of 0 .. 2147483647B are possible as the Seed 
parameter.

Sgn

param a;

#rus Return 1 if a > 0, return 0 if a == 0, else return -1

Sin(any)

param x;

Returns sine of the value determined via the x parameter.

Sqrt(any)

param x;

Returns square root from the value determined via the x parameter.
 

Swap(refer any, refer any)

param var1, var2;

The function changes the contents between the variable specified via \
the var1 parameter and the variable specified via the var2 parameter.

Tg(any)

param x;

Returns tangent of the value determined via the x parameter.

ToDirName

#rus Добавляет к пути разделитель если отсутствует.

ToLower(char)

param ch;

Returns the character specified via the ch parameter converted to 
lowercase, if this character is a Latin character.

ToPtr

#rus Вне зависимости от того, передан ли сам объект или указатель
#rus на него вернет указатель на этот объект.

ToRef

#rus Вне зависимости от того, передан ли сам объект или указатель
#rus на него вернет ссылку на этот объект.

ToUpper(char)

param ch;

Returns the character specified via the ch parameter converted to 
capital, if this character is a Latin character.

VectorDif::CompareSets

param Vect1, Vect2, Func;

#rus Сравнивает два неупорядоченных вектора ( множества ).
#rus Возвращает объект класса VectorDif - результат сравнения
#rus двух векторов.
#rus Параметры:
#rus Vect1 - Первый вектор.
#rus Vect2 - Второй вектор.
#rus Func - Функция сравнения двух элементов векторов.
#rus Внимание:
#rus Поле VectorDif::Common в этой функции не заполняется.

VectorDif::CompareVectors

param Vect1, Vect2, Func;

#rus Сравнивает два упорядоченных вектора.
#rus Возвращает объект класса VectorDif - результат сравнения
#rus двух векторов.
#rus Параметры:
#rus Vect1 - Первый вектор.
#rus Vect2 - Второй вектор.
#rus Func - Функция сравнения двух элементов векторов.

assert

param condition;

Checks the specified condition (arbitrary Boolean expression).
If the condition is not met then the ERR_ASSERTION_FAILED error is 
raised together with indicating the file, function and string where 
the condition check is set.

Index: