OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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) |
OLD | NEW |