Table of Contents

Class InsertParenthesesVisitor

Namespace
ICSharpCode.Decompiler.CSharp.OutputVisitor
Assembly
ICSharpCode.Decompiler.dll

Inserts the parentheses into the AST that are needed to ensure the AST can be printed correctly. For example, if the AST contains BinaryOperatorExpresson(2, Mul, BinaryOperatorExpression(1, Add, 1))); printing that AST would incorrectly result in "2 * 1 + 1". By running InsertParenthesesVisitor, the necessary parentheses are inserted: "2 * (1 + 1)".

public class InsertParenthesesVisitor : DepthFirstAstVisitor, IAstVisitor
Inheritance
InsertParenthesesVisitor
Implements
Inherited Members

Constructors

InsertParenthesesVisitor()

public InsertParenthesesVisitor()

Properties

InsertParenthesesForReadability

Gets/Sets whether the visitor should insert parentheses to make the code better looking. If this property is false, it will insert parentheses only where strictly required by the language spec.

public bool InsertParenthesesForReadability { get; set; }

Property Value

bool

Methods

VisitAsExpression(AsExpression)

public override void VisitAsExpression(AsExpression asExpression)

Parameters

asExpression AsExpression

VisitAssignmentExpression(AssignmentExpression)

public override void VisitAssignmentExpression(AssignmentExpression assignmentExpression)

Parameters

assignmentExpression AssignmentExpression

VisitBinaryOperatorExpression(BinaryOperatorExpression)

public override void VisitBinaryOperatorExpression(BinaryOperatorExpression binaryOperatorExpression)

Parameters

binaryOperatorExpression BinaryOperatorExpression

VisitCastExpression(CastExpression)

public override void VisitCastExpression(CastExpression castExpression)

Parameters

castExpression CastExpression

VisitConditionalExpression(ConditionalExpression)

public override void VisitConditionalExpression(ConditionalExpression conditionalExpression)

Parameters

conditionalExpression ConditionalExpression

VisitIndexerExpression(IndexerExpression)

public override void VisitIndexerExpression(IndexerExpression indexerExpression)

Parameters

indexerExpression IndexerExpression

VisitInvocationExpression(InvocationExpression)

public override void VisitInvocationExpression(InvocationExpression invocationExpression)

Parameters

invocationExpression InvocationExpression

VisitIsExpression(IsExpression)

public override void VisitIsExpression(IsExpression isExpression)

Parameters

isExpression IsExpression

VisitLambdaExpression(LambdaExpression)

public override void VisitLambdaExpression(LambdaExpression lambdaExpression)

Parameters

lambdaExpression LambdaExpression

VisitMemberReferenceExpression(MemberReferenceExpression)

public override void VisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression)

Parameters

memberReferenceExpression MemberReferenceExpression

VisitNamedExpression(NamedExpression)

public override void VisitNamedExpression(NamedExpression namedExpression)

Parameters

namedExpression NamedExpression

VisitPointerReferenceExpression(PointerReferenceExpression)

public override void VisitPointerReferenceExpression(PointerReferenceExpression pointerReferenceExpression)

Parameters

pointerReferenceExpression PointerReferenceExpression

VisitQueryExpression(QueryExpression)

public override void VisitQueryExpression(QueryExpression queryExpression)

Parameters

queryExpression QueryExpression

VisitSwitchExpression(SwitchExpression)

public override void VisitSwitchExpression(SwitchExpression switchExpression)

Parameters

switchExpression SwitchExpression

VisitUnaryOperatorExpression(UnaryOperatorExpression)

public override void VisitUnaryOperatorExpression(UnaryOperatorExpression unaryOperatorExpression)

Parameters

unaryOperatorExpression UnaryOperatorExpression

VisitVariableInitializer(VariableInitializer)

public override void VisitVariableInitializer(VariableInitializer variableInitializer)

Parameters

variableInitializer VariableInitializer