]>
Commit | Line | Data |
---|---|---|
d7e7759d BC |
1 | /* This file contains the definitions and documentation for the |
2 | additional tree codes used in the GNU C++ compiler (see tree.def | |
3 | for the standard codes). | |
4 | Copyright (C) 1987, 1988, 1990, 1993, 1997, 1998, | |
e536cfdf | 5 | 1999, 2000, 2001 Free Software Foundation, Inc. |
d7e7759d BC |
6 | Written by Benjamin Chelf <chelf@codesourcery.com> |
7 | ||
1322177d | 8 | This file is part of GCC. |
d7e7759d | 9 | |
1322177d LB |
10 | GCC is free software; you can redistribute it and/or modify it under |
11 | the terms of the GNU General Public License as published by the Free | |
12 | Software Foundation; either version 2, or (at your option) any later | |
13 | version. | |
d7e7759d | 14 | |
1322177d LB |
15 | GCC is distributed in the hope that it will be useful, but WITHOUT ANY |
16 | WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
17 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
18 | for more details. | |
d7e7759d BC |
19 | |
20 | You should have received a copy of the GNU General Public License | |
1322177d LB |
21 | along with GCC; see the file COPYING. If not, write to the Free |
22 | Software Foundation, 59 Temple Place - Suite 330, Boston, MA | |
23 | 02111-1307, USA. */ | |
d7e7759d | 24 | |
684d9f3b | 25 | /* Tree nodes relevant to both C and C++. These were originally in |
991b6592 | 26 | cp-tree.def in the cp subdir. */ |
d7e7759d | 27 | |
d7e7759d BC |
28 | DEFTREECODE (SIZEOF_EXPR, "sizeof_expr", '1', 1) |
29 | DEFTREECODE (ARROW_EXPR, "arrow_expr", 'e', 1) | |
30 | DEFTREECODE (ALIGNOF_EXPR, "alignof_expr", '1', 1) | |
31 | ||
35b1567d | 32 | /* Used to represent an expression statement. Use `EXPR_STMT_EXPR' to |
991b6592 | 33 | obtain the expression. */ |
d7e7759d | 34 | DEFTREECODE (EXPR_STMT, "expr_stmt", 'e', 1) |
35b1567d BC |
35 | |
36 | /* Used to represent a brace-enclosed block. The operand is | |
991b6592 | 37 | COMPOUND_BODY. */ |
d7e7759d | 38 | DEFTREECODE (COMPOUND_STMT, "compound_stmt", 'e', 1) |
35b1567d BC |
39 | |
40 | /* Used to represent a local declaration. The operand is | |
991b6592 | 41 | DECL_STMT_DECL. */ |
d7e7759d | 42 | DEFTREECODE (DECL_STMT, "decl_stmt", 'e', 1) |
35b1567d BC |
43 | |
44 | /* Represents an 'if' statement. The operands are IF_COND, | |
991b6592 | 45 | THEN_CLAUSE, and ELSE_CLAUSE, respectively. */ |
d7e7759d | 46 | DEFTREECODE (IF_STMT, "if_stmt", 'e', 3) |
35b1567d BC |
47 | |
48 | /* Used to represent a `for' statement. The operands are | |
991b6592 | 49 | FOR_INIT_STMT, FOR_COND, FOR_EXPR, and FOR_BODY, respectively. */ |
d7e7759d | 50 | DEFTREECODE (FOR_STMT, "for_stmt", 'e', 4) |
35b1567d BC |
51 | |
52 | /* Used to represent a 'while' statement. The operands are WHILE_COND | |
991b6592 | 53 | and WHILE_BODY, respectively. */ |
d7e7759d | 54 | DEFTREECODE (WHILE_STMT, "while_stmt", 'e', 2) |
35b1567d BC |
55 | |
56 | /* Used to represent a 'do' statement. The operands are DO_BODY and | |
991b6592 | 57 | DO_COND, respectively. */ |
d7e7759d | 58 | DEFTREECODE (DO_STMT, "do_stmt", 'e', 2) |
35b1567d BC |
59 | |
60 | /* Used to represent a 'return' statement. The operand is | |
991b6592 | 61 | RETURN_STMT_EXPR. */ |
d7e7759d | 62 | DEFTREECODE (RETURN_STMT, "return_stmt", 'e', 1) |
35b1567d | 63 | |
991b6592 | 64 | /* Used to represent a 'break' statement. */ |
d7e7759d | 65 | DEFTREECODE (BREAK_STMT, "break_stmt", 'e', 0) |
35b1567d | 66 | |
991b6592 | 67 | /* Used to represent a 'continue' statement. */ |
d7e7759d | 68 | DEFTREECODE (CONTINUE_STMT, "continue_stmt", 'e', 0) |
35b1567d BC |
69 | |
70 | /* Used to represent a 'switch' statement. The operands are | |
991b6592 | 71 | SWITCH_COND, SWITCH_BODY and SWITCH_TYPE, respectively. */ |
6f9fdf4d | 72 | DEFTREECODE (SWITCH_STMT, "switch_stmt", 'e', 3) |
35b1567d | 73 | |
991b6592 | 74 | /* Used to represent a 'goto' statement. The operand is GOTO_DESTINATION. */ |
d7e7759d | 75 | DEFTREECODE (GOTO_STMT, "goto_stmt", 'e', 1) |
35b1567d BC |
76 | |
77 | /* Used to represent a 'label' statement. The operand is a LABEL_DECL | |
991b6592 | 78 | and can be obtained through the macro LABEL_STMT_LABEL. */ |
d7e7759d | 79 | DEFTREECODE (LABEL_STMT, "label_stmt", 'e', 1) |
35b1567d | 80 | |
991b6592 | 81 | /* Used to represent an inline assembly statement. */ |
d7e7759d BC |
82 | DEFTREECODE (ASM_STMT, "asm_stmt", 'e', 5) |
83 | ||
84 | /* A SCOPE_STMT marks the beginning or end of a scope. If | |
85 | SCOPE_BEGIN_P holds, then this is the start of a scope. If | |
86 | SCOPE_END_P holds, then this is the end of a scope. If | |
87 | SCOPE_NULLIFIED_P holds then there turned out to be no variables in | |
88 | this scope. The SCOPE_STMT_BLOCK is the BLOCK containing the | |
89 | variables declared in this scope. */ | |
90 | DEFTREECODE (SCOPE_STMT, "scope_stmt", 'e', 1) | |
35b1567d | 91 | |
de097a2d JM |
92 | /* A FILE_STMT marks the spot where a function changes files. It has no |
93 | other semantics. FILE_STMT_FILENAME gives the name. */ | |
94 | DEFTREECODE (FILE_STMT, "file_stmt", 'e', 1) | |
95 | ||
35b1567d BC |
96 | /* Used to represent a CASE_LABEL. The operands are CASE_LOW and |
97 | CASE_HIGH, respectively. If CASE_LOW is NULL_TREE, the label is a | |
98 | 'default' label. If CASE_HIGH is NULL_TREE, the label is a normal case | |
56cb9733 MM |
99 | label. The CASE_LABEL_DECL is a LABEL_DECL for this node. */ |
100 | DEFTREECODE (CASE_LABEL, "case_label", 'e', 3) | |
d7e7759d BC |
101 | |
102 | /* A STMT_EXPR represents a statement-expression. The | |
103 | STMT_EXPR_STMT is the statement given by the expression. */ | |
104 | DEFTREECODE (STMT_EXPR, "stmt_expr", 'e', 1) | |
db3acfa5 JM |
105 | |
106 | /* A COMPOUND_LITERAL_EXPR represents a C99 compound literal. The | |
e536cfdf | 107 | COMPOUND_LITERAL_EXPR_DECL_STMT is the a DECL_STMT containing the decl |
8d37a5c0 JM |
108 | for the anonymous object represented by the COMPOUND_LITERAL; |
109 | the DECL_INITIAL of that decl is the CONSTRUCTOR that initializes | |
110 | the compound literal. */ | |
db3acfa5 | 111 | DEFTREECODE (COMPOUND_LITERAL_EXPR, "compound_literal_expr", 'e', 1) |
de097a2d | 112 | |
6e4ae815 MM |
113 | /* A CLEANUP_STMT marks the point at which a declaration is fully |
114 | constructed. If, after this point, the CLEANUP_DECL goes out of | |
115 | scope, the CLEANUP_EXPR must be run. */ | |
116 | DEFTREECODE (CLEANUP_STMT, "cleanup_stmt", 'e', 2) | |
117 | ||
de097a2d JM |
118 | /* |
119 | Local variables: | |
120 | mode:c | |
121 | End: | |
122 | */ |