Перегенерировал справку

This commit is contained in:
Mikhalkovich Stanislav 2023-08-12 21:38:41 +03:00
parent 1b1edbdb39
commit 935ab613be
15 changed files with 634 additions and 538 deletions

View file

@ -15,7 +15,7 @@ internal static class RevisionClass
public const string Major = "3";
public const string Minor = "9";
public const string Build = "0";
public const string Revision = "3335";
public const string Revision = "3340";
public const string MainVersion = Major + "." + Minor;
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;

View file

@ -1,4 +1,4 @@
%MINOR%=9
%REVISION%=3335
%COREVERSION%=0
%REVISION%=3340
%MINOR%=9
%MAJOR%=3

View file

@ -6,6 +6,7 @@
<param name="Keyword" value="Indices">
<param name="Keyword" value="LastIndexMax">
<param name="Keyword" value="LastIndexMin">
<param name="Keyword" value="RandomElement">
<param name="Keyword" value="RemoveLast">
<param name="Keyword" value="Replace">
<param name="Keyword" value="Shuffle">
@ -39,6 +40,8 @@
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò èíäåêñ ïîñëåäíåãî ìèíèìàëüíîãî ýëåìåíòà â äèàïàçîíå [0,index-1]</td></tr>
<tr><td><code><b>function</b> LastIndexMin&lt;T&gt;(Self: List&lt;T&gt;): integer; <b>where</b> T: IComparable&lt;T&gt;;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò èíäåêñ ïîñëåäíåãî ìèíèìàëüíîãî ýëåìåíòà</td></tr>
<tr><td><code><b>function</b> RandomElement&lt;T&gt;(Self: List&lt;T&gt;): T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ñëó÷àéíûé ýëåìåíò ñïèñêà</td></tr>
<tr><td><code><b>function</b> RemoveLast&lt;T&gt;(Self: List&lt;T&gt;): List&lt;T&gt;;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Óäàëÿåò ïîñëåäíèé ýëåìåíò. Åñëè ýëåìåíòîâ íåò, ãåíåðèðóåò èñêëþ÷åíèå</td></tr>
<tr><td><code><b>procedure</b> Replace&lt;T&gt;(Self: List&lt;T&gt;; oldValue, newValue: T);</code>

View file

