コード例 #1
0
ファイル: OrRule.cs プロジェクト: gleblebedev/TinyOpenEngine
        public override LeadingChars EvaluateLeadingSymbols()
        {
            var chars = new LeadingChars(false, Enumerable.Empty <char>());

            foreach (var rule in Rules)
            {
                chars = chars.Union(rule.EvaluateLeadingSymbols());
            }

            return(chars);
        }
コード例 #2
0
        public override LeadingChars EvaluateLeadingSymbols()
        {
            var chars = new LeadingChars(false, Enumerable.Empty <char>());

            var index = 0;

            while (index < Rules.Length)
            {
                chars = chars.Union(Rules[index].EvaluateLeadingSymbols());
                if (Rules[index].Type != RuleType.Optional)
                {
                    break;
                }
                ++index;
            }

            return(chars);
        }
コード例 #3
0
 public AnyExceptRule(char[] exemptions)
 {
     LeadingChars = new LeadingChars(true, exemptions);
 }