aboutsummaryrefslogtreecommitdiff
path: root/examples/redis-unstable/utils/generate-fmtargs.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/redis-unstable/utils/generate-fmtargs.py')
-rwxr-xr-xexamples/redis-unstable/utils/generate-fmtargs.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/examples/redis-unstable/utils/generate-fmtargs.py b/examples/redis-unstable/utils/generate-fmtargs.py
new file mode 100755
index 0000000..1eced02
--- /dev/null
+++ b/examples/redis-unstable/utils/generate-fmtargs.py
@@ -0,0 +1,22 @@
1#!/usr/bin/env python3
2
3# Outputs the generated part of src/fmtargs.h
4MAX_ARGS = 160
5
6import os
7print("/* Everything below this line is automatically generated by")
8print(" * %s. Do not manually edit. */\n" % os.path.basename(__file__))
9
10print('#define ARG_N(' + ', '.join(['_' + str(i) for i in range(1, MAX_ARGS + 1, 1)]) + ', N, ...) N')
11
12print('\n#define RSEQ_N() ' + ', '.join([str(i) for i in range(MAX_ARGS, -1, -1)]))
13
14print('\n#define COMPACT_FMT_2(fmt, value) fmt')
15for i in range(4, MAX_ARGS + 1, 2):
16 print('#define COMPACT_FMT_{}(fmt, value, ...) fmt COMPACT_FMT_{}(__VA_ARGS__)'.format(i, i - 2))
17
18print('\n#define COMPACT_VALUES_2(fmt, value) value')
19for i in range(4, MAX_ARGS + 1, 2):
20 print('#define COMPACT_VALUES_{}(fmt, value, ...) value, COMPACT_VALUES_{}(__VA_ARGS__)'.format(i, i - 2))
21
22print("\n#endif")