public override void VisitEnumDeclaration(EnumDeclarationSyntax node) { INamedTypeSymbol sym = m_Model.GetDeclaredSymbol(node); ClassInfo ci = new ClassInfo(); ClassSymbolInfo info; m_SymbolTable.ClassSymbols.TryGetValue(ClassInfo.GetFullName(sym), out info); ci.Init(sym, info); m_ClassInfoStack.Push(ci); if (m_ClassInfoStack.Count == 1) { ci.BeforeOuterCodeBuilder.Append(m_ToplevelCodeBuilder.ToString()); m_ToplevelCodeBuilder.Clear(); } ci.CurrentCodeBuilder = ci.StaticFieldCodeBuilder; ++m_Indent; foreach (var member in node.Members) { VisitEnumMemberDeclaration(member); } --m_Indent; m_ClassInfoStack.Pop(); if (m_ClassInfoStack.Count <= 0) { AddToplevelClass(ci.Key, ci); } else { m_ClassInfoStack.Peek().InnerClasses.Add(ci.Key, ci); } if (m_Indent <= 0 && null != m_LastToplevelClass) { m_LastToplevelClass.AfterOuterCodeBuilder.Append(m_ToplevelCodeBuilder.ToString()); m_ToplevelCodeBuilder.Clear(); } }