当前位置: 首页>>代码示例>>C#>>正文


C# IScanner.RecursionCheck方法代码示例

本文整理汇总了C#中IScanner.RecursionCheck方法的典型用法代码示例。如果您正苦于以下问题:C# IScanner.RecursionCheck方法的具体用法?C# IScanner.RecursionCheck怎么用?C# IScanner.RecursionCheck使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IScanner的用法示例。


在下文中一共展示了IScanner.RecursionCheck方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Parse

        /// <summary>
        /// Public scanner method. Test scanner input for this parser's patterns.
        /// </summary>
        /// <remarks>Most parsers won't need to override this method</remarks>
        /// <param name="scan">Scanner to parse from</param>
        /// <returns>Match (success of failure) of the parser against the scanne</returns>
        public virtual ParserMatch Parse(IScanner scan)
        {
            scan.Normalise();

            var st = new System.Diagnostics.StackTrace();
            scan.StackStats(st.FrameCount);

            if (scan.RecursionCheck(this, scan.Offset))
                if (!(this is Recursion))
                    return scan.NoMatch;

            ParserMatch m;

            if (this is IMatchingParser) m = ((IMatchingParser) this).TryMatch(scan);
            else m = Parse(scan);

            if (m.Success)
            {
                scan.ClearFailures();
            }
            else
            {
                scan.AddFailure(this, scan.Offset);
            }
            return m;
        }
开发者ID:i-e-b,项目名称:Phantom2,代码行数:32,代码来源:Parser.cs

示例2: Parse

        public override ParserMatch Parse(IScanner scan)
        {
            scan.Normalise();

            if (scan.RecursionCheck(this, scan.Offset))
                return scan.NoMatch;

            var m = (source is IMatchingParser)
                ? ((source as IMatchingParser).TryMatch(scan))
                : (source.Parse(scan));

            if (m.Success) scan.ClearFailures();
            return m;
        }
开发者ID:i-e-b,项目名称:Phantom2,代码行数:14,代码来源:Recursion.cs


注:本文中的IScanner.RecursionCheck方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。