/******************************************************************************* * Copyright (c) 2006 Oracle Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Oracle Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.bpel.xpath10.parser; import org.antlr.runtime.ANTLRStringStream; import org.antlr.runtime.RecognitionException; import org.antlr.runtime.CommonTokenStream; import org.eclipse.bpel.xpath10.Expr; /** * @author Michal Chmielewski (michal.chmielewski@oracle.com) * @date Jun 23, 2008 * */ public class XPath10Factory { /** * @param source * @return a brand new shiny xpath expr [ whatever it may be ] * @throws XPath10Exception */ static public Expr create (String source) throws XPath10Exception { XPath10Parser parser = createParser(source); try { return parser.expr().result; } catch (RecognitionException re) { throw new XPath10Exception(re.getLocalizedMessage(),re.getCause(),re.index); } catch (XPath10Exception ex) { throw ex; } catch (Throwable t) { throw new XPath10Exception(t.getLocalizedMessage(),t.getCause(),-1); } } static protected XPath10Parser createParser(String source) { return new XPath10Parser(new CommonTokenStream(createLexer(source))); } static XPath10Lexer createLexer(String testString) { return new XPath10Lexer(new ANTLRStringStream(testString)); } }