@ -0,0 +1,55 @@
<HTML><HEAD><object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="Keyword" value="Add">
<param name="Keyword" value="Print">
<param name="Keyword" value="Println">
<param name="Keyword" value="ToArray"></object>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><link rel="StyleSheet" href="../../../default.css">
</HEAD><body><H1>Ìåòîäû ðàñøèðåíèÿ òèïà Tuple</H1>
<table border=0 cellpadding=5><tr><td><code><b>function</b> Add&lt;T1, T2, T3&gt;(Self: (T1, T2); v: T3): (T1, T2, T3);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Äîáàâëÿåò ïîëå ê êîðòåæó</td></tr>
<tr><td><code><b>function</b> Add&lt;T1, T2, T3, T4&gt;(Self: (T1, T2, T3); v: T4): (T1, T2, T3, T4);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Äîáàâëÿåò ïîëå ê êîðòåæó</td></tr>
<tr><td><code><b>function</b> Add&lt;T1, T2, T3, T4, T5&gt;(Self: (T1, T2, T3, T4); v: T5): (T1, T2, T3, T4, T5);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Äîáàâëÿåò ïîëå ê êîðòåæó</td></tr>
<tr><td><code><b>function</b> Add&lt;T1, T2, T3, T4, T5, T6&gt;(Self: (T1, T2, T3, T4, T5); v: T6): (T1, T2, T3, T4, T5, T6);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Äîáàâëÿåò ïîëå ê êîðòåæó</td></tr>
<tr><td><code><b>function</b> Add&lt;T1, T2, T3, T4, T5, T6, T7&gt;(Self: (T1, T2, T3, T4, T5, T6); v: T7): (T1, T2, T3, T4, T5, T6, T7);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Äîáàâëÿåò ïîëå ê êîðòåæó</td></tr>
<tr><td><code><b>procedure</b> Print&lt;T1, T2&gt;(Self: (T1, T2));</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âûâîäèò êîðòåæ</td></tr>
<tr><td><code><b>procedure</b> Print&lt;T1, T2, T3&gt;(Self: (T1, T2, T3));</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âûâîäèò êîðòåæ</td></tr>
<tr><td><code><b>procedure</b> Print&lt;T1, T2, T3, T4&gt;(Self: (T1, T2, T3, T4));</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âûâîäèò êîðòåæ</td></tr>
<tr><td><code><b>procedure</b> Print&lt;T1, T2, T3, T4, T5&gt;(Self: (T1, T2, T3, T4, T5));</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âûâîäèò êîðòåæ</td></tr>
<tr><td><code><b>procedure</b> Print&lt;T1, T2, T3, T4, T5, T6&gt;(Self: (T1, T2, T3, T4, T5, T6));</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âûâîäèò êîðòåæ</td></tr>
<tr><td><code><b>procedure</b> Print&lt;T1, T2, T3, T4, T5, T6, T7&gt;(Self: (T1, T2, T3, T4, T5, T6, T7));</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âûâîäèò êîðòåæ</td></tr>
<tr><td><code><b>procedure</b> Println&lt;T1, T2&gt;(Self: (T1, T2));</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âûâîäèò êîðòåæ è ïåðåõîäèò íà íîâóþ ñòðîêó</td></tr>
<tr><td><code><b>procedure</b> Println&lt;T1, T2, T3&gt;(Self: (T1, T2, T3));</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âûâîäèò êîðòåæ è ïåðåõîäèò íà íîâóþ ñòðîêó</td></tr>
<tr><td><code><b>procedure</b> Println&lt;T1, T2, T3, T4&gt;(Self: (T1, T2, T3, T4));</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âûâîäèò êîðòåæ è ïåðåõîäèò íà íîâóþ ñòðîêó</td></tr>
<tr><td><code><b>procedure</b> Println&lt;T1, T2, T3, T4, T5&gt;(Self: (T1, T2, T3, T4, T5));</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âûâîäèò êîðòåæ è ïåðåõîäèò íà íîâóþ ñòðîêó</td></tr>
<tr><td><code><b>procedure</b> Println&lt;T1, T2, T3, T4, T5, T6&gt;(Self: (T1, T2, T3, T4, T5, T6));</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âûâîäèò êîðòåæ è ïåðåõîäèò íà íîâóþ ñòðîêó</td></tr>
<tr><td><code><b>procedure</b> Println&lt;T1, T2, T3, T4, T5, T6, T7&gt;(Self: (T1, T2, T3, T4, T5, T6, T7));</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âûâîäèò êîðòåæ è ïåðåõîäèò íà íîâóþ ñòðîêó</td></tr>
<tr><td><code><b>function</b> ToArray&lt;T&gt;(Self: (T,T)): <b>array</b> <b>of</b> T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ïðåîáðàçóåò êîðòåæ ýëåìåíòîâ îäíîãî òèïà â ìàññèâ</td></tr>
<tr><td><code><b>function</b> ToArray&lt;T&gt;(Self: (T,T,T)): <b>array</b> <b>of</b> T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ïðåîáðàçóåò êîðòåæ ýëåìåíòîâ îäíîãî òèïà â ìàññèâ</td></tr>
<tr><td><code><b>function</b> ToArray&lt;T&gt;(Self: (T,T,T,T)): <b>array</b> <b>of</b> T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ïðåîáðàçóåò êîðòåæ ýëåìåíòîâ îäíîãî òèïà â ìàññèâ</td></tr>
<tr><td><code><b>function</b> ToArray&lt;T&gt;(Self: (T,T,T,T,T)): <b>array</b> <b>of</b> T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ïðåîáðàçóåò êîðòåæ ýëåìåíòîâ îäíîãî òèïà â ìàññèâ</td></tr>
<tr><td><code><b>function</b> ToArray&lt;T&gt;(Self: (T,T,T,T,T,T)): <b>array</b> <b>of</b> T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ïðåîáðàçóåò êîðòåæ ýëåìåíòîâ îäíîãî òèïà â ìàññèâ</td></tr>
<tr><td><code><b>function</b> ToArray&lt;T&gt;(Self: (T,T,T,T,T,T,T)): <b>array</b> <b>of</b> T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ïðåîáðàçóåò êîðòåæ ýëåìåíòîâ îäíîãî òèïà â ìàññèâ</td></tr>
</table>
</body></HTML>

