Herb C Reference
Loading...
Searching...
No Matches
errors.h
Go to the documentation of this file.
1// NOTE: This file is generated by the templates/template.rb script and should not
2// be modified manually. See /home/runner/work/herb/herb/templates/src/include/errors.h.erb
3
4#ifndef HERB_ERRORS_H
5#define HERB_ERRORS_H
6
7#include "errors.h"
8#include "location/location.h"
9#include "location/position.h"
10#include "lexer/token.h"
11#include "lib/hb_allocator.h"
12#include "lib/hb_array.h"
13#include "lib/hb_buffer.h"
14#include "lib/hb_string.h"
15
16struct PARSER_OPTIONS_STRUCT;
17
63
64typedef struct ERROR_STRUCT {
66 location_T location;
67 hb_string_T message;
69
70
71typedef struct {
73 hb_string_T description;
74 hb_string_T expected;
75 hb_string_T found;
77
78typedef struct {
80 token_type_T expected_type;
81 token_T* found;
83
88
93
94typedef struct {
96 token_T* opening_tag;
97 token_T* closing_tag;
99
100typedef struct {
102 token_T* tag_name;
103 hb_string_T expected;
104 hb_string_T found;
106
111
112typedef struct {
114 hb_string_T error_message;
115 hb_string_T diagnostic_id;
116 hb_string_T level;
118
119typedef struct {
121 hb_string_T keyword;
123
124typedef struct {
126 hb_string_T keyword;
128
129typedef struct {
131 /* no additional fields */
133
134typedef struct {
136 /* no additional fields */
138
144
155
160
166
167typedef struct {
169 token_T* tag_name;
171
172typedef struct {
174 token_T* tag_name;
176
181
186
191
197
198typedef struct {
200 /* no additional fields */
202
209
210typedef struct {
212 hb_string_T partial;
214
215typedef struct {
217 hb_string_T partial;
218 hb_string_T keywords;
220
221typedef struct {
223 /* no additional fields */
225
231
236
237typedef struct {
239 /* no additional fields */
241
246
251
256
261
266
267typedef struct {
269 /* no additional fields */
271
276
277typedef struct {
279 hb_string_T found;
280 hb_string_T expected;
282
287
288typedef struct {
290 /* no additional fields */
292
293typedef struct {
295 token_T* tag_name;
296 hb_string_T helper_name;
297 hb_string_T content_type;
299
300typedef struct {
302 token_T* segment;
304
305typedef struct {
309
310UNEXPECTED_ERROR_T* unexpected_error_init(hb_string_T description, hb_string_T expected, hb_string_T found, position_T start, position_T end, hb_allocator_T* allocator);
311void append_unexpected_error(hb_string_T description, hb_string_T expected, hb_string_T found, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
312UNEXPECTED_TOKEN_ERROR_T* unexpected_token_error_init(token_type_T expected_type, token_T* found, position_T start, position_T end, hb_allocator_T* allocator);
313void append_unexpected_token_error(token_type_T expected_type, token_T* found, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
314MISSING_OPENING_TAG_ERROR_T* missing_opening_tag_error_init(token_T* closing_tag, position_T start, position_T end, hb_allocator_T* allocator);
315void append_missing_opening_tag_error(token_T* closing_tag, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
316MISSING_CLOSING_TAG_ERROR_T* missing_closing_tag_error_init(token_T* opening_tag, position_T start, position_T end, hb_allocator_T* allocator);
317void append_missing_closing_tag_error(token_T* opening_tag, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
318TAG_NAMES_MISMATCH_ERROR_T* tag_names_mismatch_error_init(token_T* opening_tag, token_T* closing_tag, position_T start, position_T end, hb_allocator_T* allocator);
319void append_tag_names_mismatch_error(token_T* opening_tag, token_T* closing_tag, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
320VOID_ELEMENT_CLOSING_TAG_ERROR_T* void_element_closing_tag_error_init(token_T* tag_name, hb_string_T expected, hb_string_T found, position_T start, position_T end, hb_allocator_T* allocator);
321void append_void_element_closing_tag_error(token_T* tag_name, hb_string_T expected, hb_string_T found, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
322UNCLOSED_ELEMENT_ERROR_T* unclosed_element_error_init(token_T* opening_tag, position_T start, position_T end, hb_allocator_T* allocator);
323void append_unclosed_element_error(token_T* opening_tag, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
324RUBY_PARSE_ERROR_T* ruby_parse_error_init(hb_string_T error_message, hb_string_T diagnostic_id, hb_string_T level, position_T start, position_T end, hb_allocator_T* allocator);
325void append_ruby_parse_error(hb_string_T error_message, hb_string_T diagnostic_id, hb_string_T level, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
326ERB_CONTROL_FLOW_SCOPE_ERROR_T* erb_control_flow_scope_error_init(hb_string_T keyword, position_T start, position_T end, hb_allocator_T* allocator);
327void append_erb_control_flow_scope_error(hb_string_T keyword, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
328MISSING_ERB_END_TAG_ERROR_T* missing_erb_end_tag_error_init(hb_string_T keyword, position_T start, position_T end, hb_allocator_T* allocator);
329void append_missing_erb_end_tag_error(hb_string_T keyword, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
330ERB_MULTIPLE_BLOCKS_IN_TAG_ERROR_T* erb_multiple_blocks_in_tag_error_init(position_T start, position_T end, hb_allocator_T* allocator);
331void append_erb_multiple_blocks_in_tag_error(position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
332ERB_CASE_WITH_CONDITIONS_ERROR_T* erb_case_with_conditions_error_init(position_T start, position_T end, hb_allocator_T* allocator);
333void append_erb_case_with_conditions_error(position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
334CONDITIONAL_ELEMENT_MULTIPLE_TAGS_ERROR_T* conditional_element_multiple_tags_error_init(size_t line, size_t column, position_T start, position_T end, hb_allocator_T* allocator);
335void append_conditional_element_multiple_tags_error(size_t line, size_t column, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
336CONDITIONAL_ELEMENT_CONDITION_MISMATCH_ERROR_T* conditional_element_condition_mismatch_error_init(hb_string_T tag_name, hb_string_T open_condition, size_t open_line, size_t open_column, hb_string_T close_condition, size_t close_line, size_t close_column, position_T start, position_T end, hb_allocator_T* allocator);
337void append_conditional_element_condition_mismatch_error(hb_string_T tag_name, hb_string_T open_condition, size_t open_line, size_t open_column, hb_string_T close_condition, size_t close_line, size_t close_column, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
338INVALID_COMMENT_CLOSING_TAG_ERROR_T* invalid_comment_closing_tag_error_init(token_T* closing_tag, position_T start, position_T end, hb_allocator_T* allocator);
339void append_invalid_comment_closing_tag_error(token_T* closing_tag, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
340OMITTED_CLOSING_TAG_ERROR_T* omitted_closing_tag_error_init(token_T* opening_tag, position_T insertion_point, position_T start, position_T end, hb_allocator_T* allocator);
341void append_omitted_closing_tag_error(token_T* opening_tag, position_T insertion_point, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
342UNCLOSED_OPEN_TAG_ERROR_T* unclosed_open_tag_error_init(token_T* tag_name, position_T start, position_T end, hb_allocator_T* allocator);
343void append_unclosed_open_tag_error(token_T* tag_name, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
344UNCLOSED_CLOSE_TAG_ERROR_T* unclosed_close_tag_error_init(token_T* tag_name, position_T start, position_T end, hb_allocator_T* allocator);
345void append_unclosed_close_tag_error(token_T* tag_name, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
346UNCLOSED_QUOTE_ERROR_T* unclosed_quote_error_init(token_T* opening_quote, position_T start, position_T end, hb_allocator_T* allocator);
347void append_unclosed_quote_error(token_T* opening_quote, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
348MISSING_ATTRIBUTE_VALUE_ERROR_T* missing_attribute_value_error_init(hb_string_T attribute_name, position_T start, position_T end, hb_allocator_T* allocator);
349void append_missing_attribute_value_error(hb_string_T attribute_name, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
350UNCLOSED_ERB_TAG_ERROR_T* unclosed_erb_tag_error_init(token_T* opening_tag, position_T start, position_T end, hb_allocator_T* allocator);
351void append_unclosed_erb_tag_error(token_T* opening_tag, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
352MALFORMED_ERB_CLOSING_TAG_ERROR_T* malformed_erb_closing_tag_error_init(token_T* opening_tag, token_T* closing_tag, position_T start, position_T end, hb_allocator_T* allocator);
353void append_malformed_erb_closing_tag_error(token_T* opening_tag, token_T* closing_tag, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
354STRAY_ERB_CLOSING_TAG_ERROR_T* stray_erb_closing_tag_error_init(position_T start, position_T end, hb_allocator_T* allocator);
355void append_stray_erb_closing_tag_error(position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
356NESTED_ERB_TAG_ERROR_T* nested_erb_tag_error_init(token_T* opening_tag, size_t nested_tag_line, size_t nested_tag_column, position_T start, position_T end, hb_allocator_T* allocator);
357void append_nested_erb_tag_error(token_T* opening_tag, size_t nested_tag_line, size_t nested_tag_column, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
358RENDER_AMBIGUOUS_LOCALS_ERROR_T* render_ambiguous_locals_error_init(hb_string_T partial, position_T start, position_T end, hb_allocator_T* allocator);
359void append_render_ambiguous_locals_error(hb_string_T partial, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
360RENDER_MISSING_LOCALS_ERROR_T* render_missing_locals_error_init(hb_string_T partial, hb_string_T keywords, position_T start, position_T end, hb_allocator_T* allocator);
361void append_render_missing_locals_error(hb_string_T partial, hb_string_T keywords, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
362RENDER_NO_ARGUMENTS_ERROR_T* render_no_arguments_error_init(position_T start, position_T end, hb_allocator_T* allocator);
363void append_render_no_arguments_error(position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
364RENDER_CONFLICTING_PARTIAL_ERROR_T* render_conflicting_partial_error_init(hb_string_T positional_partial, hb_string_T keyword_partial, position_T start, position_T end, hb_allocator_T* allocator);
365void append_render_conflicting_partial_error(hb_string_T positional_partial, hb_string_T keyword_partial, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
366RENDER_INVALID_AS_OPTION_ERROR_T* render_invalid_as_option_error_init(hb_string_T as_value, position_T start, position_T end, hb_allocator_T* allocator);
367void append_render_invalid_as_option_error(hb_string_T as_value, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
368RENDER_OBJECT_AND_COLLECTION_ERROR_T* render_object_and_collection_error_init(position_T start, position_T end, hb_allocator_T* allocator);
369void append_render_object_and_collection_error(position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
370RENDER_LAYOUT_WITHOUT_BLOCK_ERROR_T* render_layout_without_block_error_init(hb_string_T layout, position_T start, position_T end, hb_allocator_T* allocator);
371void append_render_layout_without_block_error(hb_string_T layout, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
372STRICT_LOCALS_POSITIONAL_ARGUMENT_ERROR_T* strict_locals_positional_argument_error_init(hb_string_T name, position_T start, position_T end, hb_allocator_T* allocator);
373void append_strict_locals_positional_argument_error(hb_string_T name, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
374STRICT_LOCALS_BLOCK_ARGUMENT_ERROR_T* strict_locals_block_argument_error_init(hb_string_T name, position_T start, position_T end, hb_allocator_T* allocator);
375void append_strict_locals_block_argument_error(hb_string_T name, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
376STRICT_LOCALS_SPLAT_ARGUMENT_ERROR_T* strict_locals_splat_argument_error_init(hb_string_T name, position_T start, position_T end, hb_allocator_T* allocator);
377void append_strict_locals_splat_argument_error(hb_string_T name, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
378STRICT_LOCALS_MISSING_PARENTHESIS_ERROR_T* strict_locals_missing_parenthesis_error_init(hb_string_T rest, position_T start, position_T end, hb_allocator_T* allocator);
379void append_strict_locals_missing_parenthesis_error(hb_string_T rest, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
380STRICT_LOCALS_DUPLICATE_DECLARATION_ERROR_T* strict_locals_duplicate_declaration_error_init(position_T start, position_T end, hb_allocator_T* allocator);
381void append_strict_locals_duplicate_declaration_error(position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
382HERB_STATE_MISSING_PARENTHESIS_ERROR_T* herb_state_missing_parenthesis_error_init(hb_string_T rest, position_T start, position_T end, hb_allocator_T* allocator);
383void append_herb_state_missing_parenthesis_error(hb_string_T rest, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
384HERB_STATE_NON_CANONICAL_DIRECTIVE_ERROR_T* herb_state_non_canonical_directive_error_init(hb_string_T found, hb_string_T expected, position_T start, position_T end, hb_allocator_T* allocator);
385void append_herb_state_non_canonical_directive_error(hb_string_T found, hb_string_T expected, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
386HERB_STATE_INVALID_PARAMETER_ERROR_T* herb_state_invalid_parameter_error_init(hb_string_T parameter, position_T start, position_T end, hb_allocator_T* allocator);
387void append_herb_state_invalid_parameter_error(hb_string_T parameter, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
388HERB_STATE_DUPLICATE_DECLARATION_ERROR_T* herb_state_duplicate_declaration_error_init(position_T start, position_T end, hb_allocator_T* allocator);
389void append_herb_state_duplicate_declaration_error(position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
390VOID_ELEMENT_CONTENT_ERROR_T* void_element_content_error_init(token_T* tag_name, hb_string_T helper_name, hb_string_T content_type, position_T start, position_T end, hb_allocator_T* allocator);
391void append_void_element_content_error(token_T* tag_name, hb_string_T helper_name, hb_string_T content_type, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
392DOT_NOTATION_CASING_ERROR_T* dot_notation_casing_error_init(token_T* segment, position_T start, position_T end, hb_allocator_T* allocator);
393void append_dot_notation_casing_error(token_T* segment, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
394TIMEOUT_ERROR_T* timeout_error_init(size_t timeout_ms, position_T start, position_T end, hb_allocator_T* allocator);
395void append_timeout_error(size_t timeout_ms, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T** errors, const struct PARSER_OPTIONS_STRUCT* options);
396
397void error_init(ERROR_T* error, error_type_T type, position_T start, position_T end);
398
399size_t error_sizeof(void);
401
402hb_string_T error_message(ERROR_T* error);
403
404hb_string_T error_type_to_string(ERROR_T* error);
405hb_string_T error_human_type(ERROR_T* error);
406
407void error_free(ERROR_T* error, hb_allocator_T* allocator);
408
409#ifndef HERB_EXCLUDE_PRETTYPRINT
410 void error_pretty_print(ERROR_T* error, size_t indent, size_t relative_indent, hb_buffer_T* buffer);
411
413 const char* name, hb_array_T* array, size_t indent, size_t relative_indent, bool last_property,
414 hb_buffer_T* buffer
415 );
416#endif
417
418#endif
RENDER_NO_ARGUMENTS_ERROR_T * render_no_arguments_error_init(position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:1047
void append_strict_locals_positional_argument_error(hb_string_T name, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:1230
error_type_T error_type(ERROR_T *error)
MISSING_ERB_END_TAG_ERROR_T * missing_erb_end_tag_error_init(hb_string_T keyword, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:414
void append_strict_locals_duplicate_declaration_error(position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:1355
void append_missing_closing_tag_error(token_T *opening_tag, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:195
STRICT_LOCALS_DUPLICATE_DECLARATION_ERROR_T * strict_locals_duplicate_declaration_error_init(position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:1343
HERB_STATE_INVALID_PARAMETER_ERROR_T * herb_state_invalid_parameter_error_init(hb_string_T parameter, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:1439
void append_strict_locals_splat_argument_error(hb_string_T name, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:1300
UNCLOSED_ERB_TAG_ERROR_T * unclosed_erb_tag_error_init(token_T *opening_tag, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:807
TAG_NAMES_MISMATCH_ERROR_T * tag_names_mismatch_error_init(token_T *opening_tag, token_T *closing_tag, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:203
STRICT_LOCALS_POSITIONAL_ARGUMENT_ERROR_T * strict_locals_positional_argument_error_init(hb_string_T name, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:1198
HERB_STATE_NON_CANONICAL_DIRECTIVE_ERROR_T * herb_state_non_canonical_directive_error_init(hb_string_T found, hb_string_T expected, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:1398
void append_unexpected_token_error(token_type_T expected_type, token_T *found, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:116
void append_render_conflicting_partial_error(hb_string_T positional_partial, hb_string_T keyword_partial, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:1100
void append_erb_multiple_blocks_in_tag_error(position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:461
ERB_CONTROL_FLOW_SCOPE_ERROR_T * erb_control_flow_scope_error_init(hb_string_T keyword, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:379
void append_unclosed_close_tag_error(token_T *tag_name, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:725
void append_render_ambiguous_locals_error(hb_string_T partial, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:993
void append_missing_attribute_value_error(hb_string_T attribute_name, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:799
void append_malformed_erb_closing_tag_error(token_T *opening_tag, token_T *closing_tag, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:881
UNCLOSED_QUOTE_ERROR_T * unclosed_quote_error_init(token_T *opening_quote, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:733
void append_strict_locals_block_argument_error(hb_string_T name, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:1265
ERB_CASE_WITH_CONDITIONS_ERROR_T * erb_case_with_conditions_error_init(position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:469
UNCLOSED_CLOSE_TAG_ERROR_T * unclosed_close_tag_error_init(token_T *tag_name, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:696
void append_stray_erb_closing_tag_error(position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:912
RENDER_LAYOUT_WITHOUT_BLOCK_ERROR_T * render_layout_without_block_error_init(hb_string_T layout, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:1163
NESTED_ERB_TAG_ERROR_T * nested_erb_tag_error_init(token_T *opening_tag, size_t nested_tag_line, size_t nested_tag_column, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:920
void append_void_element_content_error(token_T *tag_name, hb_string_T helper_name, hb_string_T content_type, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:1533
void append_dot_notation_casing_error(token_T *segment, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:1568
void append_render_no_arguments_error(position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:1059
MISSING_CLOSING_TAG_ERROR_T * missing_closing_tag_error_init(token_T *opening_tag, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:161
void append_nested_erb_tag_error(token_T *opening_tag, size_t nested_tag_line, size_t nested_tag_column, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:953
void append_ruby_parse_error(hb_string_T error_message, hb_string_T diagnostic_id, hb_string_T level, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:371
RENDER_AMBIGUOUS_LOCALS_ERROR_T * render_ambiguous_locals_error_init(hb_string_T partial, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:961
ERB_MULTIPLE_BLOCKS_IN_TAG_ERROR_T * erb_multiple_blocks_in_tag_error_init(position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:449
void append_unclosed_quote_error(token_T *opening_quote, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:762
void append_herb_state_non_canonical_directive_error(hb_string_T found, hb_string_T expected, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:1431
hb_string_T error_message(ERROR_T *error)
STRICT_LOCALS_MISSING_PARENTHESIS_ERROR_T * strict_locals_missing_parenthesis_error_init(hb_string_T rest, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:1308
RENDER_MISSING_LOCALS_ERROR_T * render_missing_locals_error_init(hb_string_T partial, hb_string_T keywords, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:1001
void append_unexpected_error(hb_string_T description, hb_string_T expected, hb_string_T found, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:73
STRAY_ERB_CLOSING_TAG_ERROR_T * stray_erb_closing_tag_error_init(position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:889
void append_erb_case_with_conditions_error(position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:481
struct ERROR_STRUCT ERROR_T
void error_pretty_print(ERROR_T *error, size_t indent, size_t relative_indent, hb_buffer_T *buffer)
Definition errors.c:2712
UNEXPECTED_ERROR_T * unexpected_error_init(hb_string_T description, hb_string_T expected, hb_string_T found, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:34
HERB_STATE_MISSING_PARENTHESIS_ERROR_T * herb_state_missing_parenthesis_error_init(hb_string_T rest, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:1363
error_type_T
Definition errors.h:18
@ CONDITIONAL_ELEMENT_MULTIPLE_TAGS_ERROR
Definition errors.h:31
@ RENDER_MISSING_LOCALS_ERROR
Definition errors.h:44
@ HERB_STATE_INVALID_PARAMETER_ERROR
Definition errors.h:57
@ RENDER_OBJECT_AND_COLLECTION_ERROR
Definition errors.h:48
@ RENDER_AMBIGUOUS_LOCALS_ERROR
Definition errors.h:43
@ UNEXPECTED_ERROR
Definition errors.h:19
@ STRICT_LOCALS_POSITIONAL_ARGUMENT_ERROR
Definition errors.h:50
@ UNCLOSED_OPEN_TAG_ERROR
Definition errors.h:35
@ RENDER_NO_ARGUMENTS_ERROR
Definition errors.h:45
@ STRICT_LOCALS_DUPLICATE_DECLARATION_ERROR
Definition errors.h:54
@ DOT_NOTATION_CASING_ERROR
Definition errors.h:60
@ RENDER_CONFLICTING_PARTIAL_ERROR
Definition errors.h:46
@ ERB_CASE_WITH_CONDITIONS_ERROR
Definition errors.h:30
@ STRICT_LOCALS_SPLAT_ARGUMENT_ERROR
Definition errors.h:52
@ UNEXPECTED_TOKEN_ERROR
Definition errors.h:20
@ STRICT_LOCALS_BLOCK_ARGUMENT_ERROR
Definition errors.h:51
@ VOID_ELEMENT_CLOSING_TAG_ERROR
Definition errors.h:24
@ MISSING_CLOSING_TAG_ERROR
Definition errors.h:22
@ TIMEOUT_ERROR
Definition errors.h:61
@ VOID_ELEMENT_CONTENT_ERROR
Definition errors.h:59
@ MISSING_ATTRIBUTE_VALUE_ERROR
Definition errors.h:38
@ HERB_STATE_DUPLICATE_DECLARATION_ERROR
Definition errors.h:58
@ OMITTED_CLOSING_TAG_ERROR
Definition errors.h:34
@ NESTED_ERB_TAG_ERROR
Definition errors.h:42
@ RUBY_PARSE_ERROR
Definition errors.h:26
@ INVALID_COMMENT_CLOSING_TAG_ERROR
Definition errors.h:33
@ STRAY_ERB_CLOSING_TAG_ERROR
Definition errors.h:41
@ TAG_NAMES_MISMATCH_ERROR
Definition errors.h:23
@ CONDITIONAL_ELEMENT_CONDITION_MISMATCH_ERROR
Definition errors.h:32
@ UNCLOSED_ELEMENT_ERROR
Definition errors.h:25
@ MISSING_ERB_END_TAG_ERROR
Definition errors.h:28
@ ERB_CONTROL_FLOW_SCOPE_ERROR
Definition errors.h:27
@ STRICT_LOCALS_MISSING_PARENTHESIS_ERROR
Definition errors.h:53
@ RENDER_INVALID_AS_OPTION_ERROR
Definition errors.h:47
@ UNCLOSED_QUOTE_ERROR
Definition errors.h:37
@ MALFORMED_ERB_CLOSING_TAG_ERROR
Definition errors.h:40
@ UNCLOSED_ERB_TAG_ERROR
Definition errors.h:39
@ HERB_STATE_NON_CANONICAL_DIRECTIVE_ERROR
Definition errors.h:56
@ UNCLOSED_CLOSE_TAG_ERROR
Definition errors.h:36
@ MISSING_OPENING_TAG_ERROR
Definition errors.h:21
@ ERB_MULTIPLE_BLOCKS_IN_TAG_ERROR
Definition errors.h:29
@ RENDER_LAYOUT_WITHOUT_BLOCK_ERROR
Definition errors.h:49
@ HERB_STATE_MISSING_PARENTHESIS_ERROR
Definition errors.h:55
void error_free(ERROR_T *error, hb_allocator_T *allocator)
Definition errors.c:1997
UNCLOSED_OPEN_TAG_ERROR_T * unclosed_open_tag_error_init(token_T *tag_name, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:659
VOID_ELEMENT_CLOSING_TAG_ERROR_T * void_element_closing_tag_error_init(token_T *tag_name, hb_string_T expected, hb_string_T found, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:248
STRICT_LOCALS_SPLAT_ARGUMENT_ERROR_T * strict_locals_splat_argument_error_init(hb_string_T name, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:1273
void append_herb_state_missing_parenthesis_error(hb_string_T rest, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:1390
void append_timeout_error(size_t timeout_ms, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:1599
size_t error_sizeof(void)
Definition errors.c:22
void append_void_element_closing_tag_error(token_T *tag_name, hb_string_T expected, hb_string_T found, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:292
CONDITIONAL_ELEMENT_CONDITION_MISMATCH_ERROR_T * conditional_element_condition_mismatch_error_init(hb_string_T tag_name, hb_string_T open_condition, size_t open_line, size_t open_column, hb_string_T close_condition, size_t close_line, size_t close_column, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:522
void append_herb_state_duplicate_declaration_error(position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:1486
MISSING_ATTRIBUTE_VALUE_ERROR_T * missing_attribute_value_error_init(hb_string_T attribute_name, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:770
HERB_STATE_DUPLICATE_DECLARATION_ERROR_T * herb_state_duplicate_declaration_error_init(position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:1474
hb_string_T error_human_type(ERROR_T *error)
Definition errors.c:1657
MISSING_OPENING_TAG_ERROR_T * missing_opening_tag_error_init(token_T *closing_tag, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:124
void error_init(ERROR_T *error, error_type_T type, position_T start, position_T end)
Definition errors.c:26
UNEXPECTED_TOKEN_ERROR_T * unexpected_token_error_init(token_type_T expected_type, token_T *found, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:81
MALFORMED_ERB_CLOSING_TAG_ERROR_T * malformed_erb_closing_tag_error_init(token_T *opening_tag, token_T *closing_tag, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:844
void error_pretty_print_array(const char *name, hb_array_T *array, size_t indent, size_t relative_indent, bool last_property, hb_buffer_T *buffer)
Definition errors.c:2049
void append_unclosed_element_error(token_T *opening_tag, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:329
RENDER_CONFLICTING_PARTIAL_ERROR_T * render_conflicting_partial_error_init(hb_string_T positional_partial, hb_string_T keyword_partial, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:1067
hb_string_T error_type_to_string(ERROR_T *error)
Definition errors.c:1607
void append_erb_control_flow_scope_error(hb_string_T keyword, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:406
void append_strict_locals_missing_parenthesis_error(hb_string_T rest, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:1335
void append_unclosed_erb_tag_error(token_T *opening_tag, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:836
STRICT_LOCALS_BLOCK_ARGUMENT_ERROR_T * strict_locals_block_argument_error_init(hb_string_T name, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:1238
void append_render_missing_locals_error(hb_string_T partial, hb_string_T keywords, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:1039
void append_omitted_closing_tag_error(token_T *opening_tag, position_T insertion_point, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:651
void append_render_object_and_collection_error(position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:1155
void append_missing_opening_tag_error(token_T *closing_tag, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:153
DOT_NOTATION_CASING_ERROR_T * dot_notation_casing_error_init(token_T *segment, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:1541
INVALID_COMMENT_CLOSING_TAG_ERROR_T * invalid_comment_closing_tag_error_init(token_T *closing_tag, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:577
void append_invalid_comment_closing_tag_error(token_T *closing_tag, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:606
TIMEOUT_ERROR_T * timeout_error_init(size_t timeout_ms, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:1576
RENDER_INVALID_AS_OPTION_ERROR_T * render_invalid_as_option_error_init(hb_string_T as_value, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:1108
RENDER_OBJECT_AND_COLLECTION_ERROR_T * render_object_and_collection_error_init(position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:1143
CONDITIONAL_ELEMENT_MULTIPLE_TAGS_ERROR_T * conditional_element_multiple_tags_error_init(size_t line, size_t column, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:489
RUBY_PARSE_ERROR_T * ruby_parse_error_init(hb_string_T error_message, hb_string_T diagnostic_id, hb_string_T level, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:337
void append_conditional_element_multiple_tags_error(size_t line, size_t column, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:514
void append_missing_erb_end_tag_error(hb_string_T keyword, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:441
void append_unclosed_open_tag_error(token_T *tag_name, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:688
void append_render_layout_without_block_error(hb_string_T layout, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:1190
OMITTED_CLOSING_TAG_ERROR_T * omitted_closing_tag_error_init(token_T *opening_tag, position_T insertion_point, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:614
void append_conditional_element_condition_mismatch_error(hb_string_T tag_name, hb_string_T open_condition, size_t open_line, size_t open_column, hb_string_T close_condition, size_t close_line, size_t close_column, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:569
VOID_ELEMENT_CONTENT_ERROR_T * void_element_content_error_init(token_T *tag_name, hb_string_T helper_name, hb_string_T content_type, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:1494
void append_tag_names_mismatch_error(token_T *opening_tag, token_T *closing_tag, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:240
UNCLOSED_ELEMENT_ERROR_T * unclosed_element_error_init(token_T *opening_tag, position_T start, position_T end, hb_allocator_T *allocator)
Definition errors.c:300
void append_render_invalid_as_option_error(hb_string_T as_value, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:1135
void append_herb_state_invalid_parameter_error(hb_string_T parameter, position_T start, position_T end, hb_allocator_T *allocator, hb_array_T **errors, const struct PARSER_OPTIONS_STRUCT *options)
Definition errors.c:1466
ERROR_T base
Definition errors.h:146
size_t open_column
Definition errors.h:150
hb_string_T close_condition
Definition errors.h:151
size_t open_line
Definition errors.h:149
size_t close_line
Definition errors.h:152
size_t close_column
Definition errors.h:153
hb_string_T open_condition
Definition errors.h:148
hb_string_T tag_name
Definition errors.h:147
size_t column
Definition errors.h:142
ERROR_T base
Definition errors.h:140
size_t line
Definition errors.h:141
Definition errors.h:300
token_T * segment
Definition errors.h:302
ERROR_T base
Definition errors.h:301
Definition errors.h:134
ERROR_T base
Definition errors.h:135
Definition errors.h:119
hb_string_T keyword
Definition errors.h:121
ERROR_T base
Definition errors.h:120
Definition errors.h:129
ERROR_T base
Definition errors.h:130
Definition errors.h:64
error_type_T type
Definition errors.h:65
location_T location
Definition errors.h:66
hb_string_T message
Definition errors.h:67
ERROR_T base
Definition errors.h:289
ERROR_T base
Definition errors.h:284
hb_string_T parameter
Definition errors.h:285
hb_string_T rest
Definition errors.h:274
ERROR_T base
Definition errors.h:273
hb_string_T found
Definition errors.h:279
hb_string_T expected
Definition errors.h:280
ERROR_T base
Definition errors.h:278
token_T * closing_tag
Definition errors.h:158
ERROR_T base
Definition errors.h:157
Definition errors.h:192
ERROR_T base
Definition errors.h:193
token_T * opening_tag
Definition errors.h:194
token_T * closing_tag
Definition errors.h:195
Definition errors.h:182
hb_string_T attribute_name
Definition errors.h:184
ERROR_T base
Definition errors.h:183
Definition errors.h:89
ERROR_T base
Definition errors.h:90
token_T * opening_tag
Definition errors.h:91
Definition errors.h:124
hb_string_T keyword
Definition errors.h:126
ERROR_T base
Definition errors.h:125
Definition errors.h:84
token_T * closing_tag
Definition errors.h:86
ERROR_T base
Definition errors.h:85
Definition errors.h:203
size_t nested_tag_line
Definition errors.h:206
size_t nested_tag_column
Definition errors.h:207
ERROR_T base
Definition errors.h:204
token_T * opening_tag
Definition errors.h:205
Definition errors.h:161
ERROR_T base
Definition errors.h:162
position_T insertion_point
Definition errors.h:164
token_T * opening_tag
Definition errors.h:163
Definition errors.h:210
ERROR_T base
Definition errors.h:211
hb_string_T partial
Definition errors.h:212
Definition errors.h:226
hb_string_T keyword_partial
Definition errors.h:229
ERROR_T base
Definition errors.h:227
hb_string_T positional_partial
Definition errors.h:228
Definition errors.h:232
ERROR_T base
Definition errors.h:233
hb_string_T as_value
Definition errors.h:234
hb_string_T layout
Definition errors.h:244
ERROR_T base
Definition errors.h:243
Definition errors.h:215
hb_string_T partial
Definition errors.h:217
hb_string_T keywords
Definition errors.h:218
ERROR_T base
Definition errors.h:216
Definition errors.h:221
ERROR_T base
Definition errors.h:222
ERROR_T base
Definition errors.h:238
Definition errors.h:112
ERROR_T base
Definition errors.h:113
hb_string_T level
Definition errors.h:116
hb_string_T error_message
Definition errors.h:114
hb_string_T diagnostic_id
Definition errors.h:115
Definition errors.h:198
ERROR_T base
Definition errors.h:199
hb_string_T name
Definition errors.h:254
ERROR_T base
Definition errors.h:253
ERROR_T base
Definition errors.h:268
ERROR_T base
Definition errors.h:263
hb_string_T rest
Definition errors.h:264
hb_string_T name
Definition errors.h:249
ERROR_T base
Definition errors.h:248
hb_string_T name
Definition errors.h:259
ERROR_T base
Definition errors.h:258
Definition errors.h:94
token_T * opening_tag
Definition errors.h:96
token_T * closing_tag
Definition errors.h:97
ERROR_T base
Definition errors.h:95
Definition errors.h:305
ERROR_T base
Definition errors.h:306
size_t timeout_ms
Definition errors.h:307
Definition errors.h:172
token_T * tag_name
Definition errors.h:174
ERROR_T base
Definition errors.h:173
Definition errors.h:107
ERROR_T base
Definition errors.h:108
token_T * opening_tag
Definition errors.h:109
Definition errors.h:187
token_T * opening_tag
Definition errors.h:189
ERROR_T base
Definition errors.h:188
Definition errors.h:167
ERROR_T base
Definition errors.h:168
token_T * tag_name
Definition errors.h:169
Definition errors.h:177
token_T * opening_quote
Definition errors.h:179
ERROR_T base
Definition errors.h:178
Definition errors.h:71
hb_string_T expected
Definition errors.h:74
ERROR_T base
Definition errors.h:72
hb_string_T found
Definition errors.h:75
hb_string_T description
Definition errors.h:73
Definition errors.h:78
token_T * found
Definition errors.h:81
ERROR_T base
Definition errors.h:79
token_type_T expected_type
Definition errors.h:80
Definition errors.h:100
ERROR_T base
Definition errors.h:101
token_T * tag_name
Definition errors.h:102
hb_string_T expected
Definition errors.h:103
hb_string_T found
Definition errors.h:104
Definition errors.h:293
hb_string_T content_type
Definition errors.h:297
token_T * tag_name
Definition errors.h:295
ERROR_T base
Definition errors.h:294
hb_string_T helper_name
Definition errors.h:296