Program Listing for File parsecontext.h#
↰ Return to documentation for file (sdv_idl_compiler\parsecontext.h)
#ifndef PARSE_CONTEXT_H
#define PARSE_CONTEXT_H
#include "includes.h"
#include "source.h"
#include "codepos.h"
#include <filesystem>
#include <string>
class CContext
{
public:
CContext(const std::filesystem::path& rpath, sdv::idl::IEntityContext::ELocation eLocation = sdv::idl::IEntityContext::ELocation::source);
CContext(const char* szCode);
CContext(const CContext&) = delete;
CContext(CContext&& rContext) noexcept;
~CContext();
CContext& operator=(const CContext&) = delete;
CContext& operator=(CContext&& rContext) noexcept;
bool operator==(const CContext& rContext) const;
bool operator!=(const CContext& rContext) const;
CSource& Source() { return m_source; }
const CSource& Source() const { return m_source; }
CCodePos& Code() { return m_code; }
const CCodePos& Code() const { return m_code; }
sdv::idl::IEntityContext::ELocation GetLocation() const { return m_eLocation; }
private:
CSource m_source;
CCodePos m_code;
sdv::idl::IEntityContext::ELocation m_eLocation = sdv::idl::IEntityContext::ELocation::source;
};
using CContextPtr = std::shared_ptr<CContext>;
#endif // !defined(PARSE_CONTEXT_H)