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 override {
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; }