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]

PATCH to c-pretty-print.[ch]


This patchlet was applied to c-pretty-print.[ch]

Bootstrapped and tested on an i686-pc-linux

-- Gaby

2002-08-13  Gabriel Dos Reis  <gdr@nerim.net>

	* c-pretty-print.c: #include "c-tree.h".
	(pp_c_simple_type_specifier): Tweak.
	(pp_c_storage_class_specifier): New.
	(pp_c_function_specifier): Likewise.
	(pp_c_declaration_specifiers): Likewise.
	(pp_c_init_declarator): Likewise.
	(pp_c_declaration): Likewise.
	(pp_c_direct_declarator): Stub.
	(pp_c_declarator): Likewise.
	(pp_c_parameter_declaration): Likewise.

Index: c-pretty-print.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/c-pretty-print.c,v
retrieving revision 1.6
diff -p -r1.6 c-pretty-print.c
*** c-pretty-print.c	12 Aug 2002 18:34:51 -0000	1.6
--- c-pretty-print.c	13 Aug 2002 01:27:07 -0000
*************** Software Foundation, 59 Temple Place - S
*** 23,72 ****
  #include "system.h"
  #include "real.h"
  #include "c-pretty-print.h"
  
  /* literal  */
! static void pp_c_char              PARAMS ((c_pretty_print_info *, int));
! static void pp_c_character_literal PARAMS ((c_pretty_print_info *, tree));
! static void pp_c_bool_literal      PARAMS ((c_pretty_print_info *, tree));
! static bool pp_c_enumerator        PARAMS ((c_pretty_print_info *, tree));
! static void pp_c_integer_literal   PARAMS ((c_pretty_print_info *, tree));
! static void pp_c_real_literal      PARAMS ((c_pretty_print_info *, tree));
! static void pp_c_string_literal    PARAMS ((c_pretty_print_info *, tree));
  
! static void pp_c_primary_expression PARAMS ((c_pretty_print_info *, tree));
  
  /* postfix-expression  */
! static void pp_c_initializer_list PARAMS ((c_pretty_print_info *, tree));
  
! static void pp_c_unary_expression PARAMS ((c_pretty_print_info *, tree));
! static void pp_c_multiplicative_expression PARAMS ((c_pretty_print_info *,
! 						    tree));
! static void pp_c_additive_expression PARAMS ((c_pretty_print_info *, tree));
! static void pp_c_shift_expression PARAMS ((c_pretty_print_info *, tree));
! static void pp_c_relational_expression PARAMS ((c_pretty_print_info *, tree));
! static void pp_c_equality_expression PARAMS ((c_pretty_print_info *, tree));
! static void pp_c_and_expression PARAMS ((c_pretty_print_info *, tree));
! static void pp_c_exclusive_or_expression PARAMS ((c_pretty_print_info *,
  						  tree));
! static void pp_c_inclusive_or_expression PARAMS ((c_pretty_print_info *,
  						  tree));
! static void pp_c_logical_and_expression PARAMS ((c_pretty_print_info *, tree));
! static void pp_c_conditional_expression PARAMS ((c_pretty_print_info *, tree));
! static void pp_c_assignment_expression PARAMS ((c_pretty_print_info *, tree));
  
  /* declarations.  */
! static void pp_c_specifier_qualifier_list PARAMS ((c_pretty_print_info *, tree));
! static void pp_c_type_specifier PARAMS ((c_pretty_print_info *, tree));
! static void pp_c_abstract_declarator PARAMS ((c_pretty_print_info *, tree));
! static void pp_c_type_id PARAMS ((c_pretty_print_info *, tree));
  
  
  /* Declarations.  */
  
! /* Print out CV-qualifiers.  Take care of possible extension.  */
  void
  pp_c_cv_qualifier (ppi, cv)
