This commit is contained in:
miks1965 2017-02-18 00:19:27 +03:00
parent ea1be89a80
commit 58f342fdb2
8 changed files with 97 additions and 8 deletions

View file

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

View file

@ -1,4 +1,4 @@
%COREVERSION%=0
%REVISION%=1385
%MINOR%=2
%REVISION%=1386
%COREVERSION%=0
%MAJOR%=3

View file

@ -1 +1 @@
!define VERSION '3.2.0.1385'
!define VERSION '3.2.0.1386'

View file

@ -37,6 +37,18 @@ namespace PascalABCCompiler.SyntaxTreeConverters
MarkMethodHasYieldAndCheckSomeErrorsVisitor.New.ProcessNode(root);
ProcessYieldCapturedVarsVisitor.New.ProcessNode(root);
/*#if DEBUG
try
{
//root.visit(new SimplePrettyPrinterVisitor(@"d:\\zzz1.txt"));
}
catch
{
}
#endif*/
return root;
}
}

View file

@ -31,7 +31,9 @@ namespace SyntaxVisitors
if (
(object)upperNode != null && (object)(upperNode as dot_node) == null)
{
Replace(id, _newName);
//Replace(id, _newName);
// заменяются только строки, а сами идентификаторы как объекты не меняются!
id.name = _newName.name;
}
}

View file

@ -471,6 +471,8 @@ type
///- f.Write(a,b,...)
/// Выводит значения a,b,... в двоичный файл
procedure Write(params vals: array of object);
/// Устанавливает файловый указатель на начало файла
procedure Reset;
end;
// Class for typed files
@ -1523,7 +1525,11 @@ procedure Sort<T>(l: List<T>; less: (T,T)->boolean);
/// Изменяет порядок элементов в динамическом массиве на противоположный
procedure Reverse<T>(a: array of T);
/// Изменяет порядок элементов на противоположный в диапазоне динамического массива длины length начиная с индекса index
procedure Reverse<T>(a: array of T; index,length: integer);
procedure Reverse<T>(a: array of T; index,count: integer);
/// Изменяет порядок элементов в списке на противоположный
procedure Reverse<T>(a: List<T>);
/// Изменяет порядок элементов на противоположный в диапазоне списка длины length начиная с индекса index
procedure Reverse<T>(a: List<T>; index,count: integer);
/// Перемешивает динамический массив случайным образом
procedure Shuffle<T>(a: array of T);
/// Перемешивает список случайным образом
@ -3247,18 +3253,21 @@ end;
//------------------------------------------------------------------------------
// Операции для List<T>
//------------------------------------------------------------------------------
///--
function operator+=<T>(a, b: List<T>): List<T>; extensionmethod;
begin
a.AddRange(b);
Result := a;
end;
///--
function operator+<T>(a, b: List<T>): List<T>; extensionmethod;
begin
Result := new List<T>(a);
Result.AddRange(b);
end;
///--
function operator+=<T>(a: List<T>; x: T): List<T>; extensionmethod;
begin
a.Add(x);
@ -3271,6 +3280,40 @@ begin
Result := Self.Contains(x);
end;
///--
function operator*<T>(a: List<T>; n: integer): List<T>; extensionmethod;
begin
Result := new List<T>();
for var i := 1 to n do
Result.AddRange(a);
end;
///--
function operator*<T>(n: integer; a: List<T>): List<T>; extensionmethod;
begin
Result := a*n;
end;
//------------------------------------------------------------------------------
// Операции для Stack<T>
//------------------------------------------------------------------------------
///--
function operator+=<T>(s: Stack<T>; x: T): Stack<T>; extensionmethod;
begin
s.Push(x);
Result := s;
end;
//------------------------------------------------------------------------------
// Операции для Queue<T>
//------------------------------------------------------------------------------
///--
function operator+=<T>(q: Queue<T>; x: T): Queue<T>; extensionmethod;
begin
q.Enqueue(x);
Result := q;
end;
//------------------------------------------------------------------------------
// Операции для HashSet<T>
//------------------------------------------------------------------------------
@ -5197,6 +5240,11 @@ begin
PABCSystem.Write(Self, vals);
end;
procedure AbstractBinaryFile.Reset;
begin
PABCSystem.Reset(Self);
end;
// -----------------------------------------------------
// TypedFile & BinaryFile methods
// -----------------------------------------------------
@ -7072,11 +7120,22 @@ begin
System.Array.Reverse(a);
end;
procedure Reverse<T>(a: array of T; index,length: integer);
procedure Reverse<T>(a: array of T; index,count: integer);
begin
System.Array.Reverse(a,index,length);
System.Array.Reverse(a,index,count);
end;
procedure Reverse<T>(a: List<T>);
begin
a.Reverse
end;
procedure Reverse<T>(a: List<T>; index,count: integer);
begin
a.Reverse(index,count)
end;
procedure Shuffle<T>(a: array of T);
begin
var n := a.Length;

View file

@ -0,0 +1,16 @@
function MatrMainDiag(a: array[,]of integer):sequence of integer;
begin
for var i:=0 to 10 do
yield a[i,i]
end;
function MatrMainDiag1(a: array[,]of integer):sequence of integer;
begin
for var i:=0 to 10 do
yield min(i,i)
end;
begin
end.

Binary file not shown.