Ruby
2.7.0p0(2019-12-25revision647ee6f091eafcce70ffb75ddf7e121e192ab217)
|
Go to the source code of this file.
Data Structures | |
struct | add_option_arg |
struct | node_buffer_elem_struct |
struct | node_buffer_list_t |
struct | node_buffer_struct |
Macros | |
#define | NODE_BUF_DEFAULT_LEN 16 |
#define | A(str) rb_str_cat2(buf, (str)) |
#define | AR(str) rb_str_concat(buf, (str)) |
#define | A_INDENT add_indent(buf, indent) |
#define | D_INDENT rb_str_cat2(indent, next_indent) |
#define | D_DEDENT rb_str_resize(indent, RSTRING_LEN(indent) - 4) |
#define | A_ID(id) add_id(buf, (id)) |
#define | A_INT(val) rb_str_catf(buf, "%d", (val)) |
#define | A_LONG(val) rb_str_catf(buf, "%ld", (val)) |
#define | A_LIT(lit) AR(rb_inspect(lit)) |
#define | A_NODE_HEADER(node, term) |
#define | A_FIELD_HEADER(len, name, term) rb_str_catf(buf, "+- %.*s:"term, (len), (name)) |
#define | D_FIELD_HEADER(len, name, term) (A_INDENT, A_FIELD_HEADER(len, name, term)) |
#define | D_NULL_NODE (A_INDENT, A("(null node)\n")) |
#define | D_NODE_HEADER(node) (A_INDENT, A_NODE_HEADER(node, "\n")) |
#define | COMPOUND_FIELD(len, name) FIELD_BLOCK((D_FIELD_HEADER((len), (name), "\n"), D_INDENT), D_DEDENT) |
#define | COMPOUND_FIELD1(name, ann) |
#define | FIELD_NAME_DESC(name, ann) name " (" ann ")" |
#define | FIELD_NAME_LEN(name, ann) |
#define | SIMPLE_FIELD(len, name) FIELD_BLOCK(D_FIELD_HEADER((len), (name), " "), A("\n")) |
#define | FIELD_BLOCK(init, reset) |
#define | SIMPLE_FIELD1(name, ann) SIMPLE_FIELD(FIELD_NAME_LEN(name, ann), FIELD_NAME_DESC(name, ann)) |
#define | F_CUSTOM1(name, ann) SIMPLE_FIELD1(#name, ann) |
#define | F_ID(name, ann) SIMPLE_FIELD1(#name, ann) A_ID(node->name) |
#define | F_GENTRY(name, ann) SIMPLE_FIELD1(#name, ann) A_ID((node->name)->id) |
#define | F_INT(name, ann) SIMPLE_FIELD1(#name, ann) A_INT(node->name) |
#define | F_LONG(name, ann) SIMPLE_FIELD1(#name, ann) A_LONG(node->name) |
#define | F_LIT(name, ann) SIMPLE_FIELD1(#name, ann) A_LIT(node->name) |
#define | F_MSG(name, ann, desc) SIMPLE_FIELD1(#name, ann) A(desc) |
#define | F_NODE(name, ann) COMPOUND_FIELD1(#name, ann) {dump_node(buf, indent, comment, node->name);} |
#define | ANN(ann) |
#define | LAST_NODE (next_indent = " ") |
Typedefs | |
typedef struct node_buffer_elem_struct | node_buffer_elem_t |
typedef void | node_itr_t(void *ctx, NODE *node) |
Functions | |
VALUE | rb_parser_dump_tree (const NODE *node, int comment) |
void | rb_node_init (NODE *n, enum node_type type, VALUE a0, VALUE a1, VALUE a2) |
NODE * | rb_ast_newnode (rb_ast_t *ast, enum node_type type) |
void | rb_ast_delete_node (rb_ast_t *ast, NODE *n) |
rb_ast_t * | rb_ast_new (void) |
void | rb_ast_update_references (rb_ast_t *ast) |
void | rb_ast_mark (rb_ast_t *ast) |
void | rb_ast_free (rb_ast_t *ast) |
size_t | rb_ast_memsize (const rb_ast_t *ast) |
void | rb_ast_dispose (rb_ast_t *ast) |
void | rb_ast_add_mark_object (rb_ast_t *ast, VALUE obj) |
#define A_INT | ( | val | ) | rb_str_catf(buf, "%d", (val)) |
#define A_LIT | ( | lit | ) | AR(rb_inspect(lit)) |
#define A_LONG | ( | val | ) | rb_str_catf(buf, "%ld", (val)) |
#define A_NODE_HEADER | ( | node, | |
term | |||
) |
#define ANN | ( | ann | ) |
#define COMPOUND_FIELD | ( | len, | |
name | |||
) | FIELD_BLOCK((D_FIELD_HEADER((len), (name), "\n"), D_INDENT), D_DEDENT) |
#define COMPOUND_FIELD1 | ( | name, | |
ann | |||
) |
#define D_DEDENT rb_str_resize(indent, RSTRING_LEN(indent) - 4) |
#define D_INDENT rb_str_cat2(indent, next_indent) |
#define D_NODE_HEADER | ( | node | ) | (A_INDENT, A_NODE_HEADER(node, "\n")) |
#define F_CUSTOM1 | ( | name, | |
ann | |||
) | SIMPLE_FIELD1(#name, ann) |
#define F_ID | ( | name, | |
ann | |||
) | SIMPLE_FIELD1(#name, ann) A_ID(node->name) |
#define F_INT | ( | name, | |
ann | |||
) | SIMPLE_FIELD1(#name, ann) A_INT(node->name) |
#define F_LIT | ( | name, | |
ann | |||
) | SIMPLE_FIELD1(#name, ann) A_LIT(node->name) |
#define F_LONG | ( | name, | |
ann | |||
) | SIMPLE_FIELD1(#name, ann) A_LONG(node->name) |
#define F_MSG | ( | name, | |
ann, | |||
desc | |||
) | SIMPLE_FIELD1(#name, ann) A(desc) |
#define F_NODE | ( | name, | |
ann | |||
) | COMPOUND_FIELD1(#name, ann) {dump_node(buf, indent, comment, node->name);} |
#define FIELD_BLOCK | ( | init, | |
reset | |||
) |
#define FIELD_NAME_LEN | ( | name, | |
ann | |||
) |
#define SIMPLE_FIELD | ( | len, | |
name | |||
) | FIELD_BLOCK(D_FIELD_HEADER((len), (name), " "), A("\n")) |
#define SIMPLE_FIELD1 | ( | name, | |
ann | |||
) | SIMPLE_FIELD(FIELD_NAME_LEN(name, ann), FIELD_NAME_DESC(name, ann)) |
typedef struct node_buffer_elem_struct node_buffer_elem_t |
Definition at line 1395 of file node.c.
References NIL_P, rb_ast_struct::node_buffer, obj, Qtrue, rb_hash_aset(), rb_ident_hash_new(), and RB_OBJ_WRITE.
Definition at line 1389 of file node.c.
References rb_ast_free().
Definition at line 1354 of file node.c.
References rb_ast_struct::node_buffer.
Referenced by rb_ast_dispose().
Definition at line 1342 of file node.c.
References rb_ast_struct::body, rb_ast_body_struct::compile_option, rb_ast_struct::node_buffer, and rb_gc_mark().
Definition at line 1375 of file node.c.
References buf, NODE_BUF_DEFAULT_LEN, rb_ast_struct::node_buffer, offsetof, and size.
Definition at line 1189 of file node.c.
References NODE_ARGS, NODE_ARYPTN, rb_ast_struct::node_buffer, NODE_DREGX, NODE_DSTR, NODE_DSYM, NODE_DXSTR, NODE_LIT, NODE_MATCH, NODE_SCOPE, NODE_STR, and NODE_XSTR.
Definition at line 1332 of file node.c.
References rb_ast_struct::node_buffer.
Definition at line 1095 of file node.c.
References n, nd_set_type, and T_NODE.