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 |