Author: raja
Date: 2006-07-28 07:32:37 -0400 (Fri, 28 Jul 2006)
New Revision: 63072
Modified:
trunk/mcs/gmcs/ChangeLog
trunk/mcs/gmcs/class.cs
trunk/mcs/gmcs/cs-parser.jay
trunk/mcs/gmcs/roottypes.cs
trunk/mcs/mcs/ChangeLog
trunk/mcs/mcs/class.cs
trunk/mcs/mcs/cs-parser.jay
trunk/mcs/mcs/roottypes.cs
Log:
In mcs and gmcs:
* class.cs (TypeContainer.AddMemberType): Rename from
AddToTypeContainer.
(TypeContainer.AddMember): Rename from AddToMemberContainer.
(AddTypeContainer): New. Combine AddCStruct and
AddInterface.
(AddPartial): Update. Add 'is_partial' argument.
* roottypes.cs: Update to changes.
* cs-parser.jay (push_current_class): New helper for handling
current_container and current_class.
(struct_declaration, interface_declaration, class_declaration):
Use it.
Modified: trunk/mcs/gmcs/ChangeLog
trunk/mcs/gmcs/ChangeLog2006-07-28 08:43:39 UTC (rev 63071)
trunk/mcs/gmcs/ChangeLog2006-07-28 11:32:37 UTC (rev 63072)
@@ -1,3 +1,17 @@
+2006-07-28 Raja R Harinath <rharinath (AT) novell (DOT) com>
+
+* class.cs (TypeContainer.AddMemberType): Rename from
+AddToTypeContainer.
+(TypeContainer.AddMember): Rename from AddToMemberContainer.
+(AddTypeContainer): New. Combine AddCStruct and
+AddInterface.
+(AddPartial): Update. Add 'is_partial' argument.
+* roottypes.cs: Update to changes.
+* cs-parser.jay (push_current_class): New helper for handling
+current_container and current_class.
+(struct_declaration, interface_declaration, class_declaration):
+Use it.
+
2006-07-26 Raja R Harinath <rharinath (AT) novell (DOT) com>
* roottypes.cs: Rename from tree.cs.
Modified: trunk/mcs/gmcs/class.cs
trunk/mcs/gmcs/class.cs2006-07-28 08:43:39 UTC (rev 63071)
trunk/mcs/gmcs/class.cs2006-07-28 11:32:37 UTC (rev 63072)
@@ -491,19 +491,19 @@
this.PartialContainer = this;
}
-public bool AddToMemberContainer (MemberCore symbol)
+public bool AddMember (MemberCore symbol)
{
return AddToContainer (symbol, symbol.MemberName.MethodName);
}
-protected virtual bool AddToTypeContainer (DeclSpace ds)
+protected virtual bool AddMemberType (DeclSpace ds)
{
return AddToContainer (ds, ds.Basename);
}
public void AddConstant (Const constant)
{
-if (!AddToMemberContainer (constant))
+if (!AddMember (constant))
return;
if (constants == null)
@@ -514,7 +514,7 @@
public void AddEnum (Mono.CSharp.Enum e)
{
-if (!AddToTypeContainer (e))
+if (!AddMemberType (e))
return;
if (enums == null)
@@ -522,36 +522,36 @@
enums.Add (e);
}
-
-public bool AddCStruct (TypeContainer c)
+
+public TypeContainer AddTypeContainer (TypeContainer tc, bool is_interface)
{
-if (!AddToTypeContainer (c))
-return false;
+if (!AddMemberType (tc))
+return tc;
-if (types == null)
-types = new ArrayList (2);
-
-types.Add (c);
-return true;
+if (is_interface) {
+if (interfaces == null)
+interfaces = new MemberCoreArrayList ();
+interfaces.Add (tc);
+} else {
+if (types == null)
+types = new ArrayList (2);
+types.Add (tc);
+}
+return tc;
}
-public virtual TypeContainer AddPartial (TypeContainer nextPart)
+public virtual TypeContainer AddPartial (TypeContainer nextPart, bool is_interface)
{
-return AddPartial (nextPart, nextPart.Basename);
+return AddPartial (nextPart, nextPart.Basename, is_interface);
}
-protected TypeContainer AddPartial (TypeContainer nextPart, string name)
+protected TypeContainer AddPartial (TypeContainer nextPart, string name, bool is_interface)
{
nextPart.ModFlags |= Modifiers.PARTIAL;
TypeContainer tc = defined_names [name] as TypeContainer;
-if (tc == null) {
-if (nextPart is Interface)
-AddInterface (nextPart);
-else
-AddCStruct (nextPart);
-return nextPart;
-}
+if (tc == null)
+return AddTypeContainer (nextPart, is_interface);
if ((tc.ModFlags & Modifiers.PARTIAL) == 0) {
(tc);
@@ -595,7 +595,7 @@
public void AddDelegate (Delegate d)
{
-if (!AddToTypeContainer (d))
+if (!AddMemberType (d))
return;
if (delegates == null)
@@ -606,7 +606,7 @@
public void AddMethod (Method method)
{
-if (!AddToMemberContainer (method))
+if (!AddMember (method))
return;
if (methods == null)
@@ -625,7 +625,7 @@
//
public void AppendMethod (Method method)
{
-if (!AddToMemberContainer (method))
+if (!AddMember (method))
return;
if (methods == null)
@@ -672,22 +672,10 @@
return "`{0}' is already defined. Rename this member or use different parameter types";
}
}
-
-public bool AddInterface (TypeContainer iface)
-{
-if (!AddToTypeContainer (iface))
-return false;
-if (interfaces == null)
-interfaces = new MemberCoreArrayList ();
-
-interfaces.Add (iface);
-return true;
-}
-
public void AddField (FieldMember field)
{
-if (!AddToMemberContainer (field))
+if (!AddMember (field))
return;
if (fields == null)
@@ -715,8 +703,8 @@
public void AddProperty (Property prop)
{
-if (!AddToMemberContainer (prop) ||
-!AddToMemberContainer (prop.Get) || !AddToMemberContainer (prop.Set))
+if (!AddMember (prop) ||
+!AddMember (prop.Get) || !AddMember (prop.Set))
return;
if (properties == null)
@@ -730,14 +718,14 @@
public void AddEvent (Event e)
{
-if (!AddToMemberContainer (e))
+if (!AddMember (e))
return;
if (e is EventProperty) {
-if (!AddToMemberContainer (e.Add))
+if (!AddMember (e.Add))
return;
-if (!AddToMemberContainer (e.Remove))
+if (!AddMember (e.Remove))
return;
}
@@ -763,7 +751,7 @@
public void A ( op)
{
-if (!AddToMemberContainer (op))
+if (!AddMember (op))
return;
if (operators == null)
@@ -7306,8 +7294,8 @@
ShortName = base_IndexerName;
}
-if (! (this) ||
-! (Get) || ! (Set))
+if (!ParentContainer.AddMember (this) ||
+!ParentContainer.AddMember (Get) || !ParentContainer.AddMember (Set))
return false;
if (!CheckBase ())
Modified: trunk/mcs/gmcs/cs-parser.jay
trunk/mcs/gmcs/cs-parser.jay2006-07-28 08:43:39 UTC (rev 63071)
trunk/mcs/gmcs/cs-parser.jay2006-07-28 11:32:37 UTC (rev 63072)
@@ -783,16 +783,9 @@
member_name
{
MemberName name = MakeName ((MemberName) $6);
-current_class = new Struct (
+push_current_class (new Struct (
current_namespace, current_class, name, (int) $2,
-(Attributes) $1);
-
-if ($3 != null) {
-current_container = current_container.AddPartial (current_class);
-} else {
-current_container.AddCStruct (current_class);
-current_container = current_class;
-}
+(Attributes) $1), false, $3);
}
opt_class_base
@@ -1542,16 +1535,9 @@
{
MemberName name = MakeName ((MemberName) $6);
-current_class = new Interface (
+push_current_class (new Interface (
current_namespace, current_class, name, (int) $2,
-(Attributes) $1);
-
-if ($3 != null) {
-current_container = current_container.AddPartial (current_class);
-} else {
-current_container.AddInterface (current_class);
-current_container = current_class;
-}
+(Attributes) $1), true, $3);
}
opt_class_base
@@ -3833,16 +3819,9 @@
MemberName name = MakeName ((MemberName) $6);
int mod_flags = (int) $2;
-current_class = new Class (
+push_current_class (new Class (
current_namespace, current_class, name,
-mod_flags, (Attributes) $1);
-
-if ($3 != null) {
-current_container = current_container.AddPartial (current_class);
-} else {
-current_container.AddCStruct (current_class);
-current_container = current_class;
-}
+mod_flags, (Attributes) $1), false, $3);
}
opt_class_base
@@ -5057,6 +5036,15 @@
}
}
+void push_current_class (TypeContainer tc, bool is_interface, object partial_token)
+{
+if (partial_token != null)
+current_container = current_container.AddPartial (tc, is_interface);
+else
+current_container = (tc, is_interface);
+current_class = tc;
+}
+
TypeContainer pop_current_class ()
{
TypeContainer retval = current_class;
Modified: trunk/mcs/gmcs/roottypes.cs
trunk/mcs/gmcs/roottypes.cs2006-07-28 08:43:39 UTC (rev 63071)
trunk/mcs/gmcs/roottypes.cs2006-07-28 11:32:37 UTC (rev 63072)
@@ -44,7 +44,7 @@
return "";
}
-protected override bool AddToTypeContainer (DeclSpace ds)
+protected override bool AddMemberType (DeclSpace ds)
{
if (!AddToContainer (ds, ds.Name))
return false;
@@ -52,9 +52,9 @@
return true;
}
-public override TypeContainer AddPartial (TypeContainer nextPart)
+public override TypeContainer AddPartial (TypeContainer nextPart, bool is_interface)
{
-return AddPartial (nextPart, nextPart.Name);
+return AddPartial (nextPart, nextPart.Name, is_interface);
}
}
}
Modified: trunk/mcs/mcs/ChangeLog
trunk/mcs/mcs/ChangeLog2006-07-28 08:43:39 UTC (rev 63071)
trunk/mcs/mcs/ChangeLog2006-07-28 11:32:37 UTC (rev 63072)
@@ -1,3 +1,17 @@
+2006-07-28 Raja R Harinath <rharinath (AT) novell (DOT) com>
+
+* class.cs (TypeContainer.AddMemberType): Rename from
+AddToTypeContainer.
+(TypeContainer.AddMember): Rename from AddToMemberContainer.
+(AddTypeContainer): New. Combine AddCStruct and
+AddInterface.
+(AddPartial): Update. Add 'is_partial' argument.
+* roottypes.cs: Update to changes.
+* cs-parser.jay (push_current_class): New helper for handling
+current_container and current_class.
+(struct_declaration, interface_declaration, class_declaration):
+Use it.
+
2006-07-26 Raja R Harinath <rharinath (AT) novell (DOT) com>
* roottypes.cs: Rename from tree.cs.
Modified: trunk/mcs/mcs/class.cs
trunk/mcs/mcs/class.cs2006-07-28 08:43:39 UTC (rev 63071)
trunk/mcs/mcs/class.cs2006-07-28 11:32:37 UTC (rev 63072)
@@ -493,19 +493,19 @@
this.PartialContainer = this;
}
-public bool AddToMemberContainer (MemberCore symbol)
+public bool AddMember (MemberCore symbol)
{
return AddToContainer (symbol, symbol.Name);
}
-protected virtual bool AddToTypeContainer (DeclSpace ds)
+protected virtual bool AddMemberType (DeclSpace ds)
{
return AddToContainer (ds, ds.Basename);
}
public void AddConstant (Const constant)
{
-if (!AddToMemberContainer (constant))
+if (!AddMember (constant))
return;
if (constants == null)
@@ -516,7 +516,7 @@
public void AddEnum (Mono.CSharp.Enum e)
{
-if (!AddToTypeContainer (e))
+if (!AddMemberType (e))
return;
if (enums == null)
@@ -524,36 +524,36 @@
enums.Add (e);
}
-
-public bool AddCStruct (TypeContainer c)
+
+public TypeContainer AddTypeContainer (TypeContainer tc, bool is_interface)
{
-if (!AddToTypeContainer (c))
-return false;
+if (!AddMemberType (tc))
+return tc;
-if (types == null)
-types = new ArrayList (2);
-
-types.Add (c);
-return true;
+if (is_interface) {
+if (interfaces == null)
+interfaces = new MemberCoreArrayList ();
+interfaces.Add (tc);
+} else {
+if (types == null)
+types = new ArrayList (2);
+types.Add (tc);
+}
+return tc;
}
-public virtual TypeContainer AddPartial (TypeContainer nextPart)
+public virtual TypeContainer AddPartial (TypeContainer nextPart, bool is_interface)
{
-return AddPartial (nextPart, nextPart.Basename);
+return AddPartial (nextPart, nextPart.Basename, is_interface);
}
-protected TypeContainer AddPartial (TypeContainer nextPart, string name)
+protected TypeContainer AddPartial (TypeContainer nextPart, string name, bool is_interface)
{
nextPart.ModFlags |= Modifiers.PARTIAL;
TypeContainer tc = defined_names [name] as TypeContainer;
-if (tc == null) {
-if (nextPart is Interface)
-AddInterface (nextPart);
-else
-AddCStruct (nextPart);
-return nextPart;
-}
+if (tc == null)
+return AddTypeContainer (nextPart, is_interface);
if ((tc.ModFlags & Modifiers.PARTIAL) == 0) {
(tc);
@@ -597,7 +597,7 @@
public void AddDelegate (Delegate d)
{
-if (!AddToTypeContainer (d))
+if (!AddMemberType (d))
return;
if (delegates == null)
@@ -608,7 +608,7 @@
public void AddMethod (Method method)
{
-if (!AddToMemberContainer (method))
+if (!AddMember (method))
return;
if (methods == null)
@@ -627,7 +627,7 @@
//
public void AppendMethod (Method method)
{
-if (!AddToMemberContainer (method))
+if (!AddMember (method))
return;
if (methods == null)
@@ -674,22 +674,10 @@
return "`{0}' is already defined. Rename this member or use different parameter types";
}
}
-
-public bool AddInterface (TypeContainer iface)
-{
-if (!AddToTypeContainer (iface))
-return false;
-if (interfaces == null)
-interfaces = new MemberCoreArrayList ();
-
-interfaces.Add (iface);
-return true;
-}
-
public void AddField (FieldMember field)
{
-if (!AddToMemberContainer (field))
+if (!AddMember (field))
return;
if (fields == null)
@@ -717,8 +705,8 @@
public void AddProperty (Property prop)
{
-if (!AddToMemberContainer (prop) ||
-!AddToMemberContainer (prop.Get) || !AddToMemberContainer (prop.Set))
+if (!AddMember (prop) ||
+!AddMember (prop.Get) || !AddMember (prop.Set))
return;
if (properties == null)
@@ -732,14 +720,14 @@
public void AddEvent (Event e)
{
-if (!AddToMemberContainer (e))
+if (!AddMember (e))
return;
if (e is EventProperty) {
-if (!AddToMemberContainer (e.Add))
+if (!AddMember (e.Add))
return;
-if (!AddToMemberContainer (e.Remove))
+if (!AddMember (e.Remove))
return;
}
@@ -765,7 +753,7 @@
public void A ( op)
{
-if (!AddToMemberContainer (op))
+if (!AddMember (op))
return;
if (operators == null)
@@ -6957,8 +6945,8 @@
ShortName = base_IndexerName;
}
-if (! (this) ||
-! (Get) || ! (Set))
+if (!ParentContainer.AddMember (this) ||
+!ParentContainer.AddMember (Get) || !ParentContainer.AddMember (Set))
return false;
if (!CheckBase ())
Modified: trunk/mcs/mcs/cs-parser.jay
trunk/mcs/mcs/cs-parser.jay2006-07-28 08:43:39 UTC (rev 63071)
trunk/mcs/mcs/cs-parser.jay2006-07-28 11:32:37 UTC (rev 63072)
@@ -758,16 +758,10 @@
STRUCT member_name
{
MemberName name = MakeName ((MemberName) $5);
-current_class = new Struct (
+push_current_class (new Struct (
current_namespace, current_class, name, (int) $2,
-(Attributes) $1);
+(Attributes) $1), false, $3);
-if ($3 != null) {
-current_container = current_container.AddPartial (current_class);
-} else {
-current_container.AddCStruct (current_class);
-current_container = current_class;
-}
}
opt_class_base
{
@@ -1467,16 +1461,9 @@
{
MemberName name = MakeName ((MemberName) $5);
-current_class = new Interface (
+push_current_class (new Interface (
current_namespace, current_class, name, (int) $2,
-(Attributes) $1);
-
-if ($3 != null) {
-current_container = current_container.AddPartial (current_class);
-} else {
-current_container.AddInterface (current_class);
-current_container = current_class;
-}
+(Attributes) $1), true, $3);
}
opt_class_base
{
@@ -3508,16 +3495,9 @@
MemberName name = MakeName ((MemberName) $5);
int mod_flags = (int) $2;
-current_class = new Class (
+push_current_class (new Class (
current_namespace, current_class, name,
-mod_flags, (Attributes) $1);
-
-if ($3 != null) {
-current_container = current_container.AddPartial (current_class);
-} else {
-current_container.AddCStruct (current_class);
-current_container = current_class;
-}
+mod_flags, (Attributes) $1), false, $3);
}
opt_class_base
{
@@ -4673,6 +4653,15 @@
}
}
+void push_current_class (TypeContainer tc, bool is_interface, object partial_token)
+{
+if (partial_token != null)
+current_container = current_container.AddPartial (tc, is_interface);
+else
+current_container = (tc, is_interface);
+current_class = tc;
+}
+
TypeContainer pop_current_class ()
{
TypeContainer retval = current_class;
Modified: trunk/mcs/mcs/roottypes.cs
trunk/mcs/mcs/roottypes.cs2006-07-28 08:43:39 UTC (rev 63071)
trunk/mcs/mcs/roottypes.cs2006-07-28 11:32:37 UTC (rev 63072)
@@ -44,7 +44,7 @@
return "";
}
-protected override bool AddToTypeContainer (DeclSpace ds)
+protected override bool AddMemberType (DeclSpace ds)
{
if (!AddToContainer (ds, ds.Name))
return false;
@@ -52,9 +52,9 @@
return true;
}
-public override TypeContainer AddPartial (TypeContainer nextPart)
+public override TypeContainer AddPartial (TypeContainer nextPart, bool is_interface)
{
-return AddPartial (nextPart, nextPart.Name);
+return AddPartial (nextPart, nextPart.Name, is_interface);
}
}
}
Mono-patches maillist - Mono-patches (AT) lists (DOT) ximian.com