You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
587 lines
9.6 KiB
587 lines
9.6 KiB
// |
|
// 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) |
|
// |
|
|
|
using System; |
|
|
|
namespace Mono.CSharp |
|
{ |
|
public abstract class StructuralVisitor |
|
{ |
|
public virtual void Visit (MemberCore member) |
|
{ |
|
Console.WriteLine ("unknown member type: " + member.GetType ()); |
|
} |
|
|
|
public virtual void Visit (ModuleContainer mc) |
|
{/* |
|
if (mc.Delegates != null) { |
|
foreach (TypeContainer tc in mc.Delegates) { |
|
tc.Accept (this); |
|
} |
|
}*/ |
|
if (mc.Types != null) { |
|
foreach (TypeContainer tc in mc.Types) { |
|
tc.Accept (this); |
|
} |
|
} |
|
} |
|
|
|
void VisitTypeContainer (TypeContainer tc) |
|
{ |
|
foreach (MemberCore member in tc.OrderedAllMembers) { |
|
member.Accept (this); |
|
} |
|
} |
|
|
|
protected void VisitNamespaceUsings (UsingsBag.Namespace nspace) |
|
{ |
|
foreach (object u in nspace.usings) { |
|
if (u is UsingsBag.Using) { |
|
((UsingsBag.Using)u).Accept (this); |
|
} else { |
|
((UsingsBag.AliasUsing)u).Accept (this); |
|
} |
|
} |
|
} |
|
|
|
protected void VisitNamespaceBody (UsingsBag.Namespace nspace) |
|
{ |
|
foreach (object member in nspace.members) { |
|
if (member is MemberCore) { |
|
((MemberCore)member).Accept (this); |
|
} else { |
|
((UsingsBag.Namespace)member).Accept (this); |
|
} |
|
} |
|
} |
|
|
|
public virtual void Visit (UsingsBag.Namespace nspace) |
|
{ |
|
VisitNamespaceUsings (nspace); |
|
VisitNamespaceBody (nspace); |
|
} |
|
|
|
public virtual void Visit (UsingsBag.Using u) |
|
{ |
|
} |
|
|
|
public virtual void Visit (UsingsBag.AliasUsing aliasUsing) |
|
{ |
|
} |
|
|
|
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) |
|
{ |
|
Console.WriteLine ("unknown statement:" + stmt); |
|
return null; |
|
} |
|
|
|
public virtual object Visit (BlockVariableDeclaration blockVariableDeclaration) |
|
{ |
|
return null; |
|
} |
|
|
|
public virtual object Visit (BlockConstantDeclaration blockConstantDeclaration) |
|
{ |
|
return null; |
|
} |
|
|
|
public virtual object Visit (EmptyStatement emptyStatement) |
|
{ |
|
return null; |
|
} |
|
|
|
public virtual object Visit (EmptyExpressionStatement emptyExpressionStatement) |
|
{ |
|
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 (Return returnStatement) |
|
{ |
|
return null; |
|
} |
|
|
|
|
|
public virtual object Visit (Goto gotoStatement) |
|
{ |
|
return null; |
|
} |
|
|
|
|
|
public virtual object Visit (LabeledStatement labeledStatement) |
|
{ |
|
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 (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) |
|
{ |
|
Console.WriteLine ("Visit unknown expression:" + expression); |
|
return null; |
|
} |
|
|
|
public virtual object Visit (MemberAccess memberAccess) |
|
{ |
|
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 (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 (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.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; |
|
} |
|
} |
|
} |