fix #2554
This commit is contained in:
parent
5c4f818994
commit
e6aa9e838f
|
|
@ -15,7 +15,7 @@ internal static class RevisionClass
|
|||
public const string Major = "3";
|
||||
public const string Minor = "8";
|
||||
public const string Build = "2";
|
||||
public const string Revision = "3044";
|
||||
public const string Revision = "3045";
|
||||
|
||||
public const string MainVersion = Major + "." + Minor;
|
||||
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
%COREVERSION%=2
|
||||
%REVISION%=3044
|
||||
%MINOR%=8
|
||||
%REVISION%=3045
|
||||
%COREVERSION%=2
|
||||
%MAJOR%=3
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// This CSharp output file generated by Gardens Point LEX
|
||||
// Version: 1.1.3.301
|
||||
// Machine: DESKTOP-G8V08V4
|
||||
// DateTime: 25.12.2021 20:53:32
|
||||
// DateTime: 28.12.2021 18:50:18
|
||||
// UserName: ?????????
|
||||
// GPLEX input file <ABCPascal.lex>
|
||||
// GPLEX frame file <embedded resource>
|
||||
|
|
|
|||
|
|
@ -2806,7 +2806,7 @@ assignment
|
|||
($4 as syntax_tree_node).source_context = LexLocation.MergeAll(@1,@2,@3,@4,@5);
|
||||
$$ = new assign_tuple($4 as addressed_value_list, $7, @$);
|
||||
}
|
||||
| variable tkQuestionSquareOpen format_expr tkSquareClose assign_operator expr
|
||||
/* | variable tkQuestionSquareOpen format_expr tkSquareClose assign_operator expr
|
||||
{
|
||||
var fe = $3 as format_expr;
|
||||
if (!parsertools.build_tree_for_formatter)
|
||||
|
|
@ -2818,7 +2818,7 @@ assignment
|
|||
}
|
||||
var left = new slice_expr_question($1 as addressed_value,fe.expr,fe.format1,fe.format2,@$);
|
||||
$$ = new assign(left, $6, $5.type, @$);
|
||||
}
|
||||
}*/
|
||||
;
|
||||
|
||||
variable_list
|
||||
|
|
|
|||
|
|
@ -245,7 +245,7 @@ namespace PascalABCSavParser
|
|||
|
||||
public void AddError(string message, LexLocation loc)
|
||||
{
|
||||
errors.Add(new SyntaxError(message, CurrentFileName, loc, null));
|
||||
errors.Add(new SyntaxError(message, CurrentFileName, loc, null));
|
||||
}
|
||||
|
||||
public void AddErrorFromResource(string res, PascalABCCompiler.SyntaxTree.SourceContext loc, params string[] pars)
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -15,11 +15,6 @@
|
|||
<name value="record_const" />
|
||||
<name value="const_term" />
|
||||
<name value="const_set" />
|
||||
<name value="allowable_expr_as_stmt" />
|
||||
<name value="expr_l1" />
|
||||
<name value="typeof_expr" />
|
||||
<name value="question_expr" />
|
||||
<name value="new_expr" />
|
||||
<name value="relop_expr" />
|
||||
<name value="as_is_expr" />
|
||||
<name value="term" />
|
||||
|
|
@ -28,8 +23,6 @@
|
|||
<name value="one_literal" />
|
||||
<name value="literal" />
|
||||
<name value="literal_list" />
|
||||
<name value="expr" />
|
||||
<name value="expr_with_func_decl_lambda" />
|
||||
</tag>
|
||||
<tag value="Списки">
|
||||
<name value="decl_sect_list" />
|
||||
|
|
@ -69,18 +62,11 @@
|
|||
<name value="fp_list" />
|
||||
<name value="fp_sect_list" />
|
||||
<name value="param_name_list" />
|
||||
<name value="stmt_list" />
|
||||
<name value="case_list" />
|
||||
<name value="case_label_list" />
|
||||
<name value="exception_handler_list" />
|
||||
<name value="expr_list" />
|
||||
<name value="optional_expr_list_with_bracket" />
|
||||
<name value="optional_expr_list" />
|
||||
<name value="elem_list" />
|
||||
<name value="elem_list1" />
|
||||
<name value="literal_list" />
|
||||
<name value="full_lambda_fp_list" />
|
||||
<name value="list_fields_in_unnamed_object" />
|
||||
</tag>
|
||||
<tag value="Элементы списка">
|
||||
<name value="const_elem" />
|
||||
|
|
@ -100,9 +86,6 @@
|
|||
<name value="parameter_decl" />
|
||||
<name value="fp_sect" />
|
||||
<name value="param_name" />
|
||||
<name value="case_item" />
|
||||
<name value="case_label" />
|
||||
<name value="exception_handler" />
|
||||
<name value="elem" />
|
||||
<name value="lambda_simple_fp_sect" />
|
||||
<name value="const_field" />
|
||||
|
|
@ -133,7 +116,6 @@
|
|||
<name value="const_simple_expr" />
|
||||
<name value="as_is_constexpr" />
|
||||
<name value="const_variable_2" />
|
||||
<name value="optional_array_initializer" />
|
||||
<name value="literal_or_number" />
|
||||
<name value="one_literal" />
|
||||
<name value="literal" />
|
||||
|
|
@ -185,20 +167,6 @@
|
|||
<name value="unlabelled_stmt" />
|
||||
<name value="var_stmt" />
|
||||
<name value="assignment" />
|
||||
<name value="goto_stmt" />
|
||||
<name value="compound_stmt" />
|
||||
<name value="if_stmt" />
|
||||
<name value="case_stmt" />
|
||||
<name value="repeat_stmt" />
|
||||
<name value="while_stmt" />
|
||||
<name value="lock_stmt" />
|
||||
<name value="foreach_stmt" />
|
||||
<name value="for_stmt" />
|
||||
<name value="with_stmt" />
|
||||
<name value="try_stmt" />
|
||||
<name value="raise_stmt" />
|
||||
<name value="expr_as_stmt" />
|
||||
<name value="allowable_expr_as_stmt" />
|
||||
<name value="lambda_procedure_body" />
|
||||
</tag>
|
||||
<tag value="Имена">
|
||||
|
|
@ -216,9 +184,6 @@
|
|||
<name value="func_name_with_template_args" />
|
||||
<name value="func_name_ident" />
|
||||
<name value="external_directive_ident" />
|
||||
<name value="exception_identifier" />
|
||||
<name value="exception_class_type_identifier" />
|
||||
<name value="exception_variable" />
|
||||
<name value="identifier" />
|
||||
<name value="identifier_or_keyword" />
|
||||
<name value="identifier_keyword_operatorname" />
|
||||
|
|
@ -253,7 +218,6 @@
|
|||
<name value="constr_destr_header" />
|
||||
<name value="proc_header" />
|
||||
<name value="func_header" />
|
||||
<name value="try_handler" />
|
||||
</tag>
|
||||
<tag value="Типы">
|
||||
<name value="type_decl_type" />
|
||||
|
|
@ -285,11 +249,7 @@
|
|||
<name value="proc_func_decl_noclass" />
|
||||
<name value="inclass_proc_func_decl_noclass" />
|
||||
</tag>
|
||||
<tag value="new_expr">
|
||||
<name value="new_expr" />
|
||||
<name value="field_in_unnamed_object" />
|
||||
<name value="list_fields_in_unnamed_object" />
|
||||
</tag>
|
||||
<tag value="new_expr" />
|
||||
<tag value="TemplateTypeName">
|
||||
<name value="type_decl_identifier" />
|
||||
<name value="template_identifier_with_equal" />
|
||||
|
|
@ -298,7 +258,6 @@
|
|||
<tag value="FuncName">
|
||||
<name value="func_name" />
|
||||
<name value="simple_type_identifier" />
|
||||
<name value="simple_or_template_type_reference" />
|
||||
</tag>
|
||||
<tag value="Проблема с атрибутами">
|
||||
<name value="type_decl_sect" />
|
||||
|
|
|
|||
|
|
@ -352,5 +352,6 @@ script=
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
3.8.2.3044
|
||||
3.8.2.3045
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
!define VERSION '3.8.2.3044'
|
||||
!define VERSION '3.8.2.3045'
|
||||
|
|
|
|||
|
|
@ -12992,7 +12992,7 @@ function ToIntegers(Self: string; N: integer): array of integer; extensionmethod
|
|||
begin
|
||||
// SSM Скорость работы на 30% выше чем у ToIntegers без параметров
|
||||
Result := new integer[N];
|
||||
var from := 1;
|
||||
var from := 0;
|
||||
for var i:=0 to N-1 do
|
||||
Result[i] := Self.ReadInteger(from);
|
||||
end;
|
||||
|
|
|
|||
6
TestSuite/qsliceSum.pas
Normal file
6
TestSuite/qsliceSum.pas
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
begin
|
||||
var a := |1, 2, 4|;
|
||||
var s := a?[:2].Sum;
|
||||
Assert(s = 3);
|
||||
Assert(a?[:2].Sum = 3);
|
||||
end.
|
||||
Loading…
Reference in a new issue