blob: 686fb6fcf6eb003257f7bf0c9b5c243f733f2523 [file] [log] [blame]
Martin v. Löwis4d0d4712010-12-03 20:14:31 +00001#!/usr/bin/python
2# Usage: typeslots.py < Include/typeslots.h > typeslots.inc
3
4import sys, re
5
Martin v. Löwis81c9b452010-12-04 09:11:41 +00006print("/* Generated by typeslots.py $Revision$ */")
Martin v. Löwis4d0d4712010-12-03 20:14:31 +00007res = {}
8for line in sys.stdin:
9 m = re.match("#define Py_([a-z_]+) ([0-9]+)", line)
10 member = m.group(1)
11 if member.startswith("tp_"):
12 member = "ht_type."+member
13 elif member.startswith("nb_"):
14 member = "as_number."+member
15 elif member.startswith("mp_"):
16 member = "as_mapping."+member
17 elif member.startswith("sq_"):
18 member = "as_sequence."+member
19 elif member.startswith("bf_"):
20 member = "as_buffer."+member
21 res[int(m.group(2))] = member
22
23M = max(res.keys())+1
24for i in range(1,M):
Martin v. Löwis35f08f02010-12-04 09:08:10 +000025 print("offsetof(PyHeapTypeObject, %s)," % res[i])