private Node WriteEnum(AstTypeDefinitionEnum astEnum, string parentId) { var name = astEnum.Identifier.NativeFullName; var node = CreateNode(name, astEnum.NodeKind); _ = CreateLink(parentId, node.Id); node.Group = DefaultGroup; var fields = String.Join("\r\n", astEnum.Fields.Select(f => $"{f.Identifier.NativeFullName} = {f.Expression.AsString()}")); var fieldsNode = CreateNode("Fields", fields); fieldsNode.Category = FieldsCategory; _ = CreateLink(node.Id, fieldsNode.Id, ContainsCategory); return(node); }
public CSharp.Enum AddEnum(AstTypeDefinitionEnum enumDef) { var enumType = new CSharp.Enum(enumDef.Identifier.SymbolName.CanonicalName.FullName) { AccessModifiers = enumDef.Symbol.SymbolLocality == AstSymbolLocality.Exported ? AccessModifiers.Public : AccessModifiers.Private, BaseTypeName = enumDef.BaseType.ToCode(), }; foreach (var field in enumDef.Fields) { var option = new CSharp.EnumOption(field.Identifier.SymbolName.CanonicalName.FullName) { Value = field.Expression.ToCode() }; enumType.AddOption(option); } _moduleClass.AddEnum(enumType); return(enumType); }
public override void VisitTypeDefinitionEnum(AstTypeDefinitionEnum enumType) => Context.ModuleClass.AddEnum(enumType);
public override void VisitTypeDefinitionEnum(AstTypeDefinitionEnum enumType) { enumType.Symbol.Should().NotBeNull(); base.VisitTypeDefinitionEnum(enumType); }
public virtual void VisitTypeDefinitionEnum(AstTypeDefinitionEnum enumType) { enumType.VisitChildren(this); }
public override void VisitTypeDefinitionEnum(AstTypeDefinitionEnum enumType) { enumType.Parent.Should().NotBeNull(); enumType.VisitChildren(this); }