/* This file contains the definitions and documentation for the additional tree codes used in the GNU C++ compiler (see tree.def for the standard codes). Copyright (C) 1987, 1988, 1990, 1993, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. Written by Benjamin Chelf This file is part of GNU CC. GNU CC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU CC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU CC; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Tree nodes relevent to both C and C++. These were originally in cp-tree.def in the cp subdir. */ /* A node to remember a source position. */ DEFTREECODE (SRCLOC, "srcloc", 'x', 2) /* A whole bunch of tree codes for the initial, superficial parsing of templates. */ DEFTREECODE (SIZEOF_EXPR, "sizeof_expr", '1', 1) DEFTREECODE (ARROW_EXPR, "arrow_expr", 'e', 1) DEFTREECODE (ALIGNOF_EXPR, "alignof_expr", '1', 1) DEFTREECODE (EXPR_STMT, "expr_stmt", 'e', 1) DEFTREECODE (COMPOUND_STMT, "compound_stmt", 'e', 1) DEFTREECODE (DECL_STMT, "decl_stmt", 'e', 1) DEFTREECODE (IF_STMT, "if_stmt", 'e', 3) DEFTREECODE (FOR_STMT, "for_stmt", 'e', 4) DEFTREECODE (WHILE_STMT, "while_stmt", 'e', 2) DEFTREECODE (DO_STMT, "do_stmt", 'e', 2) DEFTREECODE (RETURN_STMT, "return_stmt", 'e', 1) DEFTREECODE (BREAK_STMT, "break_stmt", 'e', 0) DEFTREECODE (CONTINUE_STMT, "continue_stmt", 'e', 0) DEFTREECODE (SWITCH_STMT, "switch_stmt", 'e', 2) DEFTREECODE (GOTO_STMT, "goto_stmt", 'e', 1) DEFTREECODE (LABEL_STMT, "label_stmt", 'e', 1) DEFTREECODE (ASM_STMT, "asm_stmt", 'e', 5) /* A SCOPE_STMT marks the beginning or end of a scope. If SCOPE_BEGIN_P holds, then this is the start of a scope. If SCOPE_END_P holds, then this is the end of a scope. If SCOPE_NULLIFIED_P holds then there turned out to be no variables in this scope. The SCOPE_STMT_BLOCK is the BLOCK containing the variables declared in this scope. */ DEFTREECODE (SCOPE_STMT, "scope_stmt", 'e', 1) DEFTREECODE (CASE_LABEL, "case_label", 'e', 2) /* A STMT_EXPR represents a statement-expression. The STMT_EXPR_STMT is the statement given by the expression. */ DEFTREECODE (STMT_EXPR, "stmt_expr", 'e', 1)