mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-22 17:55:50 +00:00
7db648bdec
This patch changes ServoCSSPropList.py to use classes for properties. This allows extending the data in the file without needing to update all users of this file. Sorting in GenerateCSSPropsGenerated.py is removed because the data file has the right order already. MozReview-Commit-ID: D74bItCfpPH --HG-- extra : rebase_source : e0138c255f77515f491496fcb8680686362f4e9e
36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
import runpy
|
|
import string
|
|
|
|
def generate(output, template, dataFile):
|
|
with open(template, "r") as f:
|
|
template = string.Template(f.read())
|
|
data = runpy.run_path(dataFile)["data"]
|
|
|
|
longhand_count = 0
|
|
shorthand_count = 0
|
|
alias_count = 0
|
|
property_ids = []
|
|
for prop in data:
|
|
if prop.type() != "alias":
|
|
if prop.type() == "longhand":
|
|
assert shorthand_count == 0
|
|
longhand_count += 1
|
|
else:
|
|
assert alias_count == 0
|
|
shorthand_count += 1
|
|
property_ids.append("eCSSProperty_{}".format(prop.id))
|
|
else:
|
|
alias_count += 1
|
|
property_ids.append("eCSSPropertyAlias_{}".format(prop.alias_id))
|
|
|
|
output.write("/* THIS IS AN AUTOGENERATED FILE. DO NOT EDIT */\n\n")
|
|
output.write(template.substitute({
|
|
"property_ids": "\n".join(" {},".format(p) for p in property_ids),
|
|
"longhand_count": property_ids[longhand_count],
|
|
"shorthand_count": property_ids[longhand_count + shorthand_count],
|
|
}))
|