/******************************************************************************* * Copyright (c) 2009 University of Edinburgh. * All rights reserved. This program and the accompanying materials are made * available under the terms of the BSD Licence, which accompanies this feature * and can be downloaded from http://groups.inf.ed.ac.uk/pepa/update/licence.txt ******************************************************************************/ package uk.ac.ed.inf.biopepa.core; import java.io.StringReader; import java_cup.runtime.Symbol; import uk.ac.ed.inf.biopepa.core.compiler.ModelCompiler; import uk.ac.ed.inf.biopepa.core.dom.Model; import uk.ac.ed.inf.biopepa.core.dom.internal.*; import uk.ac.ed.inf.biopepa.core.interfaces.Solver; import uk.ac.ed.inf.biopepa.core.sba.SBAModel; import uk.ac.ed.inf.biopepa.core.sba.Solvers; public class BioPEPA { public static Model parse(String source) throws ParserException, Exception { BioPEPASymbolFactory symbolFactory = new BioPEPASymbolFactory(); BioPEPAParser parser = new BioPEPAParser(new BioPEPALexer(new StringReader(source), symbolFactory), symbolFactory); try { Symbol symbol = parser.parse(); return (Model) symbol.value; } catch (Exception e) { if (e instanceof ParserException) throw (ParserException) e; throw e; } } public static ModelCompiler compile(Model model) { return new ModelCompiler(model); } public static SBAModel generateSBA(ModelCompiler compiledModel) { SBAModel model = new SBAModel(compiledModel); model.parseBioPEPA(); return model; } public static String[] getSolvers() { return Solvers.getSolverList(); } public static Solver getSolverInstance(String name) { return Solvers.getSolverInstance(name); } }