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.identifier

Compiler implementation of the D programming language.
Authors:

Source identifier.d

class Identifier: dmd.root.rootobject.RootObject;
nothrow this(const(char)* name, size_t length, int value);
Construct an identifier from a D slice

Note Since name needs to be \0 terminated for toChars, no slice overload is provided yet.

Parameters:
const(char)* name the identifier name There must be '\0' at name[length].
size_t length the length of name, excluding the terminating '\0'
int value Identifier value (e.g. Id.unitTest) or TOK.identifier
static nothrow Identifier generateIdWithLoc(string prefix, ref const Loc loc);
Generate deterministic named identifier based on a source location, such that the name is consistent across multiple compilations. A new unique name is generated. If the prefix+location is already in the stringtable, an extra suffix is added (starting the count at "1").
Parameters:
string prefix first part of the identifier name.
Loc loc source location to use in the identifier name.
Returns:
Identifier (inside Identifier.idPool) with deterministic name based on the source location.
static nothrow Identifier idPool(const(char)[] s);
Create an identifier in the string table.
static nothrow bool isValidIdentifier(const(char)* p);

static nothrow bool isValidIdentifier(const(char)[] str);
Determine if string is a valid Identifier.
Returns:
0 invalid