Mercurial > projects > ddmd
view dmd/EnumMember.d @ 78:b98fa8a4bf04
merge
author | Eldar Insafutdinov <e.insafutdinov@gmail.com> |
---|---|
date | Sun, 29 Aug 2010 14:39:08 +0100 |
parents | 2e2a5c3f943a |
children | 43073c7c7769 |
line wrap: on
line source
module dmd.EnumMember; import dmd.Dsymbol; import dmd.Expression; import dmd.Type; import dmd.Loc; import dmd.Identifier; import dmd.Scope; import dmd.OutBuffer; import dmd.HdrGenState; class EnumMember : Dsymbol { Expression value; Type type; this(Loc loc, Identifier id, Expression value, Type type) { super(id); this.value = value; this.type = type; this.loc = loc; } override Dsymbol syntaxCopy(Dsymbol s) { Expression e = null; if (value) e = value.syntaxCopy(); Type t = null; if (type) t = type.syntaxCopy(); EnumMember em; if (s) { em = cast(EnumMember)s; em.loc = loc; em.value = e; em.type = t; } else em = new EnumMember(loc, ident, e, t); return em; } override void toCBuffer(OutBuffer buf, HdrGenState* hgs) { if (type) type.toCBuffer(buf, ident, hgs); else buf.writestring(ident.toChars()); if (value) { buf.writestring(" = "); value.toCBuffer(buf, hgs); } } override string kind() { return "enum member"; } override void emitComment(Scope sc) { assert(false); } override void toDocBuffer(OutBuffer buf) { assert(false); } override EnumMember isEnumMember() { return this; } }