summaryrefslogtreecommitdiffstats
path: root/gcc/pretty-print.h
blob: 6f4dd38abfce13264c4698241ec7bf327a29ddbf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/* Various declarations for language-independent pretty-print subroutines.
   Copyright (C) 2002 Free Software Foundation, Inc.
   Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2, or (at your option) any later
version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING.  If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.  */

#ifndef GCC_PRETTY_PRINT_H
#define GCC_PRETTY_PRINT_H

#include "diagnostic.h"

typedef struct pretty_print_info pretty_print_info;

/* The type of pretty-printer flags passed to clients.  */
typedef unsigned int pp_flags;

/* The type of pretty-print styles.  */
enum pp_style
{
  pp_standard_c,
  pp_gnu_c,
  pp_standard_cxx,
  pp_gnu_cxx
};

struct pretty_print_info
{
  tree entity;
  tree scope;
  enum pp_style style;
  pp_flags flags;
  /* Where we print external representation of ENTITY.  */
  output_buffer *buffer;
  /* Client extenion hook.  */
  void *x_data;

  void (*print_declaration) (pretty_print_info *);
  void (*print_statement) (pretty_print_info *);
  void (*print_expression) (pretty_print_info *);
};


#endif /* GCC_PRETTY_PRINT_H */
OpenPOWER on IntegriCloud