public static string Format(DictionaryMember member) { var f = new WebIDLFormatter(); f.Visit(member); return(f._sb.ToString()); }
private void Visit(DictionaryMember member) { Visit(member.ExtendedAttributes, ExtendedAttributeMode.Member); Visit(member.Type); _sb.Append(" " + member.Name); if (member.Default != null) { _sb.Append(" = "); Visit(member.Default); } _sb.AppendLine(";"); }
private DictionaryMember Resolve(DictionaryMember member) { var t = Resolve(member.Type, member.ExtendedAttributes); return(DictionaryMember.Create(t.Item1, member.Name, member.Default, t.Item2.Select(Resolve))); }
private static IEnumerable<DictionaryMember> GetAllDictionaryMembers(string memberItems, SpecData specificationData) { var memberList = new List<DictionaryMember>(); memberItems = CleanString(memberItems); var members = memberItems.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries).Select(m => m.Trim()).ToArray(); foreach (var item in members) { if (DictionaryMemberParser.IsMatch(item)) { var m = DictionaryMemberParser.Match(item); var memberItem = new DictionaryMember(m.Groups["item"].Value.Trim()) { ExtendedAttribute = m.Groups["extended"].Value.Trim(), Type = RegexLibrary.OldTypeCleaner.Replace(RegexLibrary.TypeCleaner.Replace(m.Groups["type"].Value.Replace("≺", "<").Replace("≻", ">"), "?"), string.Empty).Trim(), Value = m.Groups["value"].Value.Trim(), IsRequired = !string.IsNullOrWhiteSpace(m.Groups["required"].Value.Trim()), SpecNames = new[] { specificationData.Name } }; if (!string.IsNullOrWhiteSpace(memberItem.ExtendedAttribute)) { foreach (Match mep in DictionaryMemberExtendedParser.Matches(memberItem.ExtendedAttribute)) { memberItem.Clamp = memberItem.Clamp || !string.IsNullOrWhiteSpace(mep.Groups["clamp"].Value.Trim()); memberItem.EnforceRange = memberItem.EnforceRange || !string.IsNullOrWhiteSpace(mep.Groups["enforcerange"].Value.Trim()); } } if (!memberList.Contains(memberItem)) { memberList.Add(memberItem); } } else { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Fail dictionary memember- " + item); Console.ForegroundColor = ConsoleColor.Gray; } } return memberList; }