Exemplo n.º 1
0
        public static string Format(DictionaryMember member)
        {
            var f = new WebIDLFormatter();

            f.Visit(member);
            return(f._sb.ToString());
        }
Exemplo n.º 2
0
 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(";");
 }
Exemplo n.º 3
0
        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)));
        }
Exemplo n.º 4
0
        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;
        }