public override AstNode?VisitEnumDefinition(EnumDefinitionContext context) { _hasDefinitions = true; var enumDef = new EnumDefinition { ParseContext = context, Name = GetId(context.name), Options = _currentMemberOptions }; var accessModifier = context.accessModifier(); if (accessModifier != null) { ProcessTypeModifiers(enumDef, new[] { accessModifier.type }); } ProcessAttributes(enumDef.Attributes, context.attributes()); if (context.underlyingType != null) { enumDef.UnderlyingType = context.underlyingType.GetText(); } foreach (var enumMemberContext in context.enumMember()) { var memberDef = new EnumMemberDefinition { ParseContext = enumMemberContext, Name = GetId(enumMemberContext.name), Value = enumMemberContext.value?.GetFullText() }; ProcessAttributes(memberDef.Attributes, enumMemberContext.attributes()); enumDef.Members.Add(memberDef); } _contracts.Enums.Add(enumDef); return(enumDef); }
private static string Descriptor(EnumDefinition enumDefinition, EnumMemberDefinition m) { return($"{{ value: {enumDefinition.Name}.{m.Name}, name: `{m.Name}`, description: `{m.Description}` }}"); }
private static string MemberValueAssignment(EnumMemberDefinition member) { return($" {member.Name} = {member.Value}"); }