예제 #1
0
def _symbol(entry):
    if entry['Symbol'] is not None:
        return entry['Symbol']
    # FIXME: Remove this special case for the ugly x-webkit-foo attributes.
    if entry['name'].original.startswith('-webkit-'):
        return entry['name'].original.replace('-', '_')[1:]
    return name_utilities.cpp_name(entry).replace('-', '_').replace(' ', '_')
예제 #2
0
def _symbol(entry):
    if entry['Symbol'] is not None:
        return entry['Symbol']
    # FIXME: Remove this special case for the ugly x-webkit-foo attributes.
    if entry['name'].startswith('-webkit-'):
        return entry['name'].replace('-', '_')[1:]
    return name_utilities.cpp_name(entry).replace('-', '_')
예제 #3
0
 def _headers_header_includes(self, entries):
     includes = dict()
     for entry in entries:
         cpp_name = name_utilities.cpp_name(entry)
         # Avoid duplicate includes.
         if cpp_name in includes:
             continue
         includes[cpp_name] = self._headers_header_include_path(entry)
     return sorted(includes.values())
예제 #4
0
 def _sort_entries_by_conditional(self):
     unconditional_names = set()
     for entry in self.in_file.name_dictionaries:
         conditional = entry['Conditional']
         if not conditional:
             cpp_name = name_utilities.cpp_name(entry)
             if cpp_name in unconditional_names:
                 continue
             unconditional_names.add(cpp_name)
             self._unconditional_entries.append(entry)
             continue
     for entry in self.in_file.name_dictionaries:
         cpp_name = name_utilities.cpp_name(entry)
         if cpp_name in unconditional_names:
             continue
         conditional = entry['Conditional']
         if not conditional in self._entries_by_conditional:
             self._entries_by_conditional[conditional] = []
         self._entries_by_conditional[conditional].append(entry)
예제 #5
0
 def _sort_entries_by_conditional(self):
     unconditional_names = set()
     for entry in self.in_file.name_dictionaries:
         conditional = entry['Conditional']
         if not conditional:
             cpp_name = name_utilities.cpp_name(entry)
             if cpp_name in unconditional_names:
                 continue
             unconditional_names.add(cpp_name)
             self._unconditional_entries.append(entry)
             continue
     for entry in self.in_file.name_dictionaries:
         cpp_name = name_utilities.cpp_name(entry)
         if cpp_name in unconditional_names:
             continue
         conditional = entry['Conditional']
         if not conditional in self._entries_by_conditional:
             self._entries_by_conditional[conditional] = []
         self._entries_by_conditional[conditional].append(entry)
예제 #6
0
 def _headers_header_includes(self, entries):
     includes = dict()
     for entry in entries:
         cpp_name = name_utilities.cpp_name(entry)
         # Avoid duplicate includes.
         if cpp_name in includes:
             continue
         include = '#include "%(path)s"\n' % {
             'path': self._headers_header_include_path(entry),
         }
         includes[cpp_name] = self.wrap_with_condition(include, entry['Conditional'])
     return includes.values()
예제 #7
0
 def _headers_header_includes(self, entries):
     includes = dict()
     for entry in entries:
         cpp_name = name_utilities.cpp_name(entry)
         # Avoid duplicate includes.
         if cpp_name in includes:
             continue
         include = '#include "%(path)s"\n' % {
             'path': self._headers_header_include_path(entry),
         }
         includes[cpp_name] = self.wrap_with_condition(
             include, entry['Conditional'])
     return includes.values()
예제 #8
0
 def _factory_implementation(self, event):
     if event['RuntimeEnabled']:
         runtime_condition = ' && RuntimeEnabledFeatures::%s()' % name_utilities.lower_first(event['RuntimeEnabled'])
     else:
         runtime_condition = ''
     script_name = name_utilities.script_name(event)
     cpp_name = name_utilities.cpp_name(event)
     implementation = """    if (type == "%(script_name)s"%(runtime_condition)s)
     return %(cpp_name)s::create();""" % {
         'script_name': script_name,
         'runtime_condition': runtime_condition,
         'cpp_name': cpp_name,
     }
     return self.wrap_with_condition(implementation, event['Conditional'])
