Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(56)

Side by Side Diff: mojo/public/tools/bindings/generators/mojom_cpp_generator.py

Issue 474063002: Mojo: add support for {double,float}.{INFINITY,NEGATIVE_INFINITY,NAN} (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Generates C++ source files from a mojom.Module.""" 5 """Generates C++ source files from a mojom.Module."""
6 6
7 import mojom.generate.generator as generator 7 import mojom.generate.generator as generator
8 import mojom.generate.module as mojom 8 import mojom.generate.module as mojom
9 import mojom.generate.pack as pack 9 import mojom.generate.pack as pack
10 from mojom.generate.template_expander import UseJinja 10 from mojom.generate.template_expander import UseJinja
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 if token.imported_from: 216 if token.imported_from:
217 name.extend(NamespaceToArray(token.namespace)) 217 name.extend(NamespaceToArray(token.namespace))
218 if token.parent_kind: 218 if token.parent_kind:
219 name.append(token.parent_kind.name) 219 name.append(token.parent_kind.name)
220 if isinstance(token, mojom.EnumValue): 220 if isinstance(token, mojom.EnumValue):
221 name.append( 221 name.append(
222 "%s_%s" % (generator.CamelCaseToAllCaps(token.enum_name), token.name)) 222 "%s_%s" % (generator.CamelCaseToAllCaps(token.enum_name), token.name))
223 else: 223 else:
224 name.append(token.name) 224 name.append(token.name)
225 return "::".join(name) 225 return "::".join(name)
226
227 if kind == mojom.DOUBLE:
228 if token == "Inf" or token == "+Inf":
229 return "std::numeric_limits<double>::infinity()"
viettrungluu 2014/08/14 22:32:25 This (and everything else) probably creates a stat
230 if token == "-Inf":
231 return "-std::numeric_limits<double>::infinity()"
232 if token == "NaN":
233 return "std::numeric_limits<double>::quiet_NaN()"
234
235 if kind == mojom.FLOAT:
236 if token == "Inf" or token == "+Inf":
237 return "std::numeric_limits<float>::infinity()"
238 if token == "-Inf":
239 return "-std::numeric_limits<float>::infinity()"
240 if token == "NaN":
241 return "std::numeric_limits<float>::quiet_NaN()"
242
226 return '%s%s' % (token, _kind_to_cpp_literal_suffix.get(kind, '')) 243 return '%s%s' % (token, _kind_to_cpp_literal_suffix.get(kind, ''))
227 244
228 def ExpressionToText(value, kind=None): 245 def ExpressionToText(value, kind=None):
229 return TranslateConstants(value, kind) 246 return TranslateConstants(value, kind)
230 247
231 def HasCallbacks(interface): 248 def HasCallbacks(interface):
232 for method in interface.methods: 249 for method in interface.methods:
233 if method.response_parameters != None: 250 if method.response_parameters != None:
234 return True 251 return True
235 return False 252 return False
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 317
301 @UseJinja("cpp_templates/module.cc.tmpl", filters=cpp_filters) 318 @UseJinja("cpp_templates/module.cc.tmpl", filters=cpp_filters)
302 def GenerateModuleSource(self): 319 def GenerateModuleSource(self):
303 return self.GetJinjaExports() 320 return self.GetJinjaExports()
304 321
305 def GenerateFiles(self, args): 322 def GenerateFiles(self, args):
306 self.Write(self.GenerateModuleHeader(), "%s.h" % self.module.name) 323 self.Write(self.GenerateModuleHeader(), "%s.h" % self.module.name)
307 self.Write(self.GenerateModuleInternalHeader(), 324 self.Write(self.GenerateModuleInternalHeader(),
308 "%s-internal.h" % self.module.name) 325 "%s-internal.h" % self.module.name)
309 self.Write(self.GenerateModuleSource(), "%s.cc" % self.module.name) 326 self.Write(self.GenerateModuleSource(), "%s.cc" % self.module.name)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698