Herb C Reference
Loading...
Searching...
No Matches
parser_helpers.h
Go to the documentation of this file.
1#ifndef HERB_PARSER_HELPERS_H
2#define HERB_PARSER_HELPERS_H
3
4#include "array.h"
5#include "ast_nodes.h"
6#include "buffer.h"
7#include "errors.h"
8#include "parser.h"
9#include "token.h"
10
11void parser_push_open_tag(const parser_T* parser, token_T* tag_name);
12bool parser_check_matching_tag(const parser_T* parser, const char* tag_name);
14
15void parser_append_unexpected_error(parser_T* parser, const char* description, const char* expected, array_T* errors);
16void parser_append_unexpected_token_error(parser_T* parser, token_type_T expected_type, array_T* errors);
17
19 const parser_T* parser, buffer_T* buffer, array_T* children, position_T* start
20);
21
22bool parser_in_svg_context(const parser_T* parser);
23
27
29 AST_HTML_OPEN_TAG_NODE_T* open_tag, array_T* body, array_T* errors
30);
31void parser_handle_mismatched_tags(const parser_T* parser, const AST_HTML_CLOSE_TAG_NODE_T* close_tag, array_T* errors);
32
33#endif
token_T * parser_advance(parser_T *parser)
Definition parser_helpers.c:94
void parser_append_literal_node_from_buffer(const parser_T *parser, buffer_T *buffer, array_T *children, position_T *start)
Definition parser_helpers.c:82
token_T * parser_pop_open_tag(const parser_T *parser)
Definition parser_helpers.c:29
bool parser_in_svg_context(const parser_T *parser)
Checks if any element in the open tags stack is an SVG element.
Definition parser_helpers.c:41
void parser_handle_mismatched_tags(const parser_T *parser, const AST_HTML_CLOSE_TAG_NODE_T *close_tag, array_T *errors)
Definition parser_helpers.c:139
void parser_append_unexpected_error(parser_T *parser, const char *description, const char *expected, array_T *errors)
Definition parser_helpers.c:57
void parser_push_open_tag(const parser_T *parser, token_T *tag_name)
Definition parser_helpers.c:15
void parser_append_unexpected_token_error(parser_T *parser, token_type_T expected_type, array_T *errors)
Definition parser_helpers.c:72
bool parser_check_matching_tag(const parser_T *parser, const char *tag_name)
Definition parser_helpers.c:20
token_T * parser_consume_if_present(parser_T *parser, token_type_T type)
Definition parser_helpers.c:100
AST_HTML_ELEMENT_NODE_T * parser_handle_missing_close_tag(AST_HTML_OPEN_TAG_NODE_T *open_tag, array_T *body, array_T *errors)
Definition parser_helpers.c:117
token_T * parser_consume_expected(parser_T *parser, token_type_T type, array_T *array)
Definition parser_helpers.c:105
Definition array.h:6
Definition ast_nodes.h:74
Definition ast_nodes.h:90
Definition ast_nodes.h:65
Definition buffer.h:7
Definition parser.h:8
Definition position.h:6
Definition token_struct.h:44
token_type_T
Definition token_struct.h:7