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

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

Issue 143473003: Generate ax enums from idl. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Caught Blink enum conversion bug! Created 6 years, 10 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
« no previous file with comments | « tools/json_schema_compiler/idl_schema.py ('k') | ui/accessibility/accessibility.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 os.path 5 import os.path
6 6
7 from json_parse import OrderedDict 7 from json_parse import OrderedDict
8 from memoize import memoize 8 from memoize import memoize
9 9
10 10
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 if 'description' not in json: 100 if 'description' not in json:
101 # TODO(kalman): Go back to throwing an error here. 101 # TODO(kalman): Go back to throwing an error here.
102 print('%s must have a "description" field. This will appear ' 102 print('%s must have a "description" field. This will appear '
103 'on the API summary page.' % self.name) 103 'on the API summary page.' % self.name)
104 json['description'] = '' 104 json['description'] = ''
105 self.description = json['description'] 105 self.description = json['description']
106 self.deprecated = json.get('deprecated', None) 106 self.deprecated = json.get('deprecated', None)
107 self.unix_name = UnixName(self.name) 107 self.unix_name = UnixName(self.name)
108 self.source_file = source_file 108 self.source_file = source_file
109 self.source_file_dir, self.source_file_filename = os.path.split(source_file) 109 self.source_file_dir, self.source_file_filename = os.path.split(source_file)
110 self.short_filename = os.path.basename(source_file).split('.')[0]
110 self.parent = None 111 self.parent = None
111 self.platforms = _GetPlatforms(json) 112 self.platforms = _GetPlatforms(json)
112 toplevel_origin = Origin(from_client=True, from_json=True) 113 toplevel_origin = Origin(from_client=True, from_json=True)
113 self.types = _GetTypes(self, json, self, toplevel_origin) 114 self.types = _GetTypes(self, json, self, toplevel_origin)
114 self.functions = _GetFunctions(self, json, self) 115 self.functions = _GetFunctions(self, json, self)
115 self.events = _GetEvents(self, json, self) 116 self.events = _GetEvents(self, json, self)
116 self.properties = _GetProperties(self, json, self, toplevel_origin) 117 self.properties = _GetProperties(self, json, self, toplevel_origin)
117 if include_compiler_options: 118 if include_compiler_options:
118 self.compiler_options = json.get('compiler_options', {}) 119 self.compiler_options = json.get('compiler_options', {})
119 else: 120 else:
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 if json_type == 'array': 183 if json_type == 'array':
183 self.property_type = PropertyType.ARRAY 184 self.property_type = PropertyType.ARRAY
184 self.item_type = Type( 185 self.item_type = Type(
185 self, '%sType' % name, json['items'], namespace, origin) 186 self, '%sType' % name, json['items'], namespace, origin)
186 elif '$ref' in json: 187 elif '$ref' in json:
187 self.property_type = PropertyType.REF 188 self.property_type = PropertyType.REF
188 self.ref_type = json['$ref'] 189 self.ref_type = json['$ref']
189 elif 'enum' in json and json_type == 'string': 190 elif 'enum' in json and json_type == 'string':
190 self.property_type = PropertyType.ENUM 191 self.property_type = PropertyType.ENUM
191 self.enum_values = [EnumValue(value) for value in json['enum']] 192 self.enum_values = [EnumValue(value) for value in json['enum']]
193 self.cpp_omit_enum_type = 'cpp_omit_enum_type' in json
192 elif json_type == 'any': 194 elif json_type == 'any':
193 self.property_type = PropertyType.ANY 195 self.property_type = PropertyType.ANY
194 elif json_type == 'binary': 196 elif json_type == 'binary':
195 self.property_type = PropertyType.BINARY 197 self.property_type = PropertyType.BINARY
196 elif json_type == 'boolean': 198 elif json_type == 'boolean':
197 self.property_type = PropertyType.BOOLEAN 199 self.property_type = PropertyType.BOOLEAN
198 elif json_type == 'integer': 200 elif json_type == 'integer':
199 self.property_type = PropertyType.INTEGER 201 self.property_type = PropertyType.INTEGER
200 elif (json_type == 'double' or 202 elif (json_type == 'double' or
201 json_type == 'number'): 203 json_type == 'number'):
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after
568 # Sanity check: platforms should not be an empty list. 570 # Sanity check: platforms should not be an empty list.
569 if not json['platforms']: 571 if not json['platforms']:
570 raise ValueError('"platforms" cannot be an empty list') 572 raise ValueError('"platforms" cannot be an empty list')
571 platforms = [] 573 platforms = []
572 for platform_name in json['platforms']: 574 for platform_name in json['platforms']:
573 for platform_enum in _Enum.GetAll(Platforms): 575 for platform_enum in _Enum.GetAll(Platforms):
574 if platform_name == platform_enum.name: 576 if platform_name == platform_enum.name:
575 platforms.append(platform_enum) 577 platforms.append(platform_enum)
576 break 578 break
577 return platforms 579 return platforms
OLDNEW
« no previous file with comments | « tools/json_schema_compiler/idl_schema.py ('k') | ui/accessibility/accessibility.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698