Herb C Reference
Loading...
Searching...
No Matches
parser_helpers.h File Reference
#include "array.h"
#include "ast_nodes.h"
#include "buffer.h"
#include "errors.h"
#include "parser.h"
#include "token.h"

Go to the source code of this file.

Functions

void parser_push_open_tag (const parser_T *parser, token_T *tag_name)
 
bool parser_check_matching_tag (const parser_T *parser, const char *tag_name)
 
token_Tparser_pop_open_tag (const parser_T *parser)
 
void parser_append_unexpected_error (parser_T *parser, const char *description, const char *expected, array_T *errors)
 
void parser_append_unexpected_token_error (parser_T *parser, token_type_T expected_type, array_T *errors)
 
void parser_append_literal_node_from_buffer (const parser_T *parser, buffer_T *buffer, array_T *children, position_T *start)
 
bool parser_in_svg_context (const parser_T *parser)
 Checks if any element in the open tags stack is an SVG element.
 
token_Tparser_advance (parser_T *parser)
 
token_Tparser_consume_if_present (parser_T *parser, token_type_T type)
 
token_Tparser_consume_expected (parser_T *parser, token_type_T type, array_T *array)
 
AST_HTML_ELEMENT_NODE_Tparser_handle_missing_close_tag (AST_HTML_OPEN_TAG_NODE_T *open_tag, array_T *body, array_T *errors)
 
void parser_handle_mismatched_tags (const parser_T *parser, const AST_HTML_CLOSE_TAG_NODE_T *close_tag, array_T *errors)
 

Function Documentation

◆ parser_push_open_tag()

void parser_push_open_tag ( const parser_T parser,
token_T tag_name 
)

◆ parser_check_matching_tag()

bool parser_check_matching_tag ( const parser_T parser,
const char *  tag_name 
)

◆ parser_pop_open_tag()

token_T * parser_pop_open_tag ( const parser_T parser)

◆ parser_append_unexpected_error()

void parser_append_unexpected_error ( parser_T parser,
const char *  description,
const char *  expected,
array_T errors 
)

◆ parser_append_unexpected_token_error()

void parser_append_unexpected_token_error ( parser_T parser,
token_type_T  expected_type,
array_T errors 
)

◆ parser_append_literal_node_from_buffer()

void parser_append_literal_node_from_buffer ( const parser_T parser,
buffer_T buffer,
array_T children,
position_T start 
)

◆ parser_in_svg_context()

bool parser_in_svg_context ( const parser_T parser)

Checks if any element in the open tags stack is an SVG element.

Parameters
parserThe parser containing the open tags stack.
Returns
true if an SVG tag is found in the stack, false otherwise.

◆ parser_advance()

token_T * parser_advance ( parser_T parser)

◆ parser_consume_if_present()

token_T * parser_consume_if_present ( parser_T parser,
token_type_T  type 
)

◆ parser_consume_expected()

token_T * parser_consume_expected ( parser_T parser,
token_type_T  type,
array_T array 
)

◆ parser_handle_missing_close_tag()

AST_HTML_ELEMENT_NODE_T * parser_handle_missing_close_tag ( AST_HTML_OPEN_TAG_NODE_T open_tag,
array_T body,
array_T errors 
)

◆ parser_handle_mismatched_tags()

void parser_handle_mismatched_tags ( const parser_T parser,
const AST_HTML_CLOSE_TAG_NODE_T close_tag,
array_T errors 
)