示例#1
0
文件: ORegex.cs 项目: mpvyard/ORegex
        private static PredicateTable <TValue> CreatePredicateTable(Func <TValue, bool>[] predicates)
        {
            if (predicates == null || predicates.Length == 0)
            {
                throw new ArgumentException("No predicates provided.");
            }
            var table = new PredicateTable <TValue>();

            for (int i = 0; i < predicates.Length; i++)
            {
                table.AddPredicate(i.ToString(), predicates[i]);
            }
            return(table);
        }
示例#2
0
文件: ORegex.cs 项目: mpvyard/ORegex
        private static PredicateTable <TValue> CreateValuesPredicateTable(TValue[] values,
                                                                          IEqualityComparer <TValue> comparer = null)
        {
            if (values == null || values.Length == 0)
            {
                throw new ArgumentException("No values provided.");
            }
            if (comparer == null)
            {
                comparer = EqualityComparer <TValue> .Default;
            }
            var table = new PredicateTable <TValue>();

            for (int i = 0; i < values.Length; i++)
            {
                table.AddCompare(i.ToString(), values[i], comparer);
            }
            return(table);
        }
示例#3
0
 public PredicateTable(PredicateTable <TValue> other)
 {
     _table = new Dictionary <string, PredicateEdgeBase <TValue> >(other._table);
 }
示例#4
0
文件: ORegex.cs 项目: mpvyard/ORegex
 public ORegex(string pattern, ORegexOptions options, PredicateTable <TValue> table)
 {
     _fa     = Compiler.Build(pattern, table, options);
     Options = options;
     Pattern = pattern;
 }
示例#5
0
文件: ORegex.cs 项目: mpvyard/ORegex
 public ORegex(string pattern, PredicateTable <TValue> table) : this(pattern, ORegexOptions.None, table)
 {
 }