diff --git a/PABCNetHelp/LangGuide/Types/tuples.html b/PABCNetHelp/LangGuide/Types/tuples.html index 857e21a6d..bb3beccf9 100644 --- a/PABCNetHelp/LangGuide/Types/tuples.html +++ b/PABCNetHelp/LangGuide/Types/tuples.html @@ -15,22 +15,24 @@

Кортежи

Кортеж - это тип данных, являющийся аналогом -записи. Как и запись, кортеж представляет собой набор элементов разных -типов. В отличие от записей, тип кортежей описывается очень просто. Кроме того, +записи или класса. Как запись +или класс, кортеж представляет собой набор элементов разных +типов, но описывается существенно проще. Кроме того, поля кортежа имеют предопределенные имена и являются неизменными: поменять поля кортежа после его создания невозможно.

Тип кортежа

+

Для типа кортежа используется следующая запись:

+
+ var t: (string,integer); +
+

Данная запись похожа на объявление перечислимого типа. Если в круглых +скобках - новые имена, то это перечислимый тип, а если имена типов, то это - тип кортежа.

Кортежи представляются типом System.Tuple платформы .NET:

var t: System.Tuple<string,integer>;
-

Для типа кортежа может быть использована сокращенная запись:

-
- var t: (string,integer); -
-

Данная запись похожа на объявление перечислимого типа. Если в круглых -скобках - новые имена, то это перечислимый тип, а если имена типов, то это - тип кортежа.

+

Однако данное представление может поменяться в будущем.

Конструирование значений типа кортеж

Значения типа кортеж могут быть сконструированы в виде заключенного в круглые diff --git a/Parsers/PascalABCParserNewSaushkin/ABCPascal.cs b/Parsers/PascalABCParserNewSaushkin/ABCPascal.cs index 962fdcc58..e38b37299 100644 --- a/Parsers/PascalABCParserNewSaushkin/ABCPascal.cs +++ b/Parsers/PascalABCParserNewSaushkin/ABCPascal.cs @@ -1,9 +1,9 @@ // // This CSharp output file generated by Gardens Point LEX // Version: 1.1.3.301 -// Machine: IVAN-PC -// DateTime: 23.09.2018 13:03:23 -// UserName: Ivan +// Machine: DESKTOP-A6LT9RI +// DateTime: 23.09.2018 22:34:25 +// UserName: ????????? // GPLEX input file // GPLEX frame file // diff --git a/Parsers/PascalABCParserNewSaushkin/ABCPascal.y b/Parsers/PascalABCParserNewSaushkin/ABCPascal.y index 5f1e2389b..953b29d1e 100644 --- a/Parsers/PascalABCParserNewSaushkin/ABCPascal.y +++ b/Parsers/PascalABCParserNewSaushkin/ABCPascal.y @@ -2125,7 +2125,7 @@ property_specifiers } else // расширенные свойства { - var id = NewId("#GetGen"); + var id = NewId("#GetGen", @2); procedure_definition pr = null; if (!parsertools.build_tree_for_formatter) pr = CreateAndAddToClassReadFunc($2, id, @2); @@ -2146,7 +2146,7 @@ property_specifiers } else // расширенные свойства { - var id = NewId("#SetGen"); + var id = NewId("#SetGen", @2); procedure_definition pr = null; if (!parsertools.build_tree_for_formatter) pr = CreateAndAddToClassWriteProc($2 as statement,id,@2); @@ -2169,7 +2169,7 @@ write_property_specifiers } else { - var id = NewId("#SetGen"); + var id = NewId("#SetGen", @2); procedure_definition pr = null; if (!parsertools.build_tree_for_formatter) pr = CreateAndAddToClassWriteProc($2 as statement,id,@2); @@ -2188,7 +2188,7 @@ read_property_specifiers } else { - var id = NewId("#GetGen"); + var id = NewId("#GetGen", @2); procedure_definition pr = null; if (!parsertools.build_tree_for_formatter) pr = CreateAndAddToClassReadFunc($2,id,@2); diff --git a/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs b/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs index 15484c060..e35530dc6 100644 --- a/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs +++ b/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs @@ -1,9 +1,9 @@ // (see accompanying GPPGcopyright.rtf) // GPPG version 1.3.6 -// Machine: IVAN-PC -// DateTime: 23.09.2018 13:03:25 -// UserName: Ivan +// Machine: DESKTOP-A6LT9RI +// DateTime: 23.09.2018 22:34:26 +// UserName: ????????? // Input file // options: no-lines gplex @@ -4324,7 +4324,7 @@ public partial class GPPGParser: ShiftReduceParserx.name).ToList(); var strnames = names.Select(id=>id.name).ToList(); // преобразование idents РІ строки - var tt1 = l.name_expr[0].expr; - var tse = convert_strong(tt1); + /*var tt1 = l.name_expr[0].expr; + var tse = convert_strong(tt1);*/ var semantic_types = l.name_expr.Select(x => convert_strong(x.expr).type).ToList(); var types = semantic_types.Select(x => SyntaxTreeBuilder.BuildSemanticType(x)).ToList(); diff --git a/bin/PascalABCNET.chm b/bin/PascalABCNET.chm index cc197950b..2d13d9bbf 100644 Binary files a/bin/PascalABCNET.chm and b/bin/PascalABCNET.chm differ