Ruby
2.4.2p198(2017-09-14revision59899)
|
Go to the source code of this file.
Data Structures | |
struct | add_option_arg |
Macros | |
#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) rb_str_catf(buf, "@ %s (line: %d)"term, ruby_node_name(nd_type(node)), nd_line(node)) |
#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, block) |
#define | COMPOUND_FIELD1(name, ann, block) |
#define | FIELD_NAME_DESC(name, ann) name " (" ann ")" |
#define | FIELD_NAME_LEN(name, ann) |
#define | SIMPLE_FIELD(len, name) |
#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 | F_OPTION(name, ann) COMPOUND_FIELD1(#name, ann, dump_option(buf, indent, node->name)) |
#define | ANN(ann) |
#define | LAST_NODE (next_indent = " ") |
#define | nd_compile_option u3.value |
Functions | |
static void | add_indent (VALUE buf, VALUE indent) |
static void | add_id (VALUE buf, ID id) |
static int | add_option_i (VALUE key, VALUE val, VALUE args) |
static void | dump_option (VALUE buf, VALUE indent, VALUE opt) |
static void | dump_node (VALUE, VALUE, int, NODE *) |
static void | dump_array (VALUE buf, VALUE indent, int comment, NODE *node) |
VALUE | rb_parser_dump_tree (NODE *node, int comment) |
void | rb_gc_free_node (VALUE obj) |
size_t | rb_node_memsize (VALUE obj) |
VALUE | rb_gc_mark_node (NODE *obj) |
Variables | |
static const char | default_indent [] = "| " |
#define A | ( | str | ) | rb_str_cat2(buf, (str)) |
Definition at line 15 of file node.c.
Referenced by add_id(), add_option_i(), and dump_node().
Definition at line 21 of file node.c.
Referenced by dump_node().
#define A_INDENT add_indent(buf, indent) |
Definition at line 18 of file node.c.
Referenced by add_option_i(), and dump_node().
#define A_INT | ( | val | ) | rb_str_catf(buf, "%d", (val)) |
Definition at line 22 of file node.c.
Referenced by dump_node().
#define A_LIT | ( | lit | ) | AR(rb_inspect(lit)) |
Definition at line 24 of file node.c.
Referenced by add_option_i(), and dump_option().
#define A_LONG | ( | val | ) | rb_str_catf(buf, "%ld", (val)) |
Definition at line 23 of file node.c.
Referenced by dump_node().
#define A_NODE_HEADER | ( | node, | |
term | |||
) | rb_str_catf(buf, "@ %s (line: %d)"term, ruby_node_name(nd_type(node)), nd_line(node)) |
#define ANN | ( | ann | ) |
#define AR | ( | str | ) | rb_str_concat(buf, (str)) |
Definition at line 16 of file node.c.
Referenced by add_id(), add_indent(), and add_option_i().
#define COMPOUND_FIELD1 | ( | name, | |
ann, | |||
block | |||
) |
#define D_DEDENT rb_str_resize(indent, RSTRING_LEN(indent) - 4) |
Definition at line 20 of file node.c.
Referenced by dump_node().
#define D_INDENT rb_str_cat2(indent, next_indent) |
Definition at line 19 of file node.c.
Referenced by dump_node().
#define D_NODE_HEADER | ( | node | ) | (A_INDENT, A_NODE_HEADER(node, "\n")) |
Definition at line 32 of file node.c.
Referenced by dump_node().
Definition at line 31 of file node.c.
Referenced by dump_node().
#define F_CUSTOM1 | ( | name, | |
ann | |||
) | SIMPLE_FIELD1(#name, ann) |
Definition at line 58 of file node.c.
Referenced by dump_node().
Definition at line 60 of file node.c.
Referenced by dump_node().
#define F_ID | ( | name, | |
ann | |||
) | SIMPLE_FIELD1(#name, ann) A_ID(node->name) |
Definition at line 59 of file node.c.
Referenced by dump_node().
#define F_INT | ( | name, | |
ann | |||
) | SIMPLE_FIELD1(#name, ann) A_INT(node->name) |
Definition at line 61 of file node.c.
Referenced by dump_node().
#define F_LIT | ( | name, | |
ann | |||
) | SIMPLE_FIELD1(#name, ann) A_LIT(node->name) |
Definition at line 63 of file node.c.
Referenced by dump_node().
#define F_LONG | ( | name, | |
ann | |||
) | SIMPLE_FIELD1(#name, ann) A_LONG(node->name) |
Definition at line 62 of file node.c.
Referenced by dump_array().
#define F_MSG | ( | name, | |
ann, | |||
desc | |||
) | SIMPLE_FIELD1(#name, ann) A(desc) |
Definition at line 64 of file node.c.
Referenced by dump_node().
#define F_NODE | ( | name, | |
ann | |||
) | COMPOUND_FIELD1(#name, ann, dump_node(buf, indent, comment, node->name)) |
Definition at line 66 of file node.c.
Referenced by dump_array(), and dump_node().
#define F_OPTION | ( | name, | |
ann | |||
) | COMPOUND_FIELD1(#name, ann, dump_option(buf, indent, node->name)) |
Definition at line 68 of file node.c.
Referenced by dump_node().
#define LAST_NODE (next_indent = " ") |
Definition at line 76 of file node.c.
Referenced by dump_array(), and dump_node().
#define nd_compile_option u3.value |
Referenced by dump_node().
#define SIMPLE_FIELD1 | ( | name, | |
ann | |||
) | SIMPLE_FIELD(FIELD_NAME_LEN(name, ann), FIELD_NAME_DESC(name, ann)) |
Definition at line 107 of file node.c.
References A, A_INDENT, A_LIT, AR, add_option_arg::buf, add_option_arg::indent, rb_sym2str, and ST_CONTINUE.
Referenced by dump_option().
Definition at line 141 of file node.c.
References default_indent, F_LONG, F_NODE, LAST_NODE, nd_alen, nd_head, nd_next, nd_type, and NODE_ARRAY.
Referenced by dump_node().
Definition at line 156 of file node.c.
References A, A_ID, A_INDENT, A_INT, A_LONG, ANN, D_DEDENT, D_INDENT, D_NODE_HEADER, D_NULL_NODE, default_indent, dump_array(), F_CUSTOM1, F_GENTRY, F_ID, F_INT, F_LIT, F_MSG, F_NODE, F_OPTION, LAST_NODE, name, nd_1st, nd_2nd, nd_ainfo, nd_args, nd_beg, nd_body, nd_compile_option, nd_cond, nd_cpath, nd_defn, nd_else, nd_end, nd_ensr, nd_entry, nd_head, nd_iter, nd_lit, nd_mid, nd_next, nd_nth, nd_recv, nd_resq, nd_state, nd_stts, nd_super, nd_tbl, nd_type, nd_value, nd_vid, NODE_ALIAS, NODE_AND, NODE_ARGS, NODE_ARGSCAT, NODE_ARGSPUSH, NODE_ARRAY, NODE_ATTRASGN, NODE_BACK_REF, NODE_BEGIN, NODE_BLOCK, NODE_BLOCK_PASS, NODE_BREAK, NODE_CALL, NODE_CASE, NODE_CDECL, NODE_CLASS, NODE_COLON2, NODE_COLON3, NODE_CONST, NODE_CVAR, NODE_CVASGN, NODE_DASGN, NODE_DASGN_CURR, NODE_DEFINED, NODE_DEFN, NODE_DEFS, NODE_DOT2, NODE_DOT3, NODE_DREGX, NODE_DREGX_ONCE, NODE_DSTR, NODE_DSYM, NODE_DVAR, NODE_DXSTR, NODE_ENSURE, NODE_ERRINFO, NODE_EVSTR, NODE_FALSE, NODE_FCALL, NODE_FLIP2, NODE_FLIP3, NODE_FOR, NODE_GASGN, NODE_GVAR, NODE_HASH, NODE_IASGN, NODE_IF, NODE_ITER, NODE_IVAR, NODE_KW_ARG, NODE_LAMBDA, NODE_LASGN, NODE_LIT, NODE_LVAR, NODE_MASGN, NODE_MATCH, NODE_MATCH2, NODE_MATCH3, NODE_MODULE, NODE_NEXT, NODE_NIL, NODE_NTH_REF, NODE_OP_ASGN1, NODE_OP_ASGN2, NODE_OP_ASGN_AND, NODE_OP_ASGN_OR, NODE_OPT_ARG, NODE_OPT_N, NODE_OR, NODE_POSTARG, NODE_POSTEXE, NODE_PRELUDE, NODE_QCALL, NODE_REDO, NODE_RESBODY, NODE_RESCUE, NODE_RETRY, NODE_RETURN, NODE_SCLASS, NODE_SCOPE, NODE_SELF, NODE_SPLAT, NODE_STR, NODE_SUPER, NODE_TRUE, NODE_UNDEF, NODE_UNTIL, NODE_VALIAS, NODE_VALUES, NODE_VCALL, NODE_WHEN, NODE_WHILE, NODE_XSTR, NODE_YIELD, NODE_ZARRAY, NODE_ZSUPER, rb_bug(), rb_str_catf(), ruby_node_name(), and size.
Referenced by dump_option(), and rb_parser_dump_tree().
Definition at line 123 of file node.c.
References A_LIT, add_option_i(), add_option_arg::buf, add_option_arg::count, dump_node(), add_option_arg::indent, rb_hash_foreach(), RB_TYPE_P, and T_HASH.
void rb_gc_free_node | ( | VALUE | obj | ) |
Definition at line 1005 of file node.c.
References nd_ainfo, nd_tbl, nd_type, NODE_ALLOCA, NODE_ARGS, NODE_SCOPE, RNODE, and xfree().
Referenced by obj_free().
Definition at line 1047 of file node.c.
References RNode::args, rb_args_info::kw_args, rb_args_info::kw_rest_arg, nd_type, NODE_ALIAS, NODE_ALLOCA, NODE_AND, NODE_ARGS, NODE_ARGS_AUX, NODE_ARGSCAT, NODE_ARRAY, NODE_BACK_REF, NODE_BLOCK, NODE_BLOCK_ARG, NODE_BLOCK_PASS, NODE_BREAK, NODE_CALL, NODE_CASE, NODE_CDECL, NODE_CLASS, NODE_COLON2, NODE_COLON3, NODE_CVAR, NODE_CVASGN, NODE_DASGN, NODE_DASGN_CURR, NODE_DEFINED, NODE_DEFN, NODE_DEFS, NODE_DOT2, NODE_DOT3, NODE_DREGX, NODE_DREGX_ONCE, NODE_DSTR, NODE_DVAR, NODE_DXSTR, NODE_ENSURE, NODE_ERRINFO, NODE_EVSTR, NODE_FALSE, NODE_FCALL, NODE_FLIP2, NODE_FLIP3, NODE_FOR, NODE_GASGN, NODE_GVAR, NODE_HASH, NODE_IASGN, NODE_IASGN2, NODE_IF, NODE_ITER, NODE_IVAR, NODE_LASGN, NODE_LIT, NODE_LVAR, NODE_MASGN, NODE_MATCH, NODE_MATCH2, NODE_MATCH3, NODE_MODULE, NODE_NEXT, NODE_NIL, NODE_NTH_REF, NODE_OP_ASGN1, NODE_OP_ASGN_AND, NODE_OP_ASGN_OR, NODE_OPT_ARG, NODE_OPT_N, NODE_OR, NODE_POSTEXE, NODE_REDO, NODE_RESBODY, NODE_RESCUE, NODE_RETRY, NODE_RETURN, NODE_SCLASS, NODE_SCOPE, NODE_SELF, NODE_SPLAT, NODE_STR, NODE_SUPER, NODE_TO_ARY, NODE_TRUE, NODE_UNDEF, NODE_UNTIL, NODE_VALIAS, NODE_VCALL, NODE_WHEN, NODE_WHILE, NODE_XSTR, NODE_YIELD, NODE_ZARRAY, NODE_ZSUPER, rb_args_info::opt_args, rb_args_info::post_init, rb_args_info::pre_init, rb_gc_mark(), rb_gc_mark_locations(), rb_gc_mark_maybe(), RNODE, and RNode::u3.
Referenced by gc_mark_children().
size_t rb_node_memsize | ( | VALUE | obj | ) |
Definition at line 1025 of file node.c.
References nd_tbl, nd_type, NODE_ALLOCA, NODE_ARGS, NODE_SCOPE, RNODE, and size.
Referenced by obj_memsize_of().
Definition at line 992 of file node.c.
References add_option_arg::buf, dump_node(), and rb_str_new_cstr().
Referenced by process_options().
|
static |
Definition at line 138 of file node.c.
Referenced by dump_array(), and dump_node().