--- a/stage3/constant_folding.hh Wed Dec 10 12:06:45 2014 +0000
+++ b/stage3/constant_folding.hh Sun Dec 14 18:40:20 2014 +0000
@@ -65,7 +65,10 @@
constant_folding_c(symbol_c *symbol = NULL);
virtual ~constant_folding_c(void);
int get_error_count();
-
+ int handle_var_extern_global_pair(symbol_c *extern_var_name, symbol_c *extern_var_decl, symbol_c *global_var_name, symbol_c *global_var_decl);
+ private:
+ void *handle_var_list_decl(symbol_c *var_list, symbol_c *type_decl);
+ public:
#if 0
// not currently needed, so comment it out!...
/* utility functions for other stage3 algorithms to access the contant folded values */
@@ -105,14 +108,36 @@
/*********************/
#if DO_CONSTANT_PROPAGATION__
void *visit(symbolic_variable_c *symbol);
- #endif
+ #endif // DO_CONSTANT_PROPAGATION__
+ void *visit(symbolic_constant_c *symbol);
+
+ /******************************************/
+ /* B 1.4.3 - Declaration & Initialisation */
+ /******************************************/
+ void *visit( var1_init_decl_c *symbol);
+ void *visit( input_declarations_c *symbol);
+ void *visit( input_output_declarations_c *symbol);
+ void *visit(retentive_var_declarations_c *symbol);
+ void *visit( external_declaration_c *symbol);
+
+ /**************************************/
+ /* B.1.5 - Program organization units */
+ /**************************************/
+ /***********************/
+ /* B 1.5.1 - Functions */
+ /***********************/
+ void *visit(function_declaration_c *symbol);
+
+ /*****************************/
+ /* B 1.5.2 - Function Blocks */
+ /*****************************/
+ void *visit(function_block_declaration_c *symbol);
/**********************/
/* B 1.5.3 - Programs */
/**********************/
- #if DO_CONSTANT_PROPAGATION__
void *visit(program_declaration_c *symbol);
- #endif
+
/****************************************/
/* B.2 - Language IL (Instruction List) */