void ruby_write_constant(constant_t*c, state_t*s) { int t; switch(c->type) { case CONSTANT_FLOAT: strf(s, "%g", c->f); break; case CONSTANT_INT: case CONSTANT_CATEGORY: strf(s, "%d", c->i); break; case CONSTANT_BOOL: if(c->b) strf(s, "true"); else strf(s, "false"); case CONSTANT_STRING: strf(s, ":\""); strf(s, "%s", c->s); strf(s, "\""); break; case CONSTANT_MISSING: strf(s, "nil"); break; case CONSTANT_MIXED_ARRAY: case CONSTANT_INT_ARRAY: case CONSTANT_FLOAT_ARRAY: case CONSTANT_CATEGORY_ARRAY: case CONSTANT_STRING_ARRAY: strf(s, "["); for(t=0;t<c->a->size;t++) { if(t) strf(s, ","); ruby_write_constant(&c->a->entries[t], s); } strf(s, "]"); break; } }
void ruby_write_node_missing(node_t*n, state_t*s) { ruby_write_constant(&n->value, s); }
void ruby_write_node_float(node_t*n, state_t*s) { ruby_write_constant(&n->value, s); }
void ruby_write_node_zero_float_array(node_t*n, state_t*s) { ruby_write_constant(&n->value, s); }
void ruby_write_node_category_array(node_t*n, state_t*s) { ruby_write_constant(&n->value, s); }
void ruby_write_node_string_array(node_t*n, state_t*s) { ruby_write_constant(&n->value, s); }