instance.h

Go to the documentation of this file.
00001 #ifndef __INSTANCE_H__
00002 #define __INSTANCE_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 
00030 funit_inst* instance_create(
00031              func_unit*    funit,
00032              char*         inst_name,
00033              bool          name_diff,
00034              bool          ignore,
00035              bool          gend_scope,
00036   /*@null@*/ vector_width* range
00037 );
00038 
00040 void instance_display_tree(
00041   funit_inst* root
00042 );
00043 
00045 void instance_gen_scope(
00046   char*       scope,
00047   funit_inst* leaf,
00048   bool        flatten
00049 );
00050 
00052 funit_inst* instance_find_scope(
00053   funit_inst* root,
00054   char*       scope,
00055   bool        rm_unnamed
00056 );
00057 
00059 funit_inst* instance_find_by_funit(
00060             funit_inst*      root,
00061             const func_unit* funit,
00062   /*@out@*/ int*             ignore
00063 );
00064 
00066 vsignal* instance_find_signal_by_exclusion_id(
00067             funit_inst* root,
00068             int         id,
00069   /*@out@*/ func_unit** found_funit
00070 );
00071 
00073 expression* instance_find_expression_by_exclusion_id(
00074             funit_inst* root,
00075             int         id,
00076   /*@out@*/ func_unit** found_funit
00077 );
00078 
00080 int instance_find_fsm_arc_index_by_exclusion_id(
00081             funit_inst* root,
00082             int         id,
00083   /*@out@*/ fsm_table** found_fsm,
00084   /*@out@*/ func_unit** found_funit
00085 );
00086 
00088 funit_inst* instance_copy(
00089   funit_inst*   from_inst,
00090   funit_inst*   to_inst,
00091   char*         name,
00092   vector_width* range,
00093   bool          resolve
00094 );
00095 
00097 bool instance_parse_add(
00098   funit_inst**  root,
00099   func_unit*    parent,
00100   func_unit*    child,
00101   char*         inst_name,
00102   vector_width* range,
00103   bool          resolve,
00104   bool          child_gend,
00105   bool          ignore_child,
00106   bool          gend_scope
00107 );
00108 
00110 void instance_resolve(
00111   funit_inst* root
00112 );
00113 
00115 bool instance_read_add(
00116   funit_inst** root,
00117   char*        parent,
00118   func_unit*   child,
00119   char*        inst_name
00120 );
00121 
00123 void instance_get_leading_hierarchy(
00124             funit_inst*  root,
00125   /*@out@*/ char*        leading_hierarchy,
00126   /*@out@*/ funit_inst** top_inst
00127 );
00128 
00130 bool instance_merge_two_trees(
00131   funit_inst* root1,
00132   funit_inst* root2
00133 );
00134 
00136 void instance_db_write(
00137   funit_inst* root,
00138   FILE*       file,
00139   char*       scope,
00140   bool        parse_mode,
00141   bool        issue_ids
00142 );
00143 
00145 void instance_only_db_read(
00146   char** line
00147 );
00148 
00150 void instance_only_db_merge(
00151   char** line
00152 );
00153 
00155 void instance_remove_stmt_blks_calling_stmt(
00156   funit_inst* root,
00157   statement*  stmt
00158 );
00159 
00161 void instance_remove_parms_with_expr(
00162   funit_inst* root,
00163   statement*  stmt
00164 );
00165 
00167 void instance_output_dumpvars(
00168   FILE*       vfile,
00169   funit_inst* root
00170 );
00171 
00173 void instance_dealloc_tree(
00174   funit_inst* root
00175 );
00176 
00178 void instance_dealloc(
00179   funit_inst* root,
00180   char*       scope
00181 );
00182 
00183 #endif
00184 
Generated on Sun Nov 21 00:55:35 2010 for Covered by  doxygen 1.6.3