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 "location.h"
13#include "position.h"
14#include "token_struct.h"
15#include "util/hb_allocator.h"
16#include "util/hb_array.h"
17#include "util/hb_buffer.h"
18#include "util/hb_string.h"
19
60
61typedef struct AST_NODE_STRUCT {
64 // maybe a range too?
65 hb_array_T* errors;
67
68
73
78
87
94
102
107
112
122
134
142
147
154
159
165
174
179
186
193
200
207
212
222
229
237
248
257
266
277
288
297
306
315
324
332
344
355
362
371
372AST_DOCUMENT_NODE_T* ast_document_node_init(hb_array_T* children, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
373AST_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);
374AST_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);
375AST_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);
376AST_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);
377AST_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);
378AST_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);
379AST_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);
380AST_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);
381AST_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);
382AST_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);
383AST_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);
384AST_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);
385AST_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);
386AST_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);
387AST_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);
388AST_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);
389AST_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);
390AST_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);
391AST_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);
392AST_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);
393AST_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, position_T start_position, position_T end_position, hb_array_T* errors, hb_allocator_T* allocator);
394AST_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);
395AST_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);
396AST_ERB_IF_NODE_T* ast_erb_if_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, location_T* then_keyword, 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);
397AST_ERB_BLOCK_NODE_T* ast_erb_block_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, 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);
398AST_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);
399AST_ERB_CASE_NODE_T* ast_erb_case_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, hb_array_T* children, 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);
400AST_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, 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);
401AST_ERB_WHILE_NODE_T* ast_erb_while_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, 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);
402AST_ERB_UNTIL_NODE_T* ast_erb_until_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, 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);
403AST_ERB_FOR_NODE_T* ast_erb_for_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, 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);
404AST_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);
405AST_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);
406AST_ERB_BEGIN_NODE_T* ast_erb_begin_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, 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);
407AST_ERB_UNLESS_NODE_T* ast_erb_unless_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, location_T* then_keyword, 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);
408AST_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);
409AST_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);
410
411hb_string_T ast_node_type_to_string(AST_NODE_T* node);
412hb_string_T ast_node_human_type(AST_NODE_T* node);
413
414#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:507
struct AST_CDATA_NODE_STRUCT AST_CDATA_NODE_T
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_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:74
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:257
AST_ERB_FOR_NODE_T * ast_erb_for_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, 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:475
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:299
struct AST_HTML_CONDITIONAL_OPEN_TAG_NODE_STRUCT AST_HTML_CONDITIONAL_OPEN_TAG_NODE_T
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, 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:425
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:342
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:176
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:285
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:271
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:164
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:573
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:231
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:130
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, 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:407
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:215
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:190
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:20
@ AST_ERB_UNTIL_NODE
Definition ast_nodes.h:51
@ AST_ERB_IN_NODE
Definition ast_nodes.h:58
@ AST_ERB_END_NODE
Definition ast_nodes.h:43
@ AST_ERB_OPEN_TAG_NODE
Definition ast_nodes.h:35
@ AST_ERB_BLOCK_NODE
Definition ast_nodes.h:46
@ AST_RUBY_LITERAL_NODE
Definition ast_nodes.h:33
@ AST_HTML_COMMENT_NODE
Definition ast_nodes.h:37
@ AST_HTML_ATTRIBUTE_VALUE_NODE
Definition ast_nodes.h:30
@ AST_CDATA_NODE
Definition ast_nodes.h:40
@ AST_HTML_ELEMENT_NODE
Definition ast_nodes.h:28
@ AST_ERB_WHEN_NODE
Definition ast_nodes.h:47
@ AST_RUBY_HTML_ATTRIBUTES_SPLAT_NODE
Definition ast_nodes.h:34
@ AST_ERB_BEGIN_NODE
Definition ast_nodes.h:55
@ AST_ERB_WHILE_NODE
Definition ast_nodes.h:50
@ AST_DOCUMENT_NODE
Definition ast_nodes.h:21
@ AST_ERB_IF_NODE
Definition ast_nodes.h:45
@ AST_ERB_FOR_NODE
Definition ast_nodes.h:52
@ AST_HTML_OPEN_TAG_NODE
Definition ast_nodes.h:23
@ AST_HTML_OMITTED_CLOSE_TAG_NODE
Definition ast_nodes.h:26
@ AST_HTML_DOCTYPE_NODE
Definition ast_nodes.h:38
@ AST_HTML_ATTRIBUTE_NODE
Definition ast_nodes.h:32
@ AST_HTML_TEXT_NODE
Definition ast_nodes.h:36
@ AST_ERB_UNLESS_NODE
Definition ast_nodes.h:56
@ AST_ERB_ENSURE_NODE
Definition ast_nodes.h:54
@ AST_LITERAL_NODE
Definition ast_nodes.h:22
@ AST_WHITESPACE_NODE
Definition ast_nodes.h:41
@ AST_ERB_CASE_NODE
Definition ast_nodes.h:48
@ AST_ERB_CONTENT_NODE
Definition ast_nodes.h:42
@ AST_ERB_ELSE_NODE
Definition ast_nodes.h:44
@ AST_HTML_VIRTUAL_CLOSE_TAG_NODE
Definition ast_nodes.h:27
@ AST_HTML_CONDITIONAL_ELEMENT_NODE
Definition ast_nodes.h:29
@ AST_ERB_CASE_MATCH_NODE
Definition ast_nodes.h:49
@ AST_ERB_RESCUE_NODE
Definition ast_nodes.h:53
@ AST_ERB_YIELD_NODE
Definition ast_nodes.h:57
@ AST_HTML_CONDITIONAL_OPEN_TAG_NODE
Definition ast_nodes.h:24
@ AST_XML_DECLARATION_NODE
Definition ast_nodes.h:39
@ AST_HTML_ATTRIBUTE_NAME_NODE
Definition ast_nodes.h:31
@ AST_HTML_CLOSE_TAG_NODE
Definition ast_nodes.h:25
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:391
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:243
struct AST_ERB_CASE_NODE_STRUCT AST_ERB_CASE_NODE_T
AST_DOCUMENT_NODE_T * ast_document_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:20
AST_ERB_BEGIN_NODE_T * ast_erb_begin_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, 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:522
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:491
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, 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:357
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:328
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:559
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:44
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
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:634
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:101
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:149
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, position_T start_position, position_T end_position, hb_array_T *errors, hb_allocator_T *allocator)
Definition ast_nodes.c:311
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:202
struct AST_RUBY_HTML_ATTRIBUTES_SPLAT_NODE_STRUCT AST_RUBY_HTML_ATTRIBUTES_SPLAT_NODE_T
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:113
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:32
hb_string_T ast_node_type_to_string(AST_NODE_T *node)
Definition ast_nodes.c:589
AST_ERB_UNTIL_NODE_T * ast_erb_until_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, 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:459
AST_ERB_BLOCK_NODE_T * ast_erb_block_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, 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:375
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:89
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:60
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, 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:541
struct AST_LITERAL_NODE_STRUCT AST_LITERAL_NODE_T
AST_ERB_WHILE_NODE_T * ast_erb_while_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, 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:443
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:201
token_T * tag_opening
Definition ast_nodes.h:203
AST_NODE_T base
Definition ast_nodes.h:202
token_T * tag_closing
Definition ast_nodes.h:205
hb_array_T * children
Definition ast_nodes.h:204
Definition ast_nodes.h:69
hb_array_T * children
Definition ast_nodes.h:71
AST_NODE_T base
Definition ast_nodes.h:70
Definition ast_nodes.h:333
struct AST_ERB_ELSE_NODE_STRUCT * else_clause
Definition ast_nodes.h:340
hb_array_T * statements
Definition ast_nodes.h:338
token_T * tag_closing
Definition ast_nodes.h:337
token_T * content
Definition ast_nodes.h:336
struct AST_ERB_END_NODE_STRUCT * end_node
Definition ast_nodes.h:342
AST_NODE_T base
Definition ast_nodes.h:334
token_T * tag_opening
Definition ast_nodes.h:335
struct AST_ERB_RESCUE_NODE_STRUCT * rescue_clause
Definition ast_nodes.h:339
struct AST_ERB_ENSURE_NODE_STRUCT * ensure_clause
Definition ast_nodes.h:341
Definition ast_nodes.h:249
AST_NODE_T base
Definition ast_nodes.h:250
token_T * tag_opening
Definition ast_nodes.h:251
token_T * tag_closing
Definition ast_nodes.h:253
token_T * content
Definition ast_nodes.h:252
struct AST_ERB_END_NODE_STRUCT * end_node
Definition ast_nodes.h:255
hb_array_T * body
Definition ast_nodes.h:254
Definition ast_nodes.h:278
hb_array_T * children
Definition ast_nodes.h:283
struct AST_ERB_ELSE_NODE_STRUCT * else_clause
Definition ast_nodes.h:285
token_T * tag_opening
Definition ast_nodes.h:280
AST_NODE_T base
Definition ast_nodes.h:279
hb_array_T * conditions
Definition ast_nodes.h:284
token_T * tag_closing
Definition ast_nodes.h:282
token_T * content
Definition ast_nodes.h:281
struct AST_ERB_END_NODE_STRUCT * end_node
Definition ast_nodes.h:286
Definition ast_nodes.h:267
struct AST_ERB_END_NODE_STRUCT * end_node
Definition ast_nodes.h:275
token_T * content
Definition ast_nodes.h:270
hb_array_T * children
Definition ast_nodes.h:272
hb_array_T * conditions
Definition ast_nodes.h:273
AST_NODE_T base
Definition ast_nodes.h:268
token_T * tag_closing
Definition ast_nodes.h:271
struct AST_ERB_ELSE_NODE_STRUCT * else_clause
Definition ast_nodes.h:274
token_T * tag_opening
Definition ast_nodes.h:269
Definition ast_nodes.h:213
analyzed_ruby_T * analyzed_ruby
Definition ast_nodes.h:218
AST_NODE_T base
Definition ast_nodes.h:214
bool valid
Definition ast_nodes.h:220
bool parsed
Definition ast_nodes.h:219
token_T * tag_closing
Definition ast_nodes.h:217
token_T * tag_opening
Definition ast_nodes.h:215
token_T * content
Definition ast_nodes.h:216
Definition ast_nodes.h:230
token_T * tag_opening
Definition ast_nodes.h:232
token_T * tag_closing
Definition ast_nodes.h:234
AST_NODE_T base
Definition ast_nodes.h:231
hb_array_T * statements
Definition ast_nodes.h:235
token_T * content
Definition ast_nodes.h:233
Definition ast_nodes.h:223
token_T * tag_closing
Definition ast_nodes.h:227
token_T * tag_opening
Definition ast_nodes.h:225
AST_NODE_T base
Definition ast_nodes.h:224
token_T * content
Definition ast_nodes.h:226
Definition ast_nodes.h:325
hb_array_T * statements
Definition ast_nodes.h:330
token_T * tag_closing
Definition ast_nodes.h:329
AST_NODE_T base
Definition ast_nodes.h:326
token_T * tag_opening
Definition ast_nodes.h:327
token_T * content
Definition ast_nodes.h:328
Definition ast_nodes.h:307
hb_array_T * statements
Definition ast_nodes.h:312
token_T * tag_opening
Definition ast_nodes.h:309
token_T * tag_closing
Definition ast_nodes.h:311
struct AST_ERB_END_NODE_STRUCT * end_node
Definition ast_nodes.h:313
token_T * content
Definition ast_nodes.h:310
AST_NODE_T base
Definition ast_nodes.h:308
Definition ast_nodes.h:238
AST_NODE_T base
Definition ast_nodes.h:239
AST_NODE_T * subsequent
Definition ast_nodes.h:245
location_T * then_keyword
Definition ast_nodes.h:243
token_T * tag_opening
Definition ast_nodes.h:240
hb_array_T * statements
Definition ast_nodes.h:244
token_T * content
Definition ast_nodes.h:241
token_T * tag_closing
Definition ast_nodes.h:242
struct AST_ERB_END_NODE_STRUCT * end_node
Definition ast_nodes.h:246
Definition ast_nodes.h:363
location_T * then_keyword
Definition ast_nodes.h:368
token_T * tag_opening
Definition ast_nodes.h:365
hb_array_T * statements
Definition ast_nodes.h:369
token_T * tag_closing
Definition ast_nodes.h:367
AST_NODE_T base
Definition ast_nodes.h:364
token_T * content
Definition ast_nodes.h:366
Definition ast_nodes.h:166
token_T * tag_closing
Definition ast_nodes.h:170
token_T * tag_opening
Definition ast_nodes.h:168
AST_NODE_T base
Definition ast_nodes.h:167
hb_array_T * children
Definition ast_nodes.h:172
token_T * content
Definition ast_nodes.h:169
token_T * tag_name
Definition ast_nodes.h:171
Definition ast_nodes.h:316
token_T * tag_closing
Definition ast_nodes.h:320
AST_NODE_T base
Definition ast_nodes.h:317
hb_array_T * statements
Definition ast_nodes.h:321
token_T * tag_opening
Definition ast_nodes.h:318
token_T * content
Definition ast_nodes.h:319
struct AST_ERB_RESCUE_NODE_STRUCT * subsequent
Definition ast_nodes.h:322
Definition ast_nodes.h:345
token_T * content
Definition ast_nodes.h:348
AST_NODE_T base
Definition ast_nodes.h:346
struct AST_ERB_END_NODE_STRUCT * end_node
Definition ast_nodes.h:353
location_T * then_keyword
Definition ast_nodes.h:350
struct AST_ERB_ELSE_NODE_STRUCT * else_clause
Definition ast_nodes.h:352
token_T * tag_closing
Definition ast_nodes.h:349
hb_array_T * statements
Definition ast_nodes.h:351
token_T * tag_opening
Definition ast_nodes.h:347
Definition ast_nodes.h:298
AST_NODE_T base
Definition ast_nodes.h:299
token_T * content
Definition ast_nodes.h:301
token_T * tag_closing
Definition ast_nodes.h:302
hb_array_T * statements
Definition ast_nodes.h:303
struct AST_ERB_END_NODE_STRUCT * end_node
Definition ast_nodes.h:304
token_T * tag_opening
Definition ast_nodes.h:300
Definition ast_nodes.h:258
token_T * content
Definition ast_nodes.h:261
token_T * tag_closing
Definition ast_nodes.h:262
location_T * then_keyword
Definition ast_nodes.h:263
token_T * tag_opening
Definition ast_nodes.h:260
hb_array_T * statements
Definition ast_nodes.h:264
AST_NODE_T base
Definition ast_nodes.h:259
Definition ast_nodes.h:289
token_T * content
Definition ast_nodes.h:292
token_T * tag_opening
Definition ast_nodes.h:291
hb_array_T * statements
Definition ast_nodes.h:294
struct AST_ERB_END_NODE_STRUCT * end_node
Definition ast_nodes.h:295
AST_NODE_T base
Definition ast_nodes.h:290
token_T * tag_closing
Definition ast_nodes.h:293
Definition ast_nodes.h:356
token_T * tag_closing
Definition ast_nodes.h:360
token_T * content
Definition ast_nodes.h:359
token_T * tag_opening
Definition ast_nodes.h:358
AST_NODE_T base
Definition ast_nodes.h:357
Definition ast_nodes.h:143
AST_NODE_T base
Definition ast_nodes.h:144
hb_array_T * children
Definition ast_nodes.h:145
Definition ast_nodes.h:148
struct AST_HTML_ATTRIBUTE_NAME_NODE_STRUCT * name
Definition ast_nodes.h:150
struct AST_HTML_ATTRIBUTE_VALUE_NODE_STRUCT * value
Definition ast_nodes.h:152
AST_NODE_T base
Definition ast_nodes.h:149
token_T * equals
Definition ast_nodes.h:151
Definition ast_nodes.h:135
hb_array_T * children
Definition ast_nodes.h:138
token_T * close_quote
Definition ast_nodes.h:139
bool quoted
Definition ast_nodes.h:140
AST_NODE_T base
Definition ast_nodes.h:136
token_T * open_quote
Definition ast_nodes.h:137
Definition ast_nodes.h:95
token_T * tag_name
Definition ast_nodes.h:98
AST_NODE_T base
Definition ast_nodes.h:96
token_T * tag_opening
Definition ast_nodes.h:97
token_T * tag_closing
Definition ast_nodes.h:100
hb_array_T * children
Definition ast_nodes.h:99
Definition ast_nodes.h:180
token_T * comment_start
Definition ast_nodes.h:182
AST_NODE_T base
Definition ast_nodes.h:181
token_T * comment_end
Definition ast_nodes.h:184
hb_array_T * children
Definition ast_nodes.h:183
hb_array_T * body
Definition ast_nodes.h:128
AST_NODE_T * close_tag
Definition ast_nodes.h:129
AST_NODE_T * open_conditional
Definition ast_nodes.h:126
hb_string_T element_source
Definition ast_nodes.h:132
AST_NODE_T base
Definition ast_nodes.h:124
AST_NODE_T * close_conditional
Definition ast_nodes.h:130
struct AST_HTML_OPEN_TAG_NODE_STRUCT * open_tag
Definition ast_nodes.h:127
hb_string_T condition
Definition ast_nodes.h:125
token_T * tag_name
Definition ast_nodes.h:131
AST_NODE_T * conditional
Definition ast_nodes.h:90
token_T * tag_name
Definition ast_nodes.h:91
AST_NODE_T base
Definition ast_nodes.h:89
bool is_void
Definition ast_nodes.h:92
Definition ast_nodes.h:187
hb_array_T * children
Definition ast_nodes.h:190
token_T * tag_opening
Definition ast_nodes.h:189
AST_NODE_T base
Definition ast_nodes.h:188
token_T * tag_closing
Definition ast_nodes.h:191
Definition ast_nodes.h:113
AST_NODE_T base
Definition ast_nodes.h:114
hb_string_T element_source
Definition ast_nodes.h:120
hb_array_T * body
Definition ast_nodes.h:117
bool is_void
Definition ast_nodes.h:119
token_T * tag_name
Definition ast_nodes.h:116
AST_NODE_T * close_tag
Definition ast_nodes.h:118
AST_NODE_T * open_tag
Definition ast_nodes.h:115
Definition ast_nodes.h:103
AST_NODE_T base
Definition ast_nodes.h:104
token_T * tag_name
Definition ast_nodes.h:105
Definition ast_nodes.h:79
hb_array_T * children
Definition ast_nodes.h:84
token_T * tag_name
Definition ast_nodes.h:82
bool is_void
Definition ast_nodes.h:85
token_T * tag_closing
Definition ast_nodes.h:83
AST_NODE_T base
Definition ast_nodes.h:80
token_T * tag_opening
Definition ast_nodes.h:81
Definition ast_nodes.h:175
hb_string_T content
Definition ast_nodes.h:177
AST_NODE_T base
Definition ast_nodes.h:176
Definition ast_nodes.h:108
token_T * tag_name
Definition ast_nodes.h:110
AST_NODE_T base
Definition ast_nodes.h:109
Definition ast_nodes.h:74
AST_NODE_T base
Definition ast_nodes.h:75
hb_string_T content
Definition ast_nodes.h:76
Definition ast_nodes.h:61
hb_array_T * errors
Definition ast_nodes.h:65
ast_node_type_T type
Definition ast_nodes.h:62
location_T location
Definition ast_nodes.h:63
hb_string_T prefix
Definition ast_nodes.h:163
AST_NODE_T base
Definition ast_nodes.h:161
hb_string_T content
Definition ast_nodes.h:162
Definition ast_nodes.h:155
AST_NODE_T base
Definition ast_nodes.h:156
hb_string_T content
Definition ast_nodes.h:157
Definition ast_nodes.h:208
AST_NODE_T base
Definition ast_nodes.h:209
token_T * value
Definition ast_nodes.h:210
Definition ast_nodes.h:194
hb_array_T * children
Definition ast_nodes.h:197
token_T * tag_opening
Definition ast_nodes.h:196
token_T * tag_closing
Definition ast_nodes.h:198
AST_NODE_T base
Definition ast_nodes.h:195
Definition location.h:10
Definition position.h:8
Definition token_struct.h:58