1 | // prebuilt/core/error.mycpp.h: GENERATED by mycpp
|
2 |
|
3 | #ifndef CORE_ERROR_MYCPP_H
|
4 | #define CORE_ERROR_MYCPP_H
|
5 |
|
6 | #include "_gen/asdl/hnode.asdl.h"
|
7 | #include "_gen/display/pretty.asdl.h"
|
8 | #include "cpp/data_lang.h"
|
9 | #include "mycpp/runtime.h"
|
10 |
|
11 | #include "_gen/core/runtime.asdl.h"
|
12 | #include "_gen/core/value.asdl.h"
|
13 | #include "_gen/frontend/syntax.asdl.h"
|
14 |
|
15 | using value_asdl::value; // This is a bit ad hoc
|
16 |
|
17 | namespace error { // forward declare
|
18 |
|
19 | class _ErrorWithLocation;
|
20 | class Usage;
|
21 | class Parse;
|
22 | class FailGlob;
|
23 | class RedirectEval;
|
24 | class FatalRuntime;
|
25 | class Strict;
|
26 | class ErrExit;
|
27 | class Expr;
|
28 | class Structured;
|
29 | class AssertionErr;
|
30 | class TypeErrVerbose;
|
31 | class TypeErr;
|
32 | class Runtime;
|
33 | class Decode;
|
34 | class Encode;
|
35 |
|
36 | } // forward declare namespace error
|
37 |
|
38 | namespace error { // declare
|
39 |
|
40 | using syntax_asdl::loc;
|
41 | BigStr* _ValType(value_asdl::value_t* val);
|
42 | class _ErrorWithLocation {
|
43 | public:
|
44 | _ErrorWithLocation(BigStr* msg, syntax_asdl::loc_t* location);
|
45 | bool HasLocation();
|
46 | BigStr* UserErrorString();
|
47 | syntax_asdl::loc_t* location{};
|
48 | BigStr* msg{};
|
49 |
|
50 | static constexpr uint32_t field_mask() {
|
51 | return maskbit(offsetof(_ErrorWithLocation, location))
|
52 | | maskbit(offsetof(_ErrorWithLocation, msg));
|
53 | }
|
54 |
|
55 | static constexpr ObjHeader obj_header() {
|
56 | return ObjHeader::ClassFixed(field_mask(), sizeof(_ErrorWithLocation));
|
57 | }
|
58 |
|
59 | DISALLOW_COPY_AND_ASSIGN(_ErrorWithLocation)
|
60 | };
|
61 |
|
62 | class Usage : public ::error::_ErrorWithLocation {
|
63 | public:
|
64 | Usage(BigStr* msg, syntax_asdl::loc_t* location);
|
65 |
|
66 | static constexpr uint32_t field_mask() {
|
67 | return ::error::_ErrorWithLocation::field_mask();
|
68 | }
|
69 |
|
70 | static constexpr ObjHeader obj_header() {
|
71 | return ObjHeader::ClassFixed(field_mask(), sizeof(Usage));
|
72 | }
|
73 |
|
74 | DISALLOW_COPY_AND_ASSIGN(Usage)
|
75 | };
|
76 |
|
77 | class Parse : public ::error::_ErrorWithLocation {
|
78 | public:
|
79 | Parse(BigStr* msg, syntax_asdl::loc_t* location);
|
80 |
|
81 | static constexpr uint32_t field_mask() {
|
82 | return ::error::_ErrorWithLocation::field_mask();
|
83 | }
|
84 |
|
85 | static constexpr ObjHeader obj_header() {
|
86 | return ObjHeader::ClassFixed(field_mask(), sizeof(Parse));
|
87 | }
|
88 |
|
89 | DISALLOW_COPY_AND_ASSIGN(Parse)
|
90 | };
|
91 |
|
92 | class FailGlob : public ::error::_ErrorWithLocation {
|
93 | public:
|
94 | FailGlob(BigStr* msg, syntax_asdl::loc_t* location);
|
95 |
|
96 | static constexpr uint32_t field_mask() {
|
97 | return ::error::_ErrorWithLocation::field_mask();
|
98 | }
|
99 |
|
100 | static constexpr ObjHeader obj_header() {
|
101 | return ObjHeader::ClassFixed(field_mask(), sizeof(FailGlob));
|
102 | }
|
103 |
|
104 | DISALLOW_COPY_AND_ASSIGN(FailGlob)
|
105 | };
|
106 |
|
107 | class RedirectEval : public ::error::_ErrorWithLocation {
|
108 | public:
|
109 | RedirectEval(BigStr* msg, syntax_asdl::loc_t* location);
|
110 |
|
111 | static constexpr uint32_t field_mask() {
|
112 | return ::error::_ErrorWithLocation::field_mask();
|
113 | }
|
114 |
|
115 | static constexpr ObjHeader obj_header() {
|
116 | return ObjHeader::ClassFixed(field_mask(), sizeof(RedirectEval));
|
117 | }
|
118 |
|
119 | DISALLOW_COPY_AND_ASSIGN(RedirectEval)
|
120 | };
|
121 |
|
122 | class FatalRuntime : public ::error::_ErrorWithLocation {
|
123 | public:
|
124 | FatalRuntime(int exit_status, BigStr* msg, syntax_asdl::loc_t* location);
|
125 | int ExitStatus();
|
126 |
|
127 | int exit_status{};
|
128 |
|
129 | static constexpr uint32_t field_mask() {
|
130 | return ::error::_ErrorWithLocation::field_mask();
|
131 | }
|
132 |
|
133 | static constexpr ObjHeader obj_header() {
|
134 | return ObjHeader::ClassFixed(field_mask(), sizeof(FatalRuntime));
|
135 | }
|
136 |
|
137 | DISALLOW_COPY_AND_ASSIGN(FatalRuntime)
|
138 | };
|
139 |
|
140 | class Strict : public ::error::FatalRuntime {
|
141 | public:
|
142 | Strict(BigStr* msg, syntax_asdl::loc_t* location);
|
143 |
|
144 | static constexpr uint32_t field_mask() {
|
145 | return ::error::FatalRuntime::field_mask();
|
146 | }
|
147 |
|
148 | static constexpr ObjHeader obj_header() {
|
149 | return ObjHeader::ClassFixed(field_mask(), sizeof(Strict));
|
150 | }
|
151 |
|
152 | DISALLOW_COPY_AND_ASSIGN(Strict)
|
153 | };
|
154 |
|
155 | class ErrExit : public ::error::FatalRuntime {
|
156 | public:
|
157 | ErrExit(int exit_status, BigStr* msg, syntax_asdl::loc_t* location, bool show_code = false);
|
158 |
|
159 | bool show_code{};
|
160 |
|
161 | static constexpr uint32_t field_mask() {
|
162 | return ::error::FatalRuntime::field_mask();
|
163 | }
|
164 |
|
165 | static constexpr ObjHeader obj_header() {
|
166 | return ObjHeader::ClassFixed(field_mask(), sizeof(ErrExit));
|
167 | }
|
168 |
|
169 | DISALLOW_COPY_AND_ASSIGN(ErrExit)
|
170 | };
|
171 |
|
172 | class Expr : public ::error::FatalRuntime {
|
173 | public:
|
174 | Expr(BigStr* msg, syntax_asdl::loc_t* location);
|
175 |
|
176 | static constexpr uint32_t field_mask() {
|
177 | return ::error::FatalRuntime::field_mask();
|
178 | }
|
179 |
|
180 | static constexpr ObjHeader obj_header() {
|
181 | return ObjHeader::ClassFixed(field_mask(), sizeof(Expr));
|
182 | }
|
183 |
|
184 | DISALLOW_COPY_AND_ASSIGN(Expr)
|
185 | };
|
186 |
|
187 | class Structured : public ::error::FatalRuntime {
|
188 | public:
|
189 | Structured(int status, BigStr* msg, syntax_asdl::loc_t* location, Dict<BigStr*, value_asdl::value_t*>* properties = nullptr);
|
190 | value::Dict* ToDict();
|
191 |
|
192 | Dict<BigStr*, value_asdl::value_t*>* properties{};
|
193 |
|
194 | static constexpr uint32_t field_mask() {
|
195 | return ::error::FatalRuntime::field_mask()
|
196 | | maskbit(offsetof(Structured, properties));
|
197 | }
|
198 |
|
199 | static constexpr ObjHeader obj_header() {
|
200 | return ObjHeader::ClassFixed(field_mask(), sizeof(Structured));
|
201 | }
|
202 |
|
203 | DISALLOW_COPY_AND_ASSIGN(Structured)
|
204 | };
|
205 |
|
206 | class AssertionErr : public ::error::Expr {
|
207 | public:
|
208 | AssertionErr(BigStr* msg, syntax_asdl::loc_t* location);
|
209 |
|
210 | static constexpr uint32_t field_mask() {
|
211 | return ::error::Expr::field_mask();
|
212 | }
|
213 |
|
214 | static constexpr ObjHeader obj_header() {
|
215 | return ObjHeader::ClassFixed(field_mask(), sizeof(AssertionErr));
|
216 | }
|
217 |
|
218 | DISALLOW_COPY_AND_ASSIGN(AssertionErr)
|
219 | };
|
220 |
|
221 | class TypeErrVerbose : public ::error::Expr {
|
222 | public:
|
223 | TypeErrVerbose(BigStr* msg, syntax_asdl::loc_t* location);
|
224 |
|
225 | static constexpr uint32_t field_mask() {
|
226 | return ::error::Expr::field_mask();
|
227 | }
|
228 |
|
229 | static constexpr ObjHeader obj_header() {
|
230 | return ObjHeader::ClassFixed(field_mask(), sizeof(TypeErrVerbose));
|
231 | }
|
232 |
|
233 | DISALLOW_COPY_AND_ASSIGN(TypeErrVerbose)
|
234 | };
|
235 |
|
236 | class TypeErr : public ::error::TypeErrVerbose {
|
237 | public:
|
238 | TypeErr(value_asdl::value_t* actual_val, BigStr* msg, syntax_asdl::loc_t* location);
|
239 |
|
240 | static constexpr uint32_t field_mask() {
|
241 | return ::error::TypeErrVerbose::field_mask();
|
242 | }
|
243 |
|
244 | static constexpr ObjHeader obj_header() {
|
245 | return ObjHeader::ClassFixed(field_mask(), sizeof(TypeErr));
|
246 | }
|
247 |
|
248 | DISALLOW_COPY_AND_ASSIGN(TypeErr)
|
249 | };
|
250 |
|
251 | class Runtime {
|
252 | public:
|
253 | Runtime(BigStr* msg);
|
254 | BigStr* UserErrorString();
|
255 | BigStr* msg{};
|
256 |
|
257 | static constexpr ObjHeader obj_header() {
|
258 | return ObjHeader::ClassScanned(1, sizeof(Runtime));
|
259 | }
|
260 |
|
261 | DISALLOW_COPY_AND_ASSIGN(Runtime)
|
262 | };
|
263 |
|
264 | class Decode {
|
265 | public:
|
266 | Decode(BigStr* msg, BigStr* s, int start_pos, int end_pos, int line_num);
|
267 | BigStr* Message();
|
268 | BigStr* __str__();
|
269 | BigStr* msg{};
|
270 | BigStr* s{};
|
271 | int start_pos{};
|
272 | int end_pos{};
|
273 | int line_num{};
|
274 |
|
275 | static constexpr ObjHeader obj_header() {
|
276 | return ObjHeader::ClassScanned(2, sizeof(Decode));
|
277 | }
|
278 |
|
279 | DISALLOW_COPY_AND_ASSIGN(Decode)
|
280 | };
|
281 |
|
282 | class Encode {
|
283 | public:
|
284 | Encode(BigStr* msg);
|
285 | BigStr* Message();
|
286 | BigStr* msg{};
|
287 |
|
288 | static constexpr ObjHeader obj_header() {
|
289 | return ObjHeader::ClassScanned(1, sizeof(Encode));
|
290 | }
|
291 |
|
292 | DISALLOW_COPY_AND_ASSIGN(Encode)
|
293 | };
|
294 |
|
295 | [[noreturn]] void e_usage(BigStr* msg, syntax_asdl::loc_t* location);
|
296 | [[noreturn]] void e_strict(BigStr* msg, syntax_asdl::loc_t* location);
|
297 | [[noreturn]] void p_die(BigStr* msg, syntax_asdl::loc_t* location);
|
298 | [[noreturn]] void e_die(BigStr* msg, syntax_asdl::loc_t* location = nullptr);
|
299 | [[noreturn]] void e_die_status(int status, BigStr* msg, syntax_asdl::loc_t* location = nullptr);
|
300 |
|
301 | } // declare namespace error
|
302 |
|
303 | #endif // CORE_ERROR_MYCPP_H
|