Herb C Reference
Loading...
Searching...
No Matches
ast_nodes.h
Go to the documentation of this file.
1// NOTE: This file is generated by the templates/template.rb script and should not
2// be modified manually. See /home/runner/work/herb/herb/templates/src/include/ast_nodes.h.erb
3
4#ifndef HERB_AST_NODES_H
5#define HERB_AST_NODES_H
6
7#include <stdbool.h>
8#include <prism.h>
9
10#include "analyze/analyzed_ruby.h"
11#include "element_source.h"
12#include "herb_prism_node.h"
13#include "prism_context.h"
14#include "prism_serialized.h"
15#include "location.h"
16#include "position.h"
17#include "token_struct.h"
18#include "util/hb_allocator.h"
19#include "util/hb_array.h"
20#include "util/hb_buffer.h"
21#include "util/hb_string.h"
22
63
64typedef struct AST_NODE_STRUCT {
67 // maybe a range too?
68 hb_array_T* errors;
70
71
78
83
92
99
107
112
117
127
139
147
152
159
164
170
179
184
191
198
205
212
217
228
235
243
255
265
274
286
298
308
318
328
337
345
358
370
377
386
387AST_DOCUMENT_NODE_T* ast_document_node_init(hb_array_T* children, herb_prism_context_T* prism_context, herb_prism_node_T prism_node, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
388AST_LITERAL_NODE_T* ast_literal_node_init(hb_string_T content, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
389AST_HTML_OPEN_TAG_NODE_T* ast_html_open_tag_node_init(token_T* tag_opening, token_T* tag_name, token_T* tag_closing, hb_array_T* children, bool is_void, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
390AST_HTML_CONDITIONAL_OPEN_TAG_NODE_T* ast_html_conditional_open_tag_node_init(AST_NODE_T* conditional, token_T* tag_name, bool is_void, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
391AST_HTML_CLOSE_TAG_NODE_T* ast_html_close_tag_node_init(token_T* tag_opening, token_T* tag_name, hb_array_T* children, token_T* tag_closing, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
392AST_HTML_OMITTED_CLOSE_TAG_NODE_T* ast_html_omitted_close_tag_node_init(token_T* tag_name, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
393AST_HTML_VIRTUAL_CLOSE_TAG_NODE_T* ast_html_virtual_close_tag_node_init(token_T* tag_name, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
394AST_HTML_ELEMENT_NODE_T* ast_html_element_node_init(AST_NODE_T* open_tag, token_T* tag_name, hb_array_T* body, AST_NODE_T* close_tag, bool is_void, hb_string_T element_source, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
395AST_HTML_CONDITIONAL_ELEMENT_NODE_T* ast_html_conditional_element_node_init(hb_string_T condition, AST_NODE_T* open_conditional, struct AST_HTML_OPEN_TAG_NODE_STRUCT* open_tag, hb_array_T* body, AST_NODE_T* close_tag, AST_NODE_T* close_conditional, token_T* tag_name, hb_string_T element_source, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
396AST_HTML_ATTRIBUTE_VALUE_NODE_T* ast_html_attribute_value_node_init(token_T* open_quote, hb_array_T* children, token_T* close_quote, bool quoted, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
397AST_HTML_ATTRIBUTE_NAME_NODE_T* ast_html_attribute_name_node_init(hb_array_T* children, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
398AST_HTML_ATTRIBUTE_NODE_T* ast_html_attribute_node_init(struct AST_HTML_ATTRIBUTE_NAME_NODE_STRUCT* name, token_T* equals, struct AST_HTML_ATTRIBUTE_VALUE_NODE_STRUCT* value, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
399AST_RUBY_LITERAL_NODE_T* ast_ruby_literal_node_init(hb_string_T content, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
400AST_RUBY_HTML_ATTRIBUTES_SPLAT_NODE_T* ast_ruby_html_attributes_splat_node_init(hb_string_T content, hb_string_T prefix, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
401AST_ERB_OPEN_TAG_NODE_T* ast_erb_open_tag_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, token_T* tag_name, hb_array_T* children, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
402AST_HTML_TEXT_NODE_T* ast_html_text_node_init(hb_string_T content, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
403AST_HTML_COMMENT_NODE_T* ast_html_comment_node_init(token_T* comment_start, hb_array_T* children, token_T* comment_end, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
404AST_HTML_DOCTYPE_NODE_T* ast_html_doctype_node_init(token_T* tag_opening, hb_array_T* children, token_T* tag_closing, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
405AST_XML_DECLARATION_NODE_T* ast_xml_declaration_node_init(token_T* tag_opening, hb_array_T* children, token_T* tag_closing, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
406AST_CDATA_NODE_T* ast_cdata_node_init(token_T* tag_opening, hb_array_T* children, token_T* tag_closing, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
407AST_WHITESPACE_NODE_T* ast_whitespace_node_init(token_T* value, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
408AST_ERB_CONTENT_NODE_T* ast_erb_content_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, analyzed_ruby_T* analyzed_ruby, bool parsed, bool valid, herb_prism_node_T prism_node, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
409AST_ERB_END_NODE_T* ast_erb_end_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
410AST_ERB_ELSE_NODE_T* ast_erb_else_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, hb_array_T* statements, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
411AST_ERB_IF_NODE_T* ast_erb_if_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, location_T* then_keyword, herb_prism_node_T prism_node, hb_array_T* statements, AST_NODE_T* subsequent, struct AST_ERB_END_NODE_STRUCT* end_node, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
412AST_ERB_BLOCK_NODE_T* ast_erb_block_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, herb_prism_node_T prism_node, hb_array_T* body, struct AST_ERB_END_NODE_STRUCT* end_node, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
413AST_ERB_WHEN_NODE_T* ast_erb_when_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, location_T* then_keyword, hb_array_T* statements, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
414AST_ERB_CASE_NODE_T* ast_erb_case_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, hb_array_T* children, herb_prism_node_T prism_node, hb_array_T* conditions, struct AST_ERB_ELSE_NODE_STRUCT* else_clause, struct AST_ERB_END_NODE_STRUCT* end_node, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
415AST_ERB_CASE_MATCH_NODE_T* ast_erb_case_match_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, hb_array_T* children, herb_prism_node_T prism_node, hb_array_T* conditions, struct AST_ERB_ELSE_NODE_STRUCT* else_clause, struct AST_ERB_END_NODE_STRUCT* end_node, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
416AST_ERB_WHILE_NODE_T* ast_erb_while_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, herb_prism_node_T prism_node, hb_array_T* statements, struct AST_ERB_END_NODE_STRUCT* end_node, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
417AST_ERB_UNTIL_NODE_T* ast_erb_until_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, herb_prism_node_T prism_node, hb_array_T* statements, struct AST_ERB_END_NODE_STRUCT* end_node, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
418AST_ERB_FOR_NODE_T* ast_erb_for_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, herb_prism_node_T prism_node, hb_array_T* statements, struct AST_ERB_END_NODE_STRUCT* end_node, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
419AST_ERB_RESCUE_NODE_T* ast_erb_rescue_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, hb_array_T* statements, struct AST_ERB_RESCUE_NODE_STRUCT* subsequent, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
420AST_ERB_ENSURE_NODE_T* ast_erb_ensure_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, hb_array_T* statements, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
421AST_ERB_BEGIN_NODE_T* ast_erb_begin_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, herb_prism_node_T prism_node, hb_array_T* statements, struct AST_ERB_RESCUE_NODE_STRUCT* rescue_clause, struct AST_ERB_ELSE_NODE_STRUCT* else_clause, struct AST_ERB_ENSURE_NODE_STRUCT* ensure_clause, struct AST_ERB_END_NODE_STRUCT* end_node, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
422AST_ERB_UNLESS_NODE_T* ast_erb_unless_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, location_T* then_keyword, herb_prism_node_T prism_node, hb_array_T* statements, struct AST_ERB_ELSE_NODE_STRUCT* else_clause, struct AST_ERB_END_NODE_STRUCT* end_node, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
423AST_ERB_YIELD_NODE_T* ast_erb_yield_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
424AST_ERB_IN_NODE_T* ast_erb_in_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, location_T* then_keyword, hb_array_T* statements, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
425
426hb_string_T ast_node_type_to_string(AST_NODE_T* node);
427hb_string_T ast_node_human_type(AST_NODE_T* node);
428
429#endif
struct AST_NODE_STRUCT AST_NODE_T
struct AST_HTML_DOCTYPE_NODE_STRUCT AST_HTML_DOCTYPE_NODE_T
AST_ERB_ENSURE_NODE_T * ast_erb_ensure_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, hb_array_T *statements, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:517
struct AST_CDATA_NODE_STRUCT AST_CDATA_NODE_T
AST_DOCUMENT_NODE_T * ast_document_node_init(hb_array_T *children, herb_prism_context_T *prism_context, herb_prism_node_T prism_node, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:20
struct AST_ERB_BEGIN_NODE_STRUCT AST_ERB_BEGIN_NODE_T
struct AST_ERB_ENSURE_NODE_STRUCT AST_ERB_ENSURE_NODE_T
struct AST_ERB_WHEN_NODE_STRUCT AST_ERB_WHEN_NODE_T
struct AST_DOCUMENT_NODE_STRUCT AST_DOCUMENT_NODE_T
AST_ERB_FOR_NODE_T * ast_erb_for_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, herb_prism_node_T prism_node, hb_array_T *statements, struct AST_ERB_END_NODE_STRUCT *end_node, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:484
AST_HTML_CLOSE_TAG_NODE_T * ast_html_close_tag_node_init(token_T *tag_opening, token_T *tag_name, hb_array_T *children, token_T *tag_closing, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:76
AST_HTML_DOCTYPE_NODE_T * ast_html_doctype_node_init(token_T *tag_opening, hb_array_T *children, token_T *tag_closing, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:259
AST_ERB_CASE_MATCH_NODE_T * ast_erb_case_match_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, hb_array_T *children, herb_prism_node_T prism_node, hb_array_T *conditions, struct AST_ERB_ELSE_NODE_STRUCT *else_clause, struct AST_ERB_END_NODE_STRUCT *end_node, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:431
struct AST_HTML_TEXT_NODE_STRUCT AST_HTML_TEXT_NODE_T
AST_WHITESPACE_NODE_T * ast_whitespace_node_init(token_T *value, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:301
AST_ERB_BEGIN_NODE_T * ast_erb_begin_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, herb_prism_node_T prism_node, hb_array_T *statements, struct AST_ERB_RESCUE_NODE_STRUCT *rescue_clause, struct AST_ERB_ELSE_NODE_STRUCT *else_clause, struct AST_ERB_ENSURE_NODE_STRUCT *ensure_clause, struct AST_ERB_END_NODE_STRUCT *end_node, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:532
struct AST_HTML_CONDITIONAL_OPEN_TAG_NODE_STRUCT AST_HTML_CONDITIONAL_OPEN_TAG_NODE_T
struct AST_HTML_ATTRIBUTE_NAME_NODE_STRUCT AST_HTML_ATTRIBUTE_NAME_NODE_T
struct AST_ERB_CASE_MATCH_NODE_STRUCT AST_ERB_CASE_MATCH_NODE_T
AST_ERB_ELSE_NODE_T * ast_erb_else_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, hb_array_T *statements, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:345
AST_HTML_ATTRIBUTE_NODE_T * ast_html_attribute_node_init(struct AST_HTML_ATTRIBUTE_NAME_NODE_STRUCT *name, token_T *equals, struct AST_HTML_ATTRIBUTE_VALUE_NODE_STRUCT *value, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:178
struct AST_ERB_FOR_NODE_STRUCT AST_ERB_FOR_NODE_T
AST_CDATA_NODE_T * ast_cdata_node_init(token_T *tag_opening, hb_array_T *children, token_T *tag_closing, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:287
AST_XML_DECLARATION_NODE_T * ast_xml_declaration_node_init(token_T *tag_opening, hb_array_T *children, token_T *tag_closing, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:273
AST_HTML_ATTRIBUTE_NAME_NODE_T * ast_html_attribute_name_node_init(hb_array_T *children, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:166
AST_ERB_UNLESS_NODE_T * ast_erb_unless_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, location_T *then_keyword, herb_prism_node_T prism_node, hb_array_T *statements, struct AST_ERB_ELSE_NODE_STRUCT *else_clause, struct AST_ERB_END_NODE_STRUCT *end_node, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:552
AST_ERB_UNTIL_NODE_T * ast_erb_until_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, herb_prism_node_T prism_node, hb_array_T *statements, struct AST_ERB_END_NODE_STRUCT *end_node, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:467
AST_ERB_IN_NODE_T * ast_erb_in_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, location_T *then_keyword, hb_array_T *statements, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:585
AST_HTML_TEXT_NODE_T * ast_html_text_node_init(hb_string_T content, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:233
AST_ERB_WHILE_NODE_T * ast_erb_while_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, herb_prism_node_T prism_node, hb_array_T *statements, struct AST_ERB_END_NODE_STRUCT *end_node, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:450
AST_HTML_CONDITIONAL_ELEMENT_NODE_T * ast_html_conditional_element_node_init(hb_string_T condition, AST_NODE_T *open_conditional, struct AST_HTML_OPEN_TAG_NODE_STRUCT *open_tag, hb_array_T *body, AST_NODE_T *close_tag, AST_NODE_T *close_conditional, token_T *tag_name, hb_string_T element_source, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:132
struct AST_WHITESPACE_NODE_STRUCT AST_WHITESPACE_NODE_T
struct AST_ERB_BLOCK_NODE_STRUCT AST_ERB_BLOCK_NODE_T
struct AST_ERB_IF_NODE_STRUCT AST_ERB_IF_NODE_T
AST_ERB_OPEN_TAG_NODE_T * ast_erb_open_tag_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, token_T *tag_name, hb_array_T *children, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:217
struct AST_ERB_WHILE_NODE_STRUCT AST_ERB_WHILE_NODE_T
struct AST_ERB_END_NODE_STRUCT AST_ERB_END_NODE_T
struct AST_HTML_CONDITIONAL_ELEMENT_NODE_STRUCT AST_HTML_CONDITIONAL_ELEMENT_NODE_T
struct AST_ERB_YIELD_NODE_STRUCT AST_ERB_YIELD_NODE_T
AST_RUBY_LITERAL_NODE_T * ast_ruby_literal_node_init(hb_string_T content, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:192
struct AST_ERB_UNTIL_NODE_STRUCT AST_ERB_UNTIL_NODE_T
struct AST_ERB_UNLESS_NODE_STRUCT AST_ERB_UNLESS_NODE_T
ast_node_type_T
Definition ast_nodes.h:23
@ AST_ERB_UNTIL_NODE
Definition ast_nodes.h:54
@ AST_ERB_IN_NODE
Definition ast_nodes.h:61
@ AST_ERB_END_NODE
Definition ast_nodes.h:46
@ AST_ERB_OPEN_TAG_NODE
Definition ast_nodes.h:38
@ AST_ERB_BLOCK_NODE
Definition ast_nodes.h:49
@ AST_RUBY_LITERAL_NODE
Definition ast_nodes.h:36
@ AST_HTML_COMMENT_NODE
Definition ast_nodes.h:40
@ AST_HTML_ATTRIBUTE_VALUE_NODE
Definition ast_nodes.h:33
@ AST_CDATA_NODE
Definition ast_nodes.h:43
@ AST_HTML_ELEMENT_NODE
Definition ast_nodes.h:31
@ AST_ERB_WHEN_NODE
Definition ast_nodes.h:50
@ AST_RUBY_HTML_ATTRIBUTES_SPLAT_NODE
Definition ast_nodes.h:37
@ AST_ERB_BEGIN_NODE
Definition ast_nodes.h:58
@ AST_ERB_WHILE_NODE
Definition ast_nodes.h:53
@ AST_DOCUMENT_NODE
Definition ast_nodes.h:24
@ AST_ERB_IF_NODE
Definition ast_nodes.h:48
@ AST_ERB_FOR_NODE
Definition ast_nodes.h:55
@ AST_HTML_OPEN_TAG_NODE
Definition ast_nodes.h:26
@ AST_HTML_OMITTED_CLOSE_TAG_NODE
Definition ast_nodes.h:29
@ AST_HTML_DOCTYPE_NODE
Definition ast_nodes.h:41
@ AST_HTML_ATTRIBUTE_NODE
Definition ast_nodes.h:35
@ AST_HTML_TEXT_NODE
Definition ast_nodes.h:39
@ AST_ERB_UNLESS_NODE
Definition ast_nodes.h:59
@ AST_ERB_ENSURE_NODE
Definition ast_nodes.h:57
@ AST_LITERAL_NODE
Definition ast_nodes.h:25
@ AST_WHITESPACE_NODE
Definition ast_nodes.h:44
@ AST_ERB_CASE_NODE
Definition ast_nodes.h:51
@ AST_ERB_CONTENT_NODE
Definition ast_nodes.h:45
@ AST_ERB_ELSE_NODE
Definition ast_nodes.h:47
@ AST_HTML_VIRTUAL_CLOSE_TAG_NODE
Definition ast_nodes.h:30
@ AST_HTML_CONDITIONAL_ELEMENT_NODE
Definition ast_nodes.h:32
@ AST_ERB_CASE_MATCH_NODE
Definition ast_nodes.h:52
@ AST_ERB_RESCUE_NODE
Definition ast_nodes.h:56
@ AST_ERB_YIELD_NODE
Definition ast_nodes.h:60
@ AST_HTML_CONDITIONAL_OPEN_TAG_NODE
Definition ast_nodes.h:27
@ AST_XML_DECLARATION_NODE
Definition ast_nodes.h:42
@ AST_HTML_ATTRIBUTE_NAME_NODE
Definition ast_nodes.h:34
@ AST_HTML_CLOSE_TAG_NODE
Definition ast_nodes.h:28
AST_ERB_WHEN_NODE_T * ast_erb_when_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, location_T *then_keyword, hb_array_T *statements, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:396
AST_HTML_COMMENT_NODE_T * ast_html_comment_node_init(token_T *comment_start, hb_array_T *children, token_T *comment_end, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:245
struct AST_ERB_CASE_NODE_STRUCT AST_ERB_CASE_NODE_T
struct AST_XML_DECLARATION_NODE_STRUCT AST_XML_DECLARATION_NODE_T
AST_ERB_RESCUE_NODE_T * ast_erb_rescue_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, hb_array_T *statements, struct AST_ERB_RESCUE_NODE_STRUCT *subsequent, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:501
AST_ERB_END_NODE_T * ast_erb_end_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:331
AST_ERB_YIELD_NODE_T * ast_erb_yield_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:571
AST_HTML_OPEN_TAG_NODE_T * ast_html_open_tag_node_init(token_T *tag_opening, token_T *tag_name, token_T *tag_closing, hb_array_T *children, bool is_void, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:46
struct AST_HTML_OPEN_TAG_NODE_STRUCT AST_HTML_OPEN_TAG_NODE_T
struct AST_HTML_VIRTUAL_CLOSE_TAG_NODE_STRUCT AST_HTML_VIRTUAL_CLOSE_TAG_NODE_T
AST_ERB_BLOCK_NODE_T * ast_erb_block_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, herb_prism_node_T prism_node, hb_array_T *body, struct AST_ERB_END_NODE_STRUCT *end_node, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:379
AST_ERB_IF_NODE_T * ast_erb_if_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, location_T *then_keyword, herb_prism_node_T prism_node, hb_array_T *statements, AST_NODE_T *subsequent, struct AST_ERB_END_NODE_STRUCT *end_node, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:360
AST_ERB_CASE_NODE_T * ast_erb_case_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, hb_array_T *children, herb_prism_node_T prism_node, hb_array_T *conditions, struct AST_ERB_ELSE_NODE_STRUCT *else_clause, struct AST_ERB_END_NODE_STRUCT *end_node, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:412
struct AST_HTML_CLOSE_TAG_NODE_STRUCT AST_HTML_CLOSE_TAG_NODE_T
hb_string_T ast_node_human_type(AST_NODE_T *node)
Definition ast_nodes.c:646
struct AST_ERB_OPEN_TAG_NODE_STRUCT AST_ERB_OPEN_TAG_NODE_T
struct AST_ERB_CONTENT_NODE_STRUCT AST_ERB_CONTENT_NODE_T
AST_HTML_VIRTUAL_CLOSE_TAG_NODE_T * ast_html_virtual_close_tag_node_init(token_T *tag_name, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:103
AST_HTML_ATTRIBUTE_VALUE_NODE_T * ast_html_attribute_value_node_init(token_T *open_quote, hb_array_T *children, token_T *close_quote, bool quoted, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:151
AST_RUBY_HTML_ATTRIBUTES_SPLAT_NODE_T * ast_ruby_html_attributes_splat_node_init(hb_string_T content, hb_string_T prefix, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:204
struct AST_RUBY_HTML_ATTRIBUTES_SPLAT_NODE_STRUCT AST_RUBY_HTML_ATTRIBUTES_SPLAT_NODE_T
AST_ERB_CONTENT_NODE_T * ast_erb_content_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, analyzed_ruby_T *analyzed_ruby, bool parsed, bool valid, herb_prism_node_T prism_node, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:313
AST_HTML_ELEMENT_NODE_T * ast_html_element_node_init(AST_NODE_T *open_tag, token_T *tag_name, hb_array_T *body, AST_NODE_T *close_tag, bool is_void, hb_string_T element_source, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:115
AST_LITERAL_NODE_T * ast_literal_node_init(hb_string_T content, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:34
hb_string_T ast_node_type_to_string(AST_NODE_T *node)
Definition ast_nodes.c:601
struct AST_HTML_ATTRIBUTE_NODE_STRUCT AST_HTML_ATTRIBUTE_NODE_T
struct AST_HTML_OMITTED_CLOSE_TAG_NODE_STRUCT AST_HTML_OMITTED_CLOSE_TAG_NODE_T
AST_HTML_OMITTED_CLOSE_TAG_NODE_T * ast_html_omitted_close_tag_node_init(token_T *tag_name, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:91
AST_HTML_CONDITIONAL_OPEN_TAG_NODE_T * ast_html_conditional_open_tag_node_init(AST_NODE_T *conditional, token_T *tag_name, bool is_void, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:62
struct AST_LITERAL_NODE_STRUCT AST_LITERAL_NODE_T
struct AST_ERB_RESCUE_NODE_STRUCT AST_ERB_RESCUE_NODE_T
struct AST_HTML_COMMENT_NODE_STRUCT AST_HTML_COMMENT_NODE_T
struct AST_ERB_IN_NODE_STRUCT AST_ERB_IN_NODE_T
struct AST_HTML_ATTRIBUTE_VALUE_NODE_STRUCT AST_HTML_ATTRIBUTE_VALUE_NODE_T
struct AST_ERB_ELSE_NODE_STRUCT AST_ERB_ELSE_NODE_T
struct AST_HTML_ELEMENT_NODE_STRUCT AST_HTML_ELEMENT_NODE_T
struct AST_RUBY_LITERAL_NODE_STRUCT AST_RUBY_LITERAL_NODE_T
Definition ast_nodes.h:206
token_T * tag_opening
Definition ast_nodes.h:208
AST_NODE_T base
Definition ast_nodes.h:207
token_T * tag_closing
Definition ast_nodes.h:210
hb_array_T * children
Definition ast_nodes.h:209
Definition ast_nodes.h:72
hb_array_T * children
Definition ast_nodes.h:74
herb_prism_context_T * prism_context
Definition ast_nodes.h:75
AST_NODE_T base
Definition ast_nodes.h:73
herb_prism_node_T prism_node
Definition ast_nodes.h:76
Definition ast_nodes.h:346
struct AST_ERB_ELSE_NODE_STRUCT * else_clause
Definition ast_nodes.h:354
hb_array_T * statements
Definition ast_nodes.h:352
token_T * tag_closing
Definition ast_nodes.h:350
token_T * content
Definition ast_nodes.h:349
struct AST_ERB_END_NODE_STRUCT * end_node
Definition ast_nodes.h:356
AST_NODE_T base
Definition ast_nodes.h:347
token_T * tag_opening
Definition ast_nodes.h:348
herb_prism_node_T prism_node
Definition ast_nodes.h:351
struct AST_ERB_RESCUE_NODE_STRUCT * rescue_clause
Definition ast_nodes.h:353
struct AST_ERB_ENSURE_NODE_STRUCT * ensure_clause
Definition ast_nodes.h:355
Definition ast_nodes.h:256
AST_NODE_T base
Definition ast_nodes.h:257
herb_prism_node_T prism_node
Definition ast_nodes.h:261
token_T * tag_opening
Definition ast_nodes.h:258
token_T * tag_closing
Definition ast_nodes.h:260
token_T * content
Definition ast_nodes.h:259
struct AST_ERB_END_NODE_STRUCT * end_node
Definition ast_nodes.h:263
hb_array_T * body
Definition ast_nodes.h:262
Definition ast_nodes.h:287
hb_array_T * children
Definition ast_nodes.h:292
struct AST_ERB_ELSE_NODE_STRUCT * else_clause
Definition ast_nodes.h:295
token_T * tag_opening
Definition ast_nodes.h:289
AST_NODE_T base
Definition ast_nodes.h:288
hb_array_T * conditions
Definition ast_nodes.h:294
token_T * tag_closing
Definition ast_nodes.h:291
token_T * content
Definition ast_nodes.h:290
herb_prism_node_T prism_node
Definition ast_nodes.h:293
struct AST_ERB_END_NODE_STRUCT * end_node
Definition ast_nodes.h:296
Definition ast_nodes.h:275
struct AST_ERB_END_NODE_STRUCT * end_node
Definition ast_nodes.h:284
token_T * content
Definition ast_nodes.h:278
hb_array_T * children
Definition ast_nodes.h:280
hb_array_T * conditions
Definition ast_nodes.h:282
AST_NODE_T base
Definition ast_nodes.h:276
token_T * tag_closing
Definition ast_nodes.h:279
struct AST_ERB_ELSE_NODE_STRUCT * else_clause
Definition ast_nodes.h:283
herb_prism_node_T prism_node
Definition ast_nodes.h:281
token_T * tag_opening
Definition ast_nodes.h:277
Definition ast_nodes.h:218
analyzed_ruby_T * analyzed_ruby
Definition ast_nodes.h:223
AST_NODE_T base
Definition ast_nodes.h:219
bool valid
Definition ast_nodes.h:225
bool parsed
Definition ast_nodes.h:224
token_T * tag_closing
Definition ast_nodes.h:222
token_T * tag_opening
Definition ast_nodes.h:220
herb_prism_node_T prism_node
Definition ast_nodes.h:226
token_T * content
Definition ast_nodes.h:221
Definition ast_nodes.h:236
token_T * tag_opening
Definition ast_nodes.h:238
token_T * tag_closing
Definition ast_nodes.h:240
AST_NODE_T base
Definition ast_nodes.h:237
hb_array_T * statements
Definition ast_nodes.h:241
token_T * content
Definition ast_nodes.h:239
Definition ast_nodes.h:229
token_T * tag_closing
Definition ast_nodes.h:233
token_T * tag_opening
Definition ast_nodes.h:231
AST_NODE_T base
Definition ast_nodes.h:230
token_T * content
Definition ast_nodes.h:232
Definition ast_nodes.h:338
hb_array_T * statements
Definition ast_nodes.h:343
token_T * tag_closing
Definition ast_nodes.h:342
AST_NODE_T base
Definition ast_nodes.h:339
token_T * tag_opening
Definition ast_nodes.h:340
token_T * content
Definition ast_nodes.h:341
Definition ast_nodes.h:319
hb_array_T * statements
Definition ast_nodes.h:325
token_T * tag_opening
Definition ast_nodes.h:321
token_T * tag_closing
Definition ast_nodes.h:323
struct AST_ERB_END_NODE_STRUCT * end_node
Definition ast_nodes.h:326
token_T * content
Definition ast_nodes.h:322
AST_NODE_T base
Definition ast_nodes.h:320
herb_prism_node_T prism_node
Definition ast_nodes.h:324
Definition ast_nodes.h:244
herb_prism_node_T prism_node
Definition ast_nodes.h:250
AST_NODE_T base
Definition ast_nodes.h:245
AST_NODE_T * subsequent
Definition ast_nodes.h:252
location_T * then_keyword
Definition ast_nodes.h:249
token_T * tag_opening
Definition ast_nodes.h:246
hb_array_T * statements
Definition ast_nodes.h:251
token_T * content
Definition ast_nodes.h:247
token_T * tag_closing
Definition ast_nodes.h:248
struct AST_ERB_END_NODE_STRUCT * end_node
Definition ast_nodes.h:253
Definition ast_nodes.h:378
location_T * then_keyword
Definition ast_nodes.h:383
token_T * tag_opening
Definition ast_nodes.h:380
hb_array_T * statements
Definition ast_nodes.h:384
token_T * tag_closing
Definition ast_nodes.h:382
AST_NODE_T base
Definition ast_nodes.h:379
token_T * content
Definition ast_nodes.h:381
Definition ast_nodes.h:171
token_T * tag_closing
Definition ast_nodes.h:175
token_T * tag_opening
Definition ast_nodes.h:173
AST_NODE_T base
Definition ast_nodes.h:172
hb_array_T * children
Definition ast_nodes.h:177
token_T * content
Definition ast_nodes.h:174
token_T * tag_name
Definition ast_nodes.h:176
Definition ast_nodes.h:329
token_T * tag_closing
Definition ast_nodes.h:333
AST_NODE_T base
Definition ast_nodes.h:330
hb_array_T * statements
Definition ast_nodes.h:334
token_T * tag_opening
Definition ast_nodes.h:331
token_T * content
Definition ast_nodes.h:332
struct AST_ERB_RESCUE_NODE_STRUCT * subsequent
Definition ast_nodes.h:335
Definition ast_nodes.h:359
token_T * content
Definition ast_nodes.h:362
herb_prism_node_T prism_node
Definition ast_nodes.h:365
AST_NODE_T base
Definition ast_nodes.h:360
struct AST_ERB_END_NODE_STRUCT * end_node
Definition ast_nodes.h:368
location_T * then_keyword
Definition ast_nodes.h:364
struct AST_ERB_ELSE_NODE_STRUCT * else_clause
Definition ast_nodes.h:367
token_T * tag_closing
Definition ast_nodes.h:363
hb_array_T * statements
Definition ast_nodes.h:366
token_T * tag_opening
Definition ast_nodes.h:361
Definition ast_nodes.h:309
AST_NODE_T base
Definition ast_nodes.h:310
token_T * content
Definition ast_nodes.h:312
token_T * tag_closing
Definition ast_nodes.h:313
hb_array_T * statements
Definition ast_nodes.h:315
struct AST_ERB_END_NODE_STRUCT * end_node
Definition ast_nodes.h:316
herb_prism_node_T prism_node
Definition ast_nodes.h:314
token_T * tag_opening
Definition ast_nodes.h:311
Definition ast_nodes.h:266
token_T * content
Definition ast_nodes.h:269
token_T * tag_closing
Definition ast_nodes.h:270
location_T * then_keyword
Definition ast_nodes.h:271
token_T * tag_opening
Definition ast_nodes.h:268
hb_array_T * statements
Definition ast_nodes.h:272
AST_NODE_T base
Definition ast_nodes.h:267
Definition ast_nodes.h:299
token_T * content
Definition ast_nodes.h:302
token_T * tag_opening
Definition ast_nodes.h:301
hb_array_T * statements
Definition ast_nodes.h:305
herb_prism_node_T prism_node
Definition ast_nodes.h:304
struct AST_ERB_END_NODE_STRUCT * end_node
Definition ast_nodes.h:306
AST_NODE_T base
Definition ast_nodes.h:300
token_T * tag_closing
Definition ast_nodes.h:303
Definition ast_nodes.h:371
token_T * tag_closing
Definition ast_nodes.h:375
token_T * content
Definition ast_nodes.h:374
token_T * tag_opening
Definition ast_nodes.h:373
AST_NODE_T base
Definition ast_nodes.h:372
Definition ast_nodes.h:148
AST_NODE_T base
Definition ast_nodes.h:149
hb_array_T * children
Definition ast_nodes.h:150
Definition ast_nodes.h:153
struct AST_HTML_ATTRIBUTE_NAME_NODE_STRUCT * name
Definition ast_nodes.h:155
struct AST_HTML_ATTRIBUTE_VALUE_NODE_STRUCT * value
Definition ast_nodes.h:157
AST_NODE_T base
Definition ast_nodes.h:154
token_T * equals
Definition ast_nodes.h:156
Definition ast_nodes.h:140
hb_array_T * children
Definition ast_nodes.h:143
token_T * close_quote
Definition ast_nodes.h:144
bool quoted
Definition ast_nodes.h:145
AST_NODE_T base
Definition ast_nodes.h:141
token_T * open_quote
Definition ast_nodes.h:142
Definition ast_nodes.h:100
token_T * tag_name
Definition ast_nodes.h:103
AST_NODE_T base
Definition ast_nodes.h:101
token_T * tag_opening
Definition ast_nodes.h:102
token_T * tag_closing
Definition ast_nodes.h:105
hb_array_T * children
Definition ast_nodes.h:104
Definition ast_nodes.h:185
token_T * comment_start
Definition ast_nodes.h:187
AST_NODE_T base
Definition ast_nodes.h:186
token_T * comment_end
Definition ast_nodes.h:189
hb_array_T * children
Definition ast_nodes.h:188
hb_array_T * body
Definition ast_nodes.h:133
AST_NODE_T * close_tag
Definition ast_nodes.h:134
AST_NODE_T * open_conditional
Definition ast_nodes.h:131
hb_string_T element_source
Definition ast_nodes.h:137
AST_NODE_T base
Definition ast_nodes.h:129
AST_NODE_T * close_conditional
Definition ast_nodes.h:135
struct AST_HTML_OPEN_TAG_NODE_STRUCT * open_tag
Definition ast_nodes.h:132
hb_string_T condition
Definition ast_nodes.h:130
token_T * tag_name
Definition ast_nodes.h:136
AST_NODE_T * conditional
Definition ast_nodes.h:95
token_T * tag_name
Definition ast_nodes.h:96
AST_NODE_T base
Definition ast_nodes.h:94
bool is_void
Definition ast_nodes.h:97
Definition ast_nodes.h:192
hb_array_T * children
Definition ast_nodes.h:195
token_T * tag_opening
Definition ast_nodes.h:194
AST_NODE_T base
Definition ast_nodes.h:193
token_T * tag_closing
Definition ast_nodes.h:196
Definition ast_nodes.h:118
AST_NODE_T base
Definition ast_nodes.h:119
hb_string_T element_source
Definition ast_nodes.h:125
hb_array_T * body
Definition ast_nodes.h:122
bool is_void
Definition ast_nodes.h:124
token_T * tag_name
Definition ast_nodes.h:121
AST_NODE_T * close_tag
Definition ast_nodes.h:123
AST_NODE_T * open_tag
Definition ast_nodes.h:120
Definition ast_nodes.h:108
AST_NODE_T base
Definition ast_nodes.h:109
token_T * tag_name
Definition ast_nodes.h:110
Definition ast_nodes.h:84
hb_array_T * children
Definition ast_nodes.h:89
token_T * tag_name
Definition ast_nodes.h:87
bool is_void
Definition ast_nodes.h:90
token_T * tag_closing
Definition ast_nodes.h:88
AST_NODE_T base
Definition ast_nodes.h:85
token_T * tag_opening
Definition ast_nodes.h:86
Definition ast_nodes.h:180
hb_string_T content
Definition ast_nodes.h:182
AST_NODE_T base
Definition ast_nodes.h:181
Definition ast_nodes.h:113
token_T * tag_name
Definition ast_nodes.h:115
AST_NODE_T base
Definition ast_nodes.h:114
Definition ast_nodes.h:79
AST_NODE_T base
Definition ast_nodes.h:80
hb_string_T content
Definition ast_nodes.h:81
Definition ast_nodes.h:64
hb_array_T * errors
Definition ast_nodes.h:68
ast_node_type_T type
Definition ast_nodes.h:65
location_T location
Definition ast_nodes.h:66
hb_string_T prefix
Definition ast_nodes.h:168
AST_NODE_T base
Definition ast_nodes.h:166
hb_string_T content
Definition ast_nodes.h:167
Definition ast_nodes.h:160
AST_NODE_T base
Definition ast_nodes.h:161
hb_string_T content
Definition ast_nodes.h:162
Definition ast_nodes.h:213
AST_NODE_T base
Definition ast_nodes.h:214
token_T * value
Definition ast_nodes.h:215
Definition ast_nodes.h:199
hb_array_T * children
Definition ast_nodes.h:202
token_T * tag_opening
Definition ast_nodes.h:201
token_T * tag_closing
Definition ast_nodes.h:203
AST_NODE_T base
Definition ast_nodes.h:200
Definition location.h:10
Definition position.h:8
Definition token_struct.h:58
Definition prism_context.h:9
Definition herb_prism_node.h:6