5 #ifndef HOBBES_UTIL_LANNOTATION_HPP_INCLUDED 6 #define HOBBES_UTIL_LANNOTATION_HPP_INCLUDED 19 typedef std::pair<size_t, size_t>
Pos;
47 static void pushFileContext(
const std::string&);
48 static void pushLiteralContext(
const std::string&);
49 static void popContext();
57 typedef std::pair<std::string, LexicalAnnotation>
annmsg;
66 const annmsgs& messages()
const;
68 static annotated_error fileError(
const std::string&,
const Pos&,
const Pos&,
const std::string&);
69 static annotated_error bufferError(
const std::string&,
const Pos&,
const Pos&,
const std::string&);
73 static std::string plainDesc(
const annmsgs&);
static LexicalAnnotation null()
Definition: lannotation.C:64
std::pair< Pos, Pos > LexRange
Definition: lannotation.H:20
static LexicalAnnotation merge(const LexicalAnnotation &, const LexicalAnnotation &)
Definition: lannotation.C:68
T * make(const Args &... args)
Definition: hobbes.H:60
std::pair< bool, std::string > BuffOrFilename
Definition: lannotation.H:17
LexicalAnnotation()
Definition: lannotation.C:9
Pos p1
Definition: lannotation.H:26
std::pair< std::string, LexicalAnnotation > annmsg
Definition: lannotation.H:57
str::seq lines(size_t, size_t) const
Definition: lannotation.C:52
annmsgs amsgs
Definition: lannotation.H:71
std::pair< size_t, size_t > Pos
Definition: lannotation.H:19
Definition: lannotation.H:36
Definition: lannotation.H:60
Definition: lannotation.H:22
std::vector< std::string > seq
Definition: str.H:19
BuffOrFilenamePtr bfptr
Definition: lannotation.H:25
Pos p0
Definition: lannotation.H:26
LexicalAnnotation lannotation
Definition: lannotation.H:52
std::string filename() const
Definition: lannotation.C:19
std::string lineDesc() const
Definition: lannotation.C:37
std::vector< annmsg > annmsgs
Definition: lannotation.H:58
std::shared_ptr< BuffOrFilename > BuffOrFilenamePtr
Definition: lannotation.H:18