public virtual bool AcceptChildren(AstComparisonVisitor visitor, object data) { AbstractNode d = (AbstractNode) data; for (int i = 0; i < children.Count; i++) { INode child = Children[i]; if (child == null) return false; if(!child.AcceptVisitor(visitor, d.Children[i])) return false; } return true; }
public override bool AcceptVisitor(AstComparisonVisitor visitor, object data) { return visitor.VisitTemplateDefinition(this, data); }
public override bool AcceptVisitor(AstComparisonVisitor visitor, object data) { return visitor.VisitSwitchSection(this, data); }
public override bool AcceptVisitor(AstComparisonVisitor visitor, object data) { return visitor.VisitCompilationUnit(this, data); }
public abstract bool AcceptVisitor(AstComparisonVisitor visitor, object data);
private bool AcceptChildren(AstComparisonVisitor visitor, object data) { foreach (INode n in nodes) { if(!n.AcceptVisitor(visitor, data)) return false; } return true; }
private static void ExecuteDuplicationDetection(Result expectedResult, string codeText, string msgFromCodeComment) { TestLog.EmbedPlainText("The code", codeText); CompilationUnit cu = AstMatchHelper.ParseToCompilationUnit(codeText); // We require the first class in the file to have the Foo & Bar methods. var classes = cu.FindAllClasses(); Assert.That(classes.Count(), Is.GreaterThan(0), "Expected at least one class to be in the test cs file."); // Expect two methods, Foo & Bar. IndexableMethodFinderVisitor visitor = new IndexableMethodFinderVisitor(); classes.First().AcceptVisitor(visitor, null); Assert.AreEqual(visitor.FooMethod.Name, "Foo", "Expected a method named Foo."); Assert.AreEqual(visitor.BarMethod.Name, "Bar", "Expected a method named Bar."); AstComparisonVisitor cv = new AstComparisonVisitor(); visitor.BarMethod.AcceptVisitor(cv, visitor.FooMethod); if (expectedResult == Result.Match) { Assert.IsTrue(cv.Match, "Expected Foo & Bar to match: " + msgFromCodeComment); Assert.That(visitor.BarMethod.Body.Matches2(visitor.FooMethod.Body)); } else { Assert.IsFalse(cv.Match, "Expected Foo & Bar to not match: " + msgFromCodeComment); Assert.That(visitor.BarMethod.Matches2(visitor.FooMethod), Is.False); } }
public override bool AcceptVisitor(AstComparisonVisitor visitor, object data) { return visitor.VisitCastExpression(this, data); }
public override bool AcceptVisitor(AstComparisonVisitor visitor, object data) { return visitor.VisitAttribute(this, data); }
public override bool AcceptVisitor(AstComparisonVisitor visitor, object data) { return visitor.VisitInterfaceImplementation(this, data); }
public override bool AcceptVisitor(AstComparisonVisitor visitor, object data) { return visitor.VisitExternAliasDirective(this, data); }
public override bool AcceptVisitor(AstComparisonVisitor visitor, object data) { return visitor.VisitEventRemoveRegion(this, data); }
public override bool AcceptVisitor(AstComparisonVisitor visitor, object data) { return visitor.VisitAnonymousMethodExpression(this, data); }
public override bool AcceptVisitor(AstComparisonVisitor visitor, object data) { return visitor.VisitConstructorInitializer(this, data); }
public override bool AcceptVisitor(AstComparisonVisitor visitor, object data) { return visitor.VisitCollectionInitializerExpression(this, data); }
public override bool AcceptVisitor(AstComparisonVisitor visitor, object data) { return visitor.VisitVariableDeclaration(this, data); }
public override bool AcceptVisitor(AstComparisonVisitor visitor, object data) { return visitor.VisitCaseLabel(this, data); }
public override bool AcceptVisitor(AstComparisonVisitor visitor, object data) { return visitor.VisitParameterDeclarationExpression(this, data); }
public override bool AcceptVisitor(AstComparisonVisitor visitor, object data) { return true; }
public override bool AcceptVisitor(AstComparisonVisitor visitor, object data) { return visitor.VisitPointerReferenceExpression(this, data); }
public bool AcceptVisitor(AstComparisonVisitor visitor, object data) { return AcceptChildren(visitor, data); }
public override bool AcceptVisitor(AstComparisonVisitor visitor, object data) { return visitor.VisitPropertySetRegion(this, data); }
public override bool AcceptVisitor(AstComparisonVisitor visitor, object data) { return visitor.VisitBlockStatement(this, data); }
public override bool AcceptVisitor(AstComparisonVisitor visitor, object data) { return visitor.VisitQueryExpressionJoinConditionVB(this, data); }
public override bool AcceptVisitor(AstComparisonVisitor visitor, object data) { return visitor.VisitQueryExpressionWhereClause(this, data); }
public override bool AcceptVisitor(AstComparisonVisitor visitor, object data) { return visitor.VisitTypeReference(this, data); }