$darkmode
Herb C Reference
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. More...
 
foreign_content_type_T parser_get_foreign_content_type (const char *tag_name)
 
bool parser_is_foreign_content_tag (const char *tag_name)
 
const char * parser_get_foreign_content_closing_tag (foreign_content_type_T type)
 
void parser_enter_foreign_content (parser_T *parser, foreign_content_type_T type)
 
void parser_exit_foreign_content (parser_T *parser)
 
bool parser_is_expected_closing_tag_name (const char *tag_name, foreign_content_type_T expected_type)
 
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_get_foreign_content_type()

foreign_content_type_T parser_get_foreign_content_type ( const char *  tag_name)

◆ parser_is_foreign_content_tag()

bool parser_is_foreign_content_tag ( const char *  tag_name)

◆ parser_get_foreign_content_closing_tag()

const char* parser_get_foreign_content_closing_tag ( foreign_content_type_T  type)

◆ parser_enter_foreign_content()

void parser_enter_foreign_content ( parser_T parser,
foreign_content_type_T  type 
)

◆ parser_exit_foreign_content()

void parser_exit_foreign_content ( parser_T parser)

◆ parser_is_expected_closing_tag_name()

bool parser_is_expected_closing_tag_name ( const char *  tag_name,
foreign_content_type_T  expected_type 
)

◆ 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 
)