/* * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands. * See the copyright notice in the ACK home directory, in the file "Copyright". */ #ifndef SWITCH_H_ #define SWITCH_H_ /* $Id$ */ #include "arith.h" struct type; struct expr; /* S W I T C H - T A B L E - S T R U C T U R E */ struct switch_hdr { struct switch_hdr *next; label sh_break; label sh_default; label sh_table; int sh_nrofentries; struct type *sh_type; struct expr *sh_expr; writh sh_lowerbd; writh sh_upperbd; struct case_entry *sh_entries; }; /* ALLOCDEF "switch_hdr" 2 */ struct case_entry { struct case_entry *next; label ce_label; writh ce_value; }; /* ALLOCDEF "case_entry" 20 */ void code_startswitch(struct expr **expp); void code_endswitch(void); void code_case(struct expr *expr); void code_default(void); #endif