12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- import random
- import sys
- import multiprocessing
- import glob
- import time
- from compile import do_compile
- from link_and_load import link_and_load
- from make_parallel import main
- models = []
- code = []
- address = sys.argv[1]
- taskname = sys.argv[2]
- files = [a.replace("\\", "/") for a in sum([glob.glob(f) for f in sys.argv[3:]], [])]
- for f in files:
- if f.endswith(".mvc"):
- models.append(f)
- elif f.endswith(".alc"):
- code.append(f)
- else:
- print("Unknown file format for file " + f)
- print("Requires either .mvc or .alc")
- def initialize_SCD():
- import urllib2
- import urllib
- import json
- taskname = random.random()
- while 1:
- try:
- # Create new task
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"%s"' % taskname, "taskname": "task_manager"}))).read()
- break
- except:
- time.sleep(0.01)
- data = []
- data.append(4)
- data.append("initialize_SCD")
- data.append("models/SimpleClassDiagrams")
- data.append("exit")
- data.append(2)
- print("Initializing SCD")
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "data": json.dumps(data), "taskname": taskname}))).read()
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "get_output", "taskname": taskname}))).read()
- print("Initialized!")
- def do_compile_wrapper(filename, mode, grammar):
- do_compile(address, filename, str(random.random()), filename, mode, ["--debug"], grammar=grammar)
- # Parse all models and upload them
- initialize_SCD()
- for m in models:
- print("[MODEL] %s" % m)
- do_compile_wrapper(m, "MO", "grammars/modelling.g")
- main(address, taskname, code)
|