From d10563ad7db5ad12635244ec89b7dfebf89cd0cf Mon Sep 17 00:00:00 2001 From: miks1965 Date: Mon, 18 Apr 2016 15:15:49 +0300 Subject: [PATCH] fix #138 --- Configuration/GlobalAssemblyInfo.cs | 2 +- Configuration/Version.defs | 4 +- Localization/DefaultLang.resources | Bin 76903 -> 76999 bytes .../PascalABCParserNewSaushkin/ABCPascal.cs | 2 +- .../PascalABCParserNewSaushkin/ABCPascal.y | 38 +- .../ABCPascalYacc.cs | 1935 +++++++++-------- Parsers/PascalABCParserNewSaushkin/PABC.tags | 1 - Parsers/PascalABCParserNewSaushkin/PABC.ymc | 2 + ReleaseGenerators/PascalABCNET_version.nsh | 2 +- TestSuite/CompilationSamples/LambdaProc1.pas | 3 + TestSuite/CompilationSamples/LambdaProc2.pas | 3 + TestSuite/CompilationSamples/PABCSystem.pas | 11 +- .../TreeConversion/syntax_tree_visitor.cs | 55 +- bin/Lib/PABCRtl.dll | Bin 503808 -> 504320 bytes bin/Lib/PABCSystem.pas | 2 +- 15 files changed, 1107 insertions(+), 953 deletions(-) create mode 100644 TestSuite/CompilationSamples/LambdaProc1.pas create mode 100644 TestSuite/CompilationSamples/LambdaProc2.pas diff --git a/Configuration/GlobalAssemblyInfo.cs b/Configuration/GlobalAssemblyInfo.cs index 7a5df8825..9aa91f9d5 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 = "1"; public const string Build = "0"; - public const string Revision = "1218"; + public const string Revision = "1223"; 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 83e17eb60..25594fb27 100644 --- a/Configuration/Version.defs +++ b/Configuration/Version.defs @@ -1,4 +1,4 @@ -%MINOR%=1 -%REVISION%=1218 %COREVERSION%=0 +%REVISION%=1223 +%MINOR%=1 %MAJOR%=3 diff --git a/Localization/DefaultLang.resources b/Localization/DefaultLang.resources index ca884233cfb6f300a59aab1ce024259f3e92528c..49ac4ca6ac60e249324900937f038618739aca22 100644 GIT binary patch delta 118 zcmV-+0Ez$S*aXMf1d!kXPf}k*MNCCUK~zOO&E@O-=l>w^;P~k9|ML7G?(gOB;P&X~AS)~@JuEFOEj=LQ Y>;E9+RiTsh>QNU1syf2C+2&m01g} diff --git a/Parsers/PascalABCParserNewSaushkin/ABCPascal.cs b/Parsers/PascalABCParserNewSaushkin/ABCPascal.cs index 04ecb2a6e..3ff6089e6 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: SSM -// DateTime: 13.04.2016 11:35:20 +// DateTime: 18.04.2016 14:09:33 // UserName: ????????? // GPLEX input file // GPLEX frame file diff --git a/Parsers/PascalABCParserNewSaushkin/ABCPascal.y b/Parsers/PascalABCParserNewSaushkin/ABCPascal.y index b223e8dc7..acd06c5d4 100644 --- a/Parsers/PascalABCParserNewSaushkin/ABCPascal.y +++ b/Parsers/PascalABCParserNewSaushkin/ABCPascal.y @@ -3654,6 +3654,42 @@ lambda_function_body { $$ = $1; } + | if_stmt + { + $$ = new statement_list($1 as statement, @$); + } + | while_stmt + { + $$ = new statement_list($1 as statement, @$); + } + | repeat_stmt + { + $$ = new statement_list($1 as statement, @$); + } + | for_stmt + { + $$ = new statement_list($1 as statement, @$); + } + | foreach_stmt + { + $$ = new statement_list($1 as statement, @$); + } + | case_stmt + { + $$ = new statement_list($1 as statement, @$); + } + | try_stmt + { + $$ = new statement_list($1 as statement, @$); + } + | lock_stmt + { + $$ = new statement_list($1 as statement, @$); + } + | yield_stmt + { + $$ = new statement_list($1 as statement, @$); + } ; lambda_procedure_body @@ -3665,7 +3701,7 @@ lambda_procedure_body { $$ = $1; } - | if_stmt + | if_stmt { $$ = new statement_list($1 as statement, @$); } diff --git a/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs b/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs index 53a2a0da8..b909af5e7 100644 --- a/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs +++ b/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs @@ -2,9 +2,9 @@ // GPPG version 1.3.6 // Machine: SSM -// DateTime: 13.04.2016 11:35:20 +// DateTime: 18.04.2016 14:09:33 // UserName: ????????? -// Input file +// Input file // options: no-lines gplex @@ -56,7 +56,7 @@ public abstract class ScanBase : AbstractScanner { - // Verbatim content from D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y + // Verbatim content from ABCPascal.y // ��� ���������� ����������� � ����� GPPGParser, �������������� ����� ������, ������������ �������� gppg public syntax_tree_node root; // �������� ���� ��������������� ������ @@ -68,13 +68,13 @@ public partial class GPPGParser: ShiftReduceParser scanner) : base(scanner) { } - // End verbatim content from D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y + // End verbatim content from ABCPascal.y #pragma warning disable 649 private static Dictionary aliasses; #pragma warning restore 649 - private static Rule[] rules = new Rule[796]; - private static State[] states = new State[1267]; + private static Rule[] rules = new Rule[805]; + private static State[] states = new State[1276]; private static string[] nonTerms = new string[] { "parse_goal", "unit_key_word", "assignment", "optional_array_initializer", "attribute_declarations", "ot_visibility_specifier", "one_attribute", "attribute_variable", @@ -150,13 +150,13 @@ public partial class GPPGParser: ShiftReduceParser proc_call + case 784: // lambda_function_body -> if_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; - case 785: // lambda_procedure_body -> compound_stmt + case 785: // lambda_function_body -> while_stmt +{ + CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); + } + break; + case 786: // lambda_function_body -> repeat_stmt +{ + CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); + } + break; + case 787: // lambda_function_body -> for_stmt +{ + CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); + } + break; + case 788: // lambda_function_body -> foreach_stmt +{ + CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); + } + break; + case 789: // lambda_function_body -> case_stmt +{ + CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); + } + break; + case 790: // lambda_function_body -> try_stmt +{ + CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); + } + break; + case 791: // lambda_function_body -> lock_stmt +{ + CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); + } + break; + case 792: // lambda_function_body -> yield_stmt +{ + CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); + } + break; + case 793: // lambda_procedure_body -> proc_call +{ + CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); + } + break; + case 794: // lambda_procedure_body -> compound_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; - case 786: // lambda_procedure_body -> if_stmt + case 795: // lambda_procedure_body -> if_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; - case 787: // lambda_procedure_body -> while_stmt + case 796: // lambda_procedure_body -> while_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; - case 788: // lambda_procedure_body -> repeat_stmt + case 797: // lambda_procedure_body -> repeat_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; - case 789: // lambda_procedure_body -> for_stmt + case 798: // lambda_procedure_body -> for_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; - case 790: // lambda_procedure_body -> foreach_stmt + case 799: // lambda_procedure_body -> foreach_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; - case 791: // lambda_procedure_body -> case_stmt + case 800: // lambda_procedure_body -> case_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; - case 792: // lambda_procedure_body -> try_stmt + case 801: // lambda_procedure_body -> try_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; - case 793: // lambda_procedure_body -> lock_stmt + case 802: // lambda_procedure_body -> lock_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; - case 794: // lambda_procedure_body -> yield_stmt + case 803: // lambda_procedure_body -> yield_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; - case 795: // lambda_procedure_body -> assignment + case 804: // lambda_procedure_body -> assignment { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } diff --git a/Parsers/PascalABCParserNewSaushkin/PABC.tags b/Parsers/PascalABCParserNewSaushkin/PABC.tags index 89f4844fa..3261da1fb 100644 --- a/Parsers/PascalABCParserNewSaushkin/PABC.tags +++ b/Parsers/PascalABCParserNewSaushkin/PABC.tags @@ -34,7 +34,6 @@ - diff --git a/Parsers/PascalABCParserNewSaushkin/PABC.ymc b/Parsers/PascalABCParserNewSaushkin/PABC.ymc index b20934ab4..3066661de 100644 --- a/Parsers/PascalABCParserNewSaushkin/PABC.ymc +++ b/Parsers/PascalABCParserNewSaushkin/PABC.ymc @@ -128,6 +128,8 @@ script= + + diff --git a/ReleaseGenerators/PascalABCNET_version.nsh b/ReleaseGenerators/PascalABCNET_version.nsh index 20bc42797..0baa94258 100644 --- a/ReleaseGenerators/PascalABCNET_version.nsh +++ b/ReleaseGenerators/PascalABCNET_version.nsh @@ -1 +1 @@ -!define VERSION '3.1.0.1218' +!define VERSION '3.1.0.1223' diff --git a/TestSuite/CompilationSamples/LambdaProc1.pas b/TestSuite/CompilationSamples/LambdaProc1.pas new file mode 100644 index 000000000..9265a69c0 --- /dev/null +++ b/TestSuite/CompilationSamples/LambdaProc1.pas @@ -0,0 +1,3 @@ +begin + Arr(1,2,3).ForEach(x -> Print(x)); +end. \ No newline at end of file diff --git a/TestSuite/CompilationSamples/LambdaProc2.pas b/TestSuite/CompilationSamples/LambdaProc2.pas new file mode 100644 index 000000000..31785a18d --- /dev/null +++ b/TestSuite/CompilationSamples/LambdaProc2.pas @@ -0,0 +1,3 @@ +begin + Arr(1,2,3).ForEach(x -> if x>1 then Print(x)); +end. \ No newline at end of file diff --git a/TestSuite/CompilationSamples/PABCSystem.pas b/TestSuite/CompilationSamples/PABCSystem.pas index 4490a483e..dcfd6466d 100644 --- a/TestSuite/CompilationSamples/PABCSystem.pas +++ b/TestSuite/CompilationSamples/PABCSystem.pas @@ -111,7 +111,7 @@ type /// Представляет кортеж Tuple = System.Tuple; - /// Представляет динамический массив + /// Представляет список на базе динамического массива List = System.Collections.Generic.List; /// Представляет базовый класс для реализации интерфейса IComparer @@ -7781,13 +7781,15 @@ end; // ----------------------------------------------------- // Дополнения февраль 2016: Iterate, Step, &Repeat, Cycle -/// Возвращает бесконечную рекуррентную последовательность элементов, задаваемую начальным элементом и функцией next +// Возвращает бесконечную рекуррентную последовательность элементов, задаваемую начальным элементом и функцией next +///-- function Iterate(Self: T; next: T -> T): sequence of T; extensionmethod; begin Result := Iterate&(Self,next); end; -/// Возвращает бесконечную рекуррентную последовательность элементов, задаваемую начальным элементом, следующим за ним элементом и функцией next +// Возвращает бесконечную рекуррентную последовательность элементов, задаваемую начальным элементом, следующим за ним элементом и функцией next +///-- function Iterate(Self,second: T; next: (T,T) -> T): sequence of T; extensionmethod; begin Result := Iterate&(Self,second,next); @@ -7813,7 +7815,8 @@ begin Result := IntNumbersClass.Create().Select(x->x*step+slf); end; -/// Возвращает бесконечную последовательность элементов, совпадающих с данным +// Возвращает бесконечную последовательность элементов, совпадающих с данным +///-- function &Repeat(Self: T): sequence of T; extensionmethod; begin Result := SeqFill(MaxInt,Self); diff --git a/TreeConverter/TreeConversion/syntax_tree_visitor.cs b/TreeConverter/TreeConversion/syntax_tree_visitor.cs index 83fb820d4..ba7001e74 100644 --- a/TreeConverter/TreeConversion/syntax_tree_visitor.cs +++ b/TreeConverter/TreeConversion/syntax_tree_visitor.cs @@ -5934,7 +5934,8 @@ namespace PascalABCCompiler.TreeConverter { expression_node bfcint = make_read_call(si, _method_call.parameters, subloc2); - if (!proc_wait) AddError(subloc2, "FUNCTION_EXPECTED_PROCEDURE_{0}_MEET", (si.sym_info as function_node).name); + if (!proc_wait) + AddError(subloc2, "FUNCTION_EXPECTED_PROCEDURE_{0}_MEET", (si.sym_info as function_node).name); switch (mot) { case motivation.expression_evaluation: @@ -6192,7 +6193,8 @@ namespace PascalABCCompiler.TreeConverter else if (SystemLibrary.SystemLibInitializer.IncProcedure.Equal(si)) { expression_node bfcint = make_inc_call(si, _method_call.parameters, subloc2); - if (!proc_wait) AddError(subloc2, "FUNCTION_EXPECTED_PROCEDURE_{0}_MEET", (si.sym_info as function_node).name); + if (!proc_wait) + AddError(subloc2, "FUNCTION_EXPECTED_PROCEDURE_{0}_MEET", (si.sym_info as function_node).name); switch (mot) { case motivation.expression_evaluation: @@ -6217,7 +6219,8 @@ namespace PascalABCCompiler.TreeConverter else if (SystemLibrary.SystemLibInitializer.DecProcedure.Equal(si)) { expression_node bfcint = make_dec_call(si, _method_call.parameters, subloc2); - if (!proc_wait) AddError(subloc2, "FUNCTION_EXPECTED_PROCEDURE_{0}_MEET", (si.sym_info as function_node).name); + if (!proc_wait) + AddError(subloc2, "FUNCTION_EXPECTED_PROCEDURE_{0}_MEET", (si.sym_info as function_node).name); switch (mot) { case motivation.expression_evaluation: @@ -6374,7 +6377,8 @@ namespace PascalABCCompiler.TreeConverter else if (si == SystemLibrary.SystemLibInitializer.NewProcedure) { expression_node bfcint = make_new_call(si, _method_call.parameters, subloc2); - if (!proc_wait) AddError(subloc2, "FUNCTION_EXPECTED_PROCEDURE_{0}_MEET", (si.sym_info as function_node).name); + if (!proc_wait) + AddError(subloc2, "FUNCTION_EXPECTED_PROCEDURE_{0}_MEET", (si.sym_info as function_node).name); switch (mot) { case motivation.expression_evaluation: @@ -6401,7 +6405,8 @@ namespace PascalABCCompiler.TreeConverter //if (convertion_data_and_alghoritms.select_function(convert_expression_list(_method_call.parameters.expressions), si, subloc2) == SystemLibrary.SystemLibInitializer.DisposeProcedure.sym_info) //{ expression_node bfcint = make_dispose_call(si, _method_call.parameters, subloc2); - if (!proc_wait) AddError(subloc2, "FUNCTION_EXPECTED_PROCEDURE_{0}_MEET", (si.sym_info as function_node).name); + if (!proc_wait) + AddError(subloc2, "FUNCTION_EXPECTED_PROCEDURE_{0}_MEET", (si.sym_info as function_node).name); switch (mot) { case motivation.expression_evaluation: @@ -18372,6 +18377,46 @@ namespace PascalABCCompiler.TreeConverter public override void visit(SyntaxTree.function_lambda_definition _function_lambda_definition) { + // SSM 18/04/16 попытка разрешить x->Print(x) + var stl = _function_lambda_definition.proc_body as SyntaxTree.statement_list; + if (_function_lambda_definition.return_type is lambda_inferred_type && stl != null && stl.list.Count == 1) + { + var ass = (_function_lambda_definition.proc_body as SyntaxTree.statement_list).list[0] as assign; + if (ass != null && ass.to is ident && (ass.to as ident).name.ToLower()=="result") + { + var f = ass.from; + if (f is method_call) + { + var ff = f as method_call; + // Надо посмотреть, как это делается для преобразования типов T(x). А пока так + expression_node qq = null; + delegated_methods dm = null; + try + { + qq = convert_strong(ff.dereferencing_value); + dm = qq.type as delegated_methods; + } + catch + { + // Погасить все исключения. Значит, не вывелось, и в правой части лямбды - не вызов процедуры, а скорее всего приведение типа T(x) + } + if (dm != null && dm.proper_methods != null && dm.proper_methods.Count > 0) + { + if (dm.proper_methods[0].ret_type == null) + { + // Очищаем от Result := + (_function_lambda_definition.proc_body as SyntaxTree.statement_list).list[0] = new procedure_call(ff, ff.source_context); // заменить result := Print(x) на Print(x) + _function_lambda_definition.return_type = null; + } + } + } + } + else // значит, первый и единственный оператор - не присваивание и это лямбда - процедура! + { + _function_lambda_definition.return_type = null; + } + } + _function_lambda_definition.RealSemTypeOfResExpr = null; // После первого присваивания Result она будет содержать тип type_node в правой части Result _function_lambda_definition.RealSemTypeOfResult = null; try diff --git a/bin/Lib/PABCRtl.dll b/bin/Lib/PABCRtl.dll index 7766428ae3088d8b4b80d4cd0dab8a9920a1ec6a..273de3327e507e3d84bbfb3c09990d7fe7e14542 100644 GIT binary patch delta 64816 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 Qy=A}m-jNrEZ44jz|F<3e0RR91 delta 64757 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 diff --git a/bin/Lib/PABCSystem.pas b/bin/Lib/PABCSystem.pas index 40a4abff2..dcfd6466d 100644 --- a/bin/Lib/PABCSystem.pas +++ b/bin/Lib/PABCSystem.pas @@ -111,7 +111,7 @@ type /// Представляет кортеж Tuple = System.Tuple; - /// Представляет список + /// Представляет список на базе динамического массива List = System.Collections.Generic.List; /// Представляет базовый класс для реализации интерфейса IComparer