Esempio n. 1
0
        public DiphoneRule(string[] symbol1, string[] symbol2, DiphoneRuleAction action, char negator)
        {
            NegSymbol1 = Array.IndexOf <string>(symbol1, "ALL") > -1;
            NegSymbol2 = Array.IndexOf <string>(symbol2, "ALL") > -1;
            foreach (string s in symbol1)
            {
                if (!(NegSymbol1 ^ (s[0] == negator)))
                {
                    if (s[0] == negator)
                    {
                        Symbol1.Add(s.Substring(1));
                    }
                    else
                    {
                        Symbol1.Add(s);
                    }
                }
            }

            foreach (string s in symbol2)
            {
                if (!(NegSymbol2 ^ (s[0] == negator)))
                {
                    if (s[0] == negator)
                    {
                        Symbol2.Add(s.Substring(1));
                    }
                    else
                    {
                        Symbol2.Add(s);
                    }
                }
            }
            _RuleAction = action;
        }