Enforce visibility contrains such as public and private.
Defines a Dsymbol representing an aggregate, which is a struct, union or class.
Implements the alias this symbol.
A depth-first visitor for expressions.
Break down a D type into basic (register) types for the AArch64 ABI.
Break down a D type into basic (register) types for the x86_64 System V ABI.
Break down a D type into basic (register) types for the 32-bit x86 ABI.
Implement array operations, such as a[] = b[] + c[].
Provide aliases for arrays of certain declarations or statements.
Defines the base class for all nodes which are part of the AST.
Defines AST nodes for the parsing stage.
Defines AST nodes for the code generation stage.
Defines enums common to dmd and dmd as parse library.
Development utility for printing AST nodes by their internal name, instead of as D source code.
Defines declarations of various attributes.
Find out in what ways control flow can exit a statement block.
Implement CTFE for intrinsic (builtin) functions.
Perform checks for nothrow.
Check the arguments to printf and scanf against the format string.
Defines the help texts for the CLI options offered by DMD.
Builds struct member functions if needed and not defined by the user. Includes opEquals, opAssign, post blit, copy constructor and destructor.
Describes a back-end compiler and implements compiler-specific actions.
Evaluate compile-time conditionals, such as static if version and debug.
Control the various text mode attributes, such as color, when writing text to the console.
Perform constant folding of arithmetic expressions.
Takes a token stream from the lexer, and parses it into an abstract syntax tree.
Do mangling for C++ linkage.
Do mangling for C++ linkage for Digital Mars C++ and Microsoft Visual C++.
Run the C preprocessor on a C source file.
CTFE for expressions involving pointers, slices, array concatenation etc.
Manage flow analysis for constructors.
Semantic analysis for cast-expressions.
Defines a class declaration.
Miscellaneous declarations, including typedef, alias, variable declarations including the implicit this declaration, type tuples, ClassInfo, ModuleInfo and various TypeInfos.
Implements conversion from expressions to delegates for lazy parameters.
Define enum declarations and enum members.
A Dsymbol representing a renamed import.
Parses compiler settings from a .ini file.
The entry point for CTFE.
Text macro processor for Ddoc.
Does name mangling for extern(D) symbols.
DMD-specific parameters.
Defines a package and module.
Configures and initializes the backend.
Ddoc documentation generation.
A scope as defined by curly braces {}.
Struct and union declarations.
The base class for a D symbol, which can be a module, variable, function, enum, etc.
Does the semantic 1 pass on the AST, which looks at symbol declarations but not initializers or function bodies.
Defines TemplateDeclaration, TemplateInstance and a few utilities
This module contains the implementation of the C++ header generation available through the command line switch -Hc.
Defines a Dsymbol for version = identifier and debug = identifier statements.
Converts expressions to Intermediate Representation (IR) for the backend.
Support for exception handling for EH_DM and EH_WIN32. Generate exception handling tables.
Defines the named entities to support the "\\&Entity;" escape sequence for strings / character literals.
Functions for raising errors.
Provides an abstraction for what to do with error messages.
Most of the logic to implement scoped pointers and scoped references is here.
Defines the bulk of the classes which represent the AST at the expression level.
Semantic analysis of expressions.
Read a file from disk and store it in memory.
Utility to visit every variable in an expression.
Contains high-level interfaces for interacting with DMD as a library.
Defines a function declaration.
Stores command line options and contains other miscellaneous declarations.
Generate the object file for function declarations and critical sections.
Declarations for back-end functions that the front-end invokes.
Generate D interface files.
Inline assembler for the D programming language compiler.
Inline assembler implementation for DMD. https://dlang.org/spec/iasm.html
Inline assembler for the GCC D compiler.
Contains the Id struct with a list of predefined symbols the compiler knows about.
Defines an identifier, which is the name of a Dsymbol.
Provides an implicit conversion table for basic types.
Give import hints for common symbol names that couldn't be resolved.
Contains semantic routines specific to ImportC
Defines initializers of variables, e.g. the array literal in int[3] x = [0, 1, 2].
Semantic analysis of initializers.
Performs inlining, which is an optimization pass enabled with the -inline flag.
Compute the cost of inlining a function call by counting expressions.
Implement Value Range Propagation.
Code for generating .json descriptions of the module when passing the -X flag to dmd.
Implements the serialization of a lambda function.
Implements the lexical analyzer, which converts source code into lexical tokens.
A module defining an abstract library. Implementations for various formats are in separate libXXX.d modules.
A library in the ELF format, used on Unix.
A library in the Mach-O format, used on macOS.
A library in the COFF format, used on 32-bit and 64-bit Windows targets.
A library in the OMF format, a legacy format for 32-bit Windows.
Invoke the linker as a separate process.
Encapsulates file/line/column locations.
Entry point for DMD.
Defines a D type.
Compile-time checks associated with the @mustuse attribute.
Checks that a function marked @nogc does not invoke the Garbage Collector.
A scoped C++ namespace symbol
Flow analysis for Ownership/Borrowing
Interfacing with Objective-C.
Glue code for Objective-C interop.
Handles operator overloading.
Perform constant folding.
Takes a token stream from the lexer, and parses it into an abstract syntax tree.
Defines a visitor for the AST.
A visitor that facilitates the traversal of subsets of the AST.
Provides an AST printer for debugging.
Convert statements to Intermediate Representation (IR) for the back-end.
Checks whether member access or array casting is allowed in @safe code.
Provides a depth-first statement visitor.
Extract symbols from an ELF object file.
Extract symbols from a Mach-O object file.
Extract symbols from a COFF object file.
Extract symbols from an OMF object file.
Performs the semantic2 stage, which deals with initializer expressions.
Performs the semantic3 stage, which deals with function bodies.
Find side-effects of expressions.
Defines AST nodes for statements.
Provides a visitor for statements that allows rewriting the currently visited node.
Does semantic analysis for statements.
Defines the Dsymbol representing a static assert().
Lazily evaluate static conditions for static if, static assert and template constraints.
Used to help transform statement AST into flow graph.
Handles target-specific parameters
Semantic analysis of template parameters.
Convert a D symbol to a symbol the linker understands (with mangled name).
Convert a D type to a type the backend understands.
Generate debug info in the CV4 debug format.
Put initializers and objects created from CTFE into a dt_t data structure so the backend puts them into the data segment.
Convert to Intermediate Representation (IR) for the back-end.
Defines lexical tokens.
Convert an AST that went through all semantic phases into an object file.
Handle introspection functionality of the __traits() construct.
Semantic analysis for D types.
Generate TypeInfo objects, which are needed for run-time introspection of types.
This module defines some utility functions for DMD.
Provides a visitor class visiting all AST nodes present in the compiler.
When compiling on Windows with the Microsoft toolchain, try to detect the Visual Studio setup.