void pp_c_identifier (c_pretty_printer *pp, const char *id) { pp_c_maybe_whitespace (pp); pp_identifier (pp, id); pp_base (pp)->padding = pp_before; }
static inline void pp_cxx_nonconsecutive_character (cxx_pretty_printer *pp, int c) { const char *p = pp_last_position_in_text (pp); if (p != NULL && *p == c) pp_cxx_whitespace (pp); pp_character (pp, c); pp_base (pp)->padding = pp_none; }
void c_initialize_diagnostics (diagnostic_context *context) { pretty_printer *base = context->printer; c_pretty_printer *pp = XNEW (c_pretty_printer); memcpy (pp_base (pp), base, sizeof (pretty_printer)); pp_c_pretty_printer_init (pp); context->printer = (pretty_printer *) pp; /* It is safe to free this object because it was previously XNEW()'d. */ XDELETE (base); }
/* Construct a C++-aware pretty-printer for CONTEXT. It is assumed that CONTEXT->printer is an already constructed basic pretty_printer. */ static void cxx_initialize_diagnostics (diagnostic_context *context) { pretty_printer *base = context->printer; cxx_pretty_printer *pp = xmalloc (sizeof (cxx_pretty_printer)); memcpy (pp_base (pp), base, sizeof (pretty_printer)); pp_cxx_pretty_printer_init (pp); context->printer = (pretty_printer *) pp; /* It is safe to free this object because it was previously malloc()'d. */ free (base); }
static void pp_cxx_direct_declarator (cxx_pretty_printer *pp, tree t) { switch (TREE_CODE (t)) { case VAR_DECL: case PARM_DECL: case CONST_DECL: case FIELD_DECL: if (DECL_NAME (t)) { pp_cxx_space_for_pointer_operator (pp, TREE_TYPE (t)); pp_cxx_id_expression (pp, DECL_NAME (t)); } pp_cxx_abstract_declarator (pp, TREE_TYPE (t)); break; case FUNCTION_DECL: pp_cxx_space_for_pointer_operator (pp, TREE_TYPE (TREE_TYPE (t))); pp_cxx_id_expression (pp, t); pp_cxx_parameter_declaration_clause (pp, t); if (DECL_NONSTATIC_MEMBER_FUNCTION_P (t)) { pp_base (pp)->padding = pp_before; pp_cxx_cv_qualifier_seq (pp, pp_cxx_implicit_parameter_type (t)); } pp_cxx_exception_specification (pp, TREE_TYPE (t)); break; case TYPENAME_TYPE: case TEMPLATE_DECL: case TEMPLATE_TYPE_PARM: case TEMPLATE_PARM_INDEX: case TEMPLATE_TEMPLATE_PARM: break; default: pp_c_direct_declarator (pp_c_base (pp), t); break; } }
static void pp_cxx_direct_abstract_declarator (cxx_pretty_printer *pp, tree t) { switch (TREE_CODE (t)) { case REFERENCE_TYPE: pp_cxx_abstract_declarator (pp, t); break; case RECORD_TYPE: if (TYPE_PTRMEMFUNC_P (t)) pp_cxx_direct_abstract_declarator (pp, TYPE_PTRMEMFUNC_FN_TYPE (t)); break; case METHOD_TYPE: case FUNCTION_TYPE: pp_cxx_parameter_declaration_clause (pp, t); pp_cxx_direct_abstract_declarator (pp, TREE_TYPE (t)); if (TREE_CODE (t) == METHOD_TYPE) { pp_base (pp)->padding = pp_before; pp_cxx_cv_qualifier_seq (pp, TREE_TYPE (TREE_VALUE (TYPE_ARG_TYPES (t)))); } pp_cxx_exception_specification (pp, t); break; case TYPENAME_TYPE: case TEMPLATE_TYPE_PARM: case TEMPLATE_TEMPLATE_PARM: case BOUND_TEMPLATE_TEMPLATE_PARM: case UNBOUND_CLASS_TEMPLATE: break; default: pp_c_direct_abstract_declarator (pp_c_base (pp), t); break; } }
void pp_c_star (c_pretty_printer *pp) { pp_star (pp); pp_base (pp)->padding = pp_none; }
void pp_c_right_brace (c_pretty_printer *pp) { pp_right_brace (pp); pp_base (pp)->padding = pp_none; }
void pp_c_left_paren (c_pretty_printer *pp) { pp_left_paren (pp); pp_base (pp)->padding = pp_none; }
void pp_c_whitespace (c_pretty_printer *pp) { pp_space (pp); pp_base (pp)->padding = pp_none; }
void pp_c_exclamation (c_pretty_printer *pp) { pp_exclamation (pp); pp_base (pp)->padding = pp_none; }
void pp_c_complement (c_pretty_printer *pp) { pp_complement (pp); pp_base (pp)->padding = pp_none; }
void pp_c_semicolon (c_pretty_printer *pp) { pp_semicolon (pp); pp_base (pp)->padding = pp_none; }
void pp_c_arrow (c_pretty_printer *pp) { pp_arrow (pp); pp_base (pp)->padding = pp_none; }
/* APPLE LOCAL begin blocks */ void pp_c_caret (c_pretty_printer *pp) { pp_carret (pp); pp_base (pp)->padding = pp_none; }
void pp_c_ampersand (c_pretty_printer *pp) { pp_ampersand (pp); pp_base (pp)->padding = pp_none; }
void pp_c_left_bracket (c_pretty_printer *pp) { pp_left_bracket (pp); pp_base (pp)->padding = pp_none; }
void pp_cxx_colon_colon (cxx_pretty_printer *pp) { pp_colon_colon (pp); pp_base (pp)->padding = pp_none; }
void pp_cxx_separate_with (cxx_pretty_printer *pp, int c) { pp_separate_with (pp, c); pp_base (pp)->padding = pp_none; }