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

Side by Side Diff: mojo/public/tools/bindings/pylib/mojom/generate/generator.py

Issue 2965803003: Mojo JS bindings: add support to generate "dual-mode" code. (Closed)
Patch Set: . Created 3 years, 5 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 """Code shared by the various language-specific code generators.""" 5 """Code shared by the various language-specific code generators."""
6 6
7 from functools import partial 7 from functools import partial
8 import os.path 8 import os.path
9 import re 9 import re
10 10
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 _AddUnionComputedData(union) 148 _AddUnionComputedData(union)
149 for interface in module.interfaces: 149 for interface in module.interfaces:
150 _AddInterfaceComputedData(interface) 150 _AddInterfaceComputedData(interface)
151 151
152 152
153 class Generator(object): 153 class Generator(object):
154 # Pass |output_dir| to emit files to disk. Omit |output_dir| to echo all 154 # Pass |output_dir| to emit files to disk. Omit |output_dir| to echo all
155 # files to stdout. 155 # files to stdout.
156 def __init__(self, module, output_dir=None, typemap=None, variant=None, 156 def __init__(self, module, output_dir=None, typemap=None, variant=None,
157 bytecode_path=None, for_blink=False, use_once_callback=False, 157 bytecode_path=None, for_blink=False, use_once_callback=False,
158 use_new_js_bindings=False, export_attribute=None, 158 js_bindings_mode="new", export_attribute=None,
159 export_header=None, generate_non_variant_code=False): 159 export_header=None, generate_non_variant_code=False):
160 self.module = module 160 self.module = module
161 self.output_dir = output_dir 161 self.output_dir = output_dir
162 self.typemap = typemap or {} 162 self.typemap = typemap or {}
163 self.variant = variant 163 self.variant = variant
164 self.bytecode_path = bytecode_path 164 self.bytecode_path = bytecode_path
165 self.for_blink = for_blink 165 self.for_blink = for_blink
166 self.use_once_callback = use_once_callback 166 self.use_once_callback = use_once_callback
167 self.use_new_js_bindings = use_new_js_bindings 167 self.js_bindings_mode = js_bindings_mode
168 self.export_attribute = export_attribute 168 self.export_attribute = export_attribute
169 self.export_header = export_header 169 self.export_header = export_header
170 self.generate_non_variant_code = generate_non_variant_code 170 self.generate_non_variant_code = generate_non_variant_code
171 171
172 def Write(self, contents, filename): 172 def Write(self, contents, filename):
173 if self.output_dir is None: 173 if self.output_dir is None:
174 print contents 174 print contents
175 return 175 return
176 full_path = os.path.join(self.output_dir, filename) 176 full_path = os.path.join(self.output_dir, filename)
177 WriteFile(contents, full_path) 177 WriteFile(contents, full_path)
178 178
179 def GenerateFiles(self, args): 179 def GenerateFiles(self, args):
180 raise NotImplementedError("Subclasses must override/implement this method") 180 raise NotImplementedError("Subclasses must override/implement this method")
181 181
182 def GetJinjaParameters(self): 182 def GetJinjaParameters(self):
183 """Returns default constructor parameters for the jinja environment.""" 183 """Returns default constructor parameters for the jinja environment."""
184 return {} 184 return {}
185 185
186 def GetGlobals(self): 186 def GetGlobals(self):
187 """Returns global mappings for the template generation.""" 187 """Returns global mappings for the template generation."""
188 return {} 188 return {}
189 189
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698