Herb C Reference
Loading...
Searching...
No Matches
parser.h
Go to the documentation of this file.
1#ifndef HERB_PARSER_H
2#define HERB_PARSER_H
3
4#include "ast_node.h"
5#include "lexer.h"
6#include "util/hb_allocator.h"
7#include "util/hb_array.h"
8
9#include <stdint.h>
10
11typedef enum {
15 // FOREIGN_CONTENT_RUBY,
16 // FOREIGN_CONTENT_TEMPLATE
18
20
36
42
44
56
57size_t parser_sizeof(void);
58
59void herb_parser_init(parser_T* parser, lexer_T* lexer, parser_options_T options);
60
62
64 AST_DOCUMENT_NODE_T* document,
65 const parser_options_T* options,
66 hb_allocator_T* allocator
67);
68void herb_parser_deinit(parser_T* parser);
69
71 hb_array_T* nodes,
72 hb_array_T* errors,
73 const parser_options_T* options,
74 hb_allocator_T* allocator
75);
76bool match_tags_visitor(const AST_NODE_T* node, void* data);
77
78#endif
size_t parser_sizeof(void)
Definition parser.c:51
const parser_options_T HERB_DEFAULT_PARSER_OPTIONS
Definition parser.c:37
AST_DOCUMENT_NODE_T * herb_parser_parse(parser_T *parser)
Definition parser.c:1810
void match_tags_in_node_array(hb_array_T *nodes, hb_array_T *errors, const parser_options_T *options, hb_allocator_T *allocator)
Definition parser.c:1857
bool match_tags_visitor(const AST_NODE_T *node, void *data)
Definition parser_match_tags.c:9
struct MATCH_TAGS_CONTEXT_STRUCT match_tags_context_T
void herb_parser_match_html_tags_post_analyze(AST_DOCUMENT_NODE_T *document, const parser_options_T *options, hb_allocator_T *allocator)
Definition parser.c:1885
void herb_parser_init(parser_T *parser, lexer_T *lexer, parser_options_T options)
Definition parser.c:55
parser_state_T
Definition parser.h:19
@ PARSER_STATE_FOREIGN_CONTENT
Definition parser.h:19
@ PARSER_STATE_DATA
Definition parser.h:19
void herb_parser_deinit(parser_T *parser)
Definition parser.c:1842
struct PARSER_STRUCT parser_T
struct PARSER_OPTIONS_STRUCT parser_options_T
foreign_content_type_T
Definition parser.h:11
@ FOREIGN_CONTENT_STYLE
Definition parser.h:14
@ FOREIGN_CONTENT_UNKNOWN
Definition parser.h:12
@ FOREIGN_CONTENT_SCRIPT
Definition parser.h:13
Definition ast_nodes.h:76
Definition ast_nodes.h:68
Definition lexer_struct.h:17
Definition parser.h:37
hb_array_T * errors
Definition parser.h:38
const parser_options_T * options
Definition parser.h:39
hb_allocator_T * allocator
Definition parser.h:40
Definition parser.h:21
bool render_nodes
Definition parser.h:26
bool analyze
Definition parser.h:23
bool dot_notation_tags
Definition parser.h:31
uint32_t start_column
Definition parser.h:34
uint32_t start_line
Definition parser.h:33
bool strict_locals
Definition parser.h:27
bool prism_nodes_deep
Definition parser.h:30
bool prism_nodes
Definition parser.h:29
bool strict
Definition parser.h:24
bool track_whitespace
Definition parser.h:22
bool prism_program
Definition parser.h:28
bool html
Definition parser.h:32
bool action_view_helpers
Definition parser.h:25
Definition parser.h:45
size_t consecutive_error_count
Definition parser.h:53
foreign_content_type_T foreign_content_type
Definition parser.h:51
parser_state_T state
Definition parser.h:50
parser_options_T options
Definition parser.h:52
lexer_T * lexer
Definition parser.h:47
hb_allocator_T * allocator
Definition parser.h:46
bool in_recovery_mode
Definition parser.h:54
hb_array_T * open_tags_stack
Definition parser.h:49
token_T * current_token
Definition parser.h:48
Definition token_struct.h:58