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