OSDN Git Service

2002-07-23 Gabriel Dos Reis <gdr@nerim.net>
[pf3gnuchains/gcc-fork.git] / gcc / pretty-print.h
1 /* Various declarations for language-independent pretty-print subroutines.
2    Copyright (C) 2002 Free Software Foundation, Inc.
3    Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
4
5 This file is part of GCC.
6
7 GCC is free software; you can redistribute it and/or modify it under
8 the terms of the GNU General Public License as published by the Free
9 Software Foundation; either version 2, or (at your option) any later
10 version.
11
12 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13 WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15 for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with GCC; see the file COPYING.  If not, write to the Free
19 Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20 02111-1307, USA.  */
21
22 #ifndef GCC_PRETTY_PRINT_H
23 #define GCC_PRETTY_PRINT_H
24
25 #include "diagnostic.h"
26
27 typedef struct pretty_print_info pretty_print_info;
28
29 /* The type of pretty-printer flags passed to clients.  */
30 typedef unsigned int pp_flags;
31
32 /* The type of pretty-print styles.  */
33 enum pp_style
34 {
35   pp_standard_c,
36   pp_gnu_c,
37   pp_standard_cxx,
38   pp_gnu_cxx
39 };
40
41 struct pretty_print_info
42 {
43   tree entity;
44   tree scope;
45   enum pp_style style;
46   pp_flags flags;
47   /* Where we print external representation of ENTITY.  */
48   output_buffer *buffer;
49   /* Client extenion hook.  */
50   void *x_data;
51
52   void (*print_declaration) (pretty_print_info *);
53   void (*print_statement) (pretty_print_info *);
54   void (*print_expression) (pretty_print_info *);
55 };
56
57
58 #endif /* GCC_PRETTY_PRINT_H */