diff trunk/src/dil/Declarations.d @ 406:e242f0ee2d27

Added class EnumMember. Refactored parseEnumDeclaration() to make use of EnumMember.
author Aziz K?ksal <aziz.koeksal@gmail.com>
date Sun, 23 Sep 2007 21:48:05 +0200
parents 0a4619735ce9
children c78a54b2617c
line wrap: on
line diff
--- a/trunk/src/dil/Declarations.d	Sun Sep 23 20:32:12 2007 +0200
+++ b/trunk/src/dil/Declarations.d	Sun Sep 23 21:48:05 2007 +0200
@@ -163,21 +163,35 @@
 {
   Token* name;
   Type baseType;
-  Token*[] members;
-  Expression[] values;
-  this(Token* name, Type baseType, Token*[] members, Expression[] values, bool hasBody)
+  EnumMember[] members;
+  this(Token* name, Type baseType, EnumMember[] members, bool hasBody)
   {
     super(hasBody);
     mixin(set_kind);
     if (baseType)
       this.children = [baseType];
-    foreach(value; values)
-      if (value)
-        this.children ~= value;
+    if (members.length)
+        this.children ~= members;
+
     this.name = name;
     this.baseType = baseType;
     this.members = members;
-    this.values = values;
+  }
+}
+
+class EnumMember : Node
+{
+  Token* name;
+  Expression value;
+  this(Token* name, Expression value)
+  {
+    super(NodeCategory.Other);
+    mixin(set_kind);
+    if (value)
+      this.children = [value];
+
+    this.name = name;
+    this.value = value;
   }
 }