dmd.identifier

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

Authors

Walter Bright

Source: identifier.d

  • Declaration

    class Identifier: dmd.rootobject.RootObject;

    • Declaration

      nothrow this(const(char)* name);

      Construct an identifier from the given name.

    • Declaration

      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

    • Declaration

      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.

    • Declaration

      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.

    • Declaration

      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

    • Declaration

      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.

      Return Value

      Identifier (inside Identifier.idPool) with deterministic name based on the source location.

    • Declaration

      static nothrow Identifier idPool(const(char)* s, uint len);

      Create an identifier in the string table.

    • Declaration

      static nothrow void idPool(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

    • Declaration

      static nothrow bool isValidIdentifier(const(char)* str);
      static nothrow @safe bool isValidIdentifier(const(char)[] str);

      Determine if string is a valid Identifier.

      Parameters

      const(char)* str

      string to check

      Return Value

      false for invalid