public string GetClassHashCodeOrDefault(AbstractSyntaxTreeNode node) { var visitor = new AbstractSyntaxTreeWordSearchVisitor(Splitter, "CXXRecordDecl"); node.BreadthFirst(visitor); node.BreadthFirst(visitor); if (!visitor.Found) { return(null); } var values = Splitter.Split(visitor.Node.Value); return(values.Length > 1 ? values[1] : null); }
public bool ContainsDefinitionData(AbstractSyntaxTreeNode node) { var visitor = new AbstractSyntaxTreeWordSearchVisitor(Splitter, "DefinitionData"); node.BreadthFirst(visitor); return(visitor.Found); }
public AbstractSyntaxTreeNode GetCallNodeOrDefault(AbstractSyntaxTreeNode root, string hashCode) { var visitor = new HashCodeExtractorSearchVisitor(Splitter, hashCode); root.BreadthFirst(visitor); return(visitor.Node); }
public bool IsDefinedClassMethod(AbstractSyntaxTreeNode node, string hashCode) { var values = Splitter.Split(node.Value); if (values.Length <= 4 || values[2] != "parent" || values[3] != hashCode) { return(false); } if (node.Value.EndsWith("default")) { return(true); } var visitor = new AbstractSyntaxTreeWordSearchVisitor(Splitter, "CompoundStmt"); node.BreadthFirst(visitor); return(visitor.Found); }