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()); }
public override bool ProtectedIsAcceptedUsingOracle(CstNode node) { if (node.Name == "expression") { node = node.Parent; } if (node.Name == "argument_value") { node = node.Parent; } var pName = node.Parent.Name; if (pName == "if_statement") { return(true); } if (pName == "while_statement") { return(true); } if (pName == "do_statement") { return(true); } if (pName == "for_condition") { return(true); } if (node.PrevsFromFirst().Any()) { return(false); } if (node.Name == "boolean_expression") { node = node.FirstChild; } var p = node.Parent.Parent.Parent.Parent.Parent; var parts = p.Children("primary_expression_start") .Concat(p.Children("primary_expression_part")) .ToList(); if (parts.All( e2 => e2.Descendants("identifier") .FirstOrDefault().SafeTokenText() != "Contract")) { return(false); } if (parts.All( e2 => e2.Descendants("identifier") .FirstOrDefault().SafeTokenText() != "Requires")) { return(false); } return(true); }
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(true); } if (isStmt && isPar && pp.FirstChild.SafeTokenText() == "while") { return(true); } if (isStmt && isPar && pp.FirstChild.SafeTokenText() == "do") { return(true); } if (p.SafeName() == "forstatement" && p.Children().Count(e2 => e2.TokenText == ";") >= 2) { return(true); } { var primary = node.SafeParent().SafeParent().SafeParent().SafeParent(); if (primary.SafeName() != "primary") { return(false); } //if (primary.Elements().All(e2 => e2.TokenText() != "Preconditions")) { // return false; //} if (primary.Children().All(e2 => e2.TokenText != "checkArgument")) { return(false); } //if (primary.NthElementOrDefault(0).SafeTokenText() != "Preconditions") { // return false; //} //if (primary.NthElementOrDefault(2).SafeTokenText() != "checkArgument") { // return false; //} if (node.PrevsFromFirst().Any()) { return(false); } return(true); } }
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"); } }
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"; } }
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(); }
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 true; } if (isStmt && isPar && pp.FirstChild.SafeTokenText() == "while") { return true; } if (isStmt && isPar && pp.FirstChild.SafeTokenText() == "do") { return true; } if (p.SafeName() == "forstatement" && p.Children().Count(e2 => e2.TokenText == ";") >= 2) { return true; } { var primary = node.SafeParent().SafeParent().SafeParent().SafeParent(); if (primary.SafeName() != "primary") { return false; } //if (primary.Elements().All(e2 => e2.TokenText() != "Preconditions")) { // return false; //} if (primary.Children().All(e2 => e2.TokenText != "checkArgument")) { return false; } //if (primary.NthElementOrDefault(0).SafeTokenText() != "Preconditions") { // return false; //} //if (primary.NthElementOrDefault(2).SafeTokenText() != "checkArgument") { // return false; //} if (node.PrevsFromFirst().Any()) { return false; } return true; } }