Cleanup #1489: Delete GPU dummy mempool
[charm.git] / src / xlat-i / xi-Value.C
blob11c0db3b23d4b088319eaa42b46f944f1ac27de8
1 #include "xi-Value.h"
3 namespace xi {
5 Value::Value(const char* s) {
6   factor = 1;
7   val = s;
8   if (val == 0 || strlen(val) == 0) return;
9   char* v = new char[strlen(val) + 5];
10   strcpy(v, val);
11   int pos = strlen(v) - 1;
12   if (v[pos] == 'K' || v[pos] == 'k') {
13     v[pos] = '\0';
14     factor = 1024;
15   }
16   if (v[pos] == 'M' || v[pos] == 'm') {
17     v[pos] = '\0';
18     factor = 1024 * 1024;
19   }
20   val = v;
23 int Value::getIntVal(void) {
24   if (val == 0 || strlen(val) == 0) return 0;
25   return (atoi((const char*)val) * factor);
28 void Value::print(XStr& str) { str << val; }
30 ValueList::ValueList(Value* v, ValueList* n) : val(v), next(n) {}
32 void ValueList::print(XStr& str) {
33   if (val) {
34     str << "[";
35     val->print(str);
36     str << "]";
37   }
38   if (next) next->print(str);
41 void ValueList::printValue(XStr& str) {
42   if (val) {
43     val->print(str);
44   }
45   if (next) {
46     die("Unsupported type");
47   }
50 void ValueList::printValueProduct(XStr& str) {
51   if (!val) die("Must have a value for an array dimension");
53   str << "(";
54   val->print(str);
55   str << ")";
56   if (next) {
57     str << " * ";
58     next->printValueProduct(str);
59   }
62 void ValueList::printZeros(XStr& str) {
63   str << "[0]";
64   if (next) next->printZeros(str);
67 }  // namespace xi