# #pragma directive

Source: https://ref.dm-lang.org/DM/preprocessor/pragma/
Added in BYOND 515.

The `#pragma` directive alters the compiler's behavior in various ways.

- **[#pragma multiple](https://ref.dm-lang.org/DM/preprocessor/pragma/multiple.md)**: Include this file more than once.
- **[#pragma ignore *Warning*](https://ref.dm-lang.org/DM/preprocessor/pragma/warn.md)**: Changes how the compiler handles certain warnings.
- **[#pragma warn *Warning*](https://ref.dm-lang.org/DM/preprocessor/pragma/warn.md)**: Save the current pragma state.
- **[#pragma error *Warning*](https://ref.dm-lang.org/DM/preprocessor/pragma/warn.md)**: Restore a previously saved warning state.
- **[#pragma push](https://ref.dm-lang.org/DM/preprocessor/pragma/push.md)**: Switch to a different syntax for parsing certain procs.
- **[#pragma pop](https://ref.dm-lang.org/DM/preprocessor/pragma/push.md)**: Hint that the compiler should avoid using features higher than a given version.
- **[#pragma syntax](https://ref.dm-lang.org/DM/preprocessor/pragma/syntax.md)**: Choose faster (old) or more accurate (new default) trigonometry.

Pragmas will *not* be inherited by libraries included in your project.

### See also
- [#define directive](https://ref.dm-lang.org/DM/preprocessor/define/index.md)
- [#include directive](https://ref.dm-lang.org/DM/preprocessor/include.md)
- [preprocessor](https://ref.dm-lang.org/DM/preprocessor/index.md)

## Pages

- [#pragma compatibility directive](https://ref.dm-lang.org/DM/preprocessor/pragma/compatibility.md)
- [#pragma math directive](https://ref.dm-lang.org/DM/preprocessor/pragma/math.md)
- [#pragma multiple directive](https://ref.dm-lang.org/DM/preprocessor/pragma/multiple.md)
- [#pragma push/pop directive](https://ref.dm-lang.org/DM/preprocessor/pragma/push.md)
- [#pragma syntax directive](https://ref.dm-lang.org/DM/preprocessor/pragma/syntax.md)
- [#pragma warn/ignore/error directive](https://ref.dm-lang.org/DM/preprocessor/pragma/warn.md)
