From 973e33d3ecc3fbaa11178aae918cfcff49e75f73 Mon Sep 17 00:00:00 2001 From: Mikhalkovich Stanislav Date: Sun, 21 Jun 2020 20:06:27 +0300 Subject: [PATCH] =?UTF-8?q?SF=20=D0=B4=D0=BE=D0=BF=D0=B8=D1=81=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Configuration/GlobalAssemblyInfo.cs | 2 +- Configuration/Version.defs | 4 +- .../PascalABCParserNewSaushkin/ABCPascal.cs | 2 +- .../PascalABCParserNewSaushkin/ABCPascal.y | 4 +- .../ABCPascalYacc.cs | 1232 ++++++++--------- Parsers/PascalABCParserNewSaushkin/PABC.ymc | 1 + Release/pabcversion.txt | 2 +- ReleaseGenerators/PascalABCNET_version.nsh | 2 +- bin/Lib/SF.pas | 19 + 9 files changed, 644 insertions(+), 624 deletions(-) diff --git a/Configuration/GlobalAssemblyInfo.cs b/Configuration/GlobalAssemblyInfo.cs index 5a99a445c..3e3d91b34 100644 --- a/Configuration/GlobalAssemblyInfo.cs +++ b/Configuration/GlobalAssemblyInfo.cs @@ -15,7 +15,7 @@ internal static class RevisionClass public const string Major = "3"; public const string Minor = "6"; public const string Build = "3"; - public const string Revision = "2518"; + public const string Revision = "2519"; public const string MainVersion = Major + "." + Minor; public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision; diff --git a/Configuration/Version.defs b/Configuration/Version.defs index 78d147a63..9965c0eda 100644 --- a/Configuration/Version.defs +++ b/Configuration/Version.defs @@ -1,4 +1,4 @@ -%COREVERSION%=3 -%REVISION%=2518 %MINOR%=6 +%REVISION%=2519 +%COREVERSION%=3 %MAJOR%=3 diff --git a/Parsers/PascalABCParserNewSaushkin/ABCPascal.cs b/Parsers/PascalABCParserNewSaushkin/ABCPascal.cs index b28c86e63..69daf597b 100644 --- a/Parsers/PascalABCParserNewSaushkin/ABCPascal.cs +++ b/Parsers/PascalABCParserNewSaushkin/ABCPascal.cs @@ -2,7 +2,7 @@ // This CSharp output file generated by Gardens Point LEX // Version: 1.1.3.301 // Machine: DESKTOP-G8V08V4 -// DateTime: 08.06.2020 21:36:35 +// DateTime: 21.06.2020 18:37:06 // UserName: ????????? // GPLEX input file // GPLEX frame file diff --git a/Parsers/PascalABCParserNewSaushkin/ABCPascal.y b/Parsers/PascalABCParserNewSaushkin/ABCPascal.y index ed309a5ac..4d921c61b 100644 --- a/Parsers/PascalABCParserNewSaushkin/ABCPascal.y +++ b/Parsers/PascalABCParserNewSaushkin/ABCPascal.y @@ -2655,14 +2655,14 @@ loop_stmt ; yield_stmt - : tkYield expr_l1 + : tkYield expr_l1_func_decl_lambda { $$ = new yield_node($2,@$); } ; yield_sequence_stmt - : tkYield tkSequence expr_l1 + : tkYield tkSequence expr_l1_func_decl_lambda { $$ = new yield_sequence_node($3,@$); } diff --git a/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs b/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs index 8ac7029df..b4424b456 100644 --- a/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs +++ b/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs @@ -2,9 +2,9 @@ // GPPG version 1.3.6 // Machine: DESKTOP-G8V08V4 -// DateTime: 08.06.2020 21:36:35 +// DateTime: 21.06.2020 18:37:06 // UserName: ????????? -// Input file +// Input file // options: no-lines gplex @@ -59,7 +59,7 @@ public abstract class ScanBase : AbstractScanner { - // Verbatim content from ABCPascal.y + // Verbatim content from D:\PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y // ��� ���������� ����������� � ����� GPPGParser, �������������� ����� ������, ������������ �������� gppg public syntax_tree_node root; // �������� ���� ��������������� ������ @@ -71,7 +71,7 @@ public partial class GPPGParser: ShiftReduceParser scanner) : base(scanner) { } - // End verbatim content from ABCPascal.y + // End verbatim content from D:\PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y #pragma warning disable 649 private static Dictionary aliasses; @@ -167,7 +167,7 @@ public partial class GPPGParser: ShiftReduceParser tkYield, expr_l1 + case 499: // yield_stmt -> tkYield, expr_l1_func_decl_lambda { CurrentSemanticValue.stn = new yield_node(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan); } break; - case 500: // yield_sequence_stmt -> tkYield, tkSequence, expr_l1 + case 500: // yield_sequence_stmt -> tkYield, tkSequence, expr_l1_func_decl_lambda { CurrentSemanticValue.stn = new yield_sequence_node(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan); } diff --git a/Parsers/PascalABCParserNewSaushkin/PABC.ymc b/Parsers/PascalABCParserNewSaushkin/PABC.ymc index 947144bd4..0030c7926 100644 --- a/Parsers/PascalABCParserNewSaushkin/PABC.ymc +++ b/Parsers/PascalABCParserNewSaushkin/PABC.ymc @@ -268,5 +268,6 @@ script= + diff --git a/Release/pabcversion.txt b/Release/pabcversion.txt index c0271ee1c..ef5a51f35 100644 --- a/Release/pabcversion.txt +++ b/Release/pabcversion.txt @@ -1 +1 @@ -3.6.3.2518 +3.6.3.2519 diff --git a/ReleaseGenerators/PascalABCNET_version.nsh b/ReleaseGenerators/PascalABCNET_version.nsh index 9c726f5f7..f2157a2e8 100644 --- a/ReleaseGenerators/PascalABCNET_version.nsh +++ b/ReleaseGenerators/PascalABCNET_version.nsh @@ -1 +1 @@ -!define VERSION '3.6.3.2518' +!define VERSION '3.6.3.2519' diff --git a/bin/Lib/SF.pas b/bin/Lib/SF.pas index c1cf79d19..361ecd3a4 100644 --- a/bin/Lib/SF.pas +++ b/bin/Lib/SF.pas @@ -6,12 +6,14 @@ procedure Pr(s: string) := Print(s); procedure Prln(params a: array of object) := Println(a); function RI := ReadInteger; +function RBI := ReadBigInteger; function RI64 := ReadInt64; function RR := ReadReal; function RC := ReadChar; function RS := ReadString; function RlnI := ReadlnInteger; +function RlnBI := ReadlnBigInteger; function RlnI64 := ReadlnInt64; function RlnR := ReadlnReal; function RlnC := ReadlnChar; @@ -37,6 +39,23 @@ function RlnR3 := ReadlnReal3; function RlnC3 := ReadlnChar3; function RlnS3 := ReadlnString3; +function RAI(n: integer) := ReadArrInteger(n); +function RAR(n: integer) := ReadArrReal(n); + +function Pr(Self: integer): integer; extensionmethod := Self.Print; +function Pr(Self: real): real; extensionmethod := Self.Print; +function Pr(Self: Biginteger): Biginteger; extensionmethod := Self.Print; +function Pr(Self: char): char; extensionmethod := Self.Print; +function Pr(Self: boolean): boolean; extensionmethod := Self.Print; +function Pr(Self: string): string; extensionmethod := Self.Print; + +function Prln(Self: integer): integer; extensionmethod := Self.Println; +function Prln(Self: real): real; extensionmethod := Self.Println; +function Prln(Self: Biginteger): Biginteger; extensionmethod := Self.Println; +function Prln(Self: char): char; extensionmethod := Self.Println; +function Prln(Self: boolean): boolean; extensionmethod := Self.Println; +function Prln(Self: string): string; extensionmethod := Self.Println; + procedure ReMin(var min: integer; x: integer); begin if x < min then