View file

@ -25,6 +25,7 @@
<param name="Keyword" value="Random2">
<param name="Keyword" value="Random3">
<param name="Keyword" value="Randomize">
<param name="Keyword" value="RandomReal">
<param name="Keyword" value="Round">
<param name="Keyword" value="RoundBigInteger">
<param name="Keyword" value="Sign">
@ -148,6 +149,8 @@
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Инициализирует датчик псевдослучайных чисел, используя значение seed. При одном и том же seed генерируются одинаковые псевдослучайные последовательности</td></tr>
<tr><td><code><b>procedure</b> Randomize;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Инициализирует датчик псевдослучайных чисел</td></tr>
<tr><td><code><b>function</b> RandomReal(a, b: real; digits: integer := 2): real;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ñëó÷àéíîå âåùåñòâåííîå â äèàïàçîíå [a,b] c êîëè÷åñòâîì çíà÷àùèõ öèôð ïîñëå òî÷êè, ðàâíûì digits</td></tr>
<tr><td><code><b>function</b> Round(x: real): integer;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Возвращает x, округленное до ближайшего целого. Если вещественное находится посередине между двумя целыми,то округление осуществляется к ближайшему четному (банковское округление): Round(2.5)=2, Round(3.5)=4</td></tr>
<tr><td><code><b>function</b> Round(x: real; digits: integer): real;</code>

View file

@ -32,12 +32,12 @@
<tr><td><code><b>function</b> ArrRandom(n: integer := 10; a: integer := 0; b: integer := 100): <b>array</b> <b>of</b> integer;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ìàññèâ ðàçìåðà n, çàïîëíåííûé ñëó÷àéíûìè öåëûìè çíà÷åíèÿìè</td></tr>
<tr><td><code><b>function</b> ArrRandomInteger(n: integer; a: integer; b: integer): <b>array</b> <b>of</b> integer;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ìàññèâ ðàçìåðà n, çàïîëíåííûé ñëó÷àéíûìè öåëûìè çíà÷åíèÿìè</td></tr>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ìàññèâ ðàçìåðà n, çàïîëíåííûé ñëó÷àéíûìè öåëûìè çíà÷åíèÿìè â äèàïàçîíå îò a äî b</td></tr>
<tr><td><code><b>function</b> ArrRandomInteger(n: integer := 10): <b>array</b> <b>of</b> integer;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ìàññèâ ðàçìåðà n, çàïîëíåííûé ñëó÷àéíûìè öåëûìè çíà÷åíèÿìè</td></tr>
<tr><td><code><b>function</b> ArrRandomReal(n: integer; a: real; b: real): <b>array</b> <b>of</b> real;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ìàññèâ ðàçìåðà n, çàïîëíåííûé ñëó÷àéíûìè âåùåñòâåííûìè çíà÷åíèÿìè</td></tr>
<tr><td><code><b>function</b> ArrRandomReal(n: integer := 10): <b>array</b> <b>of</b> real;</code>
<tr><td><code><b>function</b> ArrRandomReal(n: integer; a: real; b: real; digits: integer := 2): <b>array</b> <b>of</b> real;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ìàññèâ ðàçìåðà n, çàïîëíåííûé ñëó÷àéíûìè âåùåñòâåííûìè çíà÷åíèÿìè â äèàïàçîíå îò a äî b</td></tr>
<tr><td><code><b>function</b> ArrRandomReal(n: integer := 10; digits: integer := 2): <b>array</b> <b>of</b> real;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ìàññèâ ðàçìåðà n, çàïîëíåííûé ñëó÷àéíûìè âåùåñòâåííûìè çíà÷åíèÿìè</td></tr>
<tr><td><code><b>function</b> ReadArrInt64(n: integer): <b>array</b> <b>of</b> int64;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ìàññèâ èç n öåëûõ int64, ââåäåííûõ ñ êëàâèàòóðû</td></tr>

View file

