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
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