TASS.java

package edu.udel.cis.vsl.tass;

import java.io.IOException;
import java.io.PrintWriter;

import edu.udel.cis.vsl.tass.config.RunConfiguration;
import edu.udel.cis.vsl.tass.model.IF.SyntaxException;
import edu.udel.cis.vsl.tass.ui.CommandLineException;
import edu.udel.cis.vsl.tass.ui.CommandLineParser;
import edu.udel.cis.vsl.tass.ui.Header;
import edu.udel.cis.vsl.tass.ui.Runner;

public class TASS {
	public static void main(String[] args) {
		PrintWriter out = new PrintWriter(System.out);
		PrintWriter err = new PrintWriter(System.err);

		Header.printProgramHead(out);

		CommandLineParser parser = new CommandLineParser(out, err);

		try {
			RunConfiguration configuration = parser.parse(args);

			if (configuration != null) {
				Runner runner = new Runner(configuration);

				runner.run();
			}
		} catch (CommandLineException e) {
			err.println(e.getMessage());
			err.println("Type 'tass help' for usage.");
			err.flush();
			System.exit(1);
		} catch (SyntaxException e) {
			err.println(e.getMessage());
			err.flush();
			System.exit(2);
		} catch (IOException e) {
			err.println(e);
			err.flush();
			System.exit(3);
		}
	}
}