CommonTree tree = (CommonTree) r.getTree();
// To walk the resulting tree we need a treenode stream:
CommonTreeNodeStream treeStream = new CommonTreeNodeStream( tree );
// AST nodes have payloads referring to the tokens from the Lexer:
treeStream.setTokenStream( tokens );
EntityNamesResolver entityNamesResolver = getDefinedEntityNames( session.getSessionFactory() );
FullTextSession fullTextSession = Search.getFullTextSession( session );
SearchFactoryImplementor searchFactory = (SearchFactoryImplementor) fullTextSession.getSearchFactory();
// Finally create the treewalker:
LuceneJPQLWalker walker = new LuceneJPQLWalker( treeStream, searchFactory, entityNamesResolver, namedParameters );
walker.statement();