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

Side by Side Diff: tools/json_schema_compiler/model.py

Issue 10435003: Add support for 'nocompile' to IDL schema compiler. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review fixes, and rebased Created 8 years, 7 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 (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 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 import copy 5 import copy
6 import os.path 6 import os.path
7 import re 7 import re
8 8
9 class ParseException(Exception): 9 class ParseException(Exception):
10 """Thrown when data in the model is invalid. 10 """Thrown when data in the model is invalid.
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 - |description| a description of the function (if provided) 133 - |description| a description of the function (if provided)
134 - |callback| the callback parameter to the function. There should be exactly 134 - |callback| the callback parameter to the function. There should be exactly
135 one 135 one
136 """ 136 """
137 def __init__(self, parent, json): 137 def __init__(self, parent, json):
138 self.name = json['name'] 138 self.name = json['name']
139 self.params = [] 139 self.params = []
140 self.description = json.get('description') 140 self.description = json.get('description')
141 self.callback = None 141 self.callback = None
142 self.parent = parent 142 self.parent = parent
143 self.nocompile = json.get('nocompile')
143 for param in json['parameters']: 144 for param in json['parameters']:
144 if param.get('type') == 'function': 145 if param.get('type') == 'function':
145 if self.callback: 146 if self.callback:
146 raise ParseException(self, self.name + " has more than one callback") 147 raise ParseException(self, self.name + " has more than one callback")
147 self.callback = Callback(self, param) 148 self.callback = Callback(self, param)
148 else: 149 else:
149 self.params.append(Property(self, param['name'], param, 150 self.params.append(Property(self, param['name'], param,
150 from_json=True)) 151 from_json=True))
151 152
152 class Property(object): 153 class Property(object):
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
360 # handled in pure Javascript on the render process (and .: never reach 361 # handled in pure Javascript on the render process (and .: never reach
361 # C++ let alone the browser). 362 # C++ let alone the browser).
362 if property_json.get('type') == 'function': 363 if property_json.get('type') == 'function':
363 continue 364 continue
364 model.properties[name] = Property( 365 model.properties[name] = Property(
365 model, 366 model,
366 name, 367 name,
367 property_json, 368 property_json,
368 from_json=from_json, 369 from_json=from_json,
369 from_client=from_client) 370 from_client=from_client)
OLDNEW
« no previous file with comments | « tools/json_schema_compiler/json_schema_test.py ('k') | tools/json_schema_compiler/schema_bundle_generator.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698