stage4/generate_cc/search_constant_type.cc
changeset 32 289256ec66f1
parent 0 fb772792efd1
child 33 4507beb2aac6
equal deleted inserted replaced
31:c6959b0f539d 32:289256ec66f1
    49   static time_type_name_c     time_type_name;
    49   static time_type_name_c     time_type_name;
    50   static date_type_name_c     date_type_name;
    50   static date_type_name_c     date_type_name;
    51   static dt_type_name_c       dt_type_name;
    51   static dt_type_name_c       dt_type_name;
    52   static tod_type_name_c      tod_type_name;
    52   static tod_type_name_c      tod_type_name;
    53 
    53 
       
    54   static constant_real_type_name_c     constant_real_type_name;
       
    55   static constant_int_type_name_c      constant_int_type_name;
    54 
    56 
    55   public:
    57   public:
    56     symbol_c *get_type(symbol_c *constant) {
    58     symbol_c *get_type(symbol_c *constant) {
    57       return (symbol_c *)constant->accept(*this);
    59       return (symbol_c *)constant->accept(*this);
    58     }
    60     }
    63 /*********************/
    65 /*********************/
    64 
    66 
    65 /******************************/
    67 /******************************/
    66 /* B 1.2.1 - Numeric Literals */
    68 /* B 1.2.1 - Numeric Literals */
    67 /******************************/
    69 /******************************/
    68     void *visit(real_c *symbol) {return (void *)&real_type_name;}
    70     void *visit(real_c *symbol) {return (void *)&constant_real_type_name;}
    69     void *visit(integer_c *symbol) {return (void *)&int_type_name;}
    71     void *visit(integer_c *symbol) {return (void *)&constant_int_type_name;}
    70     void *visit(binary_integer_c *symbol) {return (void *)&int_type_name;}
    72     void *visit(binary_integer_c *symbol) {return (void *)&constant_int_type_name;}
    71     void *visit(octal_integer_c *symbol) {return (void *)&int_type_name;}
    73     void *visit(octal_integer_c *symbol) {return (void *)&constant_int_type_name;}
    72     void *visit(hex_integer_c *symbol) {return (void *)&int_type_name;}
    74     void *visit(hex_integer_c *symbol) {return (void *)&constant_int_type_name;}
    73 
    75 
    74     void *visit(numeric_literal_c *symbol)
    76     void *visit(numeric_literal_c *symbol)
    75       {return (void *)((symbol->type!=NULL)?symbol->type:symbol->value->accept(*this));}
    77       {return (void *)((symbol->type!=NULL)?symbol->type:symbol->value->accept(*this));}
    76     void *visit(integer_literal_c *symbol)
    78     void *visit(integer_literal_c *symbol)
    77       {return (void *)((symbol->type!=NULL)?symbol->type:symbol->value->accept(*this));}
    79       {return (void *)((symbol->type!=NULL)?symbol->type:symbol->value->accept(*this));}
   120 time_type_name_c     search_constant_type_c::time_type_name;
   122 time_type_name_c     search_constant_type_c::time_type_name;
   121 date_type_name_c     search_constant_type_c::date_type_name;
   123 date_type_name_c     search_constant_type_c::date_type_name;
   122 dt_type_name_c       search_constant_type_c::dt_type_name;
   124 dt_type_name_c       search_constant_type_c::dt_type_name;
   123 tod_type_name_c      search_constant_type_c::tod_type_name;
   125 tod_type_name_c      search_constant_type_c::tod_type_name;
   124 
   126 
       
   127 constant_real_type_name_c     search_constant_type_c::constant_real_type_name;
       
   128 constant_int_type_name_c      search_constant_type_c::constant_int_type_name;
   125 
   129 
   126 
   130 
   127 
   131 
   128 
   132 
   129 
   133