This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Clean up pretty printers [21/n]


Tested on an x86_64-suse-linux.  Applied to trunk.

-- Gaby

2013-09-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
c-family/
	* c-pretty-print.h (c_pretty_printer::simple_type_specifier): Now
	a virtual member function.
	(pp_simple_type_specifier): Remove.
	(pp_c_type_specifier): Likewise.
	* c-pretty-print.c (c_pretty_printer::simple_type_specifier):
	Rename from pp_c_type_specifier.  Adjust.
	(c_pretty_printer::c_pretty_printer): Do not assign to
	simple_type_specifier.
cp/
	* cxx-pretty-print.h (cxx_pretty_printer::simple_type_specifier):
	Declare as overrider.
	* cxx-pretty-print.c (cxx_pretty_printer::simple_type_specifier):
	Rename from pp_cxx_simple_type_specifier.
	(cxx_pretty_printer::cxx_pretty_printer): Do not assign to
	simple_type_specifier.

Index: c-family/c-pretty-print.c
===================================================================
--- c-family/c-pretty-print.c	(revision 202240)
+++ c-family/c-pretty-print.c	(working copy)
@@ -305,7 +305,10 @@
     }
 }
 
-/* type-specifier:
+/* simple-type-specifier:
+     type-specifier
+
+   type-specifier:
       void
       char
       short
@@ -328,17 +331,17 @@
       __vector__   */
 
 void
-pp_c_type_specifier (c_pretty_printer *pp, tree t)
+c_pretty_printer::simple_type_specifier (tree t)
 {
   const enum tree_code code = TREE_CODE (t);
   switch (code)
     {
     case ERROR_MARK:
-      pp->translate_string ("<type-error>");
+      translate_string ("<type-error>");
       break;
 
     case IDENTIFIER_NODE:
-      pp_c_identifier (pp, IDENTIFIER_POINTER (t));
+      pp_c_identifier (this, IDENTIFIER_POINTER (t));
       break;
 
     case VOID_TYPE:
@@ -349,7 +352,7 @@
       if (TYPE_NAME (t))
 	{
 	  t = TYPE_NAME (t);
-	  pp_c_type_specifier (pp, t);
+	  simple_type_specifier (t);
 	}
       else
 	{
@@ -360,11 +363,11 @@
 	    t = c_common_type_for_mode (TYPE_MODE (t), TYPE_UNSIGNED (t));
 	  if (TYPE_NAME (t))
 	    {
-	      pp_c_type_specifier (pp, t);
+	      simple_type_specifier (t);
 	      if (TYPE_PRECISION (t) != prec)
 		{
-		  pp_colon (pp);
-		  pp_decimal_int (pp, prec);
+		  pp_colon (this);
+		  pp_decimal_int (this, prec);
 		}
 	    }
 	  else
@@ -372,52 +375,52 @@
 	      switch (code)
 		{
 		case INTEGER_TYPE:
-		  pp->translate_string (TYPE_UNSIGNED (t)
-                                        ? "<unnamed-unsigned:"
-                                        : "<unnamed-signed:");
+		  translate_string (TYPE_UNSIGNED (t)
+                                    ? "<unnamed-unsigned:"
+                                    : "<unnamed-signed:");
 		  break;
 		case REAL_TYPE:
-		  pp->translate_string ("<unnamed-float:");
+		  translate_string ("<unnamed-float:");
 		  break;
 		case FIXED_POINT_TYPE:
-		  pp->translate_string ("<unnamed-fixed:");
+		  translate_string ("<unnamed-fixed:");
 		  break;
 		default:
 		  gcc_unreachable ();
 		}
-	      pp_decimal_int (pp, prec);
-	      pp_greater (pp);
+	      pp_decimal_int (this, prec);
+	      pp_greater (this);
 	    }
 	}
       break;
 
     case TYPE_DECL:
       if (DECL_NAME (t))
-	pp->id_expression (t);
+	id_expression (t);
       else
-	pp->translate_string ("<typedef-error>");
+	translate_string ("<typedef-error>");
       break;
 
     case UNION_TYPE:
     case RECORD_TYPE:
     case ENUMERAL_TYPE:
       if (code == UNION_TYPE)
-	pp_c_ws_string (pp, "union");
+	pp_c_ws_string (this, "union");
       else if (code == RECORD_TYPE)
-	pp_c_ws_string (pp, "struct");
+	pp_c_ws_string (this, "struct");
       else if (code == ENUMERAL_TYPE)
-	pp_c_ws_string (pp, "enum");
+	pp_c_ws_string (this, "enum");
       else
-	pp->translate_string ("<tag-error>");
+	translate_string ("<tag-error>");
 
       if (TYPE_NAME (t))
-	pp->id_expression (TYPE_NAME (t));
+	id_expression (TYPE_NAME (t));
       else
-	pp->translate_string ("<anonymous>");
+	translate_string ("<anonymous>");
       break;
 
     default:
-      pp_unsupported_tree (pp, t);
+      pp_unsupported_tree (this, t);
       break;
     }
 }
@@ -483,7 +486,7 @@
       break;
 
     default:
