#!/usr/bin/env python3 | |
import argparse | |
def main(): | |
parser = argparse.ArgumentParser() | |
parser.add_argument( | |
"--max_args", | |
type=int, | |
help="Max number of arguments to generate case statements for", | |
required=True, | |
) | |
parser.add_argument("--output", help="Output header file to include", required=True) | |
args = parser.parse_args() | |
output = "" | |
for i in range(args.max_args + 1): | |
output += "case %d:\n" % (i) | |
output += "((void (*)(kmp_int32 *, kmp_int32 *\n" | |
for j in range(i): | |
output += ", void *" | |
if (j + 1) % 4 == 0: | |
output += "\n" | |
output += "))fn)(&global_tid, &bound_tid\n" | |
for j in range(i): | |
output += ", args[%d]" % (j) | |
if (j + 1) % 4 == 0: | |
output += "\n" | |
output += ");\n" | |
output += "break;\n" | |
with open(args.output, "w") as f: | |
print(output, file=f) | |
if __name__ == "__main__": | |
main() |