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;
 }
示例#2
0
 public override bool AcceptVisitor(AstComparisonVisitor visitor, object data)
 {
     return visitor.VisitTemplateDefinition(this, data);
 }
示例#3
0
 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);
              }
        }
示例#8
0
 public override bool AcceptVisitor(AstComparisonVisitor visitor, object data)
 {
     return visitor.VisitCastExpression(this, data);
 }
示例#9
0
 public override bool AcceptVisitor(AstComparisonVisitor visitor, object data)
 {
     return visitor.VisitAttribute(this, data);
 }
示例#10
0
 public override bool AcceptVisitor(AstComparisonVisitor visitor, object data)
 {
     return visitor.VisitInterfaceImplementation(this, data);
 }
示例#11
0
 public override bool AcceptVisitor(AstComparisonVisitor visitor, object data)
 {
     return visitor.VisitExternAliasDirective(this, data);
 }
示例#12
0
 public override bool AcceptVisitor(AstComparisonVisitor visitor, object data)
 {
     return visitor.VisitEventRemoveRegion(this, data);
 }
示例#13
0
 public override bool AcceptVisitor(AstComparisonVisitor visitor, object data)
 {
     return visitor.VisitAnonymousMethodExpression(this, data);
 }
示例#14
0
 public override bool AcceptVisitor(AstComparisonVisitor visitor, object data)
 {
     return visitor.VisitConstructorInitializer(this, data);
 }
示例#15
0
 public override bool AcceptVisitor(AstComparisonVisitor visitor, object data)
 {
     return visitor.VisitCollectionInitializerExpression(this, data);
 }
示例#16
0
 public override bool AcceptVisitor(AstComparisonVisitor visitor, object data)
 {
     return visitor.VisitVariableDeclaration(this, data);
 }
示例#17
0
 public override bool AcceptVisitor(AstComparisonVisitor visitor, object data)
 {
     return visitor.VisitCaseLabel(this, data);
 }
示例#18
0
 public override bool AcceptVisitor(AstComparisonVisitor visitor, object data)
 {
     return visitor.VisitParameterDeclarationExpression(this, data);
 }
示例#19
0
	    public override bool AcceptVisitor(AstComparisonVisitor visitor, object data)
	    {
	        return true;
	    }
示例#20
0
 public override bool AcceptVisitor(AstComparisonVisitor visitor, object data)
 {
     return visitor.VisitPointerReferenceExpression(this, data);
 }
		    public bool AcceptVisitor(AstComparisonVisitor visitor, object data)
		    {
		        return AcceptChildren(visitor, data);
		    }
示例#22
0
 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);
	    }
示例#24
0
 public override bool AcceptVisitor(AstComparisonVisitor visitor, object data)
 {
     return visitor.VisitQueryExpressionJoinConditionVB(this, data);
 }
示例#25
0
 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);
	    }