mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
27 lines
881 B
Java
27 lines
881 B
Java
package com.avaje.ebeaninternal.server.grammer;
|
|
|
|
import com.avaje.ebeaninternal.api.SpiQuery;
|
|
import com.avaje.ebeaninternal.server.grammer.antlr.EQLLexer;
|
|
import com.avaje.ebeaninternal.server.grammer.antlr.EQLParser;
|
|
import org.antlr.v4.runtime.ANTLRInputStream;
|
|
import org.antlr.v4.runtime.CommonTokenStream;
|
|
import org.antlr.v4.runtime.tree.ParseTreeWalker;
|
|
|
|
public class EqlParser {
|
|
|
|
public static <T> void parse(String raw, SpiQuery<T> query) {
|
|
|
|
EQLLexer lexer = new EQLLexer(new ANTLRInputStream(raw));
|
|
CommonTokenStream tokens = new CommonTokenStream(lexer);
|
|
EQLParser parser = new EQLParser(tokens);
|
|
EQLParser.Select_statementContext context = parser.select_statement();
|
|
|
|
EqlAdapter<T> adapter = new EqlAdapter<T>(query);
|
|
|
|
ParseTreeWalker walker = new ParseTreeWalker();
|
|
walker.walk(adapter, context);
|
|
|
|
query.simplifyExpressions();
|
|
}
|
|
}
|