-      pp_simple_type_specifier (pp, t);
+      pp->simple_type_specifier (t);
       break;
     }
   if ((pp->flags & pp_c_flag_gnu_v3) && code != POINTER_TYPE)
@@ -2328,7 +2331,6 @@
   type_specifier_seq        = pp_c_specifier_qualifier_list;
   ptr_operator              = pp_c_pointer;
   parameter_list            = pp_c_parameter_type_list;
-  simple_type_specifier     = pp_c_type_specifier;
 }
 
 
Index: c-family/c-pretty-print.h
===================================================================
--- c-family/c-pretty-print.h	(revision 202240)
+++ c-family/c-pretty-print.h	(working copy)
@@ -69,6 +69,7 @@
 
   virtual void declaration (tree);
   virtual void declaration_specifiers (tree);
+  virtual void simple_type_specifier (tree);
   virtual void function_specifier (tree);
   virtual void storage_class_specifier (tree);
   virtual void declarator (tree);
@@ -88,7 +89,6 @@
   c_pretty_print_fn type_specifier_seq;
   c_pretty_print_fn ptr_operator;
   c_pretty_print_fn parameter_list;
-  c_pretty_print_fn simple_type_specifier;
 };
 
 #define pp_c_tree_identifier(PPI, ID)              \
@@ -97,7 +97,6 @@
 #define pp_type_specifier_seq(PP, D)    (PP)->type_specifier_seq (PP, D)
 #define pp_ptr_operator(PP, D)          (PP)->ptr_operator (PP, D)
 #define pp_parameter_list(PP, T)        (PP)->parameter_list (PP, T)
-#define pp_simple_type_specifier(PP, T) (PP)->simple_type_specifier (PP, T)
 
 void pp_c_whitespace (c_pretty_printer *);
 void pp_c_left_paren (c_pretty_printer *);
@@ -124,7 +123,6 @@
 void pp_c_type_qualifier_list (c_pretty_printer *, tree);
 void pp_c_parameter_type_list (c_pretty_printer *, tree);
 void pp_c_specifier_qualifier_list (c_pretty_printer *, tree);
-void pp_c_type_specifier (c_pretty_printer *, tree);
 /* Expressions.  */
 void pp_c_logical_or_expression (c_pretty_printer *, tree);
 void pp_c_expression_list (c_pretty_printer *, tree);
Index: cp/cxx-pretty-print.c
===================================================================
--- cp/cxx-pretty-print.c	(revision 202240)
+++ cp/cxx-pretty-print.c	(working copy)
@@ -1249,32 +1249,32 @@
       double
       void  */
 
-static void
-pp_cxx_simple_type_specifier (cxx_pretty_printer *pp, tree t)
+void
+cxx_pretty_printer::simple_type_specifier (tree t)
 {
   switch (TREE_CODE (t))
     {
     case RECORD_TYPE:
     case UNION_TYPE:
     case ENUMERAL_TYPE:
-      pp_cxx_qualified_id (pp, t);
+      pp_cxx_qualified_id (this, t);
       break;
 
     case TEMPLATE_TYPE_PARM:
     case TEMPLATE_TEMPLATE_PARM:
     case TEMPLATE_PARM_INDEX:
     case BOUND_TEMPLATE_TEMPLATE_PARM:
-      pp_cxx_unqualified_id (pp, t);
+      pp_cxx_unqualified_id (this, t);
       break;
 
     case TYPENAME_TYPE:
-      pp_cxx_ws_string (pp, "typename");
-      pp_cxx_nested_name_specifier (pp, TYPE_CONTEXT (t));
-      pp_cxx_unqualified_id (pp, TYPE_NAME (t));
+      pp_cxx_ws_string (this, "typename");
+      pp_cxx_nested_name_specifier (this, TYPE_CONTEXT (t));
+      pp_cxx_unqualified_id (this, TYPE_NAME (t));
       break;
 
     default:
-      pp_c_type_specifier (pp, t);
+      c_pretty_printer::simple_type_specifier (t);
       break;
     }
 }
@@ -1300,7 +1300,7 @@
     case TYPE_DECL:
     case BOUND_TEMPLATE_TEMPLATE_PARM:
       pp_cxx_cv_qualifier_seq (pp, t);
-      pp_cxx_simple_type_specifier (pp, t);
+      pp->simple_type_specifier (t);
       break;
 
     case METHOD_TYPE:
@@ -2427,5 +2427,4 @@
 
   type_specifier_seq = (pp_fun) pp_cxx_type_specifier_seq;
   parameter_list = (pp_fun) pp_cxx_parameter_declaration_clause;
-  simple_type_specifier = (pp_fun) pp_cxx_simple_type_specifier;
 }
Index: cp/cxx-pretty-print.h
===================================================================
--- cp/cxx-pretty-print.h	(revision 202240)
+++ cp/cxx-pretty-print.h	(working copy)
@@ -46,6 +46,7 @@
   void statement (tree);
   void declaration (tree);
   void declaration_specifiers (tree);
+  void simple_type_specifier (tree);
   void function_specifier (tree);
   void declarator (tree);
   void direct_declarator (tree);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]