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

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

Issue 545433002: mojo: Generate top level enums for python bindings. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove unhelpful conditional Created 6 years, 3 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
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 JavaScript source files from a mojom.Module.""" 5 """Generates JavaScript 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 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 def TranslateConstants(token): 188 def TranslateConstants(token):
189 if isinstance(token, (mojom.EnumValue, mojom.NamedValue)): 189 if isinstance(token, (mojom.EnumValue, mojom.NamedValue)):
190 # Both variable and enum constants are constructed like: 190 # Both variable and enum constants are constructed like:
191 # NamespaceUid.Struct[.Enum].CONSTANT_NAME 191 # NamespaceUid.Struct[.Enum].CONSTANT_NAME
192 name = [] 192 name = []
193 if token.imported_from: 193 if token.imported_from:
194 name.append(token.imported_from["unique_name"]) 194 name.append(token.imported_from["unique_name"])
195 if token.parent_kind: 195 if token.parent_kind:
196 name.append(token.parent_kind.name) 196 name.append(token.parent_kind.name)
197 if isinstance(token, mojom.EnumValue): 197 if isinstance(token, mojom.EnumValue):
198 name.append(token.enum_name) 198 name.append(token.enum.name)
199 name.append(token.name) 199 name.append(token.name)
200 return ".".join(name) 200 return ".".join(name)
201 201
202 if isinstance(token, mojom.BuiltinValue): 202 if isinstance(token, mojom.BuiltinValue):
203 if token.value == "double.INFINITY" or token.value == "float.INFINITY": 203 if token.value == "double.INFINITY" or token.value == "float.INFINITY":
204 return "Infinity"; 204 return "Infinity";
205 if token.value == "double.NEGATIVE_INFINITY" or \ 205 if token.value == "double.NEGATIVE_INFINITY" or \
206 token.value == "float.NEGATIVE_INFINITY": 206 token.value == "float.NEGATIVE_INFINITY":
207 return "-Infinity"; 207 return "-Infinity";
208 if token.value == "double.NAN" or token.value == "float.NAN": 208 if token.value == "double.NAN" or token.value == "float.NAN":
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 self.Write(self.GenerateJsModule(), "%s.js" % self.module.name) 266 self.Write(self.GenerateJsModule(), "%s.js" % self.module.name)
267 267
268 def GetImports(self): 268 def GetImports(self):
269 # Since each import is assigned a variable in JS, they need to have unique 269 # Since each import is assigned a variable in JS, they need to have unique
270 # names. 270 # names.
271 counter = 1 271 counter = 1
272 for each in self.module.imports: 272 for each in self.module.imports:
273 each["unique_name"] = "import" + str(counter) 273 each["unique_name"] = "import" + str(counter)
274 counter += 1 274 counter += 1
275 return self.module.imports 275 return self.module.imports
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698