Herb C Reference
Loading...
Searching...
No Matches
parser.c File Reference
#include "include/parser.h"
#include "include/array.h"
#include "include/ast_node.h"
#include "include/ast_nodes.h"
#include "include/buffer.h"
#include "include/errors.h"
#include "include/html_util.h"
#include "include/lexer.h"
#include "include/parser_helpers.h"
#include "include/token.h"
#include "include/token_matchers.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>

Functions

static void parser_parse_in_data_state (parser_T *parser, array_T *children, array_T *errors)
 
static AST_ERB_CONTENT_NODE_Tparser_parse_erb_tag (parser_T *parser)
 
size_t parser_sizeof (void)
 
parser_Tparser_init (lexer_T *lexer)
 
static AST_HTML_COMMENT_NODE_Tparser_parse_html_comment (parser_T *parser)
 
static AST_HTML_DOCTYPE_NODE_Tparser_parse_html_doctype (parser_T *parser)
 
static AST_HTML_TEXT_NODE_Tparser_parse_text_content (parser_T *parser)
 
static AST_HTML_ATTRIBUTE_NAME_NODE_Tparser_parse_html_attribute_name (parser_T *parser)
 
static AST_HTML_ATTRIBUTE_VALUE_NODE_Tparser_parse_quoted_html_attribute_value (parser_T *parser, array_T *children, array_T *errors)
 
static AST_HTML_ATTRIBUTE_VALUE_NODE_Tparser_parse_html_attribute_value (parser_T *parser)
 
static AST_HTML_ATTRIBUTE_NODE_Tparser_parse_html_attribute (parser_T *parser)
 
static AST_HTML_OPEN_TAG_NODE_Tparser_parse_html_open_tag (parser_T *parser)
 
static AST_HTML_CLOSE_TAG_NODE_Tparser_parse_html_close_tag (parser_T *parser)
 
static AST_HTML_ELEMENT_NODE_Tparser_parse_html_self_closing_element (const parser_T *parser, AST_HTML_OPEN_TAG_NODE_T *open_tag)
 
static AST_HTML_ELEMENT_NODE_Tparser_parse_html_regular_element (parser_T *parser, AST_HTML_OPEN_TAG_NODE_T *open_tag)
 
static AST_HTML_ELEMENT_NODE_Tparser_parse_html_element (parser_T *parser)
 
static void parser_parse_unclosed_html_tags (const parser_T *parser, array_T *errors)
 
static void parser_parse_stray_closing_tags (parser_T *parser, array_T *children, array_T *errors)
 
static AST_DOCUMENT_NODE_Tparser_parse_document (parser_T *parser)
 
AST_DOCUMENT_NODE_Tparser_parse (parser_T *parser)
 
void parser_free (parser_T *parser)
 

Function Documentation

◆ parser_parse_in_data_state()

static void parser_parse_in_data_state ( parser_T parser,
array_T children,
array_T errors 
)
static

◆ parser_parse_erb_tag()

static AST_ERB_CONTENT_NODE_T * parser_parse_erb_tag ( parser_T parser)
static

◆ parser_sizeof()

size_t parser_sizeof ( void  )

◆ parser_init()

parser_T * parser_init ( lexer_T lexer)

◆ parser_parse_html_comment()

static AST_HTML_COMMENT_NODE_T * parser_parse_html_comment ( parser_T parser)
static

◆ parser_parse_html_doctype()

static AST_HTML_DOCTYPE_NODE_T * parser_parse_html_doctype ( parser_T parser)
static

◆ parser_parse_text_content()

static AST_HTML_TEXT_NODE_T * parser_parse_text_content ( parser_T parser)
static

◆ parser_parse_html_attribute_name()

static AST_HTML_ATTRIBUTE_NAME_NODE_T * parser_parse_html_attribute_name ( parser_T parser)
static

◆ parser_parse_quoted_html_attribute_value()

static AST_HTML_ATTRIBUTE_VALUE_NODE_T * parser_parse_quoted_html_attribute_value ( parser_T parser,
array_T children,
array_T errors 
)
static

◆ parser_parse_html_attribute_value()

static AST_HTML_ATTRIBUTE_VALUE_NODE_T * parser_parse_html_attribute_value ( parser_T parser)
static

◆ parser_parse_html_attribute()

static AST_HTML_ATTRIBUTE_NODE_T * parser_parse_html_attribute ( parser_T parser)
static

◆ parser_parse_html_open_tag()

static AST_HTML_OPEN_TAG_NODE_T * parser_parse_html_open_tag ( parser_T parser)
static

◆ parser_parse_html_close_tag()

static AST_HTML_CLOSE_TAG_NODE_T * parser_parse_html_close_tag ( parser_T parser)
static

◆ parser_parse_html_self_closing_element()

static AST_HTML_ELEMENT_NODE_T * parser_parse_html_self_closing_element ( const parser_T parser,
AST_HTML_OPEN_TAG_NODE_T open_tag 
)
static

◆ parser_parse_html_regular_element()

static AST_HTML_ELEMENT_NODE_T * parser_parse_html_regular_element ( parser_T parser,
AST_HTML_OPEN_TAG_NODE_T open_tag 
)
static

◆ parser_parse_html_element()

static AST_HTML_ELEMENT_NODE_T * parser_parse_html_element ( parser_T parser)
static

◆ parser_parse_unclosed_html_tags()

static void parser_parse_unclosed_html_tags ( const parser_T parser,
array_T errors 
)
static

◆ parser_parse_stray_closing_tags()

static void parser_parse_stray_closing_tags ( parser_T parser,
array_T children,
array_T errors 
)
static

◆ parser_parse_document()

static AST_DOCUMENT_NODE_T * parser_parse_document ( parser_T parser)
static

◆ parser_parse()

AST_DOCUMENT_NODE_T * parser_parse ( parser_T parser)

◆ parser_free()

void parser_free ( parser_T parser)