~ubuntu-branches/ubuntu/quantal/ruby1.9.1/quantal

« back to all changes in this revision

Viewing changes to node.c

  • Committer: Bazaar Package Importer
  • Author(s): Lucas Nussbaum
  • Date: 2011-09-24 19:16:17 UTC
  • mfrom: (1.1.8 upstream) (13.1.7 experimental)
  • Revision ID: james.westby@ubuntu.com-20110924191617-o1qz4rcmqjot8zuy
Tags: 1.9.3~rc1-1
* New upstream release: 1.9.3 RC1.
  + Includes load.c fixes. Closes: #639959.
* Upload to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
#define AR(str) rb_str_concat(buf, (str))
17
17
 
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))
27
27
 
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");
30
30
 
31
31
#define COMPOUND_FIELD(name, name2, block) \
32
32
    do { \
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); \
35
35
        block; \
36
36
        rb_str_resize(indent, RSTRING_LEN(indent) - 4); \
38
38
 
39
39
#define SIMPLE_FIELD(name, name2, block) \
40
40
    do { \
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"); \
42
42
    } while (0)
43
43
 
44
44
#define F_CUSTOM1(name, ann, block) SIMPLE_FIELD(#name, #name " (" ann ")", block)
77
77
    else {
78
78
        VALUE str = rb_id2str(id);
79
79
        if (str) {
80
 
            A(":"); AR(rb_id2str(id));
 
80
            A(":"); AR(str);
81
81
        }
82
82
        else {
83
83
            A("(internal variable)");
501
501
        F_CUSTOM1(nd_nth, "variable", {
502
502
           char name[3];
503
503
           name[0] = '$';
504
 
           name[1] = node->nd_nth;
 
504
           name[1] = (char)node->nd_nth;
505
505
           name[2] = '\0';
506
506
           A(name);
507
507
        });