Gyoji Compiler
Loading...
Searching...
No Matches
errors.hpp
1#pragma once
2
3#include <string>
4#include <vector>
5#include <memory>
6
7#include <gyoji-misc/pointers.hpp>
8#include <gyoji-context/source-reference.hpp>
9
10namespace Gyoji::context {
11
12 class Errors;
13 class Error;
14 class ErrorMessage;
15
25 public:
27 const SourceReference & _src_ref,
28 std::string _errormsg
29 );
35 void print();
40 const SourceReference & get_source_ref() const;
44 const std::string & get_message() const;
54 size_t get_line() const;
55 private:
57 SourceReference src_ref;
58 std::string errormsg;
59 };
60
76 class Error {
77 public:
83 Error(std::string _error_title);
87 ~Error();
92 void add_message(const SourceReference & _src_ref,
93 std::string _errormsg);
100 void print();
105 size_t size() const;
109 const ErrorMessage & get(size_t n) const;
114 private:
116 std::string error_title;
117 };
118
119 class TokenStream;
120
131 class Errors {
132 public:
139 Errors(TokenStream & _token_stream);
143 ~Errors();
147 void add_error(Gyoji::owned<Error> error);
155 void add_simple_error(
156 const SourceReference & src_ref,
157 std::string _error_title,
158 std::string _error_message
159 );
165 void print() const;
169 size_t size() const;
173 const Error & get(size_t n) const;
174 private:
176 const TokenStream & token_stream;
177 };
178
179};
Message about a specific location in the code.
Definition errors.hpp:24
size_t get_line() const
Definition errors.cpp:131
void add_context(const std::vector< std::pair< size_t, std::string > > &_context)
Definition errors.cpp:119
const SourceReference & get_source_ref() const
Definition errors.cpp:123
void print()
Definition errors.cpp:211
const std::string & get_message() const
Definition errors.cpp:127
An error reported during compilation.
Definition errors.hpp:76
void add_message(const SourceReference &_src_ref, std::string _errormsg)
Definition errors.cpp:69
~Error()
Definition errors.cpp:56
size_t size() const
Definition errors.cpp:98
const ErrorMessage & get(size_t n) const
Definition errors.cpp:102
const std::vector< Gyoji::owned< ErrorMessage > > & get_messages() const
Definition errors.cpp:94
void print()
Definition errors.cpp:59
Container for errors reported.
Definition errors.hpp:131
size_t size() const
Definition errors.cpp:41
void add_simple_error(const SourceReference &src_ref, std::string _error_title, std::string _error_message)
Definition errors.cpp:82
void add_error(Gyoji::owned< Error > error)
Definition errors.cpp:25
void print() const
Definition errors.cpp:14
const Error & get(size_t n) const
Definition errors.cpp:47
~Errors()
Definition errors.cpp:10
References a location in the source-file.
Definition source-reference.hpp:16
Stream of tokens read by the parser to provide context for errors.
Definition token-stream.hpp:106
The context namespace deals with objects that should last the entire scope of compilation.
Definition gyoji-context.hpp:16