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 void parse(String raw, SpiQuery 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 adapter = new EqlAdapter(query); ParseTreeWalker walker = new ParseTreeWalker(); walker.walk(adapter, context); query.simplifyExpressions(); } }