36        if (n.isNullOrEmpty()) BUG(
"Identifier with no name");
 
   39        if (n.isNullOrEmpty()) BUG(
"Identifier with no name");
 
   45    void dbprint(std::ostream &out)
 const {
 
   47        if (originalName != 
nullptr && originalName != name) out << 
"/" << originalName;
 
   49    bool operator==(
const ID &a)
 const { 
return name == a.name; }
 
   50    bool operator!=(
const ID &a)
 const { 
return name != a.name; }
 
   51    bool operator==(
cstring a)
 const { 
return name == a; }
 
   52    bool operator!=(
cstring a)
 const { 
return name != a; }
 
   53    bool operator==(
const char *a)
 const { 
return name == a; }
 
   54    bool operator!=(
const char *a)
 const { 
return name != a; }
 
   55    explicit operator bool()
 const { 
return name; }
 
   56    operator cstring()
 const { 
return name; }
 
   57    std::string string()
 const { 
return name.string(); }
 
   58    std::string_view string_view()
 const { 
return name.string_view(); }
 
   59    bool isDontCare()
 const { 
return name == 
"_"; }
 
   61    cstring toString()
 const override { 
return originalName.isNullOrEmpty() ? name : originalName; }