16
16
#define AR(str) rb_str_concat(buf, (str))
18
18
#define A_INDENT add_indent(buf, indent)
19
#define A_ID(id) add_id(buf, id)
19
#define A_ID(id) add_id(buf, (id))
20
20
#define A_INT(val) rb_str_catf(buf, "%d", (val));
21
21
#define A_LONG(val) rb_str_catf(buf, "%ld", (val));
22
22
#define A_LIT(lit) AR(rb_inspect(lit))
23
23
#define A_NODE_HEADER(node) \
24
24
rb_str_catf(buf, "@ %s (line: %d)", ruby_node_name(nd_type(node)), nd_line(node))
25
25
#define A_FIELD_HEADER(name) \
26
rb_str_catf(buf, "+- %s:", name)
26
rb_str_catf(buf, "+- %s:", (name))
28
28
#define D_NULL_NODE A_INDENT; A("(null node)"); A("\n");
29
29
#define D_NODE_HEADER(node) A_INDENT; A_NODE_HEADER(node); A("\n");
31
31
#define COMPOUND_FIELD(name, name2, block) \
33
A_INDENT; A_FIELD_HEADER(comment ? name2 : name); A("\n"); \
33
A_INDENT; A_FIELD_HEADER(comment ? (name2) : (name)); A("\n"); \
34
34
rb_str_cat2(indent, next_indent); \
36
36
rb_str_resize(indent, RSTRING_LEN(indent) - 4); \
39
39
#define SIMPLE_FIELD(name, name2, block) \
41
A_INDENT; A_FIELD_HEADER(comment ? name2 : name); A(" "); block; A("\n"); \
41
A_INDENT; A_FIELD_HEADER(comment ? (name2) : (name)); A(" "); block; A("\n"); \
44
44
#define F_CUSTOM1(name, ann, block) SIMPLE_FIELD(#name, #name " (" ann ")", block)