!      c_pretty_print_info *ppi;
       int cv;
  {
    if (cv & TYPE_QUAL_CONST)
--- 23,79 ----
  #include "system.h"
  #include "real.h"
  #include "c-pretty-print.h"
+ #include "c-tree.h"
  
  /* literal  */
! static void pp_c_char              PARAMS ((c_pretty_printer, int));
! static void pp_c_character_literal PARAMS ((c_pretty_printer, tree));
! static void pp_c_bool_literal      PARAMS ((c_pretty_printer, tree));
! static bool pp_c_enumerator        PARAMS ((c_pretty_printer, tree));
! static void pp_c_integer_literal   PARAMS ((c_pretty_printer, tree));
! static void pp_c_real_literal      PARAMS ((c_pretty_printer, tree));
! static void pp_c_string_literal    PARAMS ((c_pretty_printer, tree));
  
! static void pp_c_primary_expression PARAMS ((c_pretty_printer, tree));
  
  /* postfix-expression  */
! static void pp_c_initializer_list        PARAMS ((c_pretty_printer, tree));
  
! static void pp_c_unary_expression        PARAMS ((c_pretty_printer, tree));
! static void pp_c_multiplicative_expression PARAMS ((c_pretty_printer, tree));
! static void pp_c_additive_expression     PARAMS ((c_pretty_printer, tree));
! static void pp_c_shift_expression        PARAMS ((c_pretty_printer, tree));
! static void pp_c_relational_expression   PARAMS ((c_pretty_printer, tree));
! static void pp_c_equality_expression     PARAMS ((c_pretty_printer, tree));
! static void pp_c_and_expression          PARAMS ((c_pretty_printer, tree));
! static void pp_c_exclusive_or_expression PARAMS ((c_pretty_printer,
  						  tree));
! static void pp_c_inclusive_or_expression PARAMS ((c_pretty_printer,
  						  tree));
! static void pp_c_logical_and_expression PARAMS ((c_pretty_printer, tree));
! static void pp_c_conditional_expression PARAMS ((c_pretty_printer, tree));
! static void pp_c_assignment_expression  PARAMS ((c_pretty_printer, tree));
  
  /* declarations.  */
! static void pp_c_declaration_specifiers   PARAMS ((c_pretty_printer, tree));
! static void pp_c_init_declarator          PARAMS ((c_pretty_printer, tree));
! static void pp_c_declarator               PARAMS ((c_pretty_printer, tree));
! static void pp_c_direct_declarator        PARAMS ((c_pretty_printer, tree));
! static void pp_c_abstract_declarator      PARAMS ((c_pretty_printer, tree));
! static void pp_c_specifier_qualifier_list PARAMS ((c_pretty_printer, tree));
! static void pp_c_simple_type_specifier    PARAMS ((c_pretty_printer, tree));
! static void pp_c_parameter_declaration    PARAMS ((c_pretty_printer, tree));
! static void pp_c_type_id                  PARAMS ((c_pretty_printer, tree));
! static void pp_c_storage_class_specifier  PARAMS ((c_pretty_printer, tree));
! static void pp_c_function_specifier       PARAMS ((c_pretty_printer, tree));
  
  
  /* Declarations.  */
  
! /* Print out CV-qualifiers.  Take care of possible extensions.  */
  void
  pp_c_cv_qualifier (ppi, cv)
!      c_pretty_printer ppi;
       int cv;
  {
    if (cv & TYPE_QUAL_CONST)
*************** pp_c_cv_qualifier (ppi, cv)
*** 78,92 ****
  }
  
  static void
! pp_c_type_specifier (ppi, t)
!      c_pretty_print_info *ppi;
       tree t;
  {
    const enum tree_code code = TREE_CODE (t);
    switch (code)
      {
      case ERROR_MARK:
!       pp_c_identifier (ppi, "<erroneous-type>");
        break;
  
  #if 0
--- 85,99 ----
  }
  
  static void
! pp_c_simple_type_specifier (ppi, t)
!      c_pretty_printer ppi;
       tree t;
  {
    const enum tree_code code = TREE_CODE (t);
    switch (code)
      {
      case ERROR_MARK:
!       pp_c_identifier (ppi, "<type-error>");
        break;
  
  #if 0
*************** pp_c_type_specifier (ppi, t)
*** 98,122 ****
      case IDENTIFIER_NODE:
        pp_c_tree_identifier (ppi, t);
        break;
! 
! #if 0
!     case INTEGER_TYPE:
!       if (TREE_UNSIGNED (t))
! 	pp_c_identifier (ppi, "unsigned");
!       /* fall through.  */
      case VOID_TYPE:
      case BOOLEAN_TYPE:
      case REAL_TYPE:
!       if (TYPE_NAME (t) && TYPE_IDENTIFIER (t))
! 	pp_c_tree_identifier (t, TYPE_IDENTIFIER (t));
!       else
! 	pp_c_identifier (ppi, "<anonymous-type>");
        break;
- #endif
        
      case COMPLEX_TYPE:
      case VECTOR_TYPE:
!       pp_c_type_specifier (ppi, TREE_TYPE (t));
        if (code == COMPLEX_TYPE)
  	pp_c_identifier (ppi, flag_isoc99 ? "_Complex" : "__complex__");
        else if (code == VECTOR_TYPE)
--- 105,122 ----
      case IDENTIFIER_NODE:
        pp_c_tree_identifier (ppi, t);
        break;
!       
      case VOID_TYPE:
      case BOOLEAN_TYPE:
+     case CHAR_TYPE:
+     case INTEGER_TYPE:
      case REAL_TYPE:
!       pp_c_tree_identifier (ppi, DECL_NAME (t));
        break;
        
      case COMPLEX_TYPE:
      case VECTOR_TYPE:
!       pp_c_simple_type_specifier (ppi, TYPE_MAIN_VARIANT (TREE_TYPE (t)));
        if (code == COMPLEX_TYPE)
  	pp_c_identifier (ppi, flag_isoc99 ? "_Complex" : "__complex__");
        else if (code == VECTOR_TYPE)
*************** pp_c_type_specifier (ppi, t)
*** 124,130 ****
        break;
  
      case TYPE_DECL:
!       pp_c_tree_identifier (ppi, DECL_NAME (t));
        break;
  
      case UNION_TYPE:
--- 124,133 ----
        break;
  
      case TYPE_DECL:
!       if (DECL_NAME (t))
! 	pp_c_tree_identifier (ppi, DECL_NAME (t));
!       else
! 	pp_c_identifier (ppi, "<typedef-error>");
        break;
  
      case UNION_TYPE:
*************** pp_c_type_specifier (ppi, t)
*** 136,141 ****
--- 139,146 ----
  	pp_c_identifier (ppi, "struct");
        else if (code == ENUMERAL_TYPE)
  	pp_c_identifier (ppi, "enum");
+       else
+ 	pp_c_identifier (ppi, "<tag-error>");
        
        if (TYPE_NAME (t))
  	pp_c_tree_identifier (ppi, TYPE_NAME (t));
*************** pp_c_type_specifier (ppi, t)
*** 143,154 ****
  	pp_c_identifier (ppi, "<anonymous>");
        break;
  
-     case POINTER_TYPE:
-     case ARRAY_TYPE:
-       {
-       }
-       break;
-       
      default:
        pp_unsupported_tree (ppi, t);
      }
--- 148,153 ----
*************** pp_c_type_specifier (ppi, t)
*** 156,171 ****
  
  static inline void
  pp_c_specifier_qualifier_list (ppi, t)
!      c_pretty_print_info *ppi;
       tree t;
  {
!   pp_c_type_specifier (ppi, t);
    pp_c_cv_qualifier (ppi, TYPE_QUALS (t));
  }
  
  static void
  pp_c_abstract_declarator (ppi, t)
!      c_pretty_print_info *ppi;
       tree t;
  {
    pp_unsupported_tree (ppi, t);
--- 155,170 ----
  
  static inline void
  pp_c_specifier_qualifier_list (ppi, t)
!      c_pretty_printer ppi;
       tree t;
  {
!   pp_c_simple_type_specifier (ppi, TYPE_MAIN_VARIANT (TREE_TYPE (t)));
    pp_c_cv_qualifier (ppi, TYPE_QUALS (t));
  }
  
  static void
  pp_c_abstract_declarator (ppi, t)
!      c_pretty_printer ppi;
       tree t;
  {
    pp_unsupported_tree (ppi, t);
*************** pp_c_abstract_declarator (ppi, t)
*** 174,193 ****
  
  static inline void
  pp_c_type_id (ppi, t)
!      c_pretty_print_info *ppi;
       tree t;
  {
    pp_c_specifier_qualifier_list (ppi, t);
    pp_c_abstract_declarator (ppi, t);
  }
  
  
  /* Expressions.  */
  
  /* Print out a c-char.  */
  static void
  pp_c_char (ppi, c)
!      c_pretty_print_info *ppi;
       int c;
  {
    switch (c)
--- 173,271 ----
  
  static inline void
  pp_c_type_id (ppi, t)
!      c_pretty_printer ppi;
       tree t;
  {
    pp_c_specifier_qualifier_list (ppi, t);
    pp_c_abstract_declarator (ppi, t);
  }
  
+ static inline void
+ pp_c_storage_class_specifier (pp, t)
+      c_pretty_printer pp;
+      tree t;
+ {
+   if (TREE_CODE (t) == TYPE_DECL)
+     pp_c_identifier (pp, "typedef");
+   else if (DECL_REGISTER (t))
+     pp_c_identifier (pp, "register");
+ }
+ 
+ static inline void
+ pp_c_function_specifier (pp, t)
+      c_pretty_printer pp;
+      tree t;
+ {
+   if (TREE_CODE (t) == FUNCTION_DECL && DECL_DECLARED_INLINE_P (t))
+     pp_c_identifier (pp, "inline");
+ }
+ 
+ static inline void
+ pp_c_declaration_specifiers (pp, t)
+      c_pretty_printer pp;
+      tree t;
+ {
+   pp_c_storage_class_specifier (pp, t);
+   pp_c_function_specifier (pp, t);
+   pp_type_specifier (pp, TYPE_MAIN_VARIANT (TREE_TYPE (t)));
+   pp_c_cv_qualifier (pp, TYPE_QUALS (TREE_TYPE (t)));
+ }
+ 
+ static inline void
+ pp_c_direct_declarator (pp, t)
+      c_pretty_printer pp;
+      tree t;
+ {
+   pp_unsupported_tree (pp, t);
+ }
+ 
+ static inline void
+ pp_c_declarator (pp, t)
+      c_pretty_printer pp;
+      tree t;
+ {
+   pp_unsupported_tree (pp, t);
+ }
+ 
+ static inline void
+ pp_c_init_declarator (pp, t)
+      c_pretty_printer pp;
+      tree t;
+ {
+   pp_declarator (pp, t);
+   if (DECL_INITIAL (t))
+     {
+       pp_whitespace (pp);
+       pp_equal (pp);
+       pp_whitespace (pp);
+       pp_c_initializer (pp, DECL_INITIAL (t));
+     }
+ }
+ 
+ void
+ pp_c_declaration (pp, t)
+      c_pretty_printer pp;
+      tree t;
+ {
+   pp_declaration_specifiers (pp, t);
+   pp_c_init_declarator (pp, t);
+ }
+ 
+ static void
+ pp_c_parameter_declaration (pp, t)
+      c_pretty_printer pp;
+      tree t;
+ {
+   pp_unsupported_tree (pp, t);
+ }
+ 
  
  /* Expressions.  */
  
  /* Print out a c-char.  */
  static void
  pp_c_char (ppi, c)
!      c_pretty_printer ppi;
       int c;
  {
    switch (c)
*************** pp_c_char (ppi, c)
*** 234,240 ****
  /* Print out a STRING literal.  */
  static inline void
  pp_c_string_literal (ppi, s)
!      c_pretty_print_info *ppi;
       tree s;
  {
    const char *p = TREE_STRING_POINTER (s);
--- 312,318 ----
  /* Print out a STRING literal.  */
  static inline void
  pp_c_string_literal (ppi, s)
!      c_pretty_printer ppi;
       tree s;
  {
    const char *p = TREE_STRING_POINTER (s);
*************** pp_c_string_literal (ppi, s)
*** 249,255 ****
  /* Print out a CHARACTER literal.  */
  static inline void
  pp_c_character_literal (ppi, c)
!      c_pretty_print_info *ppi;
       tree c;
  {
    pp_quote (ppi);
--- 327,333 ----
  /* Print out a CHARACTER literal.  */
  static inline void
  pp_c_character_literal (ppi, c)
!      c_pretty_printer ppi;
       tree c;
  {
    pp_quote (ppi);
*************** pp_c_character_literal (ppi, c)
*** 260,266 ****
  /* Print out a BOOLEAN literal.  */
  static inline void
  pp_c_bool_literal (ppi, b)
!      c_pretty_print_info *ppi;
       tree b;
  {
    if (b == boolean_false_node || integer_zerop (b))
--- 338,344 ----
  /* Print out a BOOLEAN literal.  */
  static inline void
  pp_c_bool_literal (ppi, b)
!      c_pretty_printer ppi;
       tree b;
  {
    if (b == boolean_false_node || integer_zerop (b))
*************** pp_c_bool_literal (ppi, b)
*** 291,297 ****
     is then printed by pp_c_integer_literal.  */
  static bool
  pp_c_enumerator (ppi, e)
!      c_pretty_print_info *ppi;
       tree e;
  {
    tree type = TREE_TYPE (e);
--- 369,375 ----
     is then printed by pp_c_integer_literal.  */
  static bool
  pp_c_enumerator (ppi, e)
!      c_pretty_printer ppi;
       tree e;
  {
    tree type = TREE_TYPE (e);
*************** pp_c_enumerator (ppi, e)
*** 320,326 ****
  /* Print out an INTEGER constant value.  */
  static void
  pp_c_integer_literal (ppi, i)
!      c_pretty_print_info *ppi;
       tree i;
  {
    tree type = TREE_TYPE (i);
--- 398,404 ----
  /* Print out an INTEGER constant value.  */
  static void
  pp_c_integer_literal (ppi, i)
!      c_pretty_printer ppi;
       tree i;
  {
    tree type = TREE_TYPE (i);
*************** pp_c_integer_literal (ppi, i)
*** 359,365 ****
  /* Print out a REAL value. */
  static inline void
  pp_c_real_literal (ppi, r)
!      c_pretty_print_info *ppi;
       tree r;
  {
    REAL_VALUE_TO_DECIMAL (TREE_REAL_CST (r), "%.16g",
--- 437,443 ----
  /* Print out a REAL value. */
  static inline void
  pp_c_real_literal (ppi, r)
!      c_pretty_printer ppi;
       tree r;
  {
    REAL_VALUE_TO_DECIMAL (TREE_REAL_CST (r), "%.16g",
*************** pp_c_real_literal (ppi, r)
*** 370,376 ****
  
  void
  pp_c_literal (ppi, e)
!      c_pretty_print_info *ppi;
       tree e;
  {
    switch (TREE_CODE (e))
--- 448,454 ----
  
  void
  pp_c_literal (ppi, e)
!      c_pretty_printer ppi;
       tree e;
  {
    switch (TREE_CODE (e))
*************** pp_c_literal (ppi, e)
*** 396,402 ****
  /* Pretty-print a C primary-expression.  */
  static void
  pp_c_primary_expression (ppi, e)
!      c_pretty_print_info *ppi;
       tree e;
  {
    switch (TREE_CODE (e))
--- 474,480 ----
  /* Pretty-print a C primary-expression.  */
  static void
  pp_c_primary_expression (ppi, e)
!      c_pretty_printer ppi;
       tree e;
  {
    switch (TREE_CODE (e))
*************** pp_c_primary_expression (ppi, e)
*** 461,467 ****
  /* Print out a C initializer -- also support C compound-literals.  */
  void
  pp_c_initializer (ppi, e)
!      c_pretty_print_info *ppi;
       tree e;
  {
    if (TREE_CODE (e) == CONSTRUCTOR)
--- 539,545 ----
  /* Print out a C initializer -- also support C compound-literals.  */
  void
  pp_c_initializer (ppi, e)
!      c_pretty_printer ppi;
       tree e;
  {
    if (TREE_CODE (e) == CONSTRUCTOR)
*************** pp_c_initializer (ppi, e)
*** 482,488 ****
  
  static void
  pp_c_initializer_list (ppi, e)
!      c_pretty_print_info *ppi;
       tree e;
  {
    tree type = TREE_TYPE (e);
--- 560,566 ----
  
  static void
  pp_c_initializer_list (ppi, e)
!      c_pretty_printer ppi;
       tree e;
  {
    tree type = TREE_TYPE (e);
*************** pp_c_initializer_list (ppi, e)
*** 519,525 ****
  
  void
  pp_c_postfix_expression (ppi, e)
!      c_pretty_print_info *ppi;
       tree e;
  {
    enum tree_code code = TREE_CODE (e);
--- 597,603 ----
  
  void
  pp_c_postfix_expression (ppi, e)
!      c_pretty_printer ppi;
       tree e;
  {
    enum tree_code code = TREE_CODE (e);
*************** pp_c_postfix_expression (ppi, e)
*** 651,657 ****
  /* Print out an expression-list; E is expected to be a TREE_LIST  */
  void
  pp_c_expression_list (ppi, e)
!      c_pretty_print_info *ppi;
       tree e;
  {
    for (; e != NULL_TREE; e = TREE_CHAIN (e))
--- 729,735 ----
  /* Print out an expression-list; E is expected to be a TREE_LIST  */
  void
  pp_c_expression_list (ppi, e)
!      c_pretty_printer ppi;
       tree e;
  {
    for (; e != NULL_TREE; e = TREE_CHAIN (e))
*************** pp_c_expression_list (ppi, e)
*** 664,670 ****
  
  static void
  pp_c_unary_expression (ppi, e)
!      c_pretty_print_info *ppi;
       tree e;
  {
    enum tree_code code = TREE_CODE (e);
--- 742,748 ----
  
  static void
  pp_c_unary_expression (ppi, e)
!      c_pretty_printer ppi;
       tree e;
  {
    enum tree_code code = TREE_CODE (e);
*************** pp_c_unary_expression (ppi, e)
*** 725,731 ****
  
  void
  pp_c_cast_expression (ppi, e)
!      c_pretty_print_info *ppi;
       tree e;
  {
    if (TREE_CODE (e) == CONVERT_EXPR || TREE_CODE (e) == FLOAT_EXPR)
--- 803,809 ----
  
  void
  pp_c_cast_expression (ppi, e)
!      c_pretty_printer ppi;
       tree e;
  {
    if (TREE_CODE (e) == CONVERT_EXPR || TREE_CODE (e) == FLOAT_EXPR)
*************** pp_c_cast_expression (ppi, e)
*** 741,747 ****
  
  static void
  pp_c_multiplicative_expression (ppi, e)
!      c_pretty_print_info *ppi;
       tree e;
  {
    enum tree_code code = TREE_CODE (e);
--- 819,825 ----
  
  static void
  pp_c_multiplicative_expression (ppi, e)
!      c_pretty_printer ppi;
       tree e;
  {
    enum tree_code code = TREE_CODE (e);
*************** pp_c_multiplicative_expression (ppi, e)
*** 770,776 ****
  
  static inline void
  pp_c_additive_expression (ppi, e)
!      c_pretty_print_info *ppi;
       tree e;
  {
    enum tree_code code = TREE_CODE (e);
--- 848,854 ----
  
  static inline void
  pp_c_additive_expression (ppi, e)
!      c_pretty_printer ppi;
       tree e;
  {
    enum tree_code code = TREE_CODE (e);
*************** pp_c_additive_expression (ppi, e)
*** 796,802 ****
  
  static inline void
  pp_c_shift_expression (ppi, e)
!      c_pretty_print_info *ppi;
       tree e;
  {
    enum tree_code code = TREE_CODE (e);
--- 874,880 ----
  
  static inline void
  pp_c_shift_expression (ppi, e)
!      c_pretty_printer ppi;
       tree e;
  {
    enum tree_code code = TREE_CODE (e);
*************** pp_c_shift_expression (ppi, e)
*** 818,824 ****
  
  static void
  pp_c_relational_expression (ppi, e)
!      c_pretty_print_info *ppi;
       tree e;
  {
    enum tree_code code = TREE_CODE (e);
--- 896,902 ----
  
  static void
  pp_c_relational_expression (ppi, e)
!      c_pretty_printer ppi;
       tree e;
  {
    enum tree_code code = TREE_CODE (e);
*************** pp_c_relational_expression (ppi, e)
*** 850,856 ****
  
  static inline void
  pp_c_equality_expression (ppi, e)
!      c_pretty_print_info *ppi;
       tree e;
  {
    enum tree_code code = TREE_CODE (e);
--- 928,934 ----
  
  static inline void
  pp_c_equality_expression (ppi, e)
!      c_pretty_printer ppi;
       tree e;
  {
    enum tree_code code = TREE_CODE (e);
*************** pp_c_equality_expression (ppi, e)
*** 873,879 ****
  
  static inline void
  pp_c_and_expression (ppi, e)
!      c_pretty_print_info *ppi;
       tree e;
  {
    if (TREE_CODE (e) == BIT_AND_EXPR)
--- 951,957 ----
  
  static inline void
  pp_c_and_expression (ppi, e)
!      c_pretty_printer ppi;
       tree e;
  {
    if (TREE_CODE (e) == BIT_AND_EXPR)
*************** pp_c_and_expression (ppi, e)
*** 890,896 ****
  
  static inline void
  pp_c_exclusive_or_expression (ppi, e)
!      c_pretty_print_info *ppi;
       tree e;
  {
    if (TREE_CODE (e) == BIT_XOR_EXPR)
--- 968,974 ----
  
  static inline void
  pp_c_exclusive_or_expression (ppi, e)
!      c_pretty_printer ppi;
       tree e;
  {
    if (TREE_CODE (e) == BIT_XOR_EXPR)
*************** pp_c_exclusive_or_expression (ppi, e)
*** 907,913 ****
  
  static inline void
  pp_c_inclusive_or_expression (ppi, e)
!      c_pretty_print_info *ppi;
       tree e;
  {
    if (TREE_CODE (e) == BIT_IOR_EXPR)
--- 985,991 ----
  
  static inline void
  pp_c_inclusive_or_expression (ppi, e)
!      c_pretty_printer ppi;
       tree e;
  {
    if (TREE_CODE (e) == BIT_IOR_EXPR)
*************** pp_c_inclusive_or_expression (ppi, e)
*** 924,930 ****
  
  static inline void
  pp_c_logical_and_expression (ppi, e)
!      c_pretty_print_info *ppi;
       tree e;
  {
    if (TREE_CODE (e) == TRUTH_ANDIF_EXPR)
--- 1002,1008 ----
  
  static inline void
  pp_c_logical_and_expression (ppi, e)
!      c_pretty_printer ppi;
       tree e;
  {
    if (TREE_CODE (e) == TRUTH_ANDIF_EXPR)
*************** pp_c_logical_and_expression (ppi, e)
*** 941,947 ****
  
  void
  pp_c_logical_or_expression (ppi, e)
!      c_pretty_print_info *ppi;
       tree e;
  {
    if (TREE_CODE (e) == TRUTH_ORIF_EXPR)
--- 1019,1025 ----
  
  void
  pp_c_logical_or_expression (ppi, e)
!      c_pretty_printer ppi;
       tree e;
  {
    if (TREE_CODE (e) == TRUTH_ORIF_EXPR)
*************** pp_c_logical_or_expression (ppi, e)
*** 958,964 ****
  
  static void
  pp_c_conditional_expression (ppi, e)
!      c_pretty_print_info *ppi;
       tree e;
  {
    if (TREE_CODE (e) == COND_EXPR)
--- 1036,1042 ----
  
  static void
  pp_c_conditional_expression (ppi, e)
!      c_pretty_printer ppi;
       tree e;
  {
    if (TREE_CODE (e) == COND_EXPR)
*************** pp_c_conditional_expression (ppi, e)
*** 981,987 ****
  /* Pretty-print a C assignment-expression.  */
  static void
  pp_c_assignment_expression (ppi, e)
!      c_pretty_print_info *ppi;
       tree e;
  {
    if (TREE_CODE (e) == MODIFY_EXPR || TREE_CODE (e) == INIT_EXPR)
--- 1059,1065 ----
  /* Pretty-print a C assignment-expression.  */
  static void
  pp_c_assignment_expression (ppi, e)
!      c_pretty_printer ppi;
       tree e;
  {
    if (TREE_CODE (e) == MODIFY_EXPR || TREE_CODE (e) == INIT_EXPR)
*************** pp_c_assignment_expression (ppi, e)
*** 999,1005 ****
  /* Pretty-print an expression.  */
  void
  pp_c_expression (ppi, e)
!      c_pretty_print_info *ppi;
       tree e;
  {
    switch (TREE_CODE (e))
--- 1077,1083 ----
  /* Pretty-print an expression.  */
  void
  pp_c_expression (ppi, e)
!      c_pretty_printer ppi;
       tree e;
  {
    switch (TREE_CODE (e))
*************** pp_c_expression (ppi, e)
*** 1136,1142 ****
  /* Statements.  */
  void
  pp_c_statement (ppi, stmt)
!      c_pretty_print_info *ppi;
       tree stmt;
  {
    const enum tree_code code = TREE_CODE (stmt);
--- 1214,1220 ----
  /* Statements.  */
  void
  pp_c_statement (ppi, stmt)
!      c_pretty_printer ppi;
       tree stmt;
  {
    const enum tree_code code = TREE_CODE (stmt);
*************** pp_c_statement (ppi, stmt)
*** 1358,1360 ****
--- 1436,1464 ----
  
  }
  
+ 
+ /* Initialize the PRETTY-PRINTER for handling C codes.  */
+ void
+ pp_c_pretty_printer_init (pp)
+      c_pretty_printer pp;
+ {
+   pp->offset_list               = 0;
+ 
+   pp->declaration               = pp_c_declaration;
+   pp->declaration_specifiers    = pp_c_declaration_specifiers;
+   pp->type_specifier            = pp_c_simple_type_specifier;
+   pp->declarator                = pp_c_declarator;
+   pp->direct_declarator         = pp_c_direct_declarator;
+   pp->parameter_declaration     = pp_c_parameter_declaration;
+   pp->type_id                   = pp_c_type_id;
+ 
+   pp->statement                 = pp_c_statement;
+ 
+   pp->primary_expression        = pp_c_primary_expression;
+   pp->postfix_expression        = pp_c_postfix_expression;
+   pp->unary_expression          = pp_c_unary_expression;
+   pp->initializer               = pp_c_initializer;
+   pp->multiplicative_expression = pp_c_multiplicative_expression;
+   pp->conditional_expression    = pp_c_conditional_expression;
+   pp->assignment_expression     = pp_c_assignment_expression;
+ }
Index: c-pretty-print.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/c-pretty-print.h,v
retrieving revision 1.3
diff -p -r1.3 c-pretty-print.h
*** c-pretty-print.h	30 Jul 2002 13:48:06 -0000	1.3
--- c-pretty-print.h	13 Aug 2002 01:27:08 -0000
*************** Software Foundation, 59 Temple Place - S
*** 26,35 ****
  
  /* The data type used to bundle information necessary for pretty-printing
     a C or C++ entity.  */
! typedef struct c_pretty_print_info c_pretty_print_info;
  
  /* The type of a C pretty-printer 'member' function.  */
! typedef void (*c_pretty_print_fn) PARAMS ((c_pretty_print_info *, tree));
  
  struct c_pretty_print_info
  {
--- 26,35 ----
  
  /* The data type used to bundle information necessary for pretty-printing
     a C or C++ entity.  */
! typedef struct c_pretty_print_info *c_pretty_printer;
  
  /* The type of a C pretty-printer 'member' function.  */
! typedef void (*c_pretty_print_fn) PARAMS ((c_pretty_printer, tree));
  
  struct c_pretty_print_info
  {
*************** struct c_pretty_print_info
*** 59,65 ****
    c_pretty_print_fn assignment_expression;
  };
  
- #define pp_buffer(PPI) (PPI)->base.buffer
  #define pp_c_left_paren(PPI)             \
     do {                                  \
       pp_left_paren (PPI);                \
--- 59,64 ----
*************** struct c_pretty_print_info
*** 100,105 ****
--- 99,105 ----
  #define pp_c_tree_identifier(PPI, ID)    \
     pp_c_identifier (PPI, IDENTIFIER_POINTER (ID))
  
+ #define pp_buffer(PPI) (PPI)->base.buffer
  
  #define pp_declaration(PPI, T)            (*(PPI)->declaration) (PPI, T)
  #define pp_declaration_specifiers(PPI, D) \
*************** struct c_pretty_print_info
*** 125,143 ****
     (*(PPI)->assignment_expression) (PPI, E)
  
  
  /* Declarations.  */
! void pp_c_cv_qualifier PARAMS ((c_pretty_print_info *, int));
! void pp_c_parameter_declaration_clause PARAMS ((c_pretty_print_info *, tree));
! void pp_c_declaration PARAMS ((c_pretty_print_info *, tree));
! void pp_c_statement PARAMS ((c_pretty_print_info *, tree));
! void pp_c_expression PARAMS ((c_pretty_print_info *, tree));
  /* Statements.  */
! void pp_c_statement PARAMS ((c_pretty_print_info *, tree));
  /* Expressions.  */
! void pp_c_expression PARAMS ((c_pretty_print_info *, tree));
! void pp_c_logical_or_expression PARAMS ((c_pretty_print_info *, tree));
! void pp_c_expression_list PARAMS ((c_pretty_print_info *, tree));
! void pp_c_cast_expression PARAMS ((c_pretty_print_info *, tree));
! void pp_c_postfix_expression PARAMS ((c_pretty_print_info *, tree));
! void pp_c_initializer PARAMS ((c_pretty_print_info *, tree));
! void pp_c_literal PARAMS ((c_pretty_print_info *, tree));
--- 125,145 ----
     (*(PPI)->assignment_expression) (PPI, E)
  
  
+ extern void pp_c_pretty_printer_init   PARAMS ((c_pretty_printer));
+ 
  /* Declarations.  */
! void pp_c_cv_qualifier                 PARAMS ((c_pretty_printer, int));
! void pp_c_parameter_declaration_clause PARAMS ((c_pretty_printer, tree));
! void pp_c_declaration                  PARAMS ((c_pretty_printer, tree));
! void pp_c_statement                    PARAMS ((c_pretty_printer, tree));
! void pp_c_expression                   PARAMS ((c_pretty_printer, tree));
  /* Statements.  */
! void pp_c_statement                    PARAMS ((c_pretty_printer, tree));
  /* Expressions.  */
! void pp_c_expression                   PARAMS ((c_pretty_printer, tree));
! void pp_c_logical_or_expression        PARAMS ((c_pretty_printer, tree));
! void pp_c_expression_list              PARAMS ((c_pretty_printer, tree));
! void pp_c_cast_expression              PARAMS ((c_pretty_printer, tree));
! void pp_c_postfix_expression           PARAMS ((c_pretty_printer, tree));
! void pp_c_initializer                  PARAMS ((c_pretty_printer, tree));
! void pp_c_literal                      PARAMS ((c_pretty_printer, tree));


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