use of org.antlr.runtime.ANTLRStringStream in project SQLWindowing by hbutani.
the class ParseUtils method parseSelect.
public static SelectSpec parseSelect(String selectExprStr) throws WindowingException {
Windowing2Lexer lexer;
CommonTokenStream tokens;
Windowing2Parser parser = null;
CommonTree t;
CommonTreeNodeStream nodes;
QSpecBuilder2 qSpecBldr = null;
String err;
try {
lexer = new Windowing2Lexer(new ANTLRStringStream(selectExprStr));
tokens = new CommonTokenStream(lexer);
parser = new Windowing2Parser(tokens);
parser.setTreeAdaptor(TranslateUtils.adaptor);
t = (CommonTree) parser.select().getTree();
err = parser.getWindowingParseErrors();
if (err != null) {
throw new WindowingException(err);
}
} catch (WindowingException we) {
throw we;
} catch (Throwable te) {
err = parser.getWindowingParseErrors();
if (err != null) {
throw new WindowingException(err);
}
throw new WindowingException("Parse Error:" + te.toString(), te);
}
TranslateUtils.unescapeStringLiterals((ASTNode) t);
try {
nodes = new CommonTreeNodeStream(t);
nodes.setTokenStream(tokens);
qSpecBldr = new QSpecBuilder2(nodes);
SelectSpec selectSpec = qSpecBldr.select();
err = qSpecBldr.getWindowingParseErrors();
if (err != null) {
throw new WindowingException(err);
}
return selectSpec;
} catch (WindowingException we) {
throw we;
} catch (Throwable te) {
err = qSpecBldr.getWindowingParseErrors();
if (err != null) {
throw new WindowingException(err);
}
throw new WindowingException("Parse Error:" + te.toString(), te);
}
}
use of org.antlr.runtime.ANTLRStringStream in project drill by apache.
the class PhysicalOpUnitTestBase method parseExpr.
@Override
protected LogicalExpression parseExpr(String expr) {
ExprLexer lexer = new ExprLexer(new ANTLRStringStream(expr));
CommonTokenStream tokens = new CommonTokenStream(lexer);
ExprParser parser = new ExprParser(tokens);
try {
return parser.parse().e;
} catch (RecognitionException e) {
throw new RuntimeException("Error parsing expression: " + expr);
}
}
use of org.antlr.runtime.ANTLRStringStream in project drill by apache.
the class TestEvaluationVisitor method getExpr.
private LogicalExpression getExpr(String expr) throws Exception {
ExprLexer lexer = new ExprLexer(new ANTLRStringStream(expr));
CommonTokenStream tokens = new CommonTokenStream(lexer);
// tokens.fill();
// for(Token t : (List<Token>) tokens.getTokens()){
// System.out.println(t + "" + t.getType());
// }
// tokens.rewind();
ExprParser parser = new ExprParser(tokens);
parse_return ret = parser.parse();
return ret.e;
}
use of org.antlr.runtime.ANTLRStringStream in project drill by apache.
the class ExecTest method parseExpr.
protected LogicalExpression parseExpr(String expr) throws RecognitionException {
final ExprLexer lexer = new ExprLexer(new ANTLRStringStream(expr));
final CommonTokenStream tokens = new CommonTokenStream(lexer);
final ExprParser parser = new ExprParser(tokens);
final ExprParser.parse_return ret = parser.parse();
return ret.e;
}
use of org.antlr.runtime.ANTLRStringStream in project nifi by apache.
the class RecordPath method compile.
/**
* Compiles a RecordPath from the given text
*
* @param path the textual representation of the RecordPath
* @return the compiled RecordPath
* @throws RecordPathException if the given text is not a valid RecordPath
*/
public static RecordPath compile(final String path) throws RecordPathException {
try {
final CharStream input = new ANTLRStringStream(path);
final RecordPathLexer lexer = new RecordPathLexer(input);
final CommonTokenStream lexerTokenStream = new CommonTokenStream(lexer);
final RecordPathParser parser = new RecordPathParser(lexerTokenStream);
final Tree tree = (Tree) parser.pathExpression().getTree();
// We look at the first child, because 'tree' is a PATH_EXPRESSION and we really
// want the underlying PATH token.
final Tree firstChild = tree.getChild(0);
final int childType = firstChild.getType();
final boolean absolute;
final RecordPathSegment rootPath;
if (childType == PATH || childType == CHILD_REFERENCE) {
rootPath = new RootPath();
absolute = true;
} else {
rootPath = null;
absolute = false;
}
return RecordPathCompiler.compile(firstChild, rootPath, absolute);
} catch (final RecordPathException e) {
throw e;
} catch (final Exception e) {
throw new RecordPathException(e);
}
}
Aggregations