@ -73,7 +73,7 @@
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Возвращает последовательность из n случайных целых элементов</td></tr>
<tr><td><code><b>function</b> SeqRandomInteger(n: integer := 10; a: integer := 0; b: integer := 100): <b>sequence </b> <b>of</b> integer;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Возвращает последовательность из n случайных целых элементов</td></tr>
<tr><td><code><b>function</b> SeqRandomReal(n: integer := 10; a: real := 0; b: real := 10): <b>sequence </b> <b>of</b> real;</code>
<tr><td><code><b>function</b> SeqRandomReal(n: integer := 10; a: real := 0; b: real := 10; digits: integer := 1): <b>sequence </b> <b>of</b> real;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Возвращает последовательность из n случайных вещественных элементов</td></tr>
<tr><td><code><b>function</b> SeqWhile&lt;T&gt;(first: T; next: T-&gt;T; pred: T-&gt;boolean): <b>sequence </b> <b>of</b> T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Возвращает последовательность элементов с начальным значением first,функцией next перехода от предыдущего к следующему и условием pred продолжения последовательности</td></tr>

File diff suppressed because it is too large Load diff

View file

@ -1 +1 @@
3.9.0.3335
3.9.0.3340

View file

@ -1 +1 @@
!define VERSION '3.9.0.3335'
!define VERSION '3.9.0.3340'

View file

