$darkmode
Herb C Reference
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_array.h"
7 
8 typedef enum {
12  // FOREIGN_CONTENT_RUBY,
13  // FOREIGN_CONTENT_TEMPLATE
15 
17 
18 typedef struct PARSER_OPTIONS_STRUCT {
21 
23 
24 typedef struct PARSER_STRUCT {
27  hb_array_T* open_tags_stack;
32 
33 void herb_parser_init(parser_T* parser, lexer_T* lexer, parser_options_T options);
34 
36 
37 size_t parser_sizeof(void);
38 
39 void herb_parser_deinit(parser_T* parser);
40 
41 #endif
size_t parser_sizeof(void)
Definition: parser.c:33
AST_DOCUMENT_NODE_T * herb_parser_parse(parser_T *parser)
Definition: parser.c:1207
const parser_options_T HERB_DEFAULT_PARSER_OPTIONS
Definition: parser.c:31
void herb_parser_init(parser_T *parser, lexer_T *lexer, parser_options_T options)
Definition: parser.c:37
parser_state_T
Definition: parser.h:16
@ PARSER_STATE_FOREIGN_CONTENT
Definition: parser.h:16
@ PARSER_STATE_DATA
Definition: parser.h:16
void herb_parser_deinit(parser_T *parser)
Definition: parser.c:1238
struct PARSER_STRUCT parser_T
struct PARSER_OPTIONS_STRUCT parser_options_T
foreign_content_type_T
Definition: parser.h:8
@ FOREIGN_CONTENT_STYLE
Definition: parser.h:11
@ FOREIGN_CONTENT_UNKNOWN
Definition: parser.h:9
@ FOREIGN_CONTENT_SCRIPT
Definition: parser.h:10
Definition: ast_nodes.h:61
Definition: lexer_struct.h:16
Definition: parser.h:18
bool track_whitespace
Definition: parser.h:19
Definition: parser.h:24
foreign_content_type_T foreign_content_type
Definition: parser.h:29
parser_state_T state
Definition: parser.h:28
parser_options_T options
Definition: parser.h:30
lexer_T * lexer
Definition: parser.h:25
hb_array_T * open_tags_stack
Definition: parser.h:27
token_T * current_token
Definition: parser.h:26
Definition: token_struct.h:51