blob: 8b4b4b621d88482c3d5119c163d3e773318218ac [file] [log] [blame]
/*******************************************************************************
* 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));
}
}