package tests;
import PIANOS.datastructures.DistributionFactory;
import PIANOS.datastructures.ComputationalModel;
import PIANOS.io.ComputationalModelParser;

import PIANOS.exceptions.*;

// File, IOException, etc...
import java.io.*;

public class FullFledgedParseTest{

    public static void main (String[] args){
	if (args.length == 7){
	    // userDistFile, modelFile, initialValuesFile, simulationFile, proposalFile, updateFile, outputFile
	    try{
		DistributionFactory factory = new DistributionFactory(args[0]);
		ComputationalModel model = ComputationalModelParser.readModel(args[1], args[2], args[3], args[4], args[5], args[6], factory);
		// The parser
		
		System.out.println("==========================");
		System.out.println("Parsing complete. Results:");
		System.out.println("==========================");
		System.out.println(model);
		
	    }
	    catch (MissingDistributionException e){
		System.out.println(e.getMessage());
		System.exit(1);
	    }
	    catch (MissingFunctionException e){
		System.out.println(e.getMessage());
		System.exit(1);
	    }
	    catch (IOException e){
		System.out.println(e.getMessage());
		System.exit(1);
	    }
	    catch (SyntaxException e){
		System.out.println(e.getMessage());
		System.exit(1);
	    }
	}
    }
}

