W3cubDocs

/D

dmd.cond

Compiler implementation of the D programming language.

Authors:
Walter Bright
License:
Boost License 1.0
Source
cond.d
Documentation
https://dlang.org/phobos/dmd_cond.html
Coverage
https://codecov.io/gh/dlang/dmd/src/master/src/dmd/cond.d
enum Include: int;
notComputed

not computed yet

yes

include the conditional code

no

do not include the conditional code

class StaticForeach: dmd.root.rootobject.RootObject;

Implements common functionality for StaticForeachDeclaration and StaticForeachStatement This performs the necessary lowerings before dmd.statementsem.makeTupleForeach can be used to expand the corresponding static foreach declaration or statement.

ForeachStatement aggrfe;

Not null iff the static foreach is over an aggregate. In this case, it contains the corresponding ForeachStatement. For StaticForeachDeclaration, the body is null.

ForeachRangeStatement rangefe;

Not null iff the static foreach is over a range. Exactly one of the aggrefe and rangefe fields is not null. See aggrfe field for more details.

bool needExpansion;

true if it is necessary to expand a tuple into multiple variables (see lowerNonArrayAggregate).

void prepare(Scope* sc);

Perform static foreach lowerings that are necessary in order to finally expand the static foreach using dmd.statementsem.makeTupleForeach.

bool ready();
Returns:
true iff ready to call dmd.statementsem.makeTupleForeach.
abstract class DVCondition: dmd.cond.Condition;
class DebugCondition: dmd.cond.DVCondition;
deprecated static void addGlobalIdent(const(char)* ident);

static void addGlobalIdent(string ident);

static void addGlobalIdent(const(char)[] ident);

Add an user-supplied identifier to the list of global debug identifiers

Can be called from either the driver or a debug = Ident; statement. Unlike version identifier, there isn't any reserved debug identifier so no validation takes place.

Parameters:
const(char)* ident identifier to add
this(Module mod, uint level, Identifier ident);

Instantiate a new DebugCondition

Parameters:
Module mod Module this node belongs to
uint level Minimum global level this condition needs to pass. Only used if ident is null.
Identifier ident Identifier required for this condition to pass. If null, this conditiion will use an integer level.
class VersionCondition: dmd.cond.DVCondition;

Node to represent a version condition

A version condition is of the form:

version (Identifier)
In user code. This class also provides means to add version identifier to the list of global (cross module) identifiers.
static void checkReserved(ref const Loc loc, const(char)[] ident);

Raises an error if a version identifier is reserved.

Called when setting a version identifier, e.g. -version=identifier parameter to the compiler or version = Foo in user code.

Parameters:
Loc loc Where the identifier is set
const(char)[] ident identifier being checked (ident[$] must be '\0')
deprecated static void addGlobalIdent(const(char)* ident);

static void addGlobalIdent(string ident);

static void addGlobalIdent(const(char)[] ident);

Add an user-supplied global identifier to the list

Only called from the driver for -version=Ident parameters. Will raise an error if the identifier is reserved.

Parameters:
const(char)* ident identifier to add
deprecated static void addPredefinedGlobalIdent(const(char)* ident);

static void addPredefinedGlobalIdent(string ident);

static void addPredefinedGlobalIdent(const(char)[] ident);

Add any global identifier to the list, without checking if it's predefined

Only called from the driver after platform detection, and internally.

Parameters:
const(char)* ident identifier to add (ident[$] must be '\0')
this(Module mod, uint level, Identifier ident);

Instantiate a new VersionCondition

Parameters:
Module mod Module this node belongs to
uint level Minimum global level this condition needs to pass. Only used if ident is null.
Identifier ident Identifier required for this condition to pass. If null, this conditiion will use an integer level.
class StaticIfCondition: dmd.cond.Condition;
bool findCondition(Identifiers* ids, Identifier ident);

Find ident in an array of identifiers.

Parameters:
Identifiers* ids array of identifiers
Identifier ident identifier to search for
Returns:
true if found

© 1999–2019 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/dmd_cond.html