39 lines
1,001 B
Python
39 lines
1,001 B
Python
|
#!/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()
|