本文整理汇总了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;
}
示例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;
}
示例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;
}
示例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;
}