#ifndef EMPATHY_IR_LOCATION_H
#define EMPATHY_IR_LOCATION_H
namespace empathy::ir
{
class Location
{
public:
Location() {}
template< typename S >
Location( S&& filename, uint32_t line, uint32_t column ) :
m_filename( forward< S >( filename ) ),
m_line( line ),
m_column( column )
{}
friend ostream& operator<<( ostream& out, const Location& loc )
{
return out << *loc.m_filename << ':' << loc.m_line << ':' << loc.m_column;
}
private:
ptr< string > m_filename;
uint32_t m_line = 0;
uint32_t m_column = 0;
};
}
#endif