PostSharp.Reflection.Syntax Namespace
The PostSharp.Reflection.Syntax namespace contains classes and interfaces that can represent the decompiled abstract syntax tree of method bodies.
Classes
  ClassDescription
Public classSyntaxTreeFormatter
Formats an ISyntaxElement to a textual representation, for debugging purposes.
Public classSyntaxTreeVisitor
Abstract implementation of a visitor of method bodies (ISyntaxMethodBody and IExpression).
Structures
  StructureDescription
Public structureLocalVariableAssignment
Represents the assignment of a local variable to an expression.
Interfaces
  InterfaceDescription
Public interfaceIAddressOfExpression
Expression that takes the address of the operand. Equivalent to the C# operator &.
Public interfaceIBinaryExpression
Expression that has two operands, Left and Right.
Public interfaceIBlockExpression
Block containing other blocks or instructions.
Public interfaceIConditionalExpression
Conditional expression, corresponding to the if keyword in C#.
Public interfaceIConstantExpression
Expression representing a build-time constant.
Public interfaceICopyBufferExpression
Expression equivalent to the Cpblk instruction.
Public interfaceIExpression
Represents an expression or an instruction.
Public interfaceIFieldExpression
Expression that represents a field.
Public interfaceIGotoExpression
Unconditional branching instruction.
Public interfaceIInitBufferExpression
Expression equivalent to the Initblk instruction.
Public interfaceILocalVariableExpression
Expression that represents a local variable.
Public interfaceIMetadataExpression
Expression that depends on a metadata declaration. This expression is used when compiling the typeof, sizeof or default keywords of C#, among others.
Public interfaceIMethodCallExpression
Expression representing a method call.
Public interfaceIMethodPointerExpression
Expression that represents a C-like pointer to a method.
Public interfaceINewArrayExpression
Expression that returns a new array.
Public interfaceINewObjectExpression
Expression that creates a new object by invoking a constructor.
Public interfaceIParameterExpression
Expression that represents a method parameter.
Public interfaceISequenceExpression
Sequence of instructions.
Public interfaceIStatementExpression
Represents a statement. A statement is the root of an expression tree.
Public interfaceISwitchExpression
Expression that represent a switch (conditional statement with multiple branches).
Public interfaceISyntaxElement
Represents an element of the syntax tree representing a method body.
Public interfaceISyntaxExceptionHandler
Represents an exception handler (either catch, finally or filter) attached to a block.
Public interfaceISyntaxLocalVariable
Expression that represents a local variable.
Public interfaceISyntaxMethodBody
Represents the body of a method.
Public interfaceISyntaxReflectionService
Service that exposes the method GetMethodBody(MethodBase, SyntaxAbstractionLevel), which allows to decompile a method and get a AST representation.
Public interfaceIUnaryExpression
Represents an expression with a single operand.
Public interfaceIValueOfExpression
Expression that returns the value stored at an address. Equivalent to the C# keyword *.
Public interfaceIZeroaryExpression
Expression with no operand.
Enumerations
  EnumerationDescription
Public enumerationAddressAlignment
Enumeration of address alignments for access to unmanaged memory represented by ICopyBufferExpression, IFieldExpression or IValueOfExpression.
Public enumerationSyntaxAbstractionLevel
Enumerates the level of abstraction and the level of details produced by the AST decompiler.
Public enumerationSyntaxElementKind
Enumeration of kinds of syntax elements (ISyntaxElement).