blob: 1fa4eba59cf01d6d187b049973cb69b7dc41c44c [file] [log] [blame]
#!/usr/bin/env python
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import sys
import css_properties
import json5_generator
from name_utilities import lower_first
import template_expander
class CSSPropertyMetadataWriter(css_properties.CSSProperties):
filters = {
'lower_first': lower_first,
}
def __init__(self, json5_file_path):
super(CSSPropertyMetadataWriter, self).__init__(json5_file_path)
self._outputs = {'CSSPropertyMetadata.cpp': self.generate_css_property_metadata_cpp}
@template_expander.use_jinja('CSSPropertyMetadata.cpp.tmpl', filters=filters)
def generate_css_property_metadata_cpp(self):
return {
'properties_including_aliases': self._properties_including_aliases,
'switches': [('is_descriptor', 'IsDescriptor'),
('is_property', 'IsProperty'),
('interpolable', 'IsInterpolableProperty'),
('inherited', 'IsInheritedProperty'),
('supports_percentage', 'PropertySupportsPercentage'),
],
'first_enum_value': self._first_enum_value,
}
if __name__ == '__main__':
json5_generator.Maker(CSSPropertyMetadataWriter).main()