本文整理汇总了C#中AstNode.IsEquivalentTo方法的典型用法代码示例。如果您正苦于以下问题:C# AstNode.IsEquivalentTo方法的具体用法?C# AstNode.IsEquivalentTo怎么用?C# AstNode.IsEquivalentTo使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AstNode
的用法示例。
在下文中一共展示了AstNode.IsEquivalentTo方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: IsIfReturnExpr
private static IfNode IsIfReturnExpr(AstNode node, out AstNode condition, ref AstNode matchExpression)
{
// set the condition to null initially
condition = null;
// must be an if-node with no false block, and a true block with one statement
var ifNode = node as IfNode;
if (ifNode != null
&& ifNode.FalseBlock == null
&& ifNode.TrueBlock != null
&& ifNode.TrueBlock.Count == 1)
{
// and that one statement needs to be a return statement
var returnNode = ifNode.TrueBlock[0] as ReturnNode;
if (returnNode != null)
{
if (matchExpression == null
|| matchExpression.IsEquivalentTo(returnNode.Operand))
{
// either we don't care what the return expression is,
// or we do care and it's a match.
matchExpression = returnNode.Operand;
condition = ifNode.Condition;
}
}
}
// but we will only return the if-node IF the matchedExpression and the
// condition are both non-null (our TRUE state)
return condition != null && matchExpression != null ? ifNode : null;
}