FSharp.Compiler.Syntax Namespace

Type/Module Description

BlockSeparator

Represents the location of the separator block + optional position of the semicolon (used for tooling support)

DebugPointAtBinding

Represents whether a debug point should be present for a 'let' binding, that is whether the construct corresponds to a debug point in the original source.

DebugPointAtFinally

Represents whether a debug point should be present for the 'finally' in a 'try .. finally', that is whether the construct corresponds to a debug point in the original source.

DebugPointAtFor

Represents whether a debug point should be present for the 'for' in a 'for...' loop, that is whether the construct corresponds to a debug point in the original source.

DebugPointAtInOrTo

Represents whether a debug point should be present for the 'in' or 'to' of a 'for...' loop, that is whether the construct corresponds to a debug point in the original source.

DebugPointAtLeafExpr

Represents a debug point at a leaf expression (e.g. an application or constant).

DebugPointAtSequential

Represents whether a debug point should be suppressed for either the first or second part of a sequential execution, that is whether the construct corresponds to a debug point in the original source.

DebugPointAtTarget

Represents whether a debug point should be present for the target of a decision tree, that is whether the construct corresponds to a debug point in the original source.

DebugPointAtTry

Represents whether a debug point should be present for a 'try', that is whether the construct corresponds to a debug point in the original source.

DebugPointAtWhile

Represents whether a debug point should be present for the 'while' in a 'while...' loop, that is whether the construct corresponds to a debug point in the original source.

DebugPointAtWith

Represents whether a debug point should be present for the 'with' in a 'try .. with', that is whether the construct corresponds to a debug point in the original source.

ExprAtomicFlag

Indicates if an expression is an atomic expression. An atomic expression has no whitespace unless enclosed in parentheses, e.g. 1, "3", ident, ident.[expr] and (expr). If an atomic expression has type T, then the largest expression ending at the same range as the atomic expression also has type T.

Ident

Represents an identifier in F# code

LongIdent

Represents a long identifier e.g. 'A.B.C'

ParsedHashDirective

Represents a parsed hash directive

ParsedHashDirectiveArgument

Represents a parsed hash directive argument

ParsedImplFile

Represents a parsed implementation file made up of fragments

ParsedImplFileFragment

Represents the syntax tree for the contents of a parsed implementation file

ParsedImplFileInput

Represents the full syntax tree, file name and other parsing information for an implementation file

ParsedInput

Represents the syntax tree for a parsed implementation or signature file

ParsedScriptInteraction

Represents a parsed syntax tree for an F# Interactive interaction

ParsedSigFile

Represents a parsed signature file made up of fragments

ParsedSigFileFragment

Represents the syntax tree for the contents of a parsed signature file

ParsedSigFileInput

Represents the full syntax tree, file name and other parsing information for a signature file

ParserDetail

Indicates if the construct arises from error recovery

PrettyNaming

Some general F# utilities for mangling / unmangling / manipulating names. Anything to do with special names of identifiers and other lexical rules

QualifiedNameOfFile

Represents a qualifying name for anonymous module specifications and implementations,

RecordFieldName

Represents a record field name plus a flag indicating if given record field name is syntactically correct and can be used in name resolution.

ScopedPragma

Represents a scoped pragma

SeqExprOnly

Indicates if a for loop is 'for x in e1 -> e2', only valid in sequence expressions

SynAccess

Represents an accessibility modifier in F# syntax

SynArgInfo

Represents the argument names and other metadata for a parameter for a member or function

SynArgPats

Represents a syntax tree for arguments patterns

SynAttribute

Represents an attribute

SynAttributeList

List of attributes enclosed in [< ... >].

SynAttributes

SynBinding

Represents a binding for a 'let' or 'member' declaration

SynBindingKind

The kind associated with a binding - "let", "do" or a standalone expression

SynBindingReturnInfo

Represents the return information in a binding for a 'let' or 'member' declaration

SynByteStringKind

Indicate if the byte string had a special format

SynComponentInfo

Represents the syntax tree associated with the name of a type definition or module in signature or implementation. This includes the name, attributes, type parameters, constraints, documentation and accessibility for a type definition or module. For modules, entries such as the type parameters are always empty.

SynConst

The unchecked abstract syntax tree of constants in F# types and expressions.

SynEnumCase

Represents the syntax tree for one case in an enum definition.

SynExceptionDefn

Represents the right hand side of an exception declaration 'exception E = ... ' plus any member definitions for the exception

SynExceptionDefnRepr

Represents the right hand side of an exception declaration 'exception E = ... '

SynExceptionSig

Represents the right hand side of an exception definition in a signature file

SynExpr

Represents a syntax tree for F# expressions

SynExprAndBang

SynExprRecordField

SynField

Represents the syntax tree for a field declaration in a record or class

SynIdent

Represents an identifier with potentially additional trivia information.

SynInterfaceImpl

Represents a set of bindings that implement an interface

SynInterpolatedStringPart

SynLongIdent

Represents a long identifier with possible '.' at end. Typically dotRanges.Length = lid.Length-1, but they may be same if (incomplete) code ends in a dot, e.g. "Foo.Bar." The dots mostly matter for parsing, and are typically ignored by the typechecker, but if dotRanges.Length = lid.Length, then the parser must have reported an error, so the typechecker is allowed more freedom about typechecking these expressions. LongIdent can be empty list - it is used to denote that name of some AST element is absent (i.e. empty type name in inherit)

SynLongIdentHelpers

SynMatchClause

Represents a clause in a 'match' expression

SynMeasure

Represents an unchecked syntax tree of F# unit of measure annotations.

SynMemberDefn

Represents a definition element within a type definition, e.g. 'member ... '

SynMemberDefns

SynMemberFlags

Represents the flags for a 'member' declaration

SynMemberKind

Note the member kind is actually computed partially by a syntax tree transformation in tc.fs

SynMemberSig

Represents the syntax tree for a member signature (used in signature files, abstract member declarations and member constraints)

SynModuleDecl

Represents a definition within a module

SynModuleOrNamespace

Represents the definition of a module or namespace

SynModuleOrNamespaceKind

Represents the kind of a module or namespace definition

SynModuleOrNamespaceSig

Represents the definition of a module or namespace in a signature file

SynModuleSigDecl

Represents a definition within a module or namespace in a signature file

SynOpenDeclTarget

Represents the target of the open declaration

SynPat

Represents a syntax tree for an F# pattern

SynRationalConst

Represents an unchecked syntax tree of F# unit of measure exponents.

SynReturnInfo

Represents the syntactic elements associated with the "return" of a function or method.

SynSimplePat

Represents a syntax tree for simple F# patterns

SynSimplePatAlternativeIdInfo

Represents the alternative identifier for a simple pattern

SynSimplePats

Represents a simple set of variable bindings a, (a, b) or (a: Type, b: Type) at a lambda, function definition or other binding point, after the elimination of pattern matching from the construct, e.g. after changing a "function pat1 -> rule1 | ..." to a "fun v -> match v with ..."

SynStaticOptimizationConstraint

Represents a syntax tree for a static optimization constraint in the F# core library

SynStringKind

Indicate if the string had a special format

SynTupleTypeSegment

SynTypar

Represents a syntactic type parameter

SynTyparDecl

Represents the explicit declaration of a type parameter

SynTyparDecls

List of type parameter declarations with optional type constraints, enclosed in `< ... >` (postfix) or `( ... )` (prefix), or a single prefix parameter.

SynType

Represents a syntax tree for F# types

SynTypeConstraint

The unchecked abstract syntax tree of F# type constraints

SynTypeDefn

Represents a type or exception declaration 'type C = ... ' plus any additional member definitions for the type

SynTypeDefnKind

Represents the kind of a type definition whether explicit or inferred

SynTypeDefnRepr

Represents the right hand side of a type or exception declaration 'type C = ... ' plus any additional member definitions for the type

SynTypeDefnSig

Represents the syntax tree for a type definition in a signature

SynTypeDefnSigRepr

Represents the syntax tree for the right-hand-side of a type definition in a signature. Note: in practice, using a discriminated union to make a distinction between "simple" types and "object oriented" types is not particularly useful.

SynTypeDefnSimpleRepr

Represents the syntax tree for the core of a simple type definition, in either signature or implementation.

SynUnionCase

Represents the syntax tree for one case in a union definition.

SynUnionCaseKind

Represents the syntax tree for the right-hand-side of union definition, excluding members, in either a signature or implementation.

SynValData

Represents extra information about the declaration of a value

SynValInfo

The argument names and other metadata for a member or function

SynValSig

Represents the syntax tree for a 'val' definition in an abstract slot or a signature file

SynValTyparDecls

Represents the names and other metadata for the type parameters for a member or function

TyparStaticReq

Represents whether a type parameter has a static requirement or not (^T or 'T)