示例#1
0
        private bool TryParseConv(string parameterText, EntryListType entryListType, ref Dictionary <string, MultiReplacementEntry> entries)
        {
            if (!IsInitialized(entryListType))
            {
                SetInitialized(entryListType);

                int expectedSize;
                if (IntEx.TryParseInvariant(parameterText, out expectedSize) && expectedSize >= 0)
                {
                    if (entries == null)
                    {
                        entries = new Dictionary <string, MultiReplacementEntry>(expectedSize);
                    }

                    return(true);
                }
            }

            if (entries == null)
            {
                entries = new Dictionary <string, MultiReplacementEntry>();
            }

            var parts = parameterText.SplitOnTabOrSpace();

            if (parts.Length < 2)
            {
                Builder.LogWarning($"Bad {entryListType}: {parameterText}");
                return(false);
            }

            entries.AddReplacementEntry(Builder.Dedup(parts[0]), Builder.Dedup(parts[1]));

            return(true);
        }
示例#2
0
        private bool TryParseStandardListItem <T>(EntryListType entryListType, string parameterText, ref List <T> entries, Func <string, List <T>, bool> parse)
        {
            if (!IsInitialized(entryListType))
            {
                SetInitialized(entryListType);

                int expectedSize;
                if (IntEx.TryParseInvariant(parameterText, out expectedSize) && expectedSize >= 0)
                {
                    if (entries == null)
                    {
                        entries = new List <T>(expectedSize);
                    }

                    return(true);
                }
            }

            if (entries == null)
            {
                entries = new List <T>();
            }

            return(parse(parameterText, entries));
        }
示例#3
0
 private void SetInitialized(EntryListType flags)
 {
     Initialized |= flags;
 }
示例#4
0
 private bool IsInitialized(EntryListType flags) => EnumEx.HasFlag(Initialized, flags);