X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fpretty-print.h;h=c3c3e6dc4dd10b69004dfc9db7dc2d66578a1105;hb=c1dd686740946b2a63640d51cafaf66a58199820;hp=039058ee132c56167d85021b8cc82876c8115ae4;hpb=b8c23db329da6afaebde201237f25c583ba61885;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/pretty-print.h b/gcc/pretty-print.h index 039058ee132..c3c3e6dc4dd 100644 --- a/gcc/pretty-print.h +++ b/gcc/pretty-print.h @@ -1,5 +1,6 @@ /* Various declarations for language-independent pretty-print subroutines. - Copyright (C) 2002, 2003, 2004, 2007 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2007, 2008, 2009, 2010 + Free Software Foundation, Inc. Contributed by Gabriel Dos Reis This file is part of GCC. @@ -35,7 +36,7 @@ typedef struct va_list *args_ptr; int err_no; /* for %m */ location_t *locus; - tree *abstract_origin; + void **x_data; } text_info; /* How often diagnostics are prefixed by their locations: @@ -71,9 +72,9 @@ struct chunk_info /* The output buffer datatype. This is best seen as an abstract datatype whose fields should not be accessed directly by clients. */ -typedef struct +typedef struct { - /* Obstack where the text is built up. */ + /* Obstack where the text is built up. */ struct obstack formatted_obstack; /* Obstack containing a chunked representation of the format @@ -90,7 +91,7 @@ typedef struct /* Where to output formatted text. */ FILE *stream; - /* The amount of characters output so far. */ + /* The amount of characters output so far. */ int line_length; /* This must be large enough to hold any printed integer or @@ -114,7 +115,7 @@ typedef struct diagnostic_prefixing_rule_t rule; /* The ideal upper bound of number of characters per line, as suggested - by front-end. */ + by front-end. */ int line_cutoff; } pp_wrapping_mode_t; @@ -140,14 +141,18 @@ typedef bool (*printer_fn) (pretty_printer *, text_info *, const char *, /* TRUE if a newline character needs to be added before further formatting. */ -#define pp_needs_newline(PP) pp_base (PP)->need_newline +#define pp_needs_newline(PP) pp_base (PP)->need_newline -/* True if PRETTY-PTINTER is in line-wrapping mode. */ +/* True if PRETTY-PRINTER is in line-wrapping mode. */ #define pp_is_wrapping_line(PP) (pp_line_cutoff (PP) > 0) /* The amount of whitespace to be emitted when starting a new line. */ #define pp_indentation(PP) pp_base (PP)->indent_skip +/* True if identifiers are translated to the locale character set on + output. */ +#define pp_translate_identifiers(PP) pp_base (PP)->translate_identifiers + /* The data structure that contains the bare minimum required to do proper pretty-printing. Clients may derived from this structure and add additional fields they need. */ @@ -158,12 +163,12 @@ struct pretty_print_info /* The prefix for each new line. */ const char *prefix; - + /* Where to put whitespace around the entity being formatted. */ pp_padding padding; - + /* The real upper bound of number of characters per line, taking into - account the case of a very very looong prefix. */ + account the case of a very very looong prefix. */ int maximum_length; /* Indentation count. */ @@ -187,6 +192,10 @@ struct pretty_print_info /* Nonzero means one should emit a newline before outputting anything. */ bool need_newline; + + /* Nonzero means identifiers are translated to the locale character + set on output. */ + bool translate_identifiers; }; #define pp_set_line_maximum_length(PP, L) \ @@ -273,14 +282,9 @@ struct pretty_print_info pp_scalar (PP, HOST_WIDEST_INT_PRINT_DEC, (HOST_WIDEST_INT) I) #define pp_pointer(PP, P) pp_scalar (PP, "%p", P) -#define pp_identifier(PP, ID) pp_string (PP, ID) -#define pp_tree_identifier(PP, T) \ - pp_append_text(PP, IDENTIFIER_POINTER (T), \ - IDENTIFIER_POINTER (T) + IDENTIFIER_LENGTH (T)) - -#define pp_unsupported_tree(PP, T) \ - pp_verbatim (pp_base (PP), "#%qs not supported by %s#", \ - tree_code_name[(int) TREE_CODE (T)], __FUNCTION__) +#define pp_identifier(PP, ID) pp_string (PP, (pp_translate_identifiers (PP) \ + ? identifier_to_locale (ID) \ + : (ID))) #define pp_buffer(PP) pp_base (PP)->buffer @@ -334,4 +338,6 @@ pp_set_verbatim_wrapping_ (pretty_printer *pp) } #define pp_set_verbatim_wrapping(PP) pp_set_verbatim_wrapping_ (pp_base (PP)) +extern const char *identifier_to_locale (const char *); + #endif /* GCC_PRETTY_PRINT_H */