예제 #9
0
    def _declare_one_conditional_macro(self, conditional, entries):
        macro_name = '%(macro_style_name)s_INTERFACES_FOR_EACH_%(conditional)s' % {
            'macro_style_name': name_utilities.to_macro_style(self.namespace + self.suffix),
            'conditional': conditional,
        }
        return self.wrap_with_condition("""#define %(macro_name)s(macro) \\
%(declarations)s

#else
#define %(macro_name)s(macro)""" % {
            'macro_name': macro_name,
            'declarations': '\n'.join(sorted(set([
                '    macro(%(cpp_name)s) \\' % {'cpp_name': name_utilities.cpp_name(entry)}
                for entry in entries]))),
        }, conditional)
예제 #10
0
    def _declare_one_conditional_macro(self, conditional, entries):
        macro_name = '%(macro_style_name)s_INTERFACES_FOR_EACH_%(conditional)s' % {
            'macro_style_name': name_utilities.to_macro_style(self.namespace),
            'conditional': conditional,
        }
        return self.wrap_with_condition("""#define %(macro_name)s(macro) \\
%(declarations)s

#else
#define %(macro_name)s(macro)""" % {
            'macro_name': macro_name,
            'declarations': '\n'.join(sorted(set([
                '    macro(%(cpp_name)s) \\' % {'cpp_name': name_utilities.cpp_name(entry)}
                for entry in entries]))),
        }, conditional)
 def _headers_header_includes(self, entries):
     includes = dict()
     for entry in entries:
         cpp_name = name_utilities.cpp_name(entry)
         # Avoid duplicate includes.
         if cpp_name in includes:
             continue
         if self.suffix == 'Modules':
             subdir_name = 'modules'
         else:
             subdir_name = 'core'
         includes[cpp_name] = '#include "%(path)s"\n#include "bindings/%(subdir_name)s/v8/V8%(script_name)s.h"' % {
             'path': self._headers_header_include_path(entry),
             'script_name': name_utilities.script_name(entry),
             'subdir_name': subdir_name,
         }
     return includes.values()
예제 #12
0
 def _headers_header_includes(self, entries):
     includes = dict()
     for entry in entries:
         cpp_name = name_utilities.cpp_name(entry)
         # Avoid duplicate includes.
         if cpp_name in includes:
             continue
         if self.suffix == 'Modules':
             subdir_name = 'modules'
         else:
             subdir_name = 'core'
         includes[
             cpp_name] = '#include "%(path)s"\n#include "bindings/%(subdir_name)s/v8/V8%(script_name)s.h"' % {
                 'path': self._headers_header_include_path(entry),
                 'script_name': name_utilities.script_name(entry),
                 'subdir_name': subdir_name,
             }
     return includes.values()
 def _headers_header_include_path(self, entry):
     path = entry['interfaceHeaderDir']
     if len(path):
         path += '/'
     return path + self.get_file_basename(name_utilities.cpp_name(entry)) + '.h'
예제 #14
0
 def _headers_header_include_path(self, entry):
     path = entry['interfaceHeaderDir']
     if not path:
         return None
     return path + '/' + self.get_file_basename(
         name_utilities.cpp_name(entry)) + '.h'
예제 #15
0
 def _unconditional_macro(self, entry):
     return '    macro(%(cpp_name)s) \\' % {
         'cpp_name': name_utilities.cpp_name(entry)
     }
예제 #16
0
 def _unconditional_macro(self, entry):
     return '    macro(%(cpp_name)s) \\' % {'cpp_name': name_utilities.cpp_name(entry)}
예제 #17
0
def _symbol(entry):
    # FIXME: Remove this special case for the ugly x-webkit-foo attributes.
    if entry['name'].startswith('-webkit-'):
        return entry['name'].replace('-', '_')[1:]
    return name_utilities.cpp_name(entry)
예제 #18
0
def _symbol(tag):
    return name_utilities.cpp_name(tag).replace('-', '_')
예제 #19
0
def _symbol(tag):
    # FIXME: Remove this special case for the ugly x-webkit-foo attributes.
    if tag['name'].startswith('-webkit-'):
        return tag['name'].replace('-', '_')[1:]
    return name_utilities.cpp_name(tag).replace('-', '_')