equal
deleted
inserted
replaced
986 } |
986 } |
987 |
987 |
988 /*********************/ |
988 /*********************/ |
989 /* B 1.4 - Variables */ |
989 /* B 1.4 - Variables */ |
990 /*********************/ |
990 /*********************/ |
991 // #if DO_CONSTANT_PROPAGATION__ |
991 #if DO_CONSTANT_PROPAGATION__ |
992 void *constant_folding_c::visit(symbolic_variable_c *symbol) { |
992 void *constant_folding_c::visit(symbolic_variable_c *symbol) { |
993 std::string varName = get_var_name_c::get_name(symbol->var_name)->value; |
993 std::string varName = get_var_name_c::get_name(symbol->var_name)->value; |
994 if (values.count(varName) > 0) |
994 if (values.count(varName) > 0) |
995 symbol->const_value = values[varName]; |
995 symbol->const_value = values[varName]; |
996 return NULL; |
996 return NULL; |
997 } |
997 } |
998 // #endif // DO_CONSTANT_PROPAGATION__ |
998 #endif // DO_CONSTANT_PROPAGATION__ |
999 |
999 |
1000 void *constant_folding_c::visit(symbolic_constant_c *symbol) { |
1000 void *constant_folding_c::visit(symbolic_constant_c *symbol) { |
1001 std::string varName = get_var_name_c::get_name(symbol->var_name)->value; |
1001 std::string varName = get_var_name_c::get_name(symbol->var_name)->value; |
1002 if (values.count(varName) > 0) |
1002 if (values.count(varName) > 0) |
1003 symbol->const_value = values[varName]; |
1003 symbol->const_value = values[varName]; |
1709 /* TODO: handle function invocations... */ |
1709 /* TODO: handle function invocations... */ |
1710 // void *fill_candidate_datatypes_c::visit(function_invocation_c *symbol) {} |
1710 // void *fill_candidate_datatypes_c::visit(function_invocation_c *symbol) {} |
1711 |
1711 |
1712 |
1712 |
1713 |
1713 |
|
1714 #if DO_CONSTANT_PROPAGATION__ |
1714 /*********************************/ |
1715 /*********************************/ |
1715 /* B 3.2.1 Assignment Statements */ |
1716 /* B 3.2.1 Assignment Statements */ |
1716 /*********************************/ |
1717 /*********************************/ |
1717 void *constant_folding_c::visit(assignment_statement_c *symbol) { |
1718 void *constant_folding_c::visit(assignment_statement_c *symbol) { |
1718 std::string varName; |
1719 std::string varName; |
1722 symbol->l_exp->const_value = symbol->r_exp->const_value; |
1723 symbol->l_exp->const_value = symbol->r_exp->const_value; |
1723 values[get_var_name_c::get_name(symbol->l_exp)->value] = symbol->l_exp->const_value; |
1724 values[get_var_name_c::get_name(symbol->l_exp)->value] = symbol->l_exp->const_value; |
1724 return NULL; |
1725 return NULL; |
1725 } |
1726 } |
1726 |
1727 |
1727 #if DO_CONSTANT_PROPAGATION__ |
|
1728 /********************************/ |
1728 /********************************/ |
1729 /* B 3.2.3 Selection Statements */ |
1729 /* B 3.2.3 Selection Statements */ |
1730 /********************************/ |
1730 /********************************/ |
1731 void *constant_folding_c::visit(if_statement_c *symbol) { |
1731 void *constant_folding_c::visit(if_statement_c *symbol) { |
1732 map_values_t values_incoming; |
1732 map_values_t values_incoming; |