This commit is contained in:
miks1965 2018-10-12 07:15:21 +03:00
parent ed0a1b2407
commit e361705095
10 changed files with 1217 additions and 1183 deletions

View file

@ -15,7 +15,7 @@ internal static class RevisionClass
public const string Major = "3";
public const string Minor = "4";
public const string Build = "2";
public const string Revision = "1830";
public const string Revision = "1837";
public const string MainVersion = Major + "." + Minor;
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;

View file

@ -1,4 +1,4 @@
%MINOR%=4
%REVISION%=1830
%COREVERSION%=2
%REVISION%=1837
%MINOR%=4
%MAJOR%=3

View file

@ -2,7 +2,7 @@
// This CSharp output file generated by Gardens Point LEX
// Version: 1.1.3.301
// Machine: DESKTOP-A6LT9RI
// DateTime: 11.10.2018 17:14:45
// DateTime: 11.10.2018 17:41:30
// UserName: ?????????
// GPLEX input file <ABCPascal.lex>
// GPLEX frame file <embedded resource>

View file

@ -3642,7 +3642,7 @@ default_expr
;
tuple
: tkRoundOpen expr_l1 tkComma expr_l1_list lambda_type_ref tkRoundClose // lambda_type_ref optional_full_lambda_fp_list íóæíî îñòàâèòü ÷òîáû íå áûëî êîíôëèêòîâ ñ ãðàììàòèêîé ëÿìáä
: tkRoundOpen expr_l1 tkComma expr_l1_list lambda_type_ref optional_full_lambda_fp_list tkRoundClose // lambda_type_ref optional_full_lambda_fp_list íóæíî îñòàâèòü ÷òîáû íå áûëî êîíôëèêòîâ ñ ãðàììàòèêîé ëÿìáä
{
/*if ($5 != null)
parsertools.AddErrorFromResource("BAD_TUPLE",@5);

File diff suppressed because it is too large Load diff

View file

@ -227,6 +227,8 @@ script=

View file

@ -1 +1 @@
!define VERSION '3.4.2.1830'
!define VERSION '3.4.2.1837'

View file

@ -8395,6 +8395,12 @@ begin
Result := Self;
end;
function Print(Self: int64): int64; extensionmethod;
begin
PABCSystem.Print(Self);
Result := Self;
end;
function Print(Self: real): real; extensionmethod;
begin
PABCSystem.Print(Self);
@ -8425,6 +8431,12 @@ begin
Result := Self;
end;
function Println(Self: int64): int64; extensionmethod;
begin
PABCSystem.Println(Self);
Result := Self;
end;
function Println(Self: real): real; extensionmethod;
begin
PABCSystem.Println(Self);
@ -8450,7 +8462,6 @@ begin
end;
//------------------------------------------------------------------------------
//>> Методы расширения последовательностей # Extension methods for sequence of T
//------------------------------------------------------------------------------

View file

@ -0,0 +1,19 @@
procedure Invoke(p: procedure);
begin end;
type
WH = class
Width,Height: real;
end;
C = class
gr: WH;
end;
B = class(C)
property Width: real
write Invoke(procedure->begin gr.Width := value end);
end;
begin
Assert(1=1)
end.

View file

@ -177,7 +177,8 @@ namespace TreeConverter.LambdaExpressions.Closure
si.sym_info.semantic_node_type == semantic_node_type.class_field
;
//trjuk, chtoby ne perelopachivat ves kod. zamenjaem ident na self.ident
if ((si.sym_info.semantic_node_type == semantic_node_type.class_field || si.sym_info.semantic_node_type == semantic_node_type.common_event || si.sym_info.semantic_node_type == semantic_node_type.common_property_node) && InLambdaContext)
// Использую этот трюк для нестатических полей предков - они не захватываются из-за плохого алгоритма захвата
if ((si.sym_info.semantic_node_type == semantic_node_type.class_field && !(si.sym_info as class_field).IsStatic || si.sym_info.semantic_node_type == semantic_node_type.common_event || si.sym_info.semantic_node_type == semantic_node_type.common_property_node) && InLambdaContext)
{
dot_node dn = new dot_node(new ident("self", id.source_context), new ident(id.name, id.source_context), id.source_context);
bool ok = true;