a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
620 lines
10 KiB
C#
620 lines
10 KiB
C#
//
|
|
// visit.cs: Visitors for parsed dom
|
|
//
|
|
// Authors: Mike Krüger (mkrueger@novell.com)
|
|
// Marek Safar (marek.safar@gmail.com)
|
|
//
|
|
// Dual licensed under the terms of the MIT X11 or GNU GPL
|
|
//
|
|
// Copyright (c) 2010 Novell, Inc (http://www.novell.com)
|
|
// Copyright 2011 Xamarin Inc
|
|
//
|
|
|
|
using System;
|
|
using System.Diagnostics;
|
|
|
|
namespace Mono.CSharp
|
|
{
|
|
public abstract class StructuralVisitor
|
|
{
|
|
public virtual void Visit (MemberCore member)
|
|
{
|
|
Debug.Fail ("unknown member type: " + member.GetType ());
|
|
}
|
|
|
|
void VisitTypeContainer (TypeContainer tc)
|
|
{
|
|
foreach (var container in tc.Containers) {
|
|
container.Accept (this);
|
|
}
|
|
}
|
|
|
|
void VisitTypeContainer (TypeDefinition tc)
|
|
{
|
|
foreach (var member in tc.Members) {
|
|
member.Accept (this);
|
|
}
|
|
}
|
|
|
|
public virtual void Visit (ModuleContainer module)
|
|
{
|
|
VisitTypeContainer (module);
|
|
}
|
|
|
|
public virtual void Visit (UsingNamespace un)
|
|
{
|
|
}
|
|
|
|
public virtual void Visit (UsingAliasNamespace uan)
|
|
{
|
|
}
|
|
|
|
public virtual void Visit (UsingExternAlias uea)
|
|
{
|
|
}
|
|
|
|
public virtual void Visit (NamespaceContainer ns)
|
|
{
|
|
VisitTypeContainer (ns);
|
|
}
|
|
|
|
public virtual void Visit (CompilationSourceFile csf)
|
|
{
|
|
VisitTypeContainer (csf);
|
|
}
|
|
|
|
public virtual void Visit (Class c)
|
|
{
|
|
VisitTypeContainer (c);
|
|
}
|
|
|
|
public virtual void Visit (Struct s)
|
|
{
|
|
VisitTypeContainer (s);
|
|
}
|
|
|
|
|
|
public virtual void Visit (Interface i)
|
|
{
|
|
VisitTypeContainer (i);
|
|
}
|
|
|
|
public virtual void Visit (Delegate d)
|
|
{
|
|
}
|
|
|
|
public virtual void Visit (Enum e)
|
|
{
|
|
VisitTypeContainer (e);
|
|
}
|
|
|
|
public virtual void Visit (FixedField f)
|
|
{
|
|
}
|
|
|
|
public virtual void Visit (Const c)
|
|
{
|
|
}
|
|
|
|
public virtual void Visit (Field f)
|
|
{
|
|
}
|
|
|
|
public virtual void Visit (Operator o)
|
|
{
|
|
}
|
|
|
|
public virtual void Visit (Indexer i)
|
|
{
|
|
}
|
|
|
|
public virtual void Visit (Method m)
|
|
{
|
|
}
|
|
|
|
public virtual void Visit (Property p)
|
|
{
|
|
}
|
|
|
|
public virtual void Visit (Constructor c)
|
|
{
|
|
}
|
|
|
|
public virtual void Visit (Destructor d)
|
|
{
|
|
}
|
|
|
|
public virtual void Visit (EventField e)
|
|
{
|
|
}
|
|
public virtual void Visit (EventProperty ep)
|
|
{
|
|
}
|
|
|
|
public virtual void Visit (EnumMember em)
|
|
{
|
|
}
|
|
|
|
public virtual object Visit (Statement stmt)
|
|
{
|
|
Debug.Fail ("unknown statement:" + stmt);
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (BlockVariable blockVariableDeclaration)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (BlockConstant blockConstantDeclaration)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (EmptyStatement emptyStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (EmptyExpressionStatement emptyExpressionStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (EmptyExpression emptyExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (ErrorExpression errorExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (If ifStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
|
|
public virtual object Visit (Do doStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (While whileStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (For forStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (StatementExpression statementExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (StatementErrorExpression errorStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Return returnStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Goto gotoStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (LabeledStatement labeledStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (SwitchLabel switchLabel)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (GotoDefault gotoDefault)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (GotoCase gotoCase)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Throw throwStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Break breakStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Continue continueStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Block blockStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Switch switchStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (StatementList statementList)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Lock lockStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Unchecked uncheckedStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Checked checkedStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Unsafe unsafeStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
|
|
public virtual object Visit (Fixed fixedStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
|
|
public virtual object Visit (TryFinally tryFinallyStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (TryCatch tryCatchStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Using usingStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Foreach foreachStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Yield yieldStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (YieldBreak yieldBreakStatement)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Expression expression)
|
|
{
|
|
Debug.Fail ("Visit unknown expression:" + expression);
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (MemberAccess memberAccess)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (QualifiedAliasMember qualifiedAliasMember)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (LocalVariableReference localVariableReference)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Constant constant)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (BooleanExpression booleanExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (SimpleName simpleName)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (ParenthesizedExpression parenthesizedExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Unary unaryExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (UnaryMutator unaryMutatorExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
// *expr
|
|
public virtual object Visit (Indirection indirectionExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Is isExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (As asExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Cast castExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (ComposedCast composedCast)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (DefaultValueExpression defaultValueExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (DefaultParameterValueExpression defaultParameterValueExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Binary binaryExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Nullable.NullCoalescingOperator nullCoalescingOperator)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Conditional conditionalExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Invocation invocationExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (New newExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (NewAnonymousType newAnonymousType)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (NewInitialize newInitializeExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (ArrayCreation arrayCreationExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (This thisExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (ArglistAccess argListAccessExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Arglist argListExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (TypeOf typeOfExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (SizeOf sizeOfExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (CheckedExpr checkedExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (UnCheckedExpr uncheckedExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (ElementAccess elementAccessExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (BaseThis baseAccessExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (StackAlloc stackAllocExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (SimpleAssign simpleAssign)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (CompoundAssign compoundAssign)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (TypeExpression typeExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (AnonymousMethodExpression anonymousMethodExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (LambdaExpression lambdaExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (ConstInitializer constInitializer)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (ArrayInitializer arrayInitializer)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Linq.QueryExpression queryExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Linq.QueryStartClause queryExpression)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Linq.SelectMany selectMany)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Linq.Select select)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Linq.GroupBy groupBy)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Linq.Let let)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Linq.Where where)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Linq.Join join)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Linq.GroupJoin groupJoin)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Linq.OrderByAscending orderByAscending)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Linq.OrderByDescending orderByDescending)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Linq.ThenByAscending thenByAscending)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Linq.ThenByDescending thenByDescending)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
// undocumented expressions
|
|
public virtual object Visit (RefValueExpr refValueExpr)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (RefTypeExpr refTypeExpr)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (MakeRefExpr makeRefExpr)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual object Visit (Await awaitExpr)
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
} |