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

Side by Side Diff: Source/build/scripts/make_element_type_helpers.py

Issue 189463005: Generate the isSVG*Element() / toSVG*Element() helper functions (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Remove blank line change Created 6 years, 9 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 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Copyright 2014 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 sys 6 import sys
7 from collections import defaultdict 7 from collections import defaultdict
8 8
9 import hasher 9 import hasher
10 import in_generator 10 import in_generator
11 import name_utilities 11 import name_utilities
12 import template_expander 12 import template_expander
13 13
14 from in_file import InFile 14 from in_file import InFile
15 15
16 16
17 def _symbol(tag):
18 # FIXME: Remove this special case for the ugly x-webkit-foo attributes.
19 if tag['name'].startswith('-webkit-'):
20 return tag['name'].replace('-', '_')[1:]
21 return name_utilities.cpp_name(tag).replace('-', '_')
22
17 class MakeElementTypeHelpersWriter(in_generator.Writer): 23 class MakeElementTypeHelpersWriter(in_generator.Writer):
18 defaults = { 24 defaults = {
19 'interfaceName': None, 25 'interfaceName': None,
20 'noConstructor': None, 26 'noConstructor': None,
27 'noTypeHelpers': None,
28 'ImplementedAs': None,
21 'JSInterfaceName': None, 29 'JSInterfaceName': None,
22 'constructorNeedsCreatedByParser': None, 30 'constructorNeedsCreatedByParser': None,
23 'constructorNeedsFormElement': None, 31 'constructorNeedsFormElement': None,
24 'contextConditional': None, 32 'contextConditional': None,
25 'interfaceName': None, 33 'interfaceName': None,
26 'noConstructor': None, 34 'noConstructor': None,
27 'runtimeEnabled': None, 35 'runtimeEnabled': None,
28 } 36 }
29 default_parameters = { 37 default_parameters = {
30 'attrsNullNamespace': None, 38 'attrsNullNamespace': None,
31 'namespace': '', 39 'namespace': '',
32 'namespacePrefix': '', 40 'namespacePrefix': '',
33 'namespaceURI': '', 41 'namespaceURI': '',
34 'fallbackInterfaceName': '', 42 'fallbackInterfaceName': '',
35 'fallbackJSInterfaceName': '', 43 'fallbackJSInterfaceName': '',
36 } 44 }
37 filters = { 45 filters = {
38 'hash': hasher.hash, 46 'hash': hasher.hash,
47 'symbol': _symbol,
39 } 48 }
40 49
41 def __init__(self, in_file_path): 50 def __init__(self, in_file_path):
42 super(MakeElementTypeHelpersWriter, self).__init__(in_file_path) 51 super(MakeElementTypeHelpersWriter, self).__init__(in_file_path)
43 52
44 self.namespace = self.in_file.parameters['namespace'].strip('"') 53 self.namespace = self.in_file.parameters['namespace'].strip('"')
45 self.fallbackInterface = self.in_file.parameters['fallbackInterfaceName' ].strip('"') 54 self.fallbackInterface = self.in_file.parameters['fallbackInterfaceName' ].strip('"')
46 55
47 assert self.namespace, 'A namespace is required.' 56 assert self.namespace, 'A namespace is required.'
48 57
(...skipping 27 matching lines...) Expand all
76 if name == 'HTML': 85 if name == 'HTML':
77 name = 'Html' 86 name = 'Html'
78 dash = name.find('-') 87 dash = name.find('-')
79 while dash != -1: 88 while dash != -1:
80 name = name[:dash] + name[dash + 1].upper() + name[dash + 2:] 89 name = name[:dash] + name[dash + 1].upper() + name[dash + 2:]
81 dash = name.find('-') 90 dash = name.find('-')
82 return '%s%sElement' % (self.namespace, name) 91 return '%s%sElement' % (self.namespace, name)
83 92
84 if __name__ == "__main__": 93 if __name__ == "__main__":
85 in_generator.Maker(MakeElementTypeHelpersWriter).main(sys.argv) 94 in_generator.Maker(MakeElementTypeHelpersWriter).main(sys.argv)
OLDNEW
« no previous file with comments | « Source/build/scripts/make_element_factory.py ('k') | Source/build/scripts/templates/ElementTypeHelpers.h.tmpl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698