372 switch(n->get_type())
375 f_impl->output_operator(
"+", g_flag_optional_spaces);
380 size_t const max_children(n->size());
381 for(
size_t idx(0); idx < max_children; ++idx)
383 output(n->get_child(idx));
393 f_impl->output_operator(
":", 0);
398 color c(n->get_color());
414 f_impl->output_operator(
"|=", g_flag_optional_spaces);
425 f_impl->output_identation();
426 f_out << n->get_string();
427 f_impl->output_operator(
":", g_flag_optional_space_after);
428 size_t const max_children(n->size());
429 for(
size_t idx(0); idx < max_children; ++idx)
434 && idx + 1 != max_children)
436 f_impl->output_operator(
",", g_flag_optional_space_after);
440 if(n->get_flag(
"important"))
442 f_impl->output_operator(
"!", g_flag_optional_space_before);
443 f_out <<
"important";
449 f_impl->output_operator(
"/", 0);
453 f_impl->output_operator(
"=", g_flag_optional_spaces);
459 <<
"/" <<
decimal_number_to_string(n->get_line_height() * (n->get_dim2() ==
"%" ? 100.0 : 1.0),
true) << n->get_dim2();
464 f_out << n->get_string();
465 f_impl->output_operator(
"(", 0);
471 size_t const max_children(n->size());
472 for(
size_t idx(0); idx < max_children; ++idx)
480 f_impl->output_operator(
",", g_flag_optional_space_after);
482 output(n->get_child(idx));
489 size_t const max_children(n->size());
490 for(
size_t idx(0); idx < max_children; ++idx)
492 output(n->get_child(idx));
496 f_impl->output_operator(
")", 0);
501 f_impl->output_operator(
">", g_flag_optional_spaces);
505 f_out <<
"#" << n->get_string();
513 f_impl->output_operator(
"~=", g_flag_optional_spaces);
519 f_out << n->get_integer() << n->get_string();
524 size_t const max_children(n->size());
525 for(
size_t idx(0); idx < max_children; ++idx)
530 && idx + 1 != max_children)
532 f_impl->output_operator(
";", g_flag_optional_space_after_or_newline);
539 f_impl->output_operator(
"*", 0);
544 f_impl->output_operator(
"{", g_flag_optional_spaces_or_newlines);
545 size_t const max_children(n->size());
546 for(
size_t idx(0); idx < max_children; ++idx)
549 output(n->get_child(idx));
551 && idx + 1 < max_children)
553 f_impl->output_operator(
";", g_flag_optional_space_after_or_newline);
556 f_impl->output_operator(
";", g_flag_optional_operator);
557 f_impl->output_operator(
"}", g_flag_optional_space_before_or_newline);
568 f_impl->output_operator(
"[", 0);
569 size_t const max_children(n->size());
570 for(
size_t idx(0); idx < max_children; ++idx)
572 output(n->get_child(idx));
574 f_impl->output_operator(
"]", 0);
583 f_impl->output_operator(
".", 0);
587 f_impl->output_operator(
"~", g_flag_optional_spaces);
591 f_impl->output_operator(
"^=", g_flag_optional_spaces);
595 f_impl->output_operator(
"|", 0);
603 f_impl->output_operator(
"*=", g_flag_optional_spaces);
607 f_impl->output_operator(
"-", 0);
611 f_impl->output_operator(
"$=", g_flag_optional_spaces);
665 f_impl->output_operator(
"{", g_flag_optional_spaces_or_newlines);
666 size_t const max_children(n->size());
667 for(
size_t idx(0); idx < max_children; ++idx)
670 output(n->get_child(idx));
672 && idx + 1 < max_children)
674 f_impl->output_operator(
";", g_flag_optional_space_after_or_newline);
677 f_impl->output_operator(
";", g_flag_optional_operator);
678 f_impl->output_operator(
"}", g_flag_optional_space_before_or_newline);
716 std::stringstream ss;
717 ss <<
"assembler.cpp: unexpected token "
719 <<
" in output() call.";
812 f_out <<
"@" << n->get_string() <<
" ";
814 size_t const max_children(n->size());
817 if(n->get_string() ==
"-o-keyframes"
818 || n->get_string() ==
"-webkit-keyframes"
819 || n->get_string() ==
"keyframes")
825 f_impl->output_operator(
"{", g_flag_optional_space_before);
827 for(
size_t idx(1); idx < max_children; ++idx)
829 output(n->get_child(idx));
831 f_impl->output_operator(
"}", 0);
836 for(
size_t idx(0); idx < max_children; ++idx)
839 if(idx + 1 == max_children
859 f_impl->output_operator(
"{", 0);
861 size_t const max_sub_children(child->size());
862 for(
size_t j(0); j < max_sub_children; ++j)
864 output(child->get_child(j));
866 f_impl->output_operator(
"}", 0);
872 if(idx + 1 < max_children
875 f_impl->output_operator(
",", g_flag_optional_space_after);
900 f_impl->newline_if_not_empty();
901 std::string
const comment(n->get_string());
902 if(n->get_integer() == 0)
908 std::string::size_type start(0);
909 std::string::size_type end(comment.find(
'\n'));
910 while(end != std::string::npos)
921 f_out << comment.substr(start, end - start) << std::endl;
923 end = comment.find(
'\n', start);
925 if(start < comment.size())
931 << comment.substr(start)
937 f_out <<
" * " << comment.substr(start) << std::endl
938 <<
" */" << std::endl;
948 f_out <<
"/* " << comment <<
" */" << std::endl;