mirror of
https://github.com/servo/servo.git
synced 2025-10-16 16:29:18 +01:00
113 lines
2 KiB
Python
113 lines
2 KiB
Python
import os
|
|
|
|
here = os.path.dirname(__file__)
|
|
|
|
readonly_template = """\
|
|
interface {interface}A {{
|
|
readonly setlike<DOMString>;
|
|
static void {method}();
|
|
}};
|
|
|
|
interface {interface}B {{
|
|
readonly setlike<DOMString>;
|
|
static readonly attribute long {method};
|
|
}};
|
|
"""
|
|
|
|
readwrite_template = """\
|
|
interface ReadOnly {{
|
|
readonly setlike<DOMString>;
|
|
}};
|
|
|
|
interface ReadWrite {{
|
|
setlike<DOMString>;
|
|
}};
|
|
|
|
interface {interface}A {{
|
|
setlike<DOMString>;
|
|
void {method}();
|
|
}};
|
|
|
|
interface {interface}B {{
|
|
readonly setlike<DOMString>;
|
|
void {method}();
|
|
}};
|
|
|
|
interface {interface}C {{
|
|
readonly setlike<DOMString>;
|
|
readonly attribute long {method};
|
|
}};
|
|
|
|
interface {interface}D {{
|
|
readonly setlike<DOMString>;
|
|
const long {method} = 0;
|
|
}};
|
|
|
|
interface {interface}E : ReadOnly {{
|
|
void {method}();
|
|
}};
|
|
|
|
interface {interface}F : ReadOnly {{
|
|
readonly attribute long {method};
|
|
}};
|
|
|
|
interface {interface}G : ReadOnly {{
|
|
const long {method} = 0;
|
|
}};
|
|
|
|
interface {interface}H {{
|
|
readonly setlike<DOMString>;
|
|
static void {method}();
|
|
}};
|
|
|
|
interface {interface}I {{
|
|
readonly setlike<DOMString>;
|
|
static readonly attribute long {method};
|
|
}};
|
|
|
|
interface {interface}J1 {{
|
|
static void {method}();
|
|
}};
|
|
|
|
interface {interface}J2 : {interface}J1 {{
|
|
readonly setlike<DOMString>;
|
|
}};
|
|
|
|
interface {interface}K1 {{
|
|
static readonly attribute long {method};
|
|
}};
|
|
|
|
interface {interface}K2 : {interface}K1 {{
|
|
readonly setlike<DOMString>;
|
|
}};
|
|
"""
|
|
|
|
members_readonly = [
|
|
"entries",
|
|
"forEach",
|
|
"has",
|
|
"keys",
|
|
"size",
|
|
"values",
|
|
]
|
|
|
|
members_readwrite = [
|
|
"add",
|
|
"clear",
|
|
"delete",
|
|
]
|
|
|
|
def transform(m):
|
|
return m[0].upper() + m[1:]
|
|
|
|
tests = [
|
|
(members_readonly, readonly_template),
|
|
(members_readwrite, readwrite_template),
|
|
]
|
|
|
|
for (members, template) in tests:
|
|
for method in members:
|
|
path = "{here}/../valid/idl/setlike-{method}.widl".format(here=here, method=method)
|
|
test = template.format(method=method, interface=transform(method))
|
|
with open(path, "wb") as f:
|
|
f.write(test.encode("utf8"))
|