本文整理汇总了C#中IParser.Start方法的典型用法代码示例。如果您正苦于以下问题:C# IParser.Start方法的具体用法?C# IParser.Start怎么用?C# IParser.Start使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IParser
的用法示例。
在下文中一共展示了IParser.Start方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Parse
public static void Parse(IParser p, string text, string seperators, QueryTranslator q)
{
StringTokenizer tokens = new StringTokenizer(text, seperators, true);
p.Start(q);
foreach (string token in tokens)
{
p.Token(token, q);
}
p.End(q);
}
示例2: Token
public virtual void Token(string token, QueryTranslator q)
{
string lcToken = token.ToLowerInvariant();
if (token.Equals(StringHelper.OpenParen))
{
parenCount++;
}
else if (token.Equals(StringHelper.ClosedParen))
{
parenCount--;
}
if (byExpected && !"by".Equals(lcToken))
{
throw new QueryException("BY expected after GROUP or ORDER: " + token);
}
bool isClauseStart = parenCount == 0; //ignore subselect keywords
if (isClauseStart)
{
if ("select".Equals(lcToken))
{
selectTokens = new List<string>();
cacheSelectTokens = true;
}
else if ("from".Equals(lcToken))
{
child = new FromParser();
child.Start(q);
cacheSelectTokens = false;
}
else if ("where".Equals(lcToken))
{
EndChild(q);
child = new WhereParser();
child.Start(q);
}
else if ("order".Equals(lcToken))
{
EndChild(q);
child = new OrderByParser();
byExpected = true;
}
else if ("having".Equals(lcToken))
{
EndChild(q);
child = new HavingParser();
child.Start(q);
}
else if ("group".Equals(lcToken))
{
EndChild(q);
child = new GroupByParser();
byExpected = true;
}
else if ("by".Equals(lcToken))
{
if (!byExpected)
{
throw new QueryException("GROUP or ORDER expected before BY");
}
child.Start(q);
byExpected = false;
}
else
{
isClauseStart = false;
}
}
if (!isClauseStart)
{
if (cacheSelectTokens)
{
selectTokens.Add(token);
}
else
{
if (child == null)
{
throw new QueryException("query must begin with SELECT or FROM: " + token);
}
else
{
child.Token(token, q);
}
}
}
}
示例3: End
public virtual void End(QueryTranslator q)
{
EndChild(q);
if (selectTokens != null)
{
child = new SelectParser();
child.Start(q);
foreach (string item in selectTokens)
{
Token(item, q);
}
child.End(q);
}
byExpected = false;
parenCount = 0;
cacheSelectTokens = false;
}