Inside a compiler, the components are the following:
- Parser
- Symbols and metadata import
- Binder
- IL emitter
For each component of the pipeline, we now have a set of compiler APIs we can use:
- For parser: the Syntax Tree API
- For symbols and metadata import: the Symbol API
- For binder: the Binding and Flow Analysis APIs
- For IL emitter: the Emit API
We also have the Workspace, the Diagnostic APIs, and the Scripting APIs.