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.