本文整理汇总了C#中CstNode.PrevsFromFirst方法的典型用法代码示例。如果您正苦于以下问题:C# CstNode.PrevsFromFirst方法的具体用法?C# CstNode.PrevsFromFirst怎么用?C# CstNode.PrevsFromFirst使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CstNode
的用法示例。
在下文中一共展示了CstNode.PrevsFromFirst方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: IsCheckArgument
public bool IsCheckArgument(CstNode e) {
// Preconditions.checkArgument(cond, msg);
var primary = e.Parent.Parent.Parent.Parent;
return primary.Name == "primary"
&& primary.Children().Any(e2 => e2.TokenText == "checkArgument")
&& !e.PrevsFromFirst().Any();
}
示例2: ProtectedIsAcceptedUsingOracle
public override bool ProtectedIsAcceptedUsingOracle(CstNode node) {
var p = node.Parent;
var pp = p.Parent;
var isPar = p.SafeName() == "parExpression";
var isStmt = pp.SafeName() == "statement";
if (isStmt && isPar && pp.FirstChild.SafeTokenText() == "if") {
return node.TokenText != "true";
}
if (isStmt && isPar && pp.FirstChild.SafeTokenText() == "while") {
return node.TokenText != "true";
}
if (isStmt && isPar && pp.FirstChild.SafeTokenText() == "do") {
return node.TokenText != "true";
}
if (p.SafeName() == "forstatement"
&& p.Children().Count(e2 => e2.TokenText == ";") >= 2) {
return node.TokenText != "true";
}
if (isStmt && isPar && pp.FirstChild.SafeTokenText() == "switch") {
return true;
}
if (node.Name == "switchLabel") {
return true;
}
{
var primary = node.SafeParent().SafeParent().SafeParent().SafeParent();
if (primary.SafeName() != "primary") {
return false;
}
if (primary.Children().All(e2 => e2.TokenText != "checkArgument")) {
return false;
}
if (node.PrevsFromFirst().Any()) {
return false;
}
return node.TokenText != "true";
}
}