This commit is contained in:
miks1965 2018-11-03 11:02:34 +03:00
parent d5f268e496
commit c7f77db426
10 changed files with 43 additions and 9 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 = "1848";
public const string Revision = "1851";
public const string MainVersion = Major + "." + Minor;
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;

View file

@ -1,4 +1,4 @@
%MINOR%=4
%REVISION%=1848
%COREVERSION%=2
%REVISION%=1851
%MINOR%=4
%MAJOR%=3

View file

@ -1 +1 @@
!define VERSION '3.4.2.1848'
!define VERSION '3.4.2.1851'

View file

@ -1698,6 +1698,7 @@ namespace PascalABCCompiler.SyntaxTree
_simple_property.parameter_list = _read_node() as property_parameter_list;
_simple_property.attr = (definition_attribute)br.ReadByte();
_simple_property.virt_over_none_attr = (proc_attribute)br.ReadByte();
_simple_property.is_auto = br.ReadBoolean();
}

View file

@ -2221,6 +2221,7 @@ namespace PascalABCCompiler.SyntaxTree
}
bw.Write((byte)_simple_property.attr);
bw.Write((byte)_simple_property.virt_over_none_attr);
bw.Write(_simple_property.is_auto);
}

View file

@ -16294,7 +16294,7 @@ namespace PascalABCCompiler.SyntaxTree
///<summary>
///Конструктор с параметрами.
///</summary>
public simple_property(ident _property_name,type_definition _property_type,expression _index_expression,property_accessors _accessors,property_array_default _array_default,property_parameter_list _parameter_list,definition_attribute _attr,proc_attribute _virt_over_none_attr)
public simple_property(ident _property_name,type_definition _property_type,expression _index_expression,property_accessors _accessors,property_array_default _array_default,property_parameter_list _parameter_list,definition_attribute _attr,proc_attribute _virt_over_none_attr,bool _is_auto)
{
this._property_name=_property_name;
this._property_type=_property_type;
@ -16304,13 +16304,14 @@ namespace PascalABCCompiler.SyntaxTree
this._parameter_list=_parameter_list;
this._attr=_attr;
this._virt_over_none_attr=_virt_over_none_attr;
this._is_auto=_is_auto;
FillParentsInDirectChilds();
}
///<summary>
///Конструктор с параметрами.
///</summary>
public simple_property(ident _property_name,type_definition _property_type,expression _index_expression,property_accessors _accessors,property_array_default _array_default,property_parameter_list _parameter_list,definition_attribute _attr,proc_attribute _virt_over_none_attr,SourceContext sc)
public simple_property(ident _property_name,type_definition _property_type,expression _index_expression,property_accessors _accessors,property_array_default _array_default,property_parameter_list _parameter_list,definition_attribute _attr,proc_attribute _virt_over_none_attr,bool _is_auto,SourceContext sc)
{
this._property_name=_property_name;
this._property_type=_property_type;
@ -16320,6 +16321,7 @@ namespace PascalABCCompiler.SyntaxTree
this._parameter_list=_parameter_list;
this._attr=_attr;
this._virt_over_none_attr=_virt_over_none_attr;
this._is_auto=_is_auto;
source_context = sc;
FillParentsInDirectChilds();
}
@ -16331,6 +16333,7 @@ namespace PascalABCCompiler.SyntaxTree
protected property_parameter_list _parameter_list;
protected definition_attribute _attr;
protected proc_attribute _virt_over_none_attr;
protected bool _is_auto;
///<summary>
///
@ -16464,6 +16467,21 @@ namespace PascalABCCompiler.SyntaxTree
}
}
///<summary>
///
///</summary>
public bool is_auto
{
get
{
return _is_auto;
}
set
{
_is_auto=value;
}
}
/// <summary> Создает копию узла </summary>
public override syntax_tree_node Clone()
@ -16509,6 +16527,7 @@ namespace PascalABCCompiler.SyntaxTree
}
copy.attr = attr;
copy.virt_over_none_attr = virt_over_none_attr;
copy.is_auto = is_auto;
return copy;
}
@ -16675,7 +16694,7 @@ namespace PascalABCCompiler.SyntaxTree
///<summary>
///Конструктор с параметрами.
///</summary>
public index_property(ident _property_name,type_definition _property_type,expression _index_expression,property_accessors _accessors,property_array_default _array_default,property_parameter_list _parameter_list,definition_attribute _attr,proc_attribute _virt_over_none_attr,formal_parameters _property_parametres,default_indexer_property_node _is_default)
public index_property(ident _property_name,type_definition _property_type,expression _index_expression,property_accessors _accessors,property_array_default _array_default,property_parameter_list _parameter_list,definition_attribute _attr,proc_attribute _virt_over_none_attr,bool _is_auto,formal_parameters _property_parametres,default_indexer_property_node _is_default)
{
this._property_name=_property_name;
this._property_type=_property_type;
@ -16685,6 +16704,7 @@ namespace PascalABCCompiler.SyntaxTree
this._parameter_list=_parameter_list;
this._attr=_attr;
this._virt_over_none_attr=_virt_over_none_attr;
this._is_auto=_is_auto;
this._property_parametres=_property_parametres;
this._is_default=_is_default;
FillParentsInDirectChilds();
@ -16693,7 +16713,7 @@ namespace PascalABCCompiler.SyntaxTree
///<summary>
///Конструктор с параметрами.
///</summary>
public index_property(ident _property_name,type_definition _property_type,expression _index_expression,property_accessors _accessors,property_array_default _array_default,property_parameter_list _parameter_list,definition_attribute _attr,proc_attribute _virt_over_none_attr,formal_parameters _property_parametres,default_indexer_property_node _is_default,SourceContext sc)
public index_property(ident _property_name,type_definition _property_type,expression _index_expression,property_accessors _accessors,property_array_default _array_default,property_parameter_list _parameter_list,definition_attribute _attr,proc_attribute _virt_over_none_attr,bool _is_auto,formal_parameters _property_parametres,default_indexer_property_node _is_default,SourceContext sc)
{
this._property_name=_property_name;
this._property_type=_property_type;
@ -16703,6 +16723,7 @@ namespace PascalABCCompiler.SyntaxTree
this._parameter_list=_parameter_list;
this._attr=_attr;
this._virt_over_none_attr=_virt_over_none_attr;
this._is_auto=_is_auto;
this._property_parametres=_property_parametres;
this._is_default=_is_default;
source_context = sc;
@ -16790,6 +16811,7 @@ namespace PascalABCCompiler.SyntaxTree
}
copy.attr = attr;
copy.virt_over_none_attr = virt_over_none_attr;
copy.is_auto = is_auto;
if (property_parametres != null)
{
copy.property_parametres = (formal_parameters)property_parametres.Clone();

View file

@ -1073,7 +1073,7 @@ namespace PascalABCCompiler.SyntaxTree
public partial class simple_property
{
public simple_property(ident name, type_definition type, property_accessors accessors, SourceContext sc = null)
: this(name, type, null, accessors, null, null, definition_attribute.None,proc_attribute.attr_none,sc)
: this(name, type, null, accessors, null, null, definition_attribute.None,proc_attribute.attr_none,false,sc)
{ }
}

View file

@ -1021,6 +1021,7 @@
<SyntaxField Name="parameter_list" SyntaxType="property_parameter_list" />
<ExtendedField Name="attr" Type="definition_attribute" CreateVariable="false" DeleteVariable="false" />
<ExtendedField Name="virt_over_none_attr" Type="proc_attribute" CreateVariable="false" DeleteVariable="false" />
<ExtendedField Name="is_auto" Type="bool" CreateVariable="false" DeleteVariable="false" />
</Fields>
<Methods />
<Tags>
@ -4228,6 +4229,7 @@
<HelpData Key="simple_property.array_default" Value="" />
<HelpData Key="simple_property.attr" Value="" />
<HelpData Key="simple_property.index_expression" Value="" />
<HelpData Key="simple_property.is_auto" Value="" />
<HelpData Key="simple_property.parameter_list" Value="" />
<HelpData Key="simple_property.property_name" Value="" />
<HelpData Key="simple_property.property_type" Value="" />

View file

@ -0,0 +1,7 @@
function MyReadInteger := 1;
begin
var s: Set of Integer;
Include(s, MyReadInteger);
Assert(s=[1]);
end.

View file

@ -6473,6 +6473,7 @@ namespace PascalABCCompiler.TreeConverter
{
expression_node param0 = convert_strong(_method_call.parameters.expressions[0]);
expression_node param1 = convert_strong(_method_call.parameters.expressions[1]);
param1 = convert_if_typed_expression_to_function_call(param1);
expressions_list args = new expressions_list();
args.AddElement(param0);
args.AddElement(param1);