/*** * Copyright (C) 2015 by Chang Liu */ package com.oblivm.backend.lang.inter; import net.sourceforge.argparse4j.ArgumentParsers; import net.sourceforge.argparse4j.inf.ArgumentParser; import net.sourceforge.argparse4j.inf.ArgumentParserException; import net.sourceforge.argparse4j.inf.Namespace; import com.oblivm.backend.flexsc.Flag; import com.oblivm.backend.util.EvaRunnable; import com.oblivm.backend.util.GenRunnable; /** * A single entry point to call EvaRunnable and GenRunnable. This class should * be used as the entry point for the jar file. * */ public class Cmd { @SuppressWarnings("rawtypes") public static void main(String[] args) throws Exception { ArgumentParser ap = ArgumentParsers.newArgumentParser("Cmd"); ap.addArgument("file").nargs("*").help("File to compile"); ap.addArgument("--config").setDefault("Config.conf").help("Config file"); ap.addArgument("-la", "--lenghAlice").help("input length of Alice"); ap.addArgument("-t", "--type").choices("gen", "eva").setDefault("gen") .help("Whether it is the generator or the evaluator"); ap.addArgument("-i", "--input").help("Input file"); ap.addArgument("-c", "--class").help("Runnable Class"); Namespace ns = null; try { ns = ap.parseArgs(args); } catch (ArgumentParserException e) { ap.handleError(e); System.exit(1); } if (ns.getString("type").equals("gen")) { GenRunnable gen = new MainRunnable.Generator(ns.getString("class"), ns.getString("input")); gen.loadConfig(ns.getString("config")); gen.runCore(); if (Flag.CountTime) Flag.sw.print(); } else { EvaRunnable eva = new MainRunnable.Evaluator(ns.getString("class"), ns.getString("input")); eva.loadConfig(ns.getString("config")); eva.runCore(); if (Flag.CountTime) Flag.sw.print(); if (Flag.countIO) eva.printStatistic(); } } }