$darkmode
Herb C Reference
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 "array.h"
11 #include "buffer.h"
12 #include "position.h"
13 #include "location.h"
14 #include "token_struct.h"
15 #include "analyzed_ruby.h"
16 #include "element_source.h"
17 
18 typedef enum {
51 
52 typedef struct AST_NODE_STRUCT {
55  // maybe a range too?
58 
59 
60 typedef struct AST_DOCUMENT_NODE_STRUCT {
64 
65 typedef struct AST_LITERAL_NODE_STRUCT {
67  const char* content;
69 
76  bool is_void;
78 
86 
93  bool is_void;
96 
102  bool quoted;
104 
109 
116 
119  const char* content;
121 
128 
135 
142 
143 typedef struct AST_CDATA_NODE_STRUCT {
149 
154 
161  bool parsed;
162  bool valid;
164 
165 typedef struct AST_ERB_END_NODE_STRUCT {
171 
172 typedef struct AST_ERB_ELSE_NODE_STRUCT {
179 
180 typedef struct AST_ERB_IF_NODE_STRUCT {
189 
198 
199 typedef struct AST_ERB_WHEN_NODE_STRUCT {
206 
207 typedef struct AST_ERB_CASE_NODE_STRUCT {
217 
228 
237 
246 
247 typedef struct AST_ERB_FOR_NODE_STRUCT {
255 
264 
272 
284 
294 
301 
302 typedef struct AST_ERB_IN_NODE_STRUCT {
309 
310 AST_DOCUMENT_NODE_T* ast_document_node_init(array_T* children, position_T* start_position, position_T* end_position, array_T* errors);
311 AST_LITERAL_NODE_T* ast_literal_node_init(const char* content, position_T* start_position, position_T* end_position, array_T* errors);
312 AST_HTML_OPEN_TAG_NODE_T* ast_html_open_tag_node_init(token_T* tag_opening, token_T* tag_name, token_T* tag_closing, array_T* children, bool is_void, position_T* start_position, position_T* end_position, array_T* errors);
313 AST_HTML_CLOSE_TAG_NODE_T* ast_html_close_tag_node_init(token_T* tag_opening, token_T* tag_name, array_T* children, token_T* tag_closing, position_T* start_position, position_T* end_position, array_T* errors);
314 AST_HTML_ELEMENT_NODE_T* ast_html_element_node_init(struct AST_HTML_OPEN_TAG_NODE_STRUCT* open_tag, token_T* tag_name, array_T* body, struct AST_HTML_CLOSE_TAG_NODE_STRUCT* close_tag, bool is_void, element_source_t source, position_T* start_position, position_T* end_position, array_T* errors);
315 AST_HTML_ATTRIBUTE_VALUE_NODE_T* ast_html_attribute_value_node_init(token_T* open_quote, array_T* children, token_T* close_quote, bool quoted, position_T* start_position, position_T* end_position, array_T* errors);
316 AST_HTML_ATTRIBUTE_NAME_NODE_T* ast_html_attribute_name_node_init(array_T* children, position_T* start_position, position_T* end_position, array_T* errors);
318 AST_HTML_TEXT_NODE_T* ast_html_text_node_init(const char* content, position_T* start_position, position_T* end_position, array_T* errors);
319 AST_HTML_COMMENT_NODE_T* ast_html_comment_node_init(token_T* comment_start, array_T* children, token_T* comment_end, position_T* start_position, position_T* end_position, array_T* errors);
320 AST_HTML_DOCTYPE_NODE_T* ast_html_doctype_node_init(token_T* tag_opening, array_T* children, token_T* tag_closing, position_T* start_position, position_T* end_position, array_T* errors);
321 AST_XML_DECLARATION_NODE_T* ast_xml_declaration_node_init(token_T* tag_opening, array_T* children, token_T* tag_closing, position_T* start_position, position_T* end_position, array_T* errors);
322 AST_CDATA_NODE_T* ast_cdata_node_init(token_T* tag_opening, array_T* children, token_T* tag_closing, position_T* start_position, position_T* end_position, array_T* errors);
323 AST_WHITESPACE_NODE_T* ast_whitespace_node_init(token_T* value, position_T* start_position, position_T* end_position, array_T* errors);
324 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, array_T* errors);
325 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, array_T* errors);
326 AST_ERB_ELSE_NODE_T* ast_erb_else_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, array_T* statements, position_T* start_position, position_T* end_position, array_T* errors);
327 AST_ERB_IF_NODE_T* ast_erb_if_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, array_T* statements, struct AST_NODE_STRUCT* subsequent, struct AST_ERB_END_NODE_STRUCT* end_node, position_T* start_position, position_T* end_position, array_T* errors);
328 AST_ERB_BLOCK_NODE_T* ast_erb_block_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, array_T* body, struct AST_ERB_END_NODE_STRUCT* end_node, position_T* start_position, position_T* end_position, array_T* errors);
329 AST_ERB_WHEN_NODE_T* ast_erb_when_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, array_T* statements, position_T* start_position, position_T* end_position, array_T* errors);
330 AST_ERB_CASE_NODE_T* ast_erb_case_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, array_T* children, 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, array_T* errors);
331 AST_ERB_CASE_MATCH_NODE_T* ast_erb_case_match_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, array_T* children, 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, array_T* errors);
332 AST_ERB_WHILE_NODE_T* ast_erb_while_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, array_T* statements, struct AST_ERB_END_NODE_STRUCT* end_node, position_T* start_position, position_T* end_position, array_T* errors);
333 AST_ERB_UNTIL_NODE_T* ast_erb_until_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, array_T* statements, struct AST_ERB_END_NODE_STRUCT* end_node, position_T* start_position, position_T* end_position, array_T* errors);
334 AST_ERB_FOR_NODE_T* ast_erb_for_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, array_T* statements, struct AST_ERB_END_NODE_STRUCT* end_node, position_T* start_position, position_T* end_position, array_T* errors);
335 AST_ERB_RESCUE_NODE_T* ast_erb_rescue_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, array_T* statements, struct AST_ERB_RESCUE_NODE_STRUCT* subsequent, position_T* start_position, position_T* end_position, array_T* errors);
336 AST_ERB_ENSURE_NODE_T* ast_erb_ensure_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, array_T* statements, position_T* start_position, position_T* end_position, array_T* errors);
337 AST_ERB_BEGIN_NODE_T* ast_erb_begin_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, 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, array_T* errors);
338 AST_ERB_UNLESS_NODE_T* ast_erb_unless_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, 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, array_T* errors);
339 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, array_T* errors);
340 AST_ERB_IN_NODE_T* ast_erb_in_node_init(token_T* tag_opening, token_T* content, token_T* tag_closing, array_T* statements, position_T* start_position, position_T* end_position, array_T* errors);
341 
342 const char* ast_node_type_to_string(AST_NODE_T* node);
343 const char* ast_node_human_type(AST_NODE_T* node);
344 
345 #endif
struct AST_NODE_STRUCT AST_NODE_T
struct AST_HTML_DOCTYPE_NODE_STRUCT AST_HTML_DOCTYPE_NODE_T
AST_HTML_CLOSE_TAG_NODE_T * ast_html_close_tag_node_init(token_T *tag_opening, token_T *tag_name, array_T *children, token_T *tag_closing, position_T *start_position, position_T *end_position, array_T *errors)
Definition: ast_nodes.c:52
AST_ERB_CASE_NODE_T * ast_erb_case_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, array_T *children, 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, array_T *errors)
Definition: ast_nodes.c:265
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_LITERAL_NODE_T * ast_literal_node_init(const char *content, position_T *start_position, position_T *end_position, array_T *errors)
Definition: ast_nodes.c:28
struct AST_HTML_TEXT_NODE_STRUCT AST_HTML_TEXT_NODE_T
AST_HTML_ELEMENT_NODE_T * ast_html_element_node_init(struct AST_HTML_OPEN_TAG_NODE_STRUCT *open_tag, token_T *tag_name, array_T *body, struct AST_HTML_CLOSE_TAG_NODE_STRUCT *close_tag, bool is_void, element_source_t source, position_T *start_position, position_T *end_position, array_T *errors)
Definition: ast_nodes.c:65
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_WHILE_NODE_T * ast_erb_while_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, array_T *statements, struct AST_ERB_END_NODE_STRUCT *end_node, position_T *start_position, position_T *end_position, array_T *errors)
Definition: ast_nodes.c:297
AST_ERB_BEGIN_NODE_T * ast_erb_begin_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, 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, array_T *errors)
Definition: ast_nodes.c:366
struct AST_ERB_FOR_NODE_STRUCT AST_ERB_FOR_NODE_T
AST_ERB_IF_NODE_T * ast_erb_if_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, array_T *statements, struct AST_NODE_STRUCT *subsequent, struct AST_ERB_END_NODE_STRUCT *end_node, position_T *start_position, position_T *end_position, array_T *errors)
Definition: ast_nodes.c:223
AST_ERB_RESCUE_NODE_T * ast_erb_rescue_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, array_T *statements, struct AST_ERB_RESCUE_NODE_STRUCT *subsequent, position_T *start_position, position_T *end_position, array_T *errors)
Definition: ast_nodes.c:339
AST_DOCUMENT_NODE_T * ast_document_node_init(array_T *children, position_T *start_position, position_T *end_position, array_T *errors)
Definition: ast_nodes.c:18
AST_ERB_WHEN_NODE_T * ast_erb_when_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, array_T *statements, position_T *start_position, position_T *end_position, array_T *errors)
Definition: ast_nodes.c:252
AST_XML_DECLARATION_NODE_T * ast_xml_declaration_node_init(token_T *tag_opening, array_T *children, token_T *tag_closing, position_T *start_position, position_T *end_position, array_T *errors)
Definition: ast_nodes.c:149
AST_HTML_DOCTYPE_NODE_T * ast_html_doctype_node_init(token_T *tag_opening, array_T *children, token_T *tag_closing, position_T *start_position, position_T *end_position, array_T *errors)
Definition: ast_nodes.c:137
struct AST_WHITESPACE_NODE_STRUCT AST_WHITESPACE_NODE_T
struct AST_ERB_BLOCK_NODE_STRUCT AST_ERB_BLOCK_NODE_T
AST_HTML_ATTRIBUTE_VALUE_NODE_T * ast_html_attribute_value_node_init(token_T *open_quote, array_T *children, token_T *close_quote, bool quoted, position_T *start_position, position_T *end_position, array_T *errors)
Definition: ast_nodes.c:80
struct AST_ERB_IF_NODE_STRUCT AST_ERB_IF_NODE_T
struct AST_ERB_WHILE_NODE_STRUCT AST_ERB_WHILE_NODE_T
struct AST_ERB_END_NODE_STRUCT AST_ERB_END_NODE_T
AST_ERB_UNTIL_NODE_T * ast_erb_until_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, array_T *statements, struct AST_ERB_END_NODE_STRUCT *end_node, position_T *start_position, position_T *end_position, array_T *errors)
Definition: ast_nodes.c:311
struct AST_ERB_YIELD_NODE_STRUCT AST_ERB_YIELD_NODE_T
AST_HTML_TEXT_NODE_T * ast_html_text_node_init(const char *content, position_T *start_position, position_T *end_position, array_T *errors)
Definition: ast_nodes.c:115
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:18
@ AST_ERB_UNTIL_NODE
Definition: ast_nodes.h:42
@ AST_ERB_IN_NODE
Definition: ast_nodes.h:49
@ AST_ERB_END_NODE
Definition: ast_nodes.h:34
@ AST_ERB_BLOCK_NODE
Definition: ast_nodes.h:37
@ AST_HTML_COMMENT_NODE
Definition: ast_nodes.h:28
@ AST_HTML_ATTRIBUTE_VALUE_NODE
Definition: ast_nodes.h:24
@ AST_CDATA_NODE
Definition: ast_nodes.h:31
@ AST_HTML_ELEMENT_NODE
Definition: ast_nodes.h:23
@ AST_ERB_WHEN_NODE
Definition: ast_nodes.h:38
@ AST_ERB_BEGIN_NODE
Definition: ast_nodes.h:46
@ AST_ERB_WHILE_NODE
Definition: ast_nodes.h:41
@ AST_DOCUMENT_NODE
Definition: ast_nodes.h:19
@ AST_ERB_IF_NODE
Definition: ast_nodes.h:36
@ AST_ERB_FOR_NODE
Definition: ast_nodes.h:43
@ AST_HTML_OPEN_TAG_NODE
Definition: ast_nodes.h:21
@ AST_HTML_DOCTYPE_NODE
Definition: ast_nodes.h:29
@ AST_HTML_ATTRIBUTE_NODE
Definition: ast_nodes.h:26
@ AST_HTML_TEXT_NODE
Definition: ast_nodes.h:27
@ AST_ERB_UNLESS_NODE
Definition: ast_nodes.h:47
@ AST_ERB_ENSURE_NODE
Definition: ast_nodes.h:45
@ AST_LITERAL_NODE
Definition: ast_nodes.h:20
@ AST_WHITESPACE_NODE
Definition: ast_nodes.h:32
@ AST_ERB_CASE_NODE
Definition: ast_nodes.h:39
@ AST_ERB_CONTENT_NODE
Definition: ast_nodes.h:33
@ AST_ERB_ELSE_NODE
Definition: ast_nodes.h:35
@ AST_ERB_CASE_MATCH_NODE
Definition: ast_nodes.h:40
@ AST_ERB_RESCUE_NODE
Definition: ast_nodes.h:44
@ AST_ERB_YIELD_NODE
Definition: ast_nodes.h:48
@ AST_XML_DECLARATION_NODE
Definition: ast_nodes.h:30
@ AST_HTML_ATTRIBUTE_NAME_NODE
Definition: ast_nodes.h:25
@ AST_HTML_CLOSE_TAG_NODE
Definition: ast_nodes.h:22
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, array_T *errors)
Definition: ast_nodes.c:103
AST_ERB_FOR_NODE_T * ast_erb_for_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, array_T *statements, struct AST_ERB_END_NODE_STRUCT *end_node, position_T *start_position, position_T *end_position, array_T *errors)
Definition: ast_nodes.c:325
struct AST_ERB_CASE_NODE_STRUCT AST_ERB_CASE_NODE_T
struct AST_XML_DECLARATION_NODE_STRUCT AST_XML_DECLARATION_NODE_T
AST_CDATA_NODE_T * ast_cdata_node_init(token_T *tag_opening, array_T *children, token_T *tag_closing, position_T *start_position, position_T *end_position, array_T *errors)
Definition: ast_nodes.c:161
const char * ast_node_type_to_string(AST_NODE_T *node)
Definition: ast_nodes.c:423
AST_HTML_COMMENT_NODE_T * ast_html_comment_node_init(token_T *comment_start, array_T *children, token_T *comment_end, position_T *start_position, position_T *end_position, array_T *errors)
Definition: ast_nodes.c:125
struct AST_HTML_OPEN_TAG_NODE_STRUCT AST_HTML_OPEN_TAG_NODE_T
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, array_T *errors)
Definition: ast_nodes.c:398
AST_ERB_IN_NODE_T * ast_erb_in_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, array_T *statements, position_T *start_position, position_T *end_position, array_T *errors)
Definition: ast_nodes.c:410
const char * ast_node_human_type(AST_NODE_T *node)
Definition: ast_nodes.c:461
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, array_T *errors)
Definition: ast_nodes.c:198
struct AST_HTML_CLOSE_TAG_NODE_STRUCT AST_HTML_CLOSE_TAG_NODE_T
AST_ERB_ENSURE_NODE_T * ast_erb_ensure_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, array_T *statements, position_T *start_position, position_T *end_position, array_T *errors)
Definition: ast_nodes.c:353
struct AST_ERB_CONTENT_NODE_STRUCT AST_ERB_CONTENT_NODE_T
AST_ERB_UNLESS_NODE_T * ast_erb_unless_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, 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, array_T *errors)
Definition: ast_nodes.c:383
AST_ERB_CASE_MATCH_NODE_T * ast_erb_case_match_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, array_T *children, 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, array_T *errors)
Definition: ast_nodes.c:281
struct AST_HTML_ATTRIBUTE_NODE_STRUCT AST_HTML_ATTRIBUTE_NODE_T
AST_HTML_OPEN_TAG_NODE_T * ast_html_open_tag_node_init(token_T *tag_opening, token_T *tag_name, token_T *tag_closing, array_T *children, bool is_void, position_T *start_position, position_T *end_position, array_T *errors)
Definition: ast_nodes.c:38
AST_ERB_BLOCK_NODE_T * ast_erb_block_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, array_T *body, struct AST_ERB_END_NODE_STRUCT *end_node, position_T *start_position, position_T *end_position, array_T *errors)
Definition: ast_nodes.c:238
AST_WHITESPACE_NODE_T * ast_whitespace_node_init(token_T *value, position_T *start_position, position_T *end_position, array_T *errors)
Definition: ast_nodes.c:173
AST_ERB_ELSE_NODE_T * ast_erb_else_node_init(token_T *tag_opening, token_T *content, token_T *tag_closing, array_T *statements, position_T *start_position, position_T *end_position, array_T *errors)
Definition: ast_nodes.c:210
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
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, array_T *errors)
Definition: ast_nodes.c:183
struct AST_ERB_ELSE_NODE_STRUCT AST_ERB_ELSE_NODE_T
struct AST_HTML_ELEMENT_NODE_STRUCT AST_HTML_ELEMENT_NODE_T
AST_HTML_ATTRIBUTE_NAME_NODE_T * ast_html_attribute_name_node_init(array_T *children, position_T *start_position, position_T *end_position, array_T *errors)
Definition: ast_nodes.c:93
element_source_t
Definition: element_source.h:4
Definition: analyzed_ruby.h:8
Definition: array.h:6
Definition: ast_nodes.h:143
token_T * tag_opening
Definition: ast_nodes.h:145
AST_NODE_T base
Definition: ast_nodes.h:144
token_T * tag_closing
Definition: ast_nodes.h:147
array_T * children
Definition: ast_nodes.h:146
Definition: ast_nodes.h:60
array_T * children
Definition: ast_nodes.h:62
AST_NODE_T base
Definition: ast_nodes.h:61
Definition: ast_nodes.h:273
struct AST_ERB_ELSE_NODE_STRUCT * else_clause
Definition: ast_nodes.h:280
token_T * tag_closing
Definition: ast_nodes.h:277
token_T * content
Definition: ast_nodes.h:276
struct AST_ERB_END_NODE_STRUCT * end_node
Definition: ast_nodes.h:282
array_T * statements
Definition: ast_nodes.h:278
AST_NODE_T base
Definition: ast_nodes.h:274
token_T * tag_opening
Definition: ast_nodes.h:275
struct AST_ERB_RESCUE_NODE_STRUCT * rescue_clause
Definition: ast_nodes.h:279
struct AST_ERB_ENSURE_NODE_STRUCT * ensure_clause
Definition: ast_nodes.h:281
Definition: ast_nodes.h:190
AST_NODE_T base
Definition: ast_nodes.h:191
token_T * tag_opening
Definition: ast_nodes.h:192
token_T * tag_closing
Definition: ast_nodes.h:194
array_T * body
Definition: ast_nodes.h:195
token_T * content
Definition: ast_nodes.h:193
struct AST_ERB_END_NODE_STRUCT * end_node
Definition: ast_nodes.h:196
Definition: ast_nodes.h:218
array_T * children
Definition: ast_nodes.h:223
struct AST_ERB_ELSE_NODE_STRUCT * else_clause
Definition: ast_nodes.h:225
token_T * tag_opening
Definition: ast_nodes.h:220
AST_NODE_T base
Definition: ast_nodes.h:219
array_T * conditions
Definition: ast_nodes.h:224
token_T * tag_closing
Definition: ast_nodes.h:222
token_T * content
Definition: ast_nodes.h:221
struct AST_ERB_END_NODE_STRUCT * end_node
Definition: ast_nodes.h:226
Definition: ast_nodes.h:207
struct AST_ERB_END_NODE_STRUCT * end_node
Definition: ast_nodes.h:215
token_T * content
Definition: ast_nodes.h:210
array_T * children
Definition: ast_nodes.h:212
AST_NODE_T base
Definition: ast_nodes.h:208
token_T * tag_closing
Definition: ast_nodes.h:211
array_T * conditions
Definition: ast_nodes.h:213
struct AST_ERB_ELSE_NODE_STRUCT * else_clause
Definition: ast_nodes.h:214
token_T * tag_opening
Definition: ast_nodes.h:209
Definition: ast_nodes.h:155
analyzed_ruby_T * analyzed_ruby
Definition: ast_nodes.h:160
AST_NODE_T base
Definition: ast_nodes.h:156
bool valid
Definition: ast_nodes.h:162
bool parsed
Definition: ast_nodes.h:161
token_T * tag_closing
Definition: ast_nodes.h:159
token_T * tag_opening
Definition: ast_nodes.h:157
token_T * content
Definition: ast_nodes.h:158
Definition: ast_nodes.h:172
token_T * tag_opening
Definition: ast_nodes.h:174
array_T * statements
Definition: ast_nodes.h:177
token_T * tag_closing
Definition: ast_nodes.h:176
AST_NODE_T base
Definition: ast_nodes.h:173
token_T * content
Definition: ast_nodes.h:175
Definition: ast_nodes.h:165
token_T * tag_closing
Definition: ast_nodes.h:169
token_T * tag_opening
Definition: ast_nodes.h:167
AST_NODE_T base
Definition: ast_nodes.h:166
token_T * content
Definition: ast_nodes.h:168
Definition: ast_nodes.h:265
token_T * tag_closing
Definition: ast_nodes.h:269
AST_NODE_T base
Definition: ast_nodes.h:266
token_T * tag_opening
Definition: ast_nodes.h:267
token_T * content
Definition: ast_nodes.h:268
array_T * statements
Definition: ast_nodes.h:270
Definition: ast_nodes.h:247
token_T * tag_opening
Definition: ast_nodes.h:249
token_T * tag_closing
Definition: ast_nodes.h:251
struct AST_ERB_END_NODE_STRUCT * end_node
Definition: ast_nodes.h:253
token_T * content
Definition: ast_nodes.h:250
AST_NODE_T base
Definition: ast_nodes.h:248
array_T * statements
Definition: ast_nodes.h:252
Definition: ast_nodes.h:180
array_T * statements
Definition: ast_nodes.h:185
AST_NODE_T base
Definition: ast_nodes.h:181
token_T * tag_opening
Definition: ast_nodes.h:182
struct AST_NODE_STRUCT * subsequent
Definition: ast_nodes.h:186
token_T * content
Definition: ast_nodes.h:183
token_T * tag_closing
Definition: ast_nodes.h:184
struct AST_ERB_END_NODE_STRUCT * end_node
Definition: ast_nodes.h:187
Definition: ast_nodes.h:302
token_T * tag_opening
Definition: ast_nodes.h:304
token_T * tag_closing
Definition: ast_nodes.h:306
AST_NODE_T base
Definition: ast_nodes.h:303
array_T * statements
Definition: ast_nodes.h:307
token_T * content
Definition: ast_nodes.h:305
Definition: ast_nodes.h:256
token_T * tag_closing
Definition: ast_nodes.h:260
AST_NODE_T base
Definition: ast_nodes.h:257
token_T * tag_opening
Definition: ast_nodes.h:258
token_T * content
Definition: ast_nodes.h:259
struct AST_ERB_RESCUE_NODE_STRUCT * subsequent
Definition: ast_nodes.h:262
array_T * statements
Definition: ast_nodes.h:261
Definition: ast_nodes.h:285
token_T * content
Definition: ast_nodes.h:288
AST_NODE_T base
Definition: ast_nodes.h:286
struct AST_ERB_END_NODE_STRUCT * end_node
Definition: ast_nodes.h:292
array_T * statements
Definition: ast_nodes.h:290
struct AST_ERB_ELSE_NODE_STRUCT * else_clause
Definition: ast_nodes.h:291
token_T * tag_closing
Definition: ast_nodes.h:289
token_T * tag_opening
Definition: ast_nodes.h:287
Definition: ast_nodes.h:238
AST_NODE_T base
Definition: ast_nodes.h:239
token_T * content
Definition: ast_nodes.h:241
array_T * statements
Definition: ast_nodes.h:243
token_T * tag_closing
Definition: ast_nodes.h:242
struct AST_ERB_END_NODE_STRUCT * end_node
Definition: ast_nodes.h:244
token_T * tag_opening
Definition: ast_nodes.h:240
Definition: ast_nodes.h:199
token_T * content
Definition: ast_nodes.h:202
token_T * tag_closing
Definition: ast_nodes.h:203
token_T * tag_opening
Definition: ast_nodes.h:201
array_T * statements
Definition: ast_nodes.h:204
AST_NODE_T base
Definition: ast_nodes.h:200
Definition: ast_nodes.h:229
token_T * content
Definition: ast_nodes.h:232
token_T * tag_opening
Definition: ast_nodes.h:231
struct AST_ERB_END_NODE_STRUCT * end_node
Definition: ast_nodes.h:235
array_T * statements
Definition: ast_nodes.h:234
AST_NODE_T base
Definition: ast_nodes.h:230
token_T * tag_closing
Definition: ast_nodes.h:233
Definition: ast_nodes.h:295
token_T * tag_closing
Definition: ast_nodes.h:299
token_T * content
Definition: ast_nodes.h:298
token_T * tag_opening
Definition: ast_nodes.h:297
AST_NODE_T base
Definition: ast_nodes.h:296
Definition: ast_nodes.h:105
array_T * children
Definition: ast_nodes.h:107
AST_NODE_T base
Definition: ast_nodes.h:106
Definition: ast_nodes.h:110
struct AST_HTML_ATTRIBUTE_NAME_NODE_STRUCT * name
Definition: ast_nodes.h:112
struct AST_HTML_ATTRIBUTE_VALUE_NODE_STRUCT * value
Definition: ast_nodes.h:114
AST_NODE_T base
Definition: ast_nodes.h:111
token_T * equals
Definition: ast_nodes.h:113
Definition: ast_nodes.h:97
token_T * close_quote
Definition: ast_nodes.h:101
array_T * children
Definition: ast_nodes.h:100
bool quoted
Definition: ast_nodes.h:102
AST_NODE_T base
Definition: ast_nodes.h:98
token_T * open_quote
Definition: ast_nodes.h:99
Definition: ast_nodes.h:79
token_T * tag_name
Definition: ast_nodes.h:82
AST_NODE_T base
Definition: ast_nodes.h:80
array_T * children
Definition: ast_nodes.h:83
token_T * tag_opening
Definition: ast_nodes.h:81
token_T * tag_closing
Definition: ast_nodes.h:84
Definition: ast_nodes.h:122
token_T * comment_start
Definition: ast_nodes.h:124
AST_NODE_T base
Definition: ast_nodes.h:123
array_T * children
Definition: ast_nodes.h:125
token_T * comment_end
Definition: ast_nodes.h:126
Definition: ast_nodes.h:129
token_T * tag_opening
Definition: ast_nodes.h:131
AST_NODE_T base
Definition: ast_nodes.h:130
token_T * tag_closing
Definition: ast_nodes.h:133
array_T * children
Definition: ast_nodes.h:132
Definition: ast_nodes.h:87
AST_NODE_T base
Definition: ast_nodes.h:88
element_source_t source
Definition: ast_nodes.h:94
array_T * body
Definition: ast_nodes.h:91
bool is_void
Definition: ast_nodes.h:93
token_T * tag_name
Definition: ast_nodes.h:90
struct AST_HTML_CLOSE_TAG_NODE_STRUCT * close_tag
Definition: ast_nodes.h:92
struct AST_HTML_OPEN_TAG_NODE_STRUCT * open_tag
Definition: ast_nodes.h:89
Definition: ast_nodes.h:70
array_T * children
Definition: ast_nodes.h:75
token_T * tag_name
Definition: ast_nodes.h:73
bool is_void
Definition: ast_nodes.h:76
token_T * tag_closing
Definition: ast_nodes.h:74
AST_NODE_T base
Definition: ast_nodes.h:71
token_T * tag_opening
Definition: ast_nodes.h:72
Definition: ast_nodes.h:117
const char * content
Definition: ast_nodes.h:119
AST_NODE_T base
Definition: ast_nodes.h:118
Definition: ast_nodes.h:65
const char * content
Definition: ast_nodes.h:67
AST_NODE_T base
Definition: ast_nodes.h:66
Definition: ast_nodes.h:52
ast_node_type_T type
Definition: ast_nodes.h:53
location_T * location
Definition: ast_nodes.h:54
array_T * errors
Definition: ast_nodes.h:56
Definition: ast_nodes.h:150
AST_NODE_T base
Definition: ast_nodes.h:151
token_T * value
Definition: ast_nodes.h:152
Definition: ast_nodes.h:136
array_T * children
Definition: ast_nodes.h:139
token_T * tag_opening
Definition: ast_nodes.h:138
token_T * tag_closing
Definition: ast_nodes.h:140
AST_NODE_T base
Definition: ast_nodes.h:137
Definition: location.h:8
Definition: position.h:6
Definition: token_struct.h:51