@ -1701,7 +1701,7 @@ function Random(a, b: integer): integer;
/// Возвращает случайное вещественное в диапазоне [a,b)
function Random(a, b: real): real;
/// Возвращает случайное вещественное в диапазоне [a,b] c количеством значащих цифр после точки, равным digits
function RandomReal(a, b: real; digits: integer := -1): real;
function RandomReal(a, b: real; digits: integer := 2): real;
/// Возвращает случайный символ в диапазоне от a до b
function Random(a, b: char): char;
/// Возвращает случайное целое в диапазоне
@ -2326,9 +2326,9 @@ function ArrRandomInteger(n: integer; a: integer; b: integer): array of integer;
/// Возвращает массив размера n, заполненный случайными целыми значениями
function ArrRandomInteger(n: integer := 10): array of integer;
/// Возвращает массив размера n, заполненный случайными вещественными значениями в диапазоне от a до b
function ArrRandomReal(n: integer; a: real; b: real; digits: integer := 1): array of real;
function ArrRandomReal(n: integer; a: real; b: real; digits: integer := 2): array of real;
/// Возвращает массив размера n, заполненный случайными вещественными значениями
function ArrRandomReal(n: integer := 10; digits: integer := 1): array of real;
function ArrRandomReal(n: integer := 10; digits: integer := 2): array of real;
/// Возвращает массив из count элементов, заполненных значениями gen(i)
function ArrGen<T>(count: integer; gen: integer->T): array of T;
/// Возвращает массив из count элементов, заполненных значениями gen(i), начиная с i=from
@ -13564,6 +13564,79 @@ begin
Self.Remove(k);
end;
// --------------------------------------------
//>> Методы расширения типа Tuple # Extension methods for Tuple
// -------------------------------------------
// Дополнения февраль 2016
/// Добавляет поле к кортежу
function Add<T1, T2, T3>(Self: (T1, T2); v: T3): (T1, T2, T3); extensionmethod;
begin
Result := (Self[0], Self[1], v);
end;
/// Добавляет поле к кортежу
function Add<T1, T2, T3, T4>(Self: (T1, T2, T3); v: T4): (T1, T2, T3, T4); extensionmethod;
begin
Result := (Self[0], Self[1], Self[2], v);
end;
/// Добавляет поле к кортежу
function Add<T1, T2, T3, T4, T5>(Self: (T1, T2, T3, T4); v: T5): (T1, T2, T3, T4, T5); extensionmethod;
begin
Result := (Self[0], Self[1], Self[2], Self[3], v);
end;
/// Добавляет поле к кортежу
function Add<T1, T2, T3, T4, T5, T6>(Self: (T1, T2, T3, T4, T5); v: T6): (T1, T2, T3, T4, T5, T6); extensionmethod;
begin
Result := (Self[0], Self[1], Self[2], Self[3], Self[4], v);
end;
/// Добавляет поле к кортежу
function Add<T1, T2, T3, T4, T5, T6, T7>(Self: (T1, T2, T3, T4, T5, T6); v: T7): (T1, T2, T3, T4, T5, T6, T7); extensionmethod;
begin
Result := (Self[0], Self[1], Self[2], Self[3], Self[4], Self[5], v);
end;
/// Выводит кортеж
procedure Print<T1, T2>(Self: (T1, T2)); extensionmethod := Print(Self);
/// Выводит кортеж
procedure Print<T1, T2, T3>(Self: (T1, T2, T3)); extensionmethod := Print(Self);
/// Выводит кортеж
procedure Print<T1, T2, T3, T4>(Self: (T1, T2, T3, T4)); extensionmethod := Print(Self);
/// Выводит кортеж
procedure Print<T1, T2, T3, T4, T5>(Self: (T1, T2, T3, T4, T5)); extensionmethod := Print(Self);
/// Выводит кортеж
procedure Print<T1, T2, T3, T4, T5, T6>(Self: (T1, T2, T3, T4, T5, T6)); extensionmethod := Print(Self);
/// Выводит кортеж
procedure Print<T1, T2, T3, T4, T5, T6, T7>(Self: (T1, T2, T3, T4, T5, T6, T7)); extensionmethod := Print(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2>(Self: (T1, T2)); extensionmethod := Println(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2, T3>(Self: (T1, T2, T3)); extensionmethod := Println(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2, T3, T4>(Self: (T1, T2, T3, T4)); extensionmethod := Println(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2, T3, T4, T5>(Self: (T1, T2, T3, T4, T5)); extensionmethod := Println(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2, T3, T4, T5, T6>(Self: (T1, T2, T3, T4, T5, T6)); extensionmethod := Println(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2, T3, T4, T5, T6, T7>(Self: (T1, T2, T3, T4, T5, T6, T7)); extensionmethod := Println(Self);
/// Преобразует кортеж элементов одного типа в массив
function ToArray<T>(Self: (T,T)): array of T; extensionmethod := |Self[0],Self[1]|;
/// Преобразует кортеж элементов одного типа в массив
function ToArray<T>(Self: (T,T,T)): array of T; extensionmethod := |Self[0],Self[1],Self[2]|;
/// Преобразует кортеж элементов одного типа в массив
function ToArray<T>(Self: (T,T,T,T)): array of T; extensionmethod := |Self[0],Self[1],Self[2],Self[3]|;
/// Преобразует кортеж элементов одного типа в массив
function ToArray<T>(Self: (T,T,T,T,T)): array of T; extensionmethod := |Self[0],Self[1],Self[2],Self[3],Self[4]|;
/// Преобразует кортеж элементов одного типа в массив
function ToArray<T>(Self: (T,T,T,T,T,T)): array of T; extensionmethod := |Self[0],Self[1],Self[2],Self[3],Self[4],Self[5]|;
/// Преобразует кортеж элементов одного типа в массив
function ToArray<T>(Self: (T,T,T,T,T,T,T)): array of T; extensionmethod := |Self[0],Self[1],Self[2],Self[3],Self[4],Self[5],Self[6]|;
//{{{--doc: Конец методов расширения }}}
//------------------------------------------------------------------------------
@ -13766,65 +13839,7 @@ function operator<=<T1,T2,T3,T4,T5,T6,T7>(Self: (T1, T2, T3, T4,T5,T6,T7); v: (T
function operator><T1,T2,T3,T4,T5,T6,T7>(Self: (T1, T2, T3, T4,T5,T6,T7); v: (T1, T2, T3, T4,T5,T6,T7)); extensionmethod := CompareToTup5(Self, v) > 0;
///--
function operator>=<T1,T2,T3,T4,T5,T6,T7>(Self: (T1, T2, T3, T4,T5,T6,T7); v: (T1, T2, T3, T4,T5,T6,T7)); extensionmethod := CompareToTup5(Self, v) >= 0;
// --------------------------------------------
// Методы расширения типа Tuple # Extension methods for Tuple
// -------------------------------------------
// Дополнения февраль 2016
/// Добавляет поле к кортежу
function Add<T1, T2, T3>(Self: (T1, T2); v: T3): (T1, T2, T3); extensionmethod;
begin
Result := (Self[0], Self[1], v);
end;
/// Добавляет поле к кортежу
function Add<T1, T2, T3, T4>(Self: (T1, T2, T3); v: T4): (T1, T2, T3, T4); extensionmethod;
begin
Result := (Self[0], Self[1], Self[2], v);
end;
/// Добавляет поле к кортежу
function Add<T1, T2, T3, T4, T5>(Self: (T1, T2, T3, T4); v: T5): (T1, T2, T3, T4, T5); extensionmethod;
begin
Result := (Self[0], Self[1], Self[2], Self[3], v);
end;
/// Добавляет поле к кортежу
function Add<T1, T2, T3, T4, T5, T6>(Self: (T1, T2, T3, T4, T5); v: T6): (T1, T2, T3, T4, T5, T6); extensionmethod;
begin
Result := (Self[0], Self[1], Self[2], Self[3], Self[4], v);
end;
/// Добавляет поле к кортежу
function Add<T1, T2, T3, T4, T5, T6, T7>(Self: (T1, T2, T3, T4, T5, T6); v: T7): (T1, T2, T3, T4, T5, T6, T7); extensionmethod;
begin
Result := (Self[0], Self[1], Self[2], Self[3], Self[4], Self[5], v);
end;
/// Выводит кортеж
procedure Print<T1, T2>(Self: (T1, T2)); extensionmethod := Print(Self);
/// Выводит кортеж
procedure Print<T1, T2, T3>(Self: (T1, T2, T3)); extensionmethod := Print(Self);
/// Выводит кортеж
procedure Print<T1, T2, T3, T4>(Self: (T1, T2, T3, T4)); extensionmethod := Print(Self);
/// Выводит кортеж
procedure Print<T1, T2, T3, T4, T5>(Self: (T1, T2, T3, T4, T5)); extensionmethod := Print(Self);
/// Выводит кортеж
procedure Print<T1, T2, T3, T4, T5, T6>(Self: (T1, T2, T3, T4, T5, T6)); extensionmethod := Print(Self);
/// Выводит кортеж
procedure Print<T1, T2, T3, T4, T5, T6, T7>(Self: (T1, T2, T3, T4, T5, T6, T7)); extensionmethod := Print(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2>(Self: (T1, T2)); extensionmethod := Println(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2, T3>(Self: (T1, T2, T3)); extensionmethod := Println(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2, T3, T4>(Self: (T1, T2, T3, T4)); extensionmethod := Println(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2, T3, T4, T5>(Self: (T1, T2, T3, T4, T5)); extensionmethod := Println(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2, T3, T4, T5, T6>(Self: (T1, T2, T3, T4, T5, T6)); extensionmethod := Println(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2, T3, T4, T5, T6, T7>(Self: (T1, T2, T3, T4, T5, T6, T7)); extensionmethod := Println(Self);
{// Определяет, есть ли указанный элемент в массиве

View file

@ -5974,7 +5974,7 @@ namespace PascalABCCompiler.TreeConverter
catch (Exception ex)
{
ThrowCompilationError = true;
if (skip_first_parameter)
if (skip_first_parameter && !sil.HasOnlyExtensionMethods())
{
sil = tmp_sil;
exprs.remove_at(0);

View file

@ -50,6 +50,7 @@ copy bin\WeifenLuo.WinFormsUI.Docking.ThemeVS2005Linux.dll Release\PascalABCNETL
copy bin\WeifenLuo.WinFormsUI.DockingLinux.dll Release\PascalABCNETLinux\WeifenLuo.WinFormsUI.DockingLinux.dll
copy bin\YieldHelpers.dll Release\PascalABCNETLinux\YieldHelpers.dll
copy bin\LambdaAnySynToSemConverter.dll Release\PascalABCNETLinux\LambdaAnySynToSemConverter.dll
copy bin\TeacherControlPlugin.dll Release\PascalABCNETLinux\TeacherControlPlugin.dll
copy bin\Highlighting\PascalABCNET.xshd Release\PascalABCNETLinux\Highlighting\PascalABCNET.xshd
copy bin\Lib\nunit.framework.dll Release\PascalABCNETLinux\Lib\nunit.framework.dll

View file

@ -13564,6 +13564,79 @@ begin
Self.Remove(k);
end;
// --------------------------------------------
//>> Методы расширения типа Tuple # Extension methods for Tuple
// -------------------------------------------
// Дополнения февраль 2016
/// Добавляет поле к кортежу
function Add<T1, T2, T3>(Self: (T1, T2); v: T3): (T1, T2, T3); extensionmethod;
begin
Result := (Self[0], Self[1], v);
end;
/// Добавляет поле к кортежу
function Add<T1, T2, T3, T4>(Self: (T1, T2, T3); v: T4): (T1, T2, T3, T4); extensionmethod;
begin
Result := (Self[0], Self[1], Self[2], v);
end;
/// Добавляет поле к кортежу
function Add<T1, T2, T3, T4, T5>(Self: (T1, T2, T3, T4); v: T5): (T1, T2, T3, T4, T5); extensionmethod;
begin
Result := (Self[0], Self[1], Self[2], Self[3], v);
end;
/// Добавляет поле к кортежу
function Add<T1, T2, T3, T4, T5, T6>(Self: (T1, T2, T3, T4, T5); v: T6): (T1, T2, T3, T4, T5, T6); extensionmethod;
begin
Result := (Self[0], Self[1], Self[2], Self[3], Self[4], v);
end;
/// Добавляет поле к кортежу
function Add<T1, T2, T3, T4, T5, T6, T7>(Self: (T1, T2, T3, T4, T5, T6); v: T7): (T1, T2, T3, T4, T5, T6, T7); extensionmethod;
begin
Result := (Self[0], Self[1], Self[2], Self[3], Self[4], Self[5], v);
end;
/// Выводит кортеж
procedure Print<T1, T2>(Self: (T1, T2)); extensionmethod := Print(Self);
/// Выводит кортеж
procedure Print<T1, T2, T3>(Self: (T1, T2, T3)); extensionmethod := Print(Self);
/// Выводит кортеж
procedure Print<T1, T2, T3, T4>(Self: (T1, T2, T3, T4)); extensionmethod := Print(Self);
/// Выводит кортеж
procedure Print<T1, T2, T3, T4, T5>(Self: (T1, T2, T3, T4, T5)); extensionmethod := Print(Self);
/// Выводит кортеж
procedure Print<T1, T2, T3, T4, T5, T6>(Self: (T1, T2, T3, T4, T5, T6)); extensionmethod := Print(Self);
/// Выводит кортеж
procedure Print<T1, T2, T3, T4, T5, T6, T7>(Self: (T1, T2, T3, T4, T5, T6, T7)); extensionmethod := Print(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2>(Self: (T1, T2)); extensionmethod := Println(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2, T3>(Self: (T1, T2, T3)); extensionmethod := Println(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2, T3, T4>(Self: (T1, T2, T3, T4)); extensionmethod := Println(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2, T3, T4, T5>(Self: (T1, T2, T3, T4, T5)); extensionmethod := Println(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2, T3, T4, T5, T6>(Self: (T1, T2, T3, T4, T5, T6)); extensionmethod := Println(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2, T3, T4, T5, T6, T7>(Self: (T1, T2, T3, T4, T5, T6, T7)); extensionmethod := Println(Self);
/// Преобразует кортеж элементов одного типа в массив
function ToArray<T>(Self: (T,T)): array of T; extensionmethod := |Self[0],Self[1]|;
/// Преобразует кортеж элементов одного типа в массив
function ToArray<T>(Self: (T,T,T)): array of T; extensionmethod := |Self[0],Self[1],Self[2]|;
/// Преобразует кортеж элементов одного типа в массив
function ToArray<T>(Self: (T,T,T,T)): array of T; extensionmethod := |Self[0],Self[1],Self[2],Self[3]|;
/// Преобразует кортеж элементов одного типа в массив
function ToArray<T>(Self: (T,T,T,T,T)): array of T; extensionmethod := |Self[0],Self[1],Self[2],Self[3],Self[4]|;
/// Преобразует кортеж элементов одного типа в массив
function ToArray<T>(Self: (T,T,T,T,T,T)): array of T; extensionmethod := |Self[0],Self[1],Self[2],Self[3],Self[4],Self[5]|;
/// Преобразует кортеж элементов одного типа в массив
function ToArray<T>(Self: (T,T,T,T,T,T,T)): array of T; extensionmethod := |Self[0],Self[1],Self[2],Self[3],Self[4],Self[5],Self[6]|;
//{{{--doc: Конец методов расширения }}}
//------------------------------------------------------------------------------
@ -13766,65 +13839,7 @@ function operator<=<T1,T2,T3,T4,T5,T6,T7>(Self: (T1, T2, T3, T4,T5,T6,T7); v: (T
function operator><T1,T2,T3,T4,T5,T6,T7>(Self: (T1, T2, T3, T4,T5,T6,T7); v: (T1, T2, T3, T4,T5,T6,T7)); extensionmethod := CompareToTup5(Self, v) > 0;
///--
function operator>=<T1,T2,T3,T4,T5,T6,T7>(Self: (T1, T2, T3, T4,T5,T6,T7); v: (T1, T2, T3, T4,T5,T6,T7)); extensionmethod := CompareToTup5(Self, v) >= 0;
// --------------------------------------------
// Методы расширения типа Tuple # Extension methods for Tuple
// -------------------------------------------
// Дополнения февраль 2016
/// Добавляет поле к кортежу
function Add<T1, T2, T3>(Self: (T1, T2); v: T3): (T1, T2, T3); extensionmethod;
begin
Result := (Self[0], Self[1], v);
end;
/// Добавляет поле к кортежу
function Add<T1, T2, T3, T4>(Self: (T1, T2, T3); v: T4): (T1, T2, T3, T4); extensionmethod;
begin
Result := (Self[0], Self[1], Self[2], v);
end;
/// Добавляет поле к кортежу
function Add<T1, T2, T3, T4, T5>(Self: (T1, T2, T3, T4); v: T5): (T1, T2, T3, T4, T5); extensionmethod;
begin
Result := (Self[0], Self[1], Self[2], Self[3], v);
end;
/// Добавляет поле к кортежу
function Add<T1, T2, T3, T4, T5, T6>(Self: (T1, T2, T3, T4, T5); v: T6): (T1, T2, T3, T4, T5, T6); extensionmethod;
begin
Result := (Self[0], Self[1], Self[2], Self[3], Self[4], v);
end;
/// Добавляет поле к кортежу
function Add<T1, T2, T3, T4, T5, T6, T7>(Self: (T1, T2, T3, T4, T5, T6); v: T7): (T1, T2, T3, T4, T5, T6, T7); extensionmethod;
begin
Result := (Self[0], Self[1], Self[2], Self[3], Self[4], Self[5], v);
end;
/// Выводит кортеж
procedure Print<T1, T2>(Self: (T1, T2)); extensionmethod := Print(Self);
/// Выводит кортеж
procedure Print<T1, T2, T3>(Self: (T1, T2, T3)); extensionmethod := Print(Self);
/// Выводит кортеж
procedure Print<T1, T2, T3, T4>(Self: (T1, T2, T3, T4)); extensionmethod := Print(Self);
/// Выводит кортеж
procedure Print<T1, T2, T3, T4, T5>(Self: (T1, T2, T3, T4, T5)); extensionmethod := Print(Self);
/// Выводит кортеж
procedure Print<T1, T2, T3, T4, T5, T6>(Self: (T1, T2, T3, T4, T5, T6)); extensionmethod := Print(Self);
/// Выводит кортеж
procedure Print<T1, T2, T3, T4, T5, T6, T7>(Self: (T1, T2, T3, T4, T5, T6, T7)); extensionmethod := Print(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2>(Self: (T1, T2)); extensionmethod := Println(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2, T3>(Self: (T1, T2, T3)); extensionmethod := Println(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2, T3, T4>(Self: (T1, T2, T3, T4)); extensionmethod := Println(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2, T3, T4, T5>(Self: (T1, T2, T3, T4, T5)); extensionmethod := Println(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2, T3, T4, T5, T6>(Self: (T1, T2, T3, T4, T5, T6)); extensionmethod := Println(Self);
/// Выводит кортеж и переходит на новую строку
procedure Println<T1, T2, T3, T4, T5, T6, T7>(Self: (T1, T2, T3, T4, T5, T6, T7)); extensionmethod := Println(Self);
{// Определяет, есть ли указанный элемент в массиве

Binary file not shown.