Commit e488978e authored by Darren Shen's avatar Darren Shen Committed by Commit Bot

Move build/scripts/{ => core/css}/make_css_value_keywords.py.

Move:
  build/scripts/{ => core/css}/make_css_value_keywords.py

And fixes some linter errors.

Bug: 732657
Change-Id: Ia8983baaeb22afbe63e729a3898918152adaf9e8
Reviewed-on: https://chromium-review.googlesource.com/590888Reviewed-by: default avatarmeade_UTC10 <meade@chromium.org>
Commit-Queue: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#491229}
parent e9e1e034
#!/usr/bin/env python #!/usr/bin/env python
import os.path import os
import re
import subprocess
import sys import sys
sys.path.append(os.path.join(os.path.dirname(__file__), '../..'))
import os.path
import subprocess
from name_utilities import enum_for_css_keyword from name_utilities import enum_for_css_keyword
from name_utilities import upper_first_letter
import json5_generator import json5_generator
import license from license import license_for_generated_cpp
HEADER_TEMPLATE = """ HEADER_TEMPLATE = """
...@@ -120,8 +120,7 @@ class CSSValueKeywordsWriter(json5_generator.Writer): ...@@ -120,8 +120,7 @@ class CSSValueKeywordsWriter(json5_generator.Writer):
def __init__(self, file_paths): def __init__(self, file_paths):
json5_generator.Writer.__init__(self, file_paths) json5_generator.Writer.__init__(self, file_paths)
self._outputs = {(self.class_name + ".h"): self.generate_header, self._outputs = {(self.class_name + ".h"): self.generate_header,
(self.class_name + ".cpp"): self.generate_implementation, (self.class_name + ".cpp"): self.generate_implementation}
}
self._value_keywords = self.json5_file.name_dictionaries self._value_keywords = self.json5_file.name_dictionaries
first_keyword_id = 1 first_keyword_id = 1
...@@ -144,7 +143,7 @@ class CSSValueKeywordsWriter(json5_generator.Writer): ...@@ -144,7 +143,7 @@ class CSSValueKeywordsWriter(json5_generator.Writer):
def generate_header(self): def generate_header(self):
enum_enties = map(self._enum_declaration, [{'enum_name': 'CSSValueInvalid', 'enum_value': 0}] + self._value_keywords) enum_enties = map(self._enum_declaration, [{'enum_name': 'CSSValueInvalid', 'enum_value': 0}] + self._value_keywords)
return HEADER_TEMPLATE % { return HEADER_TEMPLATE % {
'license': license.license_for_generated_cpp(), 'license': license_for_generated_cpp(),
'class_name': self.class_name, 'class_name': self.class_name,
'value_keyword_enums': "\n".join(enum_enties), 'value_keyword_enums': "\n".join(enum_enties),
'value_keywords_count': len(enum_enties), 'value_keywords_count': len(enum_enties),
...@@ -152,7 +151,7 @@ class CSSValueKeywordsWriter(json5_generator.Writer): ...@@ -152,7 +151,7 @@ class CSSValueKeywordsWriter(json5_generator.Writer):
} }
def _value_keywords_with_mode(self, mode): def _value_keywords_with_mode(self, mode):
return filter(lambda keyword: keyword['mode'] == mode, self._value_keywords) return [keyword for keyword in self._value_keywords if keyword['mode'] == mode]
def generate_implementation(self): def generate_implementation(self):
keyword_offsets = [] keyword_offsets = []
...@@ -162,13 +161,17 @@ class CSSValueKeywordsWriter(json5_generator.Writer): ...@@ -162,13 +161,17 @@ class CSSValueKeywordsWriter(json5_generator.Writer):
current_offset += len(keyword["name"]) + 1 current_offset += len(keyword["name"]) + 1
gperf_input = GPERF_TEMPLATE % { gperf_input = GPERF_TEMPLATE % {
'license': license.license_for_generated_cpp(), 'license': license_for_generated_cpp(),
'class_name': self.class_name, 'class_name': self.class_name,
'value_keyword_strings': '\n'.join(' "%(name)s\\0"' % keyword for keyword in self._value_keywords), 'value_keyword_strings': '\n'.join(' "%(name)s\\0"' % keyword for keyword in self._value_keywords),
'value_keyword_offsets': '\n'.join(' %d,' % offset for offset in keyword_offsets), 'value_keyword_offsets': '\n'.join(' %d,' % offset for offset in keyword_offsets),
'value_keyword_to_enum_map': '\n'.join('%(lower_name)s, %(enum_name)s' % keyword for keyword in self._value_keywords), 'value_keyword_to_enum_map': '\n'.join('%(lower_name)s, %(enum_name)s' % keyword for keyword in self._value_keywords),
'ua_sheet_mode_values_keywords': '\n '.join(map(self._case_value_keyword, self._value_keywords_with_mode('UASheet'))), 'ua_sheet_mode_values_keywords': '\n '.join(
'quirks_mode_or_ua_sheet_mode_values_keywords': '\n '.join(map(self._case_value_keyword, self._value_keywords_with_mode('QuirksOrUASheet'))), map(self._case_value_keyword, self._value_keywords_with_mode('UASheet'))
),
'quirks_mode_or_ua_sheet_mode_values_keywords': '\n '.join(
map(self._case_value_keyword, self._value_keywords_with_mode('QuirksOrUASheet'))
),
} }
# FIXME: If we could depend on Python 2.7, we would use subprocess.check_output # FIXME: If we could depend on Python 2.7, we would use subprocess.check_output
gperf_args = [self.gperf_path, '--key-positions=*', '-P', '-n'] gperf_args = [self.gperf_path, '--key-positions=*', '-P', '-n']
......
...@@ -748,13 +748,13 @@ code_generator("make_core_generated_css_property_metadata") { ...@@ -748,13 +748,13 @@ code_generator("make_core_generated_css_property_metadata") {
] ]
} }
process_in_files("make_core_generated_css_value_keywords") { code_generator("make_core_generated_css_value_keywords") {
script = "../build/scripts/make_css_value_keywords.py" script = "../build/scripts/core/css/make_css_value_keywords.py"
json_inputs = [
in_files = [
"css/CSSValueKeywords.json5", "css/CSSValueKeywords.json5",
"css/SVGCSSValueKeywords.json5", "css/SVGCSSValueKeywords.json5",
] ]
templates = []
outputs = [ outputs = [
"$blink_core_output_dir/CSSValueKeywords.cpp", "$blink_core_output_dir/CSSValueKeywords.cpp",
"$blink_core_output_dir/CSSValueKeywords.h", "$blink_core_output_dir/CSSValueKeywords.h",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment