25 lines
475 B
C++
25 lines
475 B
C++
#pragma once
|
|
#include <string>
|
|
#include <memory>
|
|
|
|
struct Location
|
|
{
|
|
int line;
|
|
int column;
|
|
std::string fname;
|
|
|
|
std::shared_ptr<Location> parent = nullptr;
|
|
|
|
Location(int ln, int col, std::string file);
|
|
~Location();
|
|
|
|
std::string to_string() const;
|
|
std::string to_parenthesized_string() const;
|
|
void advance();
|
|
void pos_from_char(const char& character);
|
|
|
|
void operator=(const Location& other);
|
|
|
|
void copy(const Location& other);
|
|
};
|