brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1001 B · 1376c3e Raw
39 lines · python
1#!/usr/bin/env python32 3import argparse4 5 6def main():7    parser = argparse.ArgumentParser()8    parser.add_argument(9        "--max_args",10        type=int,11        help="Max number of arguments to generate case statements for",12        required=True,13    )14    parser.add_argument("--output", help="Output header file to include", required=True)15    args = parser.parse_args()16 17    output = ""18    for i in range(args.max_args + 1):19        output += "case %d:\n" % (i)20        output += "((void (*)(kmp_int32 *, kmp_int32 *\n"21        for j in range(i):22            output += ", void *"23            if (j + 1) % 4 == 0:24                output += "\n"25        output += "))fn)(&global_tid, &bound_tid\n"26        for j in range(i):27            output += ", args[%d]" % (j)28            if (j + 1) % 4 == 0:29                output += "\n"30        output += ");\n"31        output += "break;\n"32 33    with open(args.output, "w") as f:34        print(output, file=f)35 36 37if __name__ == "__main__":38    main()39