* Copyright (c) 1980 The Regents of the University of California.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* @(#)tree_ty.h 5.2 (Berkeley) 4/16/91
typedef struct /* T_FORU, T_FORD */
int line_no
; /* line number of for */
struct tnode
*init_asg
; /* initialization */
struct tnode
*term_expr
; /* termination expresssion */
struct tnode
*for_stmnt
; /* for statement */
typedef struct /* T_ASGN */
int line_no
; /* line number of := */
typedef struct /* T_VAR */
struct tnode
*qual
; /* list node */
typedef struct /* T_FIELD */
typedef struct /* T_VAR */
typedef struct /* T_FIELD */
typedef struct /* T_MOD, T_MULT, T_DIVD, T_DIV,
T_AND, T_ADD, T_SUB, T_OR,
T_EQ, T_LT, T_GT, T_NE, T_LE
typedef struct /* T_LISTPP */
struct tnode
*list
; /* check the types on these,
this is used in pclvalue and lvalue */
typedef struct /* T_IF, T_IFEL, T_IFX */
struct tnode
*then_stmnt
;
struct tnode
*else_stmnt
;
typedef struct /* T_MINUS, T_PLUS, T_NOT */
typedef struct /* T_PDEC, T_FDEC, T_PROG */
struct tnode
*param_list
;
typedef struct /* T_PVAL, T_PVAR */
typedef struct /* T_PFUNC, T_PPROC */
typedef struct /* T_NIL */
typedef struct /* T_STRNG, T_INT, T_FINT, T_BINT */
typedef struct /* T_CSTRNG, T_ID, T_CFINT, T_CINT, T_CBINT */
typedef struct /* T_PLUSC, T_MINUSC */
typedef struct /* T_TYPACK, T_TYSCAL, T_TYFILE, T_TYSET, T_TYREC */
typedef struct /* T_TYPTR */
typedef struct /* T_TYRANG */
typedef struct /* T_TYCRANG */
typedef struct /* T_TYARY, T_TYCARY */
typedef struct /* T_TYVARNT */
struct tnode
*const_list
;
typedef struct /* T_TYVARPT */
typedef struct /* T_CSTAT */
struct tnode
*const_list
;
typedef struct /* T_BSTL, T_BLOCK */
struct tnode
*stmnt_list
;
typedef struct /* T_FLDLST */
typedef struct /* T_RFIELD */
typedef struct /* T_LABEL */
typedef struct /* T_GOTO */
typedef struct /* T_PCALL, T_FCALL */
typedef struct /* T_CASE, T_WHILE */
struct tnode
*stmnt_list
;
typedef struct /* T_WITH */
typedef struct /* T_REPEAT */
struct tnode
*stmnt_list
;
typedef struct /* T_RANG */
typedef struct /* T_CSET */
typedef struct /* T_ARY */
typedef struct /* T_WEXPR */
typedef struct /* T_TYID */
typedef struct /* anything with linenumber in first field */
#define for_node tree_ele.t_for_node
#define asg_node tree_ele.t_asg_node
#define var_node tree_ele.t_var_node
#define expr_node tree_ele.t_expr_node
#define list_node tree_ele.t_list_node
#define if_node tree_ele.t_if_node
#define un_expr tree_ele.t_un_expr
#define p_dec tree_ele.t_p_dec
#define param tree_ele.t_param
#define pfunc_node tree_ele.t_pfunc_node
#define nil_node tree_ele.t_nil_node
#define const_node tree_ele.t_const_node
#define char_const tree_ele.t_char_const
#define sign_const tree_ele.t_sign_const
#define comp_ty tree_ele.t_comp_ty
#define ptr_ty tree_ele.t_ptr_ty
#define rang_ty tree_ele.t_rang_ty
#define crang_ty tree_ele.t_crang_ty
#define ary_ty tree_ele.t_ary_ty
#define varpt tree_ele.t_varpt
#define tyvarnt tree_ele.t_tyvarnt
#define c_stmnt tree_ele.t_c_stmnt
#define stmnt_blck tree_ele.t_stmnt_blck
#define fldlst tree_ele.t_fldlst
#define rfield tree_ele.t_rfield
#define label_node tree_ele.t_label_node
#define pcall_node tree_ele.t_pcall_node
#define whi_cas tree_ele.t_whi_cas
#define with_node tree_ele.t_with_node
#define repeat tree_ele.t_repeat
#define rang tree_ele.t_rang
#define cset_node tree_ele.t_cset_node
#define ary_node tree_ele.t_ary_node
#define wexpr_node tree_ele.t_wexpr_node
#define field_node tree_ele.t_field_node
#define tyid_node tree_ele.t_tyid_node
#define lined tree_ele.t_lined
#define goto_node tree_ele.t_goto_node