| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
Language.CSharp.Syntax
Description
This module contains the abstract syntax tree of C#.
- data CompilationUnit = CompilationUnit [Using] [Declaration]
- data Using = Using Name Bool
- data Declaration
- data TypeDeclaration
- = ClassTypeDeclaration [AttributeSection] [Modifier] Identifier [TypeParameter] [TypeName] [TypeParameterConstraintClause] ClassBody
- | StructTypeDeclaration [AttributeSection] [Modifier] Identifier [TypeParameter] [TypeName] [TypeParameterConstraintClause] StructBody
- | EnumTypeDeclaration [AttributeSection] [Modifier] Identifier (Maybe IntegralType) EnumBody
- | InterfaceTypeDeclaration [AttributeSection] [Modifier] Identifier [VariantTypeParameter] [TypeName] [TypeParameterConstraintClause] InterfaceBody
- | DelegateTypeDeclaration [AttributeSection] [Modifier] (Maybe Type) Identifier [VariantTypeParameter] FormalParams [TypeParameterConstraintClause]
- newtype ClassBody = ClassBody [MemberDeclaration]
- newtype StructBody = StructBody [MemberDeclaration]
- newtype EnumBody = EnumBody [EnumMemberDeclaration]
- data EnumMemberDeclaration = EnumMemberDeclaration Identifier (Maybe Expression)
- newtype InterfaceBody = InterfaceBody [InterfaceMemberDeclaration]
- data InterfaceMemberDeclaration
- = InterfaceMethodMemberDeclaration [AttributeSection] [Modifier] (Maybe Type) Identifier [TypeParameter] FormalParams [TypeParameterConstraintClause]
- | InterfacePropertyMemberDeclaration [AttributeSection] [Modifier] Type Identifier (Maybe InterfaceAccessor) (Maybe InterfaceAccessor)
- | InterfaceEventMemberDeclaration [AttributeSection] [Modifier] Type Identifier
- | InterfaceIndexerMemberDeclaration [AttributeSection] [Modifier] Type FormalParams (Maybe InterfaceAccessor) (Maybe InterfaceAccessor)
- data MemberDeclaration
- = FieldMemberDeclaration [AttributeSection] [Modifier] Type [VariableDeclarator]
- | MethodMemberDeclaration [AttributeSection] [Modifier] (Maybe Type) Name [TypeParameter] FormalParams [TypeParameterConstraintClause] MethodBody
- | PropertyMemberDeclaration [AttributeSection] [Modifier] Type Name PropertyBody
- | EventVariableMemberDeclaration [AttributeSection] [Modifier] Type [VariableDeclarator]
- | EventAccessorMemberDeclaration [AttributeSection] [Modifier] Type Name EventAccessor EventAccessor
- | IndexerMemberDeclaration [AttributeSection] [Modifier] IndexerDeclarator IndexerBody
- | OperatorMemberDeclaration [AttributeSection] [Modifier] OperatorDeclarator OperatorBody
- | ConstructorMemberDeclaration [AttributeSection] [Modifier] Identifier FormalParams (Maybe ConstructorInitializer) ConstructorBody
- | DestructorMemberDeclaration [AttributeSection] [Modifier] Identifier DestructorBody
- | TypeMemberDeclaration TypeDeclaration
- data InterfaceAccessor
- data EventAccessor
- data ConstructorInitializer
- data Argument
- data OperatorDeclarator
- data OverloadableUnaryOperator
- data OperatorBody
- newtype ConstructorBody = ConstructorStatementBody [Statement]
- newtype DestructorBody = DestructorStatementBody [Statement]
- data IndexerBody
- data IndexerDeclarator
- data PropertyBody
- data AccessorDeclaration
- data MethodBody
- data FormalParams = FormalParams [FormalParam] (Maybe ParamArray)
- data FormalParam = FormalParam (Maybe ParameterModifier) Type Identifier (Maybe Expression)
- data ParamArray = ParamArray ArrayType Identifier
- data ParameterModifier
- data Statement
- = Labeled Identifier Statement
- | Declaration LocalVarDeclaration
- | Block [Statement]
- | Empty
- | ExpressionStatement Expression
- | IfThenElse Expression Statement (Maybe Statement)
- | Switch Expression [SwitchBlock]
- | While Expression Statement
- | Do Statement Expression
- | For (Maybe ForInitializer) (Maybe Expression) (Maybe [Expression]) Statement
- | ForEach LocalVarType Identifier Expression Statement
- | Break
- | Continue
- | Goto GotoTarget
- | Return (Maybe Expression)
- | Throw (Maybe Expression)
- | Try [Statement] [Catch] [Statement]
- | CheckedStatement [Statement]
- | UncheckedStatement [Statement]
- | Lock Expression Statement
- | UsingStatement ResourceAcquisition Statement
- | Yield (Maybe Expression)
- data LocalVarDeclaration = LocalVarDeclaration LocalVarType [VariableDeclarator]
- data GotoTarget
- data SwitchBlock
- data ResourceAcquisition
- data VariableDeclarator = VariableDeclarator Identifier (Maybe VariableInitializer)
- data VariableInitializer
- data LocalVarType
- newtype ArrayInitializer = ArrayInitializer [VariableInitializer]
- data ForInitializer
- data Catch = Catch (Maybe ExceptionSpecifier) (Maybe Expression) [Statement]
- data ExceptionSpecifier = ExceptionSpecifier Type (Maybe Identifier)
- data Expression
- = Literal Literal
- | SimpleName Identifier [TypeArgument]
- | Parenthesized Expression
- | Assign Expression AssignmentOperator Expression
- | MemberAccess MemberAccess
- | Invocation Expression [Argument]
- | ElementAccess Expression [Expression]
- | This
- | Base
- | ObjectCreationExpression Type [Argument] (Maybe ObjectCreationInitializer)
- | ObjectCreationTypeInitializer Type ObjectCreationInitializer
- | ArrayCreationExpression Type [Expression] [RankSpecifier] (Maybe ArrayCreationInitializer)
- | ArrayCreationTypeInitializer Type ArrayCreationInitializer
- | ArrayCreationRankInitializer RankSpecifier ArrayCreationInitializer
- | Sizeof Type
- | Typeof TypeOfExpression
- | Checked Expression
- | Unchecked Expression
- | Default Type
- | BinaryOperator BinaryOperator Expression Expression
- | Conditional Expression Expression Expression
- | Nameof NameofEntity
- | Delegate (Maybe AnonymousFunctionSignature) [Statement]
- | Lambda AnonymousFunctionSignature AnonymousFunctionBody
- | UnaryPlus Expression
- | UnaryMinus Expression
- | UnaryNot Expression
- | UnaryBitwiseNot Expression
- | UnaryPreIncrement Expression
- | UnaryPreDecrement Expression
- | UnaryPostIncrement Expression
- | UnaryPostDecrement Expression
- | UnaryCast Type Expression
- | UnaryAwait Expression
- data AnonymousFunctionSignature
- data AnonymousFunctionBody
- data AnonymousFunctionParameter = ExplicitAnonymousFunctionParameter (Maybe ParameterModifier) Type Identifier
- data NameofEntity
- newtype TypeOfExpression = TypeofType (Maybe Type)
- data ArrayCreationInitializer
- data ObjectCreationInitializer
- data MemberInitializer = MemberInitializer InitializerTarget InitializerValue
- data InitializerTarget
- data InitializerValue
- data MemberAccess
- data Literal
- data AssignmentOperator
- data BinaryOperator
- = BinaryPlus
- | BinaryMinus
- | BinaryMultiply
- | BinaryDivide
- | BinaryModulo
- | BinaryShiftLeft
- | BinaryShiftRight
- | BinaryEquals
- | BinaryNotEquals
- | BinaryLessThan
- | BinaryLessThanEqual
- | BinaryGreaterThan
- | BinaryGreaterThanEqual
- | BinaryBitwiseAnd
- | BinaryBitwiseXor
- | BinaryBitwiseOr
- | BinaryAnd
- | BinaryOr
- | BinaryIs
- | BinaryAs
- | BinaryNullCoalescing
- newtype TypeParameter = TypeParameter Identifier
- data TypeParameterConstraintClause = TypeParameterConstraintClause TypeParameter [TypeParameterConstraint]
- data VariantTypeParameter = VariantTypeParameter (Maybe Variance) Identifier
- data Variance
- data TypeParameterConstraint
- newtype TypeArgument = TypeArgument Type
- data Type
- data SimpleType
- data IntegralType
- data FloatingPointType
- data ArrayType = ArrayType Type [RankSpecifier]
- newtype RankSpecifier = RankSpecifier Int
- data TypeName
- data AttributeSection = AttributeSection (Maybe AttributeTarget) [Attribute]
- data GlobalAttributeSection = GlobalAttributeSection (Maybe GlobalAttributeTarget) [Attribute]
- data GlobalAttributeTarget
- data AttributeTarget
- data Attribute = Attribute TypeName [AttributeArgument]
- data AttributeArgument
- data Modifier
- newtype Identifier = Identifier String
- newtype Name = Name [Identifier]
Documentation
data CompilationUnit Source #
A compilation unit is the top level definition of a C# program.
Constructors
| CompilationUnit [Using] [Declaration] |
Instances
A using declaration appears within a compilation unit to indicate which namespace to include.
data Declaration Source #
A declaration appears within a compilation unit introducing a namespace, or a type declaration.
Constructors
| NamespaceDeclaration [GlobalAttributeSection] Name [Declaration] | A namespace declaration. |
| TypeDeclaration TypeDeclaration | A type declaration. |
Instances
data TypeDeclaration Source #
A type declaration appears withing a compilation unit, a namespace, or another type declaration. A type declaration introduces a new type which can be either a class, struct, enum, interface or delegate.
Constructors
| ClassTypeDeclaration [AttributeSection] [Modifier] Identifier [TypeParameter] [TypeName] [TypeParameterConstraintClause] ClassBody | A class declaration containing its attributes, modifiers, identifier, type parameters, the types it inherits from, the type parameter constaints and its body. |
| StructTypeDeclaration [AttributeSection] [Modifier] Identifier [TypeParameter] [TypeName] [TypeParameterConstraintClause] StructBody | A struct declaration containing its attributes, modifiers, identifier, type parameters, the types it inherits from, the type parameter constraints and its body. |
| EnumTypeDeclaration [AttributeSection] [Modifier] Identifier (Maybe IntegralType) EnumBody | An enum declaration containing its attributes, modifiers, identifier, the type it inherits from and its body. |
| InterfaceTypeDeclaration [AttributeSection] [Modifier] Identifier [VariantTypeParameter] [TypeName] [TypeParameterConstraintClause] InterfaceBody | An interface declaration containing its attributes, modifiers, identifier, the type parameters, the types it inherits from, the type parameter constraints and its body. |
| DelegateTypeDeclaration [AttributeSection] [Modifier] (Maybe Type) Identifier [VariantTypeParameter] FormalParams [TypeParameterConstraintClause] | A delegate declaration containing its attributes, modifiers, return type, identifier, type parameters, formal parameters and type parameter constraints. |
Instances
A class body appears within a class type declaration.
Constructors
| ClassBody [MemberDeclaration] |
newtype StructBody Source #
A struct body appears within a struct type declaration.
Constructors
| StructBody [MemberDeclaration] |
Instances
An enum body appears within an enum type declaration.
Constructors
| EnumBody [EnumMemberDeclaration] |
data EnumMemberDeclaration Source #
An enum member declaration appears within an enum body.
Constructors
| EnumMemberDeclaration Identifier (Maybe Expression) | An enum member declaration containing the identifier and its value. |
Instances
newtype InterfaceBody Source #
An interface body appears within an interface type declaration.
Constructors
| InterfaceBody [InterfaceMemberDeclaration] |
Instances
data InterfaceMemberDeclaration Source #
An interface member declaration appears within an interface body.
Constructors
| InterfaceMethodMemberDeclaration [AttributeSection] [Modifier] (Maybe Type) Identifier [TypeParameter] FormalParams [TypeParameterConstraintClause] | A method declaration containing its attributes, modifiers, return type identifier, type parameters, formal parameters and type parameter constraints. |
| InterfacePropertyMemberDeclaration [AttributeSection] [Modifier] Type Identifier (Maybe InterfaceAccessor) (Maybe InterfaceAccessor) | A property declaration containing its attributes, modifiers, type identifier and accessor(s). At least one accessor is defined and they can appear in any order. |
| InterfaceEventMemberDeclaration [AttributeSection] [Modifier] Type Identifier | An event declaration containing its attributes, modifiers, type and identifier. |
| InterfaceIndexerMemberDeclaration [AttributeSection] [Modifier] Type FormalParams (Maybe InterfaceAccessor) (Maybe InterfaceAccessor) | An indexer declaration containing its attributes, modifiers, type, formal parameters and accessor(s). At least one accessor is defined and they can appear in any order. |
data MemberDeclaration Source #
A member declaration appears within a class- or struct body.
Constructors
| FieldMemberDeclaration [AttributeSection] [Modifier] Type [VariableDeclarator] | A field declaration containing its attributes, modifiers, type and declarator(s). |
| MethodMemberDeclaration [AttributeSection] [Modifier] (Maybe Type) Name [TypeParameter] FormalParams [TypeParameterConstraintClause] MethodBody | A method declaration containing its attributes, modifiers, return type name, type parameters, formal parameters, type parameter constraints and body. |
| PropertyMemberDeclaration [AttributeSection] [Modifier] Type Name PropertyBody | A property declaration containing its attributes, modifiers, type, name and body. |
| EventVariableMemberDeclaration [AttributeSection] [Modifier] Type [VariableDeclarator] | An event declaration containing its attributes, modifiers, type and declarator(s). |
| EventAccessorMemberDeclaration [AttributeSection] [Modifier] Type Name EventAccessor EventAccessor | An event declaration containing its attributes, modifiers, type, name and accessors. The accessors can appear in any order. |
| IndexerMemberDeclaration [AttributeSection] [Modifier] IndexerDeclarator IndexerBody | An indexer declaration containing its attributes, modifiers, declarator and body. |
| OperatorMemberDeclaration [AttributeSection] [Modifier] OperatorDeclarator OperatorBody | An operator declaration containing its attributes, modifiers, declarator and body. |
| ConstructorMemberDeclaration [AttributeSection] [Modifier] Identifier FormalParams (Maybe ConstructorInitializer) ConstructorBody | A constructor declaration containing its attributes, identifier, formal parameters, the base/this constructor call and body. |
| DestructorMemberDeclaration [AttributeSection] [Modifier] Identifier DestructorBody | A destructor declaration containing its attributes, modifiers, identifier and body. |
| TypeMemberDeclaration TypeDeclaration | A nested type declaration. |
Instances
data InterfaceAccessor Source #
A property accessor appears within an property declaration of an interface declaration.
Constructors
| GetInterfaceAccessor [AttributeSection] | |
| SetInterfaceAccessor [AttributeSection] |
Instances
data EventAccessor Source #
An event acessor appears within an event declaration.
Constructors
| AddEventAccessor [AttributeSection] [Statement] | An add event accessor containing its attributes and statements. |
| RemoveEventAccessor [AttributeSection] [Statement] | A remove event accessor containing its attributes and statements. |
Instances
data ConstructorInitializer Source #
A constructor initializer appears within a constructor declaration.
Constructors
| ConstructorBaseCall [Argument] | |
| ConstructorThisCall [Argument] |
Instances
An argument appears within any kind of method invocation.
Constructors
| Argument (Maybe Identifier) Expression | An argument containing its identifier and expression. |
| RefArgument (Maybe Identifier) Expression | A ref argument containing its identifier and expression. |
| OutArgument (Maybe Identifier) Expression | An out argument containing its identifier and expression. |
data OperatorDeclarator Source #
An operator declarator appears within a operator declaration.
Constructors
| UnaryOperatorDeclarator Type OverloadableUnaryOperator Type Identifier | An unary operator declaration containing its return type, operator, and formal parameter type and identifier. |
| BinaryOperatorDeclarator Type BinaryOperator Type Identifier Type Identifier | A binary operator declaration containing its return type, operator, first formal parameter type and identifier, and second formal parameter type and identifier. |
| ImplicitConversionOperatorDeclarator Type Type Identifier | An implicit conversion declarator containing its return type, and formal parameter type and identifier. |
| ExplicitConversionOperatorDeclarator Type Type Identifier | An explicit conversion declarator containing its return type, and formal parameter type and identifier. |
Instances
data OverloadableUnaryOperator Source #
An overloadable unary operator appears within a unary operator declarator.
data OperatorBody Source #
An operator body appears within a operator declaration.
Constructors
| OperatorStatementBody [Statement] | An operator body containing its statements. |
| OperatorExpressionBody Expression | An operator body containing its expression. |
| OperatorNoBody | An operator body without an implementation. |
Instances
newtype ConstructorBody Source #
A constructor body appears within a constructor declaration.
Constructors
| ConstructorStatementBody [Statement] |
Instances
newtype DestructorBody Source #
A destructor body appears within a destructor declaration.
Constructors
| DestructorStatementBody [Statement] |
Instances
data IndexerBody Source #
A indexer body appears within an indexer declaration.
Constructors
| IndexerAccessor (Maybe AccessorDeclaration) (Maybe AccessorDeclaration) | An indexer body containing its accessor(s). At least one accessor is defined and they can appear in any order. |
| IndexerLambda Expression | An indexer body containing its expression. |
Instances
data IndexerDeclarator Source #
An indexer declarator appears within an indexer declaration.
Constructors
| IndexerDeclaratorThis Type FormalParams | An indexer declarator containing its return type and formal parameters. |
| IndexerDeclaratorInterface Type Type FormalParams | An indexer declarator containing its return type, interface type and formal parameters. |
Instances
data PropertyBody Source #
A property body appears within a property declaration.
Constructors
| PropertyBody (Maybe AccessorDeclaration) (Maybe AccessorDeclaration) (Maybe VariableInitializer) | A property body containing its accessor(s) and variable initializer. At least one accessor is defined an they can appear in any order. |
| PropertyLambda Expression | A propety body containing its expression. |
Instances
data AccessorDeclaration Source #
An accessor declaration appears within a property body.
Constructors
| GetAccessorDeclaration [AttributeSection] [Modifier] (Maybe [Statement]) | A get propety declaration containing its attributes, modifiers and body. |
| SetAccessorDeclaration [AttributeSection] [Modifier] (Maybe [Statement]) | A set propety declaration containing its attributes, modifiers and body. |
Instances
data MethodBody Source #
A method body appears within a method declaration.
Constructors
| MethodStatementBody [Statement] | An method body containing its statements. |
| MethodExpressionBody Expression | An method body containing its expression. |
| MethodNoBody | An method body without an implementation. |
Instances
data FormalParams Source #
A formal parameters containing the formal parameters and a params array.
Constructors
| FormalParams [FormalParam] (Maybe ParamArray) |
Instances
data FormalParam Source #
A formal parameter containing its modifier ty identifier and default value.
Constructors
| FormalParam (Maybe ParameterModifier) Type Identifier (Maybe Expression) |
Instances
data ParamArray Source #
A formal params array containing its array type and identifier.
Constructors
| ParamArray ArrayType Identifier |
Instances
A statement.
Constructors
| Labeled Identifier Statement | A labeled statement containing its label and statement. |
| Declaration LocalVarDeclaration | A declaration containing its variable declaration. |
| Block [Statement] | A block statement. |
| Empty | An empty statement. |
| ExpressionStatement Expression | An expression statement. |
| IfThenElse Expression Statement (Maybe Statement) | An if then else statement containing its guard, true body and false body. |
| Switch Expression [SwitchBlock] | A switch statement containing its guard and switch blocks. |
| While Expression Statement | A while statement containing its guard and body. |
| Do Statement Expression | A do while statement containing its body and guard. |
| For (Maybe ForInitializer) (Maybe Expression) (Maybe [Expression]) Statement | A for statement containing its initializer, guard, increment expression and body. |
| ForEach LocalVarType Identifier Expression Statement | A foreach statement containing its variable type name and expression, and body. |
| Break | A break statement. |
| Continue | A continue statement. |
| Goto GotoTarget | A goto statement. |
| Return (Maybe Expression) | A return statement. |
| Throw (Maybe Expression) | A throw statement. |
| Try [Statement] [Catch] [Statement] | A try catch finally statement containing the try body, catches and finally body. |
| CheckedStatement [Statement] | A checked statement. |
| UncheckedStatement [Statement] | An unchecked statement. |
| Lock Expression Statement | A lock statement containing its locking object and body. |
| UsingStatement ResourceAcquisition Statement | An using statement containing its resource and body. |
| Yield (Maybe Expression) | A yield statement containing its return expression. |
data LocalVarDeclaration Source #
A local variable declaration appears within a local declaration or for initializer.
Constructors
| LocalVarDeclaration LocalVarType [VariableDeclarator] | A local variable declaration containing its type and declarators. |
Instances
data GotoTarget Source #
A goto target appears within a goto statement.
Constructors
| GotoLabel Identifier | |
| GotoCase Expression | |
| GotoDefault |
Instances
data SwitchBlock Source #
A switch block appears within a switch statement.
Constructors
| LabeledBlock Expression [Statement] | A labeled block containing its label and body. |
| DefaultBlock [Statement] | A default block containing its body. |
Instances
data ResourceAcquisition Source #
A resource acquisition appears within an using statement.
Constructors
| ResourceAcquisitionVariable [VariableDeclarator] | A resource acquisition containing its variable declarators. |
| ResourceAcquisitionExpression Expression | A resource acquisition containing its expression. |
Instances
data VariableDeclarator Source #
A variable declarator containing its identifier and initializer.
Constructors
| VariableDeclarator Identifier (Maybe VariableInitializer) |
Instances
data VariableInitializer Source #
A variable initializer.
Constructors
| VariableInitializerExpression Expression | A variable initializer containing its expression. |
| VariableInitializerArray ArrayInitializer | A variable initializer containing its array initializer. |
Instances
newtype ArrayInitializer Source #
An array initializer containing its variable initializers.
Constructors
| ArrayInitializer [VariableInitializer] |
Instances
data ForInitializer Source #
A for initializer appears within a for statement.
Constructors
| ForInitializerDeclaration LocalVarDeclaration | A for initializer containing its variable declaration. |
| ForInitializerExpressions [Expression] | A for initializer containing its expressions. |
Instances
A catch block appears within a try statement.
Constructors
| Catch (Maybe ExceptionSpecifier) (Maybe Expression) [Statement] | A catch block containing its exception specifier, exception filter and body. |
data ExceptionSpecifier Source #
An exception specifier containing its type and identifier.
Constructors
| ExceptionSpecifier Type (Maybe Identifier) |
Instances
data Expression Source #
An expression.
Constructors
| Literal Literal | A literal. |
| SimpleName Identifier [TypeArgument] | A named value containing its identifer and type arguments. |
| Parenthesized Expression | A parenthesized expression. |
| Assign Expression AssignmentOperator Expression | An assignment containing its left-hand side, operator and right-hand side.. |
| MemberAccess MemberAccess | An member access. |
| Invocation Expression [Argument] | An method invocation containing its method and arguments. |
| ElementAccess Expression [Expression] | An element access containing its array and indices. |
| This | A this access expression. |
| Base | A base access expression. |
| ObjectCreationExpression Type [Argument] (Maybe ObjectCreationInitializer) | An object creation containing its type, arguments and initializer.
e.g. |
| ObjectCreationTypeInitializer Type ObjectCreationInitializer | An object creation containing its type and initializer.
e.g. |
| ArrayCreationExpression Type [Expression] [RankSpecifier] (Maybe ArrayCreationInitializer) | An array creation containing its type, rank specifiers and initialier. |
| ArrayCreationTypeInitializer Type ArrayCreationInitializer | An array creation containing its type and intializer. |
| ArrayCreationRankInitializer RankSpecifier ArrayCreationInitializer | An array creation containing its rank specifier and initializer. |
| Sizeof Type | A sizeof expression. |
| Typeof TypeOfExpression | A typeof expression. |
| Checked Expression | A checked expression. |
| Unchecked Expression | An unchecked expression. |
| Default Type | A default expression. |
| BinaryOperator BinaryOperator Expression Expression | A binary operator containing its operator, left expression and right expression. |
| Conditional Expression Expression Expression | A conditional expression containing its guard, first expression and second expression, |
| Nameof NameofEntity | A nameof expression. |
| Delegate (Maybe AnonymousFunctionSignature) [Statement] | A delegate expression containing its signature and body. |
| Lambda AnonymousFunctionSignature AnonymousFunctionBody | A lambda expression containing its signature and body. |
| UnaryPlus Expression | An unary |
| UnaryMinus Expression | An unary |
| UnaryNot Expression | An unary |
| UnaryBitwiseNot Expression | An unary |
| UnaryPreIncrement Expression | An unary |
| UnaryPreDecrement Expression | An unary |
| UnaryPostIncrement Expression | An unary |
| UnaryPostDecrement Expression | An unary |
| UnaryCast Type Expression | A cast containing its target type and expression. |
| UnaryAwait Expression | An await expression. |
Instances
data AnonymousFunctionSignature Source #
An anonymous function signature appears within a delegate- or lambda expression.
Constructors
| ExplicitAnonymousFunctionSignature [AnonymousFunctionParameter] | An explicit anonymous function signature containing its formal parameters. |
| ImplicitAnonymousFunctionSignature [Identifier] | An implicit anonymous function signature containing its formal parameters. |
data AnonymousFunctionBody Source #
An anonymous function body appears within a lambda expression.
Constructors
| AnonymousFunctionStatementBody [Statement] | A anonymous function body containing its statements. |
| AnonymousFunctionExpressionBody Expression | A anonymous function body containing its expression. |
Instances
data AnonymousFunctionParameter Source #
An anonymous function parameter containing its modifier, type and identifier.
Constructors
| ExplicitAnonymousFunctionParameter (Maybe ParameterModifier) Type Identifier |
data NameofEntity Source #
A nameof entity appears within a nameof expression.
Constructors
| NameofIdentifier Identifier | A nameof containing its identifier. |
| NameofThis Identifier | A nameof this containing its identifier. |
| NameofBase Identifier | A nameof base containing its identifier. |
| NameofEntity NameofEntity Identifier | A nameof containing its entity and identifier. |
| NameofPredefinedType SimpleType Identifier | A nameof containing its simple type and identifier. |
Instances
newtype TypeOfExpression Source #
A typeof expression containing its type where Nothing represents
void.
Constructors
| TypeofType (Maybe Type) |
Instances
data ArrayCreationInitializer Source #
An array creation initializer appears withing an array creation expression.
Constructors
| ArrayCreationInitializerExpression [Expression] | An array creation initializer containing its values. |
| ArrayCreationInitializerInitializers [ArrayCreationInitializer] | An array creation initializer containing its nested initializers. |
data ObjectCreationInitializer Source #
An object creation initializer appears within an object creation expression.
Constructors
| ObjectInitializer [MemberInitializer] | An object initializer containing its member initializers. |
| CollectionInitializer ArrayCreationInitializer | A collection initializer containing its initializers. |
data MemberInitializer Source #
A member initializer containing its target and value.
Constructors
| MemberInitializer InitializerTarget InitializerValue |
Instances
data InitializerTarget Source #
An initialization target appears within a member initializer.
Constructors
| InitializerTargetIdentifier Identifier | An initializer target containing its identifier. |
| InitializerTargetList [Argument] | An initializer target containing its values. |
Instances
data InitializerValue Source #
An initialization value appears within a member initializer.
Constructors
| InitializerValueExpression Expression | An initializer value containing its value. |
| InitializerValueInitializer ObjectCreationInitializer | An initializer value containing its nested values. |
Instances
data MemberAccess Source #
A member access appearing within an member access expression.
Constructors
| PrimaryMemberAccess Expression Identifier [TypeArgument] | A member access containing its expression, identifier and type arguments. |
| PredefinedMemberAccess SimpleType Identifier [TypeArgument] | A member access containing its simple type, identifier and type arguments. |
| QualifiedMemberAccess Identifier Identifier Identifier | A member access containing its namespace, identifier, and identifier. |
Instances
A literal.
data AssignmentOperator Source #
An assignment operator.
Constructors
| OpAssign | |
| OpAssignPlus | |
| OpAssignMinus | |
| OpAssignMultiply | |
| OpAssignDivide | |
| OpAssignModulo | |
| OpAssignBitwiseAnd | |
| OpAssignBitwiseOr | |
| OpAssignBitwiseXor | |
| OpAssignBitwiseLeftShift | |
| OpAssignBitwiseRightShift |
Instances
data BinaryOperator Source #
A binary operator.
Constructors
Instances
newtype TypeParameter Source #
A type parameter containing its identifier.
Constructors
| TypeParameter Identifier |
Instances
data TypeParameterConstraintClause Source #
A type parameter constraint clause containing its type parameter and constraints.
data VariantTypeParameter Source #
A variant type parameter containing its variance and identifier.
Constructors
| VariantTypeParameter (Maybe Variance) Identifier |
A variance appears within a variant type parameter.
Constructors
| VarianceIn | |
| VarianceOut |
data TypeParameterConstraint Source #
A type parameter constraint appears within a type parameter constraints clause.
Constructors
| TypeConstraint Type | A type constraint containing its type. |
| ClassConstraint | A class constraint. |
| StructConstraint | A struct constraint. |
| NewConstraint | A new() constraint. |
newtype TypeArgument Source #
A type argument containing its type.
Constructors
| TypeArgument Type |
Instances
A type.
Constructors
| TypeNamed TypeName | A named type containing its name. |
| TypeArray ArrayType | An array type containing its array type. |
| TypeSimple SimpleType | A simple type containing its simple type. |
| TypeDynamic | A dynamic type. |
| TypeNullable Type | A nullable type containing its type. |
An array type containing its base type and rank specifiers.
Constructors
| ArrayType Type [RankSpecifier] |
newtype RankSpecifier Source #
A rank specifier containing the number of ranks.
Constructors
| RankSpecifier Int |
Instances
A type name.
Constructors
| TypeName Name [TypeArgument] | A type name containing its name and type arguments. |
| TypeAlias Identifier Identifier [TypeArgument] | A type alias containing its namespace, identifier and type arguments. |
data AttributeSection Source #
An attribute section containing the attribute target and attributes.
Constructors
| AttributeSection (Maybe AttributeTarget) [Attribute] |
Instances
data GlobalAttributeSection Source #
A global attribute section containing the attribute target and attributes.
Constructors
| GlobalAttributeSection (Maybe GlobalAttributeTarget) [Attribute] |
data GlobalAttributeTarget Source #
A global attribute target appears within a global attribute section.
Constructors
| AttributeTargetAssembly | |
| AttributeTargetModule |
Instances
data AttributeTarget Source #
An attribute target appears within a attribute section.
Constructors
| AttributeTargetField | |
| AttributeTargetEvent | |
| AttributeTargetMethod | |
| AttributeTargetParam | |
| AttributeTargetProperty | |
| AttributeTargetReturn | |
| AttributeTargetType |
Instances
An attribute containing its type name and attribute arguments.
Constructors
| Attribute TypeName [AttributeArgument] |
data AttributeArgument Source #
An attribute argument appears within an attribute.
Constructors
| AttributeArgumentExpression Expression | An expression attribute argument containing its expression. |
| AttributeArgumentNamed Identifier Expression | An named attribute argument containing its name and expression. |
Instances
A modifier specifying properties of declarations on different levels.