本文整理汇总了C#中ParseTree.SetError方法的典型用法代码示例。如果您正苦于以下问题:C# ParseTree.SetError方法的具体用法?C# ParseTree.SetError怎么用?C# ParseTree.SetError使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ParseTree
的用法示例。
在下文中一共展示了ParseTree.SetError方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ParseSQL
//.........这里部分代码省略.........
break;
case KeywordType.FunctionKeyword:
newNodeName = SqlXmlConstants.ENAME_FUNCTION_KEYWORD;
break;
case KeywordType.DataTypeKeyword:
newNodeName = SqlXmlConstants.ENAME_DATATYPE_KEYWORD;
break;
case KeywordType.OtherKeyword:
sqlTree.EscapeAnySelectionTarget();
newNodeName = SqlXmlConstants.ENAME_OTHERKEYWORD;
break;
default:
throw new Exception("Unrecognized Keyword Type!");
}
}
sqlTree.SaveNewElement(newNodeName, token.Value);
}
break;
case SqlTokenType.Semicolon:
sqlTree.SaveNewElement(SqlXmlConstants.ENAME_SEMICOLON, token.Value);
sqlTree.NewStatementDue = true;
break;
case SqlTokenType.Colon:
if (tokenList.Count > tokenID + 1
&& tokenList[tokenID + 1].Type == SqlTokenType.Colon
)
{
sqlTree.SaveNewElement(SqlXmlConstants.ENAME_SCOPERESOLUTIONOPERATOR, token.Value + tokenList[tokenID + 1].Value);
tokenID++;
}
else
{
sqlTree.SaveNewElementWithError(SqlXmlConstants.ENAME_OTHEROPERATOR, token.Value);
}
break;
case SqlTokenType.Comma:
bool isCTESplitter = (sqlTree.PathNameMatches(0, SqlXmlConstants.ENAME_CONTAINER_GENERALCONTENT)
&& sqlTree.PathNameMatches(1, SqlXmlConstants.ENAME_CTE_WITH_CLAUSE)
);
sqlTree.SaveNewElement(GetEquivalentSqlNodeName(token.Type), token.Value);
if (isCTESplitter)
{
sqlTree.MoveToAncestorContainer(1, SqlXmlConstants.ENAME_CTE_WITH_CLAUSE);
sqlTree.CurrentContainer = sqlTree.SaveNewElement(SqlXmlConstants.ENAME_CTE_ALIAS, "");
}
break;
case SqlTokenType.EqualsSign:
sqlTree.SaveNewElement(SqlXmlConstants.ENAME_EQUALSSIGN, token.Value);
if (sqlTree.PathNameMatches(0, SqlXmlConstants.ENAME_DDL_DECLARE_BLOCK))
sqlTree.CurrentContainer = sqlTree.SaveNewElement(SqlXmlConstants.ENAME_CONTAINER_GENERALCONTENT, "");
break;
case SqlTokenType.MultiLineComment:
case SqlTokenType.SingleLineComment:
case SqlTokenType.WhiteSpace:
//create in statement rather than clause if there are no siblings yet
if (sqlTree.PathNameMatches(0, SqlXmlConstants.ENAME_SQL_CLAUSE)
&& sqlTree.PathNameMatches(1, SqlXmlConstants.ENAME_SQL_STATEMENT)
&& sqlTree.CurrentContainer.SelectSingleNode("*") == null
)
sqlTree.SaveNewElementAsPriorSibling(GetEquivalentSqlNodeName(token.Type), token.Value, sqlTree.CurrentContainer);
else
sqlTree.SaveNewElement(GetEquivalentSqlNodeName(token.Type), token.Value);
break;
case SqlTokenType.BracketQuotedName:
case SqlTokenType.Asterisk:
case SqlTokenType.Period:
case SqlTokenType.OtherOperator:
case SqlTokenType.NationalString:
case SqlTokenType.String:
case SqlTokenType.QuotedString:
case SqlTokenType.Number:
case SqlTokenType.BinaryValue:
case SqlTokenType.MonetaryValue:
case SqlTokenType.PseudoName:
sqlTree.SaveNewElement(GetEquivalentSqlNodeName(token.Type), token.Value);
break;
default:
throw new Exception("Unrecognized element encountered!");
}
tokenID++;
}
if (tokenList.HasUnfinishedToken)
sqlTree.SetError();
if (!sqlTree.FindValidBatchEnd())
sqlTree.SetError();
return sqlTree;
}
示例2: ProcessCompoundKeywordWithError
private void ProcessCompoundKeywordWithError(ITokenList tokenList, ParseTree sqlTree, XmlElement currentContainerElement, ref int tokenID, List<int> significantTokenPositions, int keywordCount)
{
ProcessCompoundKeyword(tokenList, sqlTree, currentContainerElement, ref tokenID, significantTokenPositions, keywordCount);
sqlTree.SetError();
}