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


C# ParserContext.Step方法代码示例

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


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

示例1: AddExamples

        static bool AddExamples(ParserContext context)
        {
            if (context.Keyword == null || !context.IsWord)
                return false;

            if (context.Step != null)
                context.Steps.Add (context.Step ());

            context.Table = null;

            var tags = context.Tags;
            context.Tags = new List<string> ();

            var fileName = context.FileName;
            var line = context.LineNumber;
            var column = context.Column;

            if (context.Steps.Count == 0) {
                context.Errors.Add (new Error (ErrorType.Error, "Expecting Given, When or Then", new DomRegion (context.LineNumber, context.Column, context.LineNumber, 1 + context.Content.Length)));
            }

            context.Examples = () => {
                Table table = null;

                if (context.Table == null) {
                    context.Errors.Add(new Error(ErrorType.Error, "Expecting Table for Examples", line, column));
                }
                else
                {
                    table = context.Table();
                }

                return new Examples (table, tags, fileName, line, column);
            };

            return true;
        }
开发者ID:ItsVeryWindy,项目名称:Mono-Cucumber,代码行数:37,代码来源:GherkinDocumentParser.cs

示例2: AddScenario

        static bool AddScenario(ParserContext context)
        {
            if (context.Step != null)
                context.Steps.Add (context.Step ());

            if (context.Scenario != null)
                context.Scenarios.Add (context.Scenario ());

            if (context.Keyword == null || !context.IsWord)
                return false;

            var steps = new List<Step> ();

            context.Steps = steps;
            context.Examples = null;
            context.Table = null;

            var tags = context.Tags;
            context.Tags = new List<string> ();

            var content = context.RemainingContent;
            var fileName = context.FileName;
            var line = context.LineNumber;
            var column = context.Column;
            var keyword = context.Keyword;

            switch (context.Keyword) {
                case "Scenario Outline:":
                    context.Scenario = () => {
                        if (context.Examples == null && steps.Count > 0) {
                            context.Errors.Add (new Error (ErrorType.Error, "Expecting Examples for Scenario Outline", new DomRegion (line, column, line, column + keyword.Length)));
                        }

                        Examples examples = null;

                        if (context.Examples != null) {
                            examples = context.Examples();

                            if (examples.Table != null && examples.Table.Header != null) {
                                foreach (var j in steps) {
                                    foreach (var k in j.Placeholders) {
                                        if (!examples.Table.Header.Columns.Contains (k.Name)) {
                                            context.Errors.Add (new Error (ErrorType.Warning, "Placeholder does not match column in table", new DomRegion (k.Line, k.Column, line, k.Column + k.Name.Length)));
                                        }
                                    }
                                }
                            }
                        }

                        return new ScenarioOutline (examples, steps, tags, content, fileName, line, column);
                    };
                    break;
                case "Scenario:":
                context.Scenario = () => new Scenario (steps, tags, content, fileName, line, column);
                    break;
                case "Background:":
                context.Scenario = () => new Background (steps, tags, fileName, line, column);
                    break;
            }

            return true;
        }
开发者ID:ItsVeryWindy,项目名称:Mono-Cucumber,代码行数:62,代码来源:GherkinDocumentParser.cs

示例3: AddSteps

        static bool AddSteps(ParserContext context)
        {
            if (context.Step != null)
                context.Steps.Add (context.Step ());

            if (context.Keyword == null || !context.IsWord)
                return false;

            context.Table = null;

            var placeholders = new List<Placeholder>();
            var fileName = context.FileName;
            var line = context.LineNumber;
            var column = context.Column;
            var content = context.RemainingContent;

            var matches = parameterExpression.Matches(context.Content);

            foreach (Match match in matches) {
                var p = match.Groups [1];

                placeholders.Add (new Placeholder(p.ToString(), fileName, line, p.Index + 1));
            }

            context.Step = () => {

                Table table = null;

                if (context.Table != null) {
                    table = context.Table ();
                }

                DocString docString = null;

                if (table == null && context.DocString != null) {
                    docString = context.DocString ();
                }

                return new Step (placeholders, table, docString, content, fileName, line, column);
            };

            return true;
        }
开发者ID:ItsVeryWindy,项目名称:Mono-Cucumber,代码行数:43,代码来源:GherkinDocumentParser.cs

示例4: AddFeature

        static bool AddFeature(ParserContext context)
        {
            if (context.Feature != null)
                context.Features.Add (context.Feature ());

            if (context.Step != null)
                context.Steps.Add (context.Step ());

            if (context.Scenario != null) {
                context.Scenarios.Add (context.Scenario ());
            }

            context.Scenario = null;
            context.Step = null;

            if (context.Keyword == null || !context.IsWord)
                return false;

            var scenarios = new List<Scenario> ();
            context.Scenarios = scenarios;

            var tags = context.Tags;
            context.Tags = new List<string> ();

            var content = context.RemainingContent;
            var fileName = context.FileName;
            var line = context.LineNumber;
            var column = context.Column;

            context.Feature = () => new Feature (scenarios, tags, content, fileName, line, column);

            return true;
        }
开发者ID:ItsVeryWindy,项目名称:Mono-Cucumber,代码行数:33,代码来源:GherkinDocumentParser.cs


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