summary refs log tree commit diff stats
path: root/doc/ranger.ext.debug.html
Commit message (Collapse)AuthorAgeFilesLines
* moved pydoc pages to doc/pydochut2009-12-251-31/+0
|
* updated pydoc pageshut2009-12-251-0/+31
iteral_noninteger.cc?h=main&id=6f8f9fb53b5a7ef26496d496a4b93266c78d6332'>6f8f9fb5 ^
d7494165 ^
6f8f9fb5 ^
1f59be84 ^








6f8f9fb5 ^


ac0e9db5 ^

6f8f9fb5 ^








1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
                                 





                              
                                                                                  
 








                                                                              


                                     

                                                            








                                                                    
//: Support literal 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 "Parsing 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;
}