00001 #ifndef __FUNC_ITER_H__ 00002 #define __FUNC_ITER_H__ 00003 00004 /* 00005 Copyright (c) 2006-2010 Trevor Williams 00006 00007 This program is free software; you can redistribute it and/or modify 00008 it under the terms of the GNU General Public License as published by the Free Software 00009 Foundation; either version 2 of the License, or (at your option) any later version. 00010 00011 This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 00012 without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00013 See the GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License along with this program; 00016 if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00017 */ 00018 00026 #include "defines.h" 00027 00028 00032 typedef struct func_iter_s { 00033 unsigned int scopes; 00034 stmt_link** sls; 00035 unsigned int sl_num; 00036 sig_link** sigs; 00037 unsigned int sig_num; 00038 sig_link* curr_sigl; 00039 } func_iter; 00040 00041 00043 void func_iter_init( 00044 func_iter* fi, 00045 func_unit* funit, 00046 bool stmts, 00047 bool sigs 00048 ); 00049 00051 statement* func_iter_get_next_statement( 00052 func_iter* fi 00053 ); 00054 00056 vsignal* func_iter_get_next_signal( 00057 func_iter* fi 00058 ); 00059 00061 void func_iter_dealloc( 00062 func_iter* fi 00063 ); 00064 00065 #endif 00066