stage4/generate_c/generate_c_base.cc
changeset 149 05ca171a3d57
parent 146 eef5e62048c7
child 160 59d58f5e6caa
equal deleted inserted replaced
148:912bdab1eca8 149:05ca171a3d57
    47 #include <string.h>
    47 #include <string.h>
    48 
    48 
    49 
    49 
    50 
    50 
    51 
    51 
    52 
    52 typedef struct
    53 
    53 {
    54 
    54   symbol_c *param_value;
    55 
    55   symbol_c *param_type;
       
    56   function_param_iterator_c::param_direction_t param_direction;
       
    57 } FUNCTION_PARAM;
       
    58 
       
    59 #define ADD_PARAM_LIST(value, type, direction)\
       
    60   param = new FUNCTION_PARAM;\
       
    61   param->param_value = value;\
       
    62   param->param_type = type;\
       
    63   param->param_direction = direction;\
       
    64   param_list.push_back(*param);
    56 
    65 
    57 
    66 
    58 
    67 
    59 class generate_c_base_c: public iterator_visitor_c {
    68 class generate_c_base_c: public iterator_visitor_c {
    60 
    69 
   199           symbol_c *compare_type,
   208           symbol_c *compare_type,
   200           symbol_c *l_exp,
   209           symbol_c *l_exp,
   201           symbol_c *r_exp) {
   210           symbol_c *r_exp) {
   202       s4o.print(function);
   211       s4o.print(function);
   203       compare_type->accept(*this);
   212       compare_type->accept(*this);
   204       s4o.print("(2, ");
   213       s4o.print("(__BOOL_LITERAL(TRUE), NULL, 2, ");
   205       l_exp->accept(*this);
   214       l_exp->accept(*this);
   206       s4o.print(", ");
   215       s4o.print(", ");
   207       r_exp->accept(*this);
   216       r_exp->accept(*this);
   208       s4o.print(")");
   217       s4o.print(")");
   209       return NULL;
   218       return NULL;