about summary refs log tree commit diff stats
path: root/main.c
diff options
context:
space:
mode:
authorAnselm R. Garbe <garbeam@gmail.com>2007-08-11 14:44:11 +0200
committerAnselm R. Garbe <garbeam@gmail.com>2007-08-11 14:44:11 +0200
commit2c6087e3d20b506e63d12c9f4e638ecd024e859c (patch)
tree4fa2b8cd23e924a382a132a3928ef6746d9cd6f1 /main.c
parent2d81b78b853565a3e34a8a9190e2362a6fdde739 (diff)
downloaddwm-2c6087e3d20b506e63d12c9f4e638ecd024e859c.tar.gz
fixed a comment
Diffstat (limited to 'main.c')
0 files changed, 0 insertions, 0 deletions
f='#n11'>11 12 13 14 15 16 17 18 19 20 21 22
23
24
25
26
27
28
29
30
31
32
33







                                                                            
                                                                                  












                                                                                

                                                            








                                                                    
//: Support literal non-integers.
//: '3.14159:literal' is ugly, so we'll just say '3.14159' for non-integers.

:(scenarios load)
:(scenario noninteger_literal)
recipe main [
  1:number <- copy 3.14159
]
+parse:   ingredient: {name: "3.14159", properties: ["3.14159": "literal-number"]}

:(after "reagent::reagent(string s)")
  if (is_noninteger(s)) {
    name = s;
    types.push_back(0);
    properties.push_back(pair<string, vector<string> >(name, vector<string>()));
    properties.back().second.push_back("literal-number");
    set_value(to_double(s));
    return;
  }

:(code)
bool is_noninteger(const string& s) {
  return s.find_first_not_of("0123456789-.") == string::npos
      && s.find('.') != string::npos;
}

double to_double(string n) {
  char* end = NULL;
  // safe because string.c_str() is guaranteed to be null-terminated
  double result = strtod(n.c_str(), &end);
  assert(*end == '\0');
  return result;
}