#ifndef LOCATION_HH #define LOCATION_HH #include #include #include namespace src { struct Location { uint64_t line; uint16_t column; constexpr Location() : line(0), column(0) {} Location(uint64_t line, uint16_t column) : line(line), column(column) {} [[nodiscard]] std::strong_ordering operator<=>(Location const& loc) const { auto ret = line <=> loc.line; if (ret == std::strong_ordering::equal) return column <=> loc.column; return ret; } }; std::ostream& operator<<(std::ostream& out, Location const& loc); } // namespace src #endif // LOCATION_HH