diff --git a/SyntaxTree/tree/HierarchyVisitor.cs b/SyntaxTree/tree/HierarchyVisitor.cs index e36aa21c4..114c95f19 100644 --- a/SyntaxTree/tree/HierarchyVisitor.cs +++ b/SyntaxTree/tree/HierarchyVisitor.cs @@ -3606,7 +3606,6 @@ namespace PascalABCCompiler.SyntaxTree { DefaultVisit(_yield_unknown_foreach_type); pre_do_visit(_yield_unknown_foreach_type); - visit(yield_unknown_foreach_type.unknown_foreach); post_do_visit(_yield_unknown_foreach_type); } @@ -3614,7 +3613,6 @@ namespace PascalABCCompiler.SyntaxTree { DefaultVisit(_yield_unknown_foreach_type_ident); pre_do_visit(_yield_unknown_foreach_type_ident); - visit(yield_unknown_foreach_type_ident.unknown_foreach); post_do_visit(_yield_unknown_foreach_type_ident); } } diff --git a/SyntaxTree/tree/SyntaxTreeStreamReader.cs b/SyntaxTree/tree/SyntaxTreeStreamReader.cs index efc0d0a52..b6aab7323 100644 --- a/SyntaxTree/tree/SyntaxTreeStreamReader.cs +++ b/SyntaxTree/tree/SyntaxTreeStreamReader.cs @@ -3832,7 +3832,6 @@ namespace PascalABCCompiler.SyntaxTree public void read_yield_unknown_foreach_type(yield_unknown_foreach_type _yield_unknown_foreach_type) { read_type_definition(_yield_unknown_foreach_type); - _yield_unknown_foreach_type.unknown_foreach = _read_node() as foreach_stmt; } @@ -3844,7 +3843,6 @@ namespace PascalABCCompiler.SyntaxTree public void read_yield_unknown_foreach_type_ident(yield_unknown_foreach_type_ident _yield_unknown_foreach_type_ident) { read_ident(_yield_unknown_foreach_type_ident); - _yield_unknown_foreach_type_ident.unknown_foreach = _read_node() as foreach_stmt; } } diff --git a/SyntaxTree/tree/SyntaxTreeStreamWriter.cs b/SyntaxTree/tree/SyntaxTreeStreamWriter.cs index 4097e091a..6da79e841 100644 --- a/SyntaxTree/tree/SyntaxTreeStreamWriter.cs +++ b/SyntaxTree/tree/SyntaxTreeStreamWriter.cs @@ -5998,15 +5998,6 @@ namespace PascalABCCompiler.SyntaxTree public void write_yield_unknown_foreach_type(yield_unknown_foreach_type _yield_unknown_foreach_type) { write_type_definition(_yield_unknown_foreach_type); - if (_yield_unknown_foreach_type.unknown_foreach == null) - { - bw.Write((byte)0); - } - else - { - bw.Write((byte)1); - _yield_unknown_foreach_type.unknown_foreach.visit(this); - } } @@ -6019,15 +6010,6 @@ namespace PascalABCCompiler.SyntaxTree public void write_yield_unknown_foreach_type_ident(yield_unknown_foreach_type_ident _yield_unknown_foreach_type_ident) { write_ident(_yield_unknown_foreach_type_ident); - if (_yield_unknown_foreach_type_ident.unknown_foreach == null) - { - bw.Write((byte)0); - } - else - { - bw.Write((byte)1); - _yield_unknown_foreach_type_ident.unknown_foreach.visit(this); - } } } diff --git a/SyntaxTree/tree/Tree.cs b/SyntaxTree/tree/Tree.cs index 722fc06bf..ec283d662 100644 --- a/SyntaxTree/tree/Tree.cs +++ b/SyntaxTree/tree/Tree.cs @@ -31941,60 +31941,24 @@ namespace PascalABCCompiler.SyntaxTree } - /// - ///Конструктор с параметрами. - /// - public yield_unknown_foreach_type(foreach_stmt _unknown_foreach) - { - this._unknown_foreach=_unknown_foreach; - } /// ///Конструктор с параметрами. /// - public yield_unknown_foreach_type(foreach_stmt _unknown_foreach,SourceContext sc) - { - this._unknown_foreach=_unknown_foreach; - source_context = sc; - } - - /// - ///Конструктор с параметрами. - /// - public yield_unknown_foreach_type(type_definition_attr_list _attr_list,foreach_stmt _unknown_foreach) + public yield_unknown_foreach_type(type_definition_attr_list _attr_list) { this._attr_list=_attr_list; - this._unknown_foreach=_unknown_foreach; } /// ///Конструктор с параметрами. /// - public yield_unknown_foreach_type(type_definition_attr_list _attr_list,foreach_stmt _unknown_foreach,SourceContext sc) + public yield_unknown_foreach_type(type_definition_attr_list _attr_list,SourceContext sc) { this._attr_list=_attr_list; - this._unknown_foreach=_unknown_foreach; source_context = sc; } - protected foreach_stmt _unknown_foreach; - - /// - /// - /// - public foreach_stmt unknown_foreach - { - get - { - return _unknown_foreach; - } - set - { - _unknown_foreach=value; - } - } - - /// ///Свойство для получения количества всех подузлов без элементов поля типа List /// @@ -32002,7 +31966,7 @@ namespace PascalABCCompiler.SyntaxTree { get { - return 2; + return 1; } } /// @@ -32012,7 +31976,7 @@ namespace PascalABCCompiler.SyntaxTree { get { - return 2; + return 1; } } /// @@ -32028,8 +31992,6 @@ namespace PascalABCCompiler.SyntaxTree { case 0: return attr_list; - case 1: - return unknown_foreach; } return null; } @@ -32042,9 +32004,6 @@ namespace PascalABCCompiler.SyntaxTree case 0: attr_list = (type_definition_attr_list)value; break; - case 1: - unknown_foreach = (foreach_stmt)value; - break; } } } @@ -32076,60 +32035,24 @@ namespace PascalABCCompiler.SyntaxTree } - /// - ///Конструктор с параметрами. - /// - public yield_unknown_foreach_type_ident(foreach_stmt _unknown_foreach) - { - this._unknown_foreach=_unknown_foreach; - } /// ///Конструктор с параметрами. /// - public yield_unknown_foreach_type_ident(foreach_stmt _unknown_foreach,SourceContext sc) - { - this._unknown_foreach=_unknown_foreach; - source_context = sc; - } - - /// - ///Конструктор с параметрами. - /// - public yield_unknown_foreach_type_ident(string _name,foreach_stmt _unknown_foreach) + public yield_unknown_foreach_type_ident(string _name) { this._name=_name; - this._unknown_foreach=_unknown_foreach; } /// ///Конструктор с параметрами. /// - public yield_unknown_foreach_type_ident(string _name,foreach_stmt _unknown_foreach,SourceContext sc) + public yield_unknown_foreach_type_ident(string _name,SourceContext sc) { this._name=_name; - this._unknown_foreach=_unknown_foreach; source_context = sc; } - protected foreach_stmt _unknown_foreach; - - /// - /// - /// - public foreach_stmt unknown_foreach - { - get - { - return _unknown_foreach; - } - set - { - _unknown_foreach=value; - } - } - - /// ///Свойство для получения количества всех подузлов без элементов поля типа List /// @@ -32137,7 +32060,7 @@ namespace PascalABCCompiler.SyntaxTree { get { - return 1; + return 0; } } /// @@ -32147,7 +32070,7 @@ namespace PascalABCCompiler.SyntaxTree { get { - return 1; + return 0; } } /// @@ -32159,23 +32082,12 @@ namespace PascalABCCompiler.SyntaxTree { if(subnodes_count == 0 || ind < 0 || ind > subnodes_count-1) throw new IndexOutOfRangeException(); - switch(ind) - { - case 0: - return unknown_foreach; - } return null; } set { if(subnodes_count == 0 || ind < 0 || ind > subnodes_count-1) throw new IndexOutOfRangeException(); - switch(ind) - { - case 0: - unknown_foreach = (foreach_stmt)value; - break; - } } } /// diff --git a/SyntaxTree/tree/TreeHelper.cs b/SyntaxTree/tree/TreeHelper.cs index b1ef5d83e..38d5d804f 100644 --- a/SyntaxTree/tree/TreeHelper.cs +++ b/SyntaxTree/tree/TreeHelper.cs @@ -1494,6 +1494,63 @@ namespace PascalABCCompiler.SyntaxTree } } + public partial class yield_unknown_foreach_type : type_definition + { + protected foreach_stmt _unknown_foreach; + + public foreach_stmt unknown_foreach + { + get { return _unknown_foreach; } + set { _unknown_foreach = value; } + } + + /// + ///Конструктор с параметрами. + /// + public yield_unknown_foreach_type(foreach_stmt _unknown_foreach) + { + this._unknown_foreach = _unknown_foreach; + } + + /// + ///Конструктор с параметрами. + /// + public yield_unknown_foreach_type(foreach_stmt _unknown_foreach, SourceContext sc) + { + this._unknown_foreach = _unknown_foreach; + source_context = sc; + } + + } + + public partial class yield_unknown_foreach_type_ident : ident + { + protected foreach_stmt _unknown_foreach; + + public foreach_stmt unknown_foreach + { + get { return _unknown_foreach; } + set { _unknown_foreach = value; } + } + + /// + ///Конструктор с параметрами. + /// + public yield_unknown_foreach_type_ident(foreach_stmt _unknown_foreach) + { + this._unknown_foreach = _unknown_foreach; + } + + /// + ///Конструктор с параметрами. + /// + public yield_unknown_foreach_type_ident(foreach_stmt _unknown_foreach, SourceContext sc) + { + this._unknown_foreach = _unknown_foreach; + source_context = sc; + } + } + // end frninja diff --git a/SyntaxTree/tree/tree.nin b/SyntaxTree/tree/tree.nin index 67b886db7..9215d8ecd 100644 Binary files a/SyntaxTree/tree/tree.nin and b/SyntaxTree/tree/tree.nin differ