diff options
author | Xavier de Gaye <xdegaye@users.sourceforge.net> | 2016-07-26 10:48:08 (GMT) |
---|---|---|
committer | Xavier de Gaye <xdegaye@users.sourceforge.net> | 2016-07-26 10:48:08 (GMT) |
commit | fd0d5939bd7dd36ad84fb4c14c84f4386295da9d (patch) | |
tree | 0e496d505c2e2139390967795d5e880a6014775f /Objects | |
parent | 254da19d0ea80faf9671d78b092eb14622510c1a (diff) | |
download | cpython-fd0d5939bd7dd36ad84fb4c14c84f4386295da9d.zip cpython-fd0d5939bd7dd36ad84fb4c14c84f4386295da9d.tar.gz cpython-fd0d5939bd7dd36ad84fb4c14c84f4386295da9d.tar.bz2 |
Issue #26662: Set PYTHON_FOR_GEN in configure
as the Python program to be used for file generation during the build.
Diffstat (limited to 'Objects')
-rwxr-xr-x | Objects/typeslots.py | 63 |
1 files changed, 37 insertions, 26 deletions
diff --git a/Objects/typeslots.py b/Objects/typeslots.py index ba37c40..9b6d4ad 100755 --- a/Objects/typeslots.py +++ b/Objects/typeslots.py @@ -1,32 +1,43 @@ #!/usr/bin/python -# Usage: typeslots.py < Include/typeslots.h > typeslots.inc +# Usage: typeslots.py < Include/typeslots.h typeslots.inc import sys, re -print("/* Generated by typeslots.py */") -res = {} -for line in sys.stdin: - m = re.match("#define Py_([a-z_]+) ([0-9]+)", line) - if not m: - continue - member = m.group(1) - if member.startswith("tp_"): - member = "ht_type."+member - elif member.startswith("am_"): - member = "as_async."+member - elif member.startswith("nb_"): - member = "as_number."+member - elif member.startswith("mp_"): - member = "as_mapping."+member - elif member.startswith("sq_"): - member = "as_sequence."+member - elif member.startswith("bf_"): - member = "as_buffer."+member - res[int(m.group(2))] = member +def generate_typeslots(out=sys.stdout): + out.write("/* Generated by typeslots.py */\n") + res = {} + for line in sys.stdin: + m = re.match("#define Py_([a-z_]+) ([0-9]+)", line) + if not m: + continue + member = m.group(1) + if member.startswith("tp_"): + member = "ht_type."+member + elif member.startswith("am_"): + member = "as_async."+member + elif member.startswith("nb_"): + member = "as_number."+member + elif member.startswith("mp_"): + member = "as_mapping."+member + elif member.startswith("sq_"): + member = "as_sequence."+member + elif member.startswith("bf_"): + member = "as_buffer."+member + res[int(m.group(2))] = member -M = max(res.keys())+1 -for i in range(1,M): - if i in res: - print("offsetof(PyHeapTypeObject, %s)," % res[i]) + M = max(res.keys())+1 + for i in range(1,M): + if i in res: + out.write("offsetof(PyHeapTypeObject, %s),\n" % res[i]) + else: + out.write("0,\n") + +def main(): + if len(sys.argv) == 2: + with open(sys.argv[1], "w") as f: + generate_typeslots(f) else: - print("0,") + generate_typeslots() + +if __name__ == "__main__": + main() |