#!/usr/bin/env python import argparse, os import json def getDomains(scop): statements = scop['statements']; numStatements = len(statements) output = "%s\n\n" % str(numStatements) for statement in scop['statements']: output += "%s\n\n" % statement['domain'] output += "0 0 0 # for future options\n\n" return output def getSchedules(scop): statements = scop['statements']; numStatements = len(statements) output = "%s\n\n" % str(numStatements) for statement in scop['statements']: output += "%s\n\n" % statement['schedule'] return output def writeCloog(scop): template = """ # ---------------------- CONTEXT ---------------------- c # language is C # Context (no constraints on two parameters) %s 0 # We do not want to set manually the parameter names # --------------------- STATEMENTS -------------------- %s 0 # We do not want to set manually the iterator names # --------------------- SCATTERING -------------------- %s 0 # We do not want to set manually the schedule dimension names """ context = scop['context'] domains = getDomains(scop) schedules = getSchedules(scop) print template % (context, domains, schedules) def __main__(): description = 'Translate JSCoP into iscc input' parser = argparse.ArgumentParser(description) parser.add_argument('inputFile', metavar='N', type=file, help='The JSCoP file') args = parser.parse_args() inputFile = args.inputFile scop = json.load(inputFile) writeCloog(scop) __main__()