c-tree.h 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /* Definitions for C parsing and type checking.
  2. Copyright (C) 1987 Free Software Foundation, Inc.
  3. This file is part of GNU CC.
  4. GNU CC is distributed in the hope that it will be useful,
  5. but WITHOUT ANY WARRANTY. No author or distributor
  6. accepts responsibility to anyone for the consequences of using it
  7. or for whether it serves any particular purpose or works at all,
  8. unless he says so in writing. Refer to the GNU CC General Public
  9. License for full details.
  10. Everyone is granted permission to copy, modify and redistribute
  11. GNU CC, but only under the conditions described in the
  12. GNU CC General Public License. A copy of this license is
  13. supposed to have been given to you along with GNU CC so you
  14. can know your rights and responsibilities. It should be in a
  15. file named COPYING. Among other things, the copyright notice
  16. and this notice must be preserved on all copies. */
  17. /* Nonzero means reject anything that ANSI standard C forbids. */
  18. extern int pedantic;
  19. /* In a RECORD_TYPE or UNION_TYPE, nonzero if any component is read-only. */
  20. #define C_TYPE_FIELDS_READONLY(type) TYPE_SEP_UNIT (type)
  21. /* in typecheck.c */
  22. extern tree build_component_ref(), build_conditional_expr(), build_compound_expr();
  23. extern tree build_unary_op(), build_binary_op(), build_function_call();
  24. extern tree build_binary_op_nodefault ();
  25. extern tree build_indirect_ref(), build_array_ref(), build_c_cast();
  26. extern tree build_modify_expr();
  27. extern tree c_sizeof (), c_alignof ();
  28. extern void store_init_value ();
  29. extern tree digest_init ();
  30. extern tree c_expand_start_case ();
  31. extern tree default_conversion ();
  32. /* Given two integer or real types, return the type for their sum.
  33. Given two compatible ANSI C types, returns the merged type. */
  34. extern tree commontype ();
  35. /* in decl.c */
  36. extern tree build_label ();
  37. extern int start_function ();
  38. extern void finish_function ();
  39. extern void store_parm_decls ();
  40. extern tree get_parm_types ();
  41. extern void pushlevel(), poplevel();
  42. extern tree groktypename(), lookup_name();
  43. extern tree lookup_label(), define_label();
  44. extern tree implicitly_declare(), getdecls(), gettags ();
  45. extern tree start_decl();
  46. extern void finish_decl();
  47. extern tree start_struct(), finish_struct(), xref_tag();
  48. extern tree grokfield();
  49. extern tree start_enum(), finish_enum();
  50. extern tree build_enumerator();
  51. extern tree make_index_type ();
  52. extern tree double_type_node, long_double_type_node, float_type_node;
  53. extern tree char_type_node, unsigned_char_type_node, signed_char_type_node;
  54. extern tree short_integer_type_node, short_unsigned_type_node;
  55. extern tree long_integer_type_node, long_unsigned_type_node;
  56. extern tree unsigned_type_node;
  57. extern tree string_type_node, char_array_type_node, int_array_type_node;
  58. extern int current_function_returns_value;
  59. extern int current_function_returns_null;
  60. extern void yyerror();
  61. extern int lineno;
  62. extern tree ridpointers[];
  63. /* Points to the FUNCTION_DECL of the function whose body we are reading. */
  64. extern tree current_function_decl;