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

Defines an identifier, which is the name of a Dsymbol.
Authors:

Source identifier.d

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

nothrow @safe this(const(char)[] name, int value);
Construct an identifier from the given name.
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 generateId(const(char)[] prefix);
Generates a new identifier.
Parameters:
const(char)[] prefix this will be the prefix of the name of the identifier. For debugging purpose.
static nothrow Identifier generateAnonymousId(const(char)[] name);
Generates a new anonymous identifier.
Parameters:
const(char)[] name this will be part of the name of the identifier. For debugging purpose.
static nothrow Identifier generateId(const(char)[] prefix, size_t suffix);

static nothrow Identifier generateId(const(char)* prefix, size_t length, size_t suffix);
Generates a new identifier.
Parameters:
const(char)[] prefix this will be the prefix of the name of the identifier. For debugging purpose.
size_t suffix this will be the suffix of the name of the identifier. This is what makes the identifier unique
static nothrow Identifier generateIdWithLoc(string prefix, const ref 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(scope const(char)* s, uint len);
Create an identifier in the string table.
static nothrow void idPool(scope const(char)[] s, TOK value);
Used for inserting keywords into the string table.
Parameters:
const(char)[] s string for keyword
TOK value TOK.xxxx for the keyword
static nothrow bool isValidIdentifier(const(char)* str);

static nothrow @trusted bool isValidIdentifier(const(char)[] str);
Determine if string is a valid Identifier.
Parameters:
const(char)* str string to check
Returns:
false for invalid
Examples:
assert(Identifier.isValidIdentifier("tes123_t".ptr));
assert(!Identifier.isValidIdentifier("tes123_^t".ptr));
assert(Identifier.isValidIdentifier("te123s_ğt".ptr));
assert(!Identifier.isValidIdentifier("t^e123s_ğt".ptr));