summaryrefslogtreecommitdiffstats
path: root/layout/style/GenerateCountedUnknownProperties.py
blob: b46884da6b7f0b72f23607c2efd21117426feb82 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 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 re
import runpy
import string


def to_camel_case(ident):
    return re.sub(
        "(^|_|-)([a-z0-9])", lambda m: m.group(2).upper(), ident.strip("_").strip("-")
    )


def generate(output, prop_file):
    properties = runpy.run_path(prop_file)["COUNTED_UNKNOWN_PROPERTIES"]

    output.write("/* THIS IS AN AUTOGENERATED FILE.  DO NOT EDIT */\n\n")

    for prop in properties:
        output.write(
            "COUNTED_UNKNOWN_PROPERTY({}, {})\n".format(prop, to_camel_case(prop))
        )