Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.

dmd.frontend

Compiler implementation of the D programming language.
This module contains high-level interfaces for interacting with DMD as a library.
Authors:

Source id.d

struct Diagnostics;
Contains aggregated diagnostics information.
immutable uint errors;
Number of errors diagnosed
immutable uint warnings;
Number of warnings diagnosed
immutable bool hasErrors();
Returns:
true if errors have been diagnosed
immutable bool hasWarnings();
Returns:
true if warnings have been diagnosed
enum ContractChecking: CHECKENABLE;
Indicates the checking state of various contracts.
default_
Initial value
disabled
Never do checking
enabled
Always do checking
enabledInSafe
Only do checking in @safe functions
struct ContractChecks;
Indicates which contracts should be checked or not.
ContractChecking precondition;
Precondition checks (in contract).
ContractChecking invariant_;
Invariant checks.
ContractChecking postcondition;
Postcondition checks (out contract).
ContractChecking arrayBounds;
Array bound checks.
ContractChecking assert_;
Assert checks.
ContractChecking switchError;
Switch error checks.
void deinitializeDMD();
Deinitializes the global variables of the DMD compiler.
This can be used to restore the state set by initDMD to its original state. Useful if there's a need for multiple sessions of the DMD compiler in the same application.
void addImport(const(char)[] path);
Add import path to the global.path.
Parameters:
const(char)[] path import to add
void addStringImport(const(char)[] path);
Add string import path to global.filePath.
Parameters:
const(char)[] path string import to add
string findDMDConfig(const(char)[] dmdFilePath);
Searches for a dmd.conf.
Parameters:
const(char)[] dmdFilePath path to the current DMD executable
Returns:
full path to the found dmd.conf, null otherwise.
string findLDCConfig(const(char)[] ldcFilePath);
Searches for a ldc2.conf.
Parameters:
const(char)[] ldcFilePath path to the current LDC executable
Returns:
full path to the found ldc2.conf, null otherwise.
string determineDefaultCompiler();
Detect the currently active compiler.
Returns:
full path to the executable of the found compiler, null otherwise.
auto parseImportPathsFromConfig(const(char)[] iniFile, const(char)[] execDir);
Parses a dmd.conf or ldc2.conf config file and returns defined import paths.
Parameters:
const(char)[] iniFile iniFile to parse imports from
const(char)[] execDir directory of the compiler binary
Returns:
forward range of import paths found in iniFile
auto findImportPaths();
Finds a dmd.conf and parses it for import paths. This depends on the $DMD environment variable. If $DMD is set to ldmd, it will try to detect and parse a ldc2.conf instead.
Returns:
A forward range of normalized import paths.
Tuple!(Module, "module_", Diagnostics, "diagnostics") parseModule(AST = ASTCodegen)(const(char)[] fileName, const(char)[] code = null);
Parse a module from a string.
Parameters:
const(char)[] fileName file to parse
const(char)[] code text to use instead of opening the file
Returns:
the parsed module object
void fullSemantic(Module m);
Run full semantic analysis on a module.
string prettyPrint(Module m);
Pretty print a module.
Returns:
Pretty printed module as string.
abstract class DiagnosticReporter;
Interface for diagnostic reporting.
abstract nothrow int errorCount();
Returns:
the number of errors that occurred during lexing or parsing.
abstract nothrow int warningCount();
Returns:
the number of warnings that occurred during lexing or parsing.
abstract nothrow int deprecationCount();
Returns:
the number of deprecations that occurred during lexing or parsing.
abstract nothrow bool error(ref const Loc loc, const(char)* format, va_list args, const(char)* p1, const(char)* p2);
Reports an error message.
Parameters:
Loc loc Location of error
const(char)* format format string for error
va_list args printf-style variadic arguments
const(char)* p1 additional message prefix
const(char)* p2 additional message prefix
Returns:
false if the message should also be printed to stderr, true otherwise
abstract nothrow bool errorSupplemental(ref const Loc loc, const(char)* format, va_list args, const(char)* p1, const(char)* p2);
Reports additional details about an error message.
Parameters:
Loc loc Location of error
const(char)* format format string for supplemental message
va_list args printf-style variadic arguments
const(char)* p1 additional message prefix
const(char)* p2 additional message prefix
Returns:
false if the message should also be printed to stderr, true otherwise
abstract nothrow bool warning(ref const Loc loc, const(char)* format, va_list args, const(char)* p1, const(char)* p2);
Reports a warning message.
Parameters:
Loc loc Location of warning
const(char)* format format string for warning
va_list args printf-style variadic arguments
const(char)* p1 additional message prefix
const(char)* p2 additional message prefix
Returns:
false if the message should also be printed to stderr, true otherwise
abstract nothrow bool warningSupplemental(ref const Loc loc, const(char)* format, va_list args, const(char)* p1, const(char)* p2);
Reports additional details about a warning message.
Parameters:
Loc loc Location of warning
const(char)* format format string for supplemental message
va_list args printf-style variadic arguments
const(char)* p1 additional message prefix
const(char)* p2 additional message prefix
Returns:
false if the message should also be printed to stderr, true otherwise
abstract nothrow bool deprecation(ref const Loc loc, const(char)* format, va_list args, const(char)* p1, const(char)* p2);
Reports a deprecation message.
Parameters:
Loc loc Location of the deprecation
const(char)* format format string for the deprecation
va_list args printf-style variadic arguments
const(char)* p1 additional message prefix
const(char)* p2 additional message prefix
Returns:
false if the message should also be printed to stderr, true otherwise
abstract nothrow bool deprecationSupplemental(ref const Loc loc, const(char)* format, va_list args, const(char)* p1, const(char)* p2);
Reports additional details about a deprecation message.
Parameters:
Loc loc Location of deprecation
const(char)* format format string for supplemental message
va_list args printf-style variadic arguments
const(char)* p1 additional message prefix
const(char)* p2 additional message prefix
Returns:
false if the message should also be printed to stderr, true otherwise
class StderrDiagnosticReporter: dmd.frontend.DiagnosticReporter;
Diagnostic reporter which prints the diagnostic messages to stderr.
This is usually the default diagnostic reporter.
nothrow this(DiagnosticReporting useDeprecated);
Initializes this object.
Parameters:
DiagnosticReporting useDeprecated indicates how deprecation diagnostics should be handled