* Helpers
*/
void print_type(t_type* ttype, string struct_field_ref);
- void print_const_value(t_const_value* tvalue);
+ void print_const_value(t_type* type, t_const_value* tvalue);
private:
std::ofstream f_out_;
f_out_ << escape_string(name);
f_out_ << " = ";
- print_const_value(tconst->get_value());
+ print_const_value( tconst->get_type(), tconst->get_value());
f_out_ << " :: ";
print_type(tconst->get_type(), "const_" + name);
/**
* Prints out an string representation of the provided constant value
*/
-void t_gv_generator::print_const_value(t_const_value* tvalue) {
+void t_gv_generator::print_const_value(t_type* type, t_const_value* tvalue) {
bool first = true;
switch (tvalue->get_type()) {
case t_const_value::CV_INTEGER:
f_out_ << ", ";
}
first = false;
- print_const_value(map_iter->first);
+ print_const_value( ((t_map*)type)->get_key_type(), map_iter->first);
f_out_ << " = ";
- print_const_value(map_iter->second);
+ print_const_value( ((t_map*)type)->get_val_type(), map_iter->second);
}
f_out_ << " \\}";
}
f_out_ << ", ";
}
first = false;
- print_const_value(*list_iter);
+ if (type->is_list()) {
+ print_const_value( ((t_list*)type)->get_elem_type(), *list_iter);
+ } else {
+ print_const_value( ((t_set*)type)->get_elem_type(), *list_iter);
+ }
}
f_out_ << " \\}";
}
break;
+ case t_const_value::CV_IDENTIFIER:
+ f_out_ << escape_string(type->get_name()) << "." << escape_string(tvalue->get_identifier_name());
+ break;
default:
f_out_ << "UNKNOWN";
break;
f_out_ << (*arg_iter)->get_name();
if ((*arg_iter)->get_value() != NULL) {
f_out_ << " = ";
- print_const_value((*arg_iter)->get_value());
+ print_const_value((*arg_iter)->get_type(), (*arg_iter)->get_value());
}
f_out_ << " :: ";
print_type((*arg_iter)->get_type(),
void print_doc (t_doc* tdoc);
int print_type (t_type* ttype);
- void print_const_value(t_const_value* tvalue);
+ void print_const_value(t_type* type, t_const_value* tvalue);
void print_fn_args_doc(t_function* tfunction);
private:
/**
* Prints out an HTML representation of the provided constant value
*/
-void t_html_generator::print_const_value(t_const_value* tvalue) {
+void t_html_generator::print_const_value(t_type* type, t_const_value* tvalue) {
bool first = true;
switch (tvalue->get_type()) {
case t_const_value::CV_INTEGER:
f_out_ << ", ";
}
first = false;
- print_const_value(map_iter->first);
+ print_const_value( ((t_map*)type)->get_key_type(), map_iter->first);
f_out_ << " = ";
- print_const_value(map_iter->second);
+ print_const_value( ((t_map*)type)->get_val_type(), map_iter->second);
}
f_out_ << " }";
}
f_out_ << ", ";
}
first = false;
- print_const_value(*list_iter);
+ if (type->is_list()) {
+ print_const_value( ((t_list*)type)->get_elem_type(), *list_iter);
+ } else {
+ print_const_value( ((t_set*)type)->get_elem_type(), *list_iter);
+ }
}
f_out_ << " }";
}
break;
+ case t_const_value::CV_IDENTIFIER:
+ f_out_ << escape_html(type->get_name()) << "." << escape_html(tvalue->get_identifier_name());
+ break;
default:
f_out_ << "UNKNOWN";
break;
<< "</code></td><td>";
print_type(tconst->get_type());
f_out_ << "</td><td><code>";
- print_const_value(tconst->get_value());
+ print_const_value(tconst->get_type(), tconst->get_value());
f_out_ << "</code></td></tr>";
if (tconst->has_doc()) {
f_out_ << "<tr><td colspan=\"3\"><blockquote>";
f_out_ << "</td><td>";
t_const_value* default_val = (*mem_iter)->get_value();
if (default_val != NULL) {
- print_const_value(default_val);
+ print_const_value((*mem_iter)->get_type(), default_val);
}
f_out_ << "</td></tr>" << endl;
}
f_out_ << " " << (*arg_iter)->get_name();
if ((*arg_iter)->get_value() != NULL) {
f_out_ << " = ";
- print_const_value((*arg_iter)->get_value());
+ print_const_value((*arg_iter)->get_type(), (*arg_iter)->get_value());
}
}
f_out_ << ")" << endl;