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

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

Issue 12041098: Initial commit of the Dart Chrome Extension APIs generators (Closed) Base URL: http://git.chromium.org/chromium/src.git@file_path_bugfix
Patch Set: Fixed minor style issues; added support for [nodart] IDL flag Created 7 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
OLDNEW
1 #! /usr/bin/env python 1 #! /usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 import itertools 6 import itertools
7 import json 7 import json
8 import os.path 8 import os.path
9 import re 9 import re
10 import sys 10 import sys
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 Given an IDL dictionary or interface member, converts into a name/value pair 142 Given an IDL dictionary or interface member, converts into a name/value pair
143 where the value is a Python dictionary that the JSON schema compiler expects 143 where the value is a Python dictionary that the JSON schema compiler expects
144 to see. 144 to see.
145 ''' 145 '''
146 def __init__(self, member_node): 146 def __init__(self, member_node):
147 self.node = member_node 147 self.node = member_node
148 148
149 def process(self, callbacks): 149 def process(self, callbacks):
150 properties = {} 150 properties = {}
151 name = self.node.GetName() 151 name = self.node.GetName()
152 for property_name in ('OPTIONAL', 'nodoc', 'nocompile'): 152 for property_name in ('OPTIONAL', 'nodoc', 'nocompile', 'nodart'):
153 if self.node.GetProperty(property_name): 153 if self.node.GetProperty(property_name):
154 properties[property_name.lower()] = True 154 properties[property_name.lower()] = True
155 is_function = False 155 is_function = False
156 parameter_comments = {} 156 parameter_comments = {}
157 for node in self.node.children: 157 for node in self.node.children:
158 if node.cls == 'Comment': 158 if node.cls == 'Comment':
159 (parent_comment, parameter_comments) = ProcessComment(node.GetName()) 159 (parent_comment, parameter_comments) = ProcessComment(node.GetName())
160 properties['description'] = parent_comment 160 properties['description'] = parent_comment
161 elif node.cls == 'Callspec': 161 elif node.cls == 'Callspec':
162 is_function = True 162 is_function = True
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 ''' 373 '''
374 Dump a json serialization of parse result for the IDL files whose names 374 Dump a json serialization of parse result for the IDL files whose names
375 were passed in on the command line. 375 were passed in on the command line.
376 ''' 376 '''
377 for filename in sys.argv[1:]: 377 for filename in sys.argv[1:]:
378 schema = Load(filename) 378 schema = Load(filename)
379 print json.dumps(schema, indent=2) 379 print json.dumps(schema, indent=2)
380 380
381 if __name__ == '__main__': 381 if __name__ == '__main__':
382 Main() 382 Main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698