Click or drag to resize

IVisitor Interface

This interface allows for use of the Visitor design pattern to traverse a tree of CodeObjects.

Namespace:  Nova.CodeDOM
Assembly:  Nova.CodeDOM (in Nova.CodeDOM.dll) Version: 7.44.8391.13415
Syntax
C#
public interface IVisitor

Return Value

Type: 
Create a class that implements this interface, and visit all code objects in a tree by passing your visitor class to the Accept(IVisitor) method of the root object (such as a Solution). You must implement all methods, but if you have no special logic for a type, you can leave the method body empty or call a default handling routine. Because of the large number of types (over 300), some types (such as most operators) are represented only by a base type, so if you need to check for subclasses that don't have their own methods, you must use 'is' or 'as' operators to check the specific derived type. Internally generated (hidden) code objects are not visited (such as anonymous types, default constructors, delegate constructors and begin/endinvoke methods, global extern alias of CodeUnits, etc). Hidden symbolic references (HiddenRef) are optionally visited, depending upon VisitHiddenRefs.

The IVisitor type exposes the following members.

Properties
  NameDescription
Public propertyVisitHiddenRefs
True if 'hidden' references should be visited.
Top
Methods
  NameDescription
Public methodVisit(Alias)
Visit an Alias statement.
Public methodVisit(AnonymousMethodBase)
Visit an AnonymousMethodBase expression (common base of LambdaExpression, AnonymousMethod).
Public methodVisit(ArgumentsOperator)
Visit an ArgumentsOperator operator (common base of Call, Index, NewOperator).
Public methodVisit(Attribute)
Visit an Attribute annotation.
Public methodVisit(BinaryOperator)
Public methodVisit(Block)
Visit a Block body of a BlockStatement - this should rarely be used, since all members of the Block will be visited separately.
Public methodVisit(BlockDecl)
Visit a BlockDecl statement.
Public methodVisit(Break)
Visit a Break statement.
Public methodVisit(Catch)
Visit a Catch statement.
Public methodVisit(CheckedBlock)
Visit a CheckedBlock statement.
Public methodVisit(CodeUnit)
Visit a CodeUnit.
Public methodVisit(Comment)
Visit a Comment annotation.
Public methodVisit(CompilerDirective)
Public methodVisit(Conditional)
Visit a Conditional operator.
Public methodVisit(ConstraintClause)
Public methodVisit(Continue)
Visit a Continue statement.
Public methodVisit(DocComment)
Public methodVisit(Else)
Visit an Else statement.
Public methodVisit(EnumMemberDecl)
Visit an EnumMemberDecl statement.
Public methodVisit(ExternAlias)
Visit an ExternAlias statement.
Public methodVisit(FieldDecl)
Public methodVisit(Finally)
Visit a Finally statement.
Public methodVisit(Fixed)
Visit a Fixed statement.
Public methodVisit(For)
Visit a For statement.
Public methodVisit(ForEach)
Visit a ForEach statement.
Public methodVisit(Goto)
Visit a Goto statement.
Public methodVisit(IfBase)
Visit an IfBase statement (common base of If, ElseIf).
Public methodVisit(Initializer)
Visit an Initializer expression.
Public methodVisit(Label)
Visit a Label statement.
Public methodVisit(Literal)
Visit a Literal expression.
Public methodVisit(LocalDecl)
Visit a LocalDecl statement (also MultiLocalDecl).
Public methodVisit(LocalDeclExpr)
Visit an LocalDeclExpr expression.
Public methodVisit(Lock)
Visit a Lock statement.
Public methodVisit(Message)
Visit a Message annotation.
Public methodVisit(MethodDeclBase)
Public methodVisit(NamedArgument)
Visit a NamedArgument expression.
Public methodVisit(NamespaceDecl)
Visit a NamespaceDecl statement (does NOT include CodeUnits).
Public methodVisit(Ordering)
Visit an Ordering expression (children of OrderByClause).
Public methodVisit(ParameterDecl)
Public methodVisit(Project)
Visit a Project.
Public methodVisit(PropertyDeclBase)
Visit a PropertyDeclBase statement (common base of PropertyDecl, IndexerDecl, EventDecl).
Public methodVisit(QueryBodyBase)
Visit a QueryBodyBase expression (common base of QueryExpression, QueryContinuation).
Public methodVisit(QueryClauseBase)
Public methodVisit(Return)
Visit a Return statement.
Public methodVisit(SingleArgumentOperator)
Visit a SingleArgumentOperator operator (common base of Ref, Out, Checked, Unchecked, TypeOf, SizeOf, DefaultValue).
Public methodVisit(Switch)
Visit a Switch statement.
Public methodVisit(SwitchItem)
Visit a SwitchItem statement (common base of Case, Default).
Public methodVisit(SymbolicRef)
Public methodVisit(Throw)
Visit a Throw statement.
Public methodVisit(ThrowExpr)
Visit an ThrowExpr expression.
Public methodVisit(Try)
Visit a Try statement.
Public methodVisit(TypeDecl)
Visit a TypeDecl statement (common base of ClassDecl, StructDecl, InterfaceDecl, EnumDecl, DelegateDecl).
Public methodVisit(TypeParameter)
Visit a TypeParameter.
Public methodVisit(TypeParameterConstraint)
Public methodVisit(UnaryOperator)
Public methodVisit(UncheckedBlock)
Visit an UncheckedBlock statement.
Public methodVisit(Unrecognized)
Visit an Unrecognized expression.
Public methodVisit(Unsafe)
Visit an Unsafe statement.
Public methodVisit(Using)
Visit a Using statement.
Public methodVisit(UsingDirective)
Visit a UsingDirective statement.
Public methodVisit(While)
Visit a While statement.
Public methodVisit(YieldStatement)
Visit a YieldStatement statement.
Public methodVisitT(ChildListT)
Top
See Also