2 // enum.cs: Enum handling.
4 // Author: Miguel de Icaza (miguel@gnu.org)
6 // Licensed under the terms of the GNU GPL
8 // (C) 2001 Ximian, Inc (http://www.ximian.com)
12 using System.Collections;
16 public class Enum : DeclSpace {
17 ArrayList ordered_enums;
22 public const int AllowedModifiers =
29 public Enum (TypeRef typeref, int mod_flags, string name) : base (name)
31 this.typeref = typeref;
33 this.mod_flags = Modifiers.Check (AllowedModifiers, mod_flags, Modifiers.PUBLIC);
35 ordered_enums = new ArrayList ();
39 // Adds @name to the enumeration space, with @expr
40 // being its definition.
42 public AdditionResult AddEnum (string name, Expression expr)
44 if (defined_names.Contains (name))
45 return AdditionResult.NameExists;
47 DefineName (name, expr);
49 ordered_enums.Add (name);
50 return AdditionResult.Success;
59 public ArrayList ValueNames {
72 public Expression this [string name] {
74 return (Expression) defined_names [name];
78 public override Type Define (Tree tree)