#!/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()