diff --git a/SyntaxTree/tree/TreeHelper.cs b/SyntaxTree/tree/TreeHelper.cs index c933f0edc..248583b1b 100644 --- a/SyntaxTree/tree/TreeHelper.cs +++ b/SyntaxTree/tree/TreeHelper.cs @@ -1401,5 +1401,10 @@ namespace PascalABCCompiler.SyntaxTree // end frninja + // SSM 02/06/16 - пробуем добавить кеш для семантического выражения + public partial class expression + { + } + } diff --git a/TreeConverter/TreeConversion/syntax_tree_visitor.cs b/TreeConverter/TreeConversion/syntax_tree_visitor.cs index 2e1675e97..114c2b344 100644 --- a/TreeConverter/TreeConversion/syntax_tree_visitor.cs +++ b/TreeConverter/TreeConversion/syntax_tree_visitor.cs @@ -817,6 +817,7 @@ namespace PascalABCCompiler.TreeConverter expression_node en = ret.visit(expr); //en.loc=get_location(expr); + return en; } diff --git a/Yield/YieldConversionSyntax/YieldConversionSyntax.csproj b/Yield/YieldConversionSyntax/YieldConversionSyntax.csproj index 911305df4..a03654cfb 100644 --- a/Yield/YieldConversionSyntax/YieldConversionSyntax.csproj +++ b/Yield/YieldConversionSyntax/YieldConversionSyntax.csproj @@ -17,7 +17,7 @@ true full false - bin\Debug\ + ..\..\bin\ DEBUG;TRACE prompt 4 diff --git a/Yield/tests/yield1.pas b/Yield/tests/yield1.pas index 18d0c9482..c29bcbe0f 100644 --- a/Yield/tests/yield1.pas +++ b/Yield/tests/yield1.pas @@ -5,7 +5,7 @@ begin end; begin - var q := Gen(); + var q := Gen; foreach var x in q do Print(x); end. \ No newline at end of file diff --git a/bin/Lib/GraphABC.pas b/bin/Lib/GraphABC.pas index fc19b5aa4..97bc0aadf 100644 --- a/bin/Lib/GraphABC.pas +++ b/bin/Lib/GraphABC.pas @@ -333,6 +333,12 @@ procedure DrawTextCentered(x,y,x1,y1: integer; s: string); procedure DrawTextCentered(x,y,x1,y1: integer; n: integer); /// Выводит вещественное значение r, отцентрированное в прямоугольнике с координатами (x,y,x1,y1) procedure DrawTextCentered(x,y,x1,y1: integer; r: real); +/// Выводит строку s, отцентрированное по точке с координатами (x,y) +procedure DrawTextCentered(x,y: integer; s: string); +/// Выводит целое n, отцентрированное по точке с координатами (x,y) +procedure DrawTextCentered(x,y: integer; n: integer); +/// Выводит вещественное r, отцентрированное по точке с координатами (x,y) +procedure DrawTextCentered(x,y: integer; r: real); /// Заливает область одного цвета цветом c, начиная с точки (x,y). procedure FloodFill(x,y: integer; c: Color); @@ -837,7 +843,7 @@ type /// Тип рисунка GraphABC Picture = class - private + public bmp,savedbmp: Bitmap; gb: Graphics; istransp: boolean; @@ -2571,6 +2577,30 @@ begin DrawTextCentered(x,y,x1,y1,r.ToString(nfi)); end; +procedure DrawTextCentered(x,y: integer; s: string); +begin + Monitor.Enter(f); + if NotLockDrawing then + DrawTextCentered(x,y,s,gr); + if DrawInBuffer then + DrawTextCentered(x,y,s,gbmp); + Monitor.Exit(f); +end; + +procedure DrawTextCentered(x,y: integer; n: integer); +begin + DrawTextCentered(x,y,n.ToString); +end; + +procedure DrawTextCentered(x,y: integer; r: real); +begin + var nfi := new System.Globalization.NumberFormatInfo(); + nfi.NumberGroupSeparator := '.'; + + DrawTextCentered(x,y,r.ToString(nfi)); +end; + + function Pnt(x,y: integer): Point; begin Result := new Point(x,y); diff --git a/bin/Lib/GraphABCHelper.pas b/bin/Lib/GraphABCHelper.pas index bef2c407e..271187116 100644 --- a/bin/Lib/GraphABCHelper.pas +++ b/bin/Lib/GraphABCHelper.pas @@ -1,4 +1,4 @@ -// Copyright (c) Ivan Bondarev, Stanislav Mihalkovich (for details please see \doc\copyright.txt) +// Copyright (c) Ivan Bondarev, Stanislav Mihalkovich (for details please see \doc\copyright.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) unit GraphABCHelper; @@ -47,6 +47,7 @@ procedure ClosedCurve(a: array of Point; gr: Graphics); procedure TextOut(x,y: integer; s: string; gr: Graphics); procedure DrawTextCentered(x,y,x1,y1: integer; s: string; gr: Graphics); +procedure DrawTextCentered(x,y: integer; s: string; gr: Graphics); function GetView(b: Bitmap; r: System.Drawing.Rectangle): Bitmap; function ImageIntersect(b1,b2: Bitmap): boolean; @@ -386,6 +387,14 @@ begin gr.DrawString(s,Font.NETFont,_CurrentTextBrush,new System.Drawing.RectangleF(x,y,x1-x,y1-y),sf); end; +procedure DrawTextCentered(x,y: integer; s: string; gr: Graphics); +begin + var sf := new StringFormat(); + sf.Alignment := StringAlignment.Center; + sf.LineAlignment := StringAlignment.Center; + + gr.DrawString(s,Font.NETFont,_CurrentTextBrush,x,y,sf); +end; var __initialized := false; diff --git a/bin/Lib/PABCSystem.pas b/bin/Lib/PABCSystem.pas index 738f8241f..f75377895 100644 --- a/bin/Lib/PABCSystem.pas +++ b/bin/Lib/PABCSystem.pas @@ -117,7 +117,7 @@ type /// Представляет базовый класс для реализации интерфейса IComparer Comparer = System.Collections.Generic.Comparer; - IComparable = System.Collections.Generic.IComparable; + IComparable = System.IComparable; /// Представляет множество значений, реализованное на базе хеш-таблицы HashSet = System.Collections.Generic.HashSet;