equal
deleted
inserted
replaced
96 } |
96 } |
97 |
97 |
98 |
98 |
99 /* extract the value of an integer from an integer_c object !! */ |
99 /* extract the value of an integer from an integer_c object !! */ |
100 /* NOTE: it must ignore underscores! */ |
100 /* NOTE: it must ignore underscores! */ |
101 int extract_integer(symbol_c *sym) { |
101 long long extract_integer_value(symbol_c *sym) { |
102 std::string str = ""; |
102 std::string str = ""; |
103 integer_c *integer; |
103 integer_c *integer; |
104 neg_integer_c * neg_integer; |
104 neg_integer_c * neg_integer; |
105 |
105 |
106 if ((neg_integer = dynamic_cast<neg_integer_c *>(sym)) != NULL) |
106 if ((neg_integer = dynamic_cast<neg_integer_c *>(sym)) != NULL) |
107 return - extract_integer((integer_c *)neg_integer->exp); |
107 return - extract_integer_value(neg_integer->exp); |
108 |
108 |
109 if ((integer = dynamic_cast<integer_c *>(sym)) == NULL) ERROR; |
109 if ((integer = dynamic_cast<integer_c *>(sym)) == NULL) ERROR; |
110 |
110 |
111 for(unsigned int i = 0; i < strlen(integer->value); i++) |
111 for(unsigned int i = 0; i < strlen(integer->value); i++) |
112 if (integer->value[i] != '_') str += integer->value[i]; |
112 if (integer->value[i] != '_') str += integer->value[i]; |
113 |
113 |
114 return atoi(str.c_str()); |
114 /* return atoi(str.c_str()); */ |
|
115 return atoll(str.c_str()); |
115 } |
116 } |
116 |
117 |
117 |
118 |
118 |
119 |
119 /***********************************************************************/ |
120 /***********************************************************************/ |