# Yarn.Compiler Namespace

## Summary

Contains classes for compiling Yarn code.

## Classes

| Name                                                                                                           | Description                                                                                                                               |
| -------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| [CompilationResult](https://docs.yarnspinner.dev/api/csharp/yarn.compiler/yarn.compiler.compilationresult)     | The result of a compilation.                                                                                                              |
| [Compiler](https://docs.yarnspinner.dev/api/csharp/yarn.compiler/yarn.compiler.compiler)                       | Compiles Yarn code.                                                                                                                       |
| [Declaration](https://docs.yarnspinner.dev/api/csharp/yarn.compiler/yarn.compiler.declaration)                 | Represents a variable declaration                                                                                                         |
| [DeclarationBuilder](https://docs.yarnspinner.dev/api/csharp/yarn.compiler/yarn.compiler.declarationbuilder)   | Provides methods for constructing [Declaration](https://docs.yarnspinner.dev/api/csharp/yarn.compiler/yarn.compiler.declaration) objects. |
| [Diagnostic](https://docs.yarnspinner.dev/api/csharp/yarn.compiler/yarn.compiler.diagnostic)                   | A diagnostic message that describes an error, warning or informational message that the user can take action on.                          |
| [EnumTypeBuilder](https://docs.yarnspinner.dev/api/csharp/yarn.compiler/yarn.compiler.enumtypebuilder)         | Provides methods for constructing [EnumType](https://docs.yarnspinner.dev/api/csharp/yarn/yarn.enumtype) objects.                         |
| [FunctionTypeBuilder](https://docs.yarnspinner.dev/api/csharp/yarn.compiler/yarn.compiler.functiontypebuilder) | Provides methods for constructing [FunctionType](https://docs.yarnspinner.dev/api/csharp/yarn/yarn.functiontype) objects.                 |
| [IndentAwareLexer](https://docs.yarnspinner.dev/api/csharp/yarn.compiler/yarn.compiler.indentawarelexer)       | A Lexer subclass that detects newlines and generates indent and dedent tokens accordingly.                                                |
| [NodeDebugInfo](https://docs.yarnspinner.dev/api/csharp/yarn.compiler/yarn.compiler.nodedebuginfo)             | Contains debug information for a node in a Yarn file.                                                                                     |
| [Position](https://docs.yarnspinner.dev/api/csharp/yarn.compiler/yarn.compiler.position)                       | Represents a position in a multi-line string.                                                                                             |
| [Project](https://docs.yarnspinner.dev/api/csharp/yarn.compiler/yarn.compiler.project)                         | Yarn Projects represent instructions on where to find Yarn scripts and associated assets, and how they should be compiled.                |
| [ProjectDebugInfo](https://docs.yarnspinner.dev/api/csharp/yarn.compiler/yarn.compiler.projectdebuginfo)       | Contains debugging information for compiled Yarn Projects.                                                                                |
| [Range](https://docs.yarnspinner.dev/api/csharp/yarn.compiler/yarn.compiler.range)                             | Represents a range of text in a multi-line string.                                                                                        |
| [Utility](https://docs.yarnspinner.dev/api/csharp/yarn.compiler/yarn.compiler.utility)                         | Utility methods for working with line tags.                                                                                               |

## Namespaces

| Name                                                                                     | Description                                                                       |
| ---------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| [Yarn.Compiler.Upgrader](https://docs.yarnspinner.dev/api/csharp/yarn.compiler.upgrader) | Contains classes for upgrading Yarn code to more recent versions of the language. |

## Structs

| Name                                                                                                   | Description                                                                                    |
| ------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------- |
| [CompilationJob](https://docs.yarnspinner.dev/api/csharp/yarn.compiler/yarn.compiler.compilationjob)   | An object that contains Yarn source code to compile, and instructions on how to compile it.    |
| [FileParseResult](https://docs.yarnspinner.dev/api/csharp/yarn.compiler/yarn.compiler.fileparseresult) | Contains the result of parsing a single file of source code.                                   |
| [StringInfo](https://docs.yarnspinner.dev/api/csharp/yarn.compiler/yarn.compiler.stringinfo)           | Information about a string. Stored inside a string table, which is produced from the Compiler. |
