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

Side by Side Diff: Source/bindings/scripts/v8_utilities.py

Issue 434133002: Support WebIDL's ExtendedAttributeIdentList in the Blink parser (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rebase Created 6 years, 4 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) 2013 Google Inc. All rights reserved. 1 # Copyright (C) 2013 Google Inc. All rights reserved.
2 # 2 #
3 # Redistribution and use in source and binary forms, with or without 3 # Redistribution and use in source and binary forms, with or without
4 # modification, are permitted provided that the following conditions are 4 # modification, are permitted provided that the following conditions are
5 # met: 5 # met:
6 # 6 #
7 # * Redistributions of source code must retain the above copyright 7 # * Redistributions of source code must retain the above copyright
8 # notice, this list of conditions and the following disclaimer. 8 # notice, this list of conditions and the following disclaimer.
9 # * Redistributions in binary form must reproduce the above 9 # * Redistributions in binary form must reproduce the above
10 # copyright notice, this list of conditions and the following disclaimer 10 # copyright notice, this list of conditions and the following disclaimer
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 'XSLT', 53 'XSLT',
54 ] 54 ]
55 55
56 56
57 ################################################################################ 57 ################################################################################
58 # Extended attribute parsing 58 # Extended attribute parsing
59 ################################################################################ 59 ################################################################################
60 60
61 def extended_attribute_value_contains(extended_attribute_value, value): 61 def extended_attribute_value_contains(extended_attribute_value, value):
62 return (extended_attribute_value and 62 return (extended_attribute_value and
63 value in re.split('[|&]', extended_attribute_value)) 63 value in re.split('[|,]', extended_attribute_value))
64 64
65 65
66 def has_extended_attribute(definition_or_member, extended_attribute_list): 66 def has_extended_attribute(definition_or_member, extended_attribute_list):
67 return any(extended_attribute in definition_or_member.extended_attributes 67 return any(extended_attribute in definition_or_member.extended_attributes
68 for extended_attribute in extended_attribute_list) 68 for extended_attribute in extended_attribute_list)
69 69
70 70
71 def has_extended_attribute_value(definition_or_member, name, value): 71 def has_extended_attribute_value(definition_or_member, name, value):
72 extended_attributes = definition_or_member.extended_attributes 72 extended_attributes = definition_or_member.extended_attributes
73 return (name in extended_attributes and 73 return (name in extended_attributes and
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 196
197 def call_with_arguments(call_with_values): 197 def call_with_arguments(call_with_values):
198 if not call_with_values: 198 if not call_with_values:
199 return [] 199 return []
200 return [CALL_WITH_ARGUMENTS[value] 200 return [CALL_WITH_ARGUMENTS[value]
201 for value in CALL_WITH_VALUES 201 for value in CALL_WITH_VALUES
202 if extended_attribute_value_contains(call_with_values, value)] 202 if extended_attribute_value_contains(call_with_values, value)]
203 203
204 204
205 # [Conditional] 205 # [Conditional]
206 DELIMITER_TO_OPERATOR = {
207 '|': '||',
208 ',': '&&',
209 }
210
211
206 def conditional_string(definition_or_member): 212 def conditional_string(definition_or_member):
207 extended_attributes = definition_or_member.extended_attributes 213 extended_attributes = definition_or_member.extended_attributes
208 if 'Conditional' not in extended_attributes: 214 if 'Conditional' not in extended_attributes:
209 return None 215 return None
210 conditional = extended_attributes['Conditional'] 216 conditional = extended_attributes['Conditional']
211 for operator in '&|': 217 for delimiter in ',|':
212 if operator in conditional: 218 if delimiter in conditional:
213 conditions = conditional.split(operator) 219 conditions = conditional.split(delimiter)
214 operator_separator = ' %s%s ' % (operator, operator) 220 operator_separator = ' %s ' % DELIMITER_TO_OPERATOR[delimiter]
215 return operator_separator.join('ENABLE(%s)' % expression for express ion in sorted(conditions)) 221 return operator_separator.join('ENABLE(%s)' % expression for express ion in sorted(conditions))
216 return 'ENABLE(%s)' % conditional 222 return 'ENABLE(%s)' % conditional
217 223
218 224
219 # [DeprecateAs] 225 # [DeprecateAs]
220 def deprecate_as(member): 226 def deprecate_as(member):
221 extended_attributes = member.extended_attributes 227 extended_attributes = member.extended_attributes
222 if 'DeprecateAs' not in extended_attributes: 228 if 'DeprecateAs' not in extended_attributes:
223 return None 229 return None
224 includes.add('core/frame/UseCounter.h') 230 includes.add('core/frame/UseCounter.h')
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 273
268 The returned function checks if a method/attribute is enabled. 274 The returned function checks if a method/attribute is enabled.
269 Given extended attribute RuntimeEnabled=FeatureName, return: 275 Given extended attribute RuntimeEnabled=FeatureName, return:
270 RuntimeEnabledFeatures::{featureName}Enabled 276 RuntimeEnabledFeatures::{featureName}Enabled
271 """ 277 """
272 extended_attributes = definition_or_member.extended_attributes 278 extended_attributes = definition_or_member.extended_attributes
273 if 'RuntimeEnabled' not in extended_attributes: 279 if 'RuntimeEnabled' not in extended_attributes:
274 return None 280 return None
275 feature_name = extended_attributes['RuntimeEnabled'] 281 feature_name = extended_attributes['RuntimeEnabled']
276 return 'RuntimeEnabledFeatures::%sEnabled' % uncapitalize(feature_name) 282 return 'RuntimeEnabledFeatures::%sEnabled' % uncapitalize(feature_name)
OLDNEW
« no previous file with comments | « Source/bindings/scripts/utilities.py ('k') | Source/bindings/tests/idls/TestInterfaceConstructor.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698