The following are the key phases and high-level logical operations of the F# compiler code in its various configurations:
* _Basic lexing_. Produces a token stream from input source file text.
* _White-space sensitive lexing_. Accepts and produces a token stream, augmenting per the F# Language Specification.
* _White-space sensitive lexing_. Accepts and produces a token stream, augmenting per the [F# Language Specification](https://fsharp.org/specs/language-spec/).
* _Parsing_. Accepts a token stream and produces an AST per the grammar in the F# Language Specification.
* _Parsing_. Accepts a token stream and produces an AST per the grammar in the [F# Language Specification](https://fsharp.org/specs/language-spec/).
* _Resolving references_. For .NET SDK generally references are resolved explicitly by external tooling.
There is a legacy aspect to this if references use old .NET Framework references including for