FromDescr parent = (FromDescr) parser.getParent();
final CharStream charStream = new ANTLRStringStream( expression.trim() );
final DRLLexer lexer = new DRLLexer( charStream );
final TokenStream tokenStream = new CommonTokenStream( lexer );
final DRLParser drlParser = new DRLParser( tokenStream );
drlParser.setTreeAdaptor(new DroolsTreeAdaptor());
try {
Tree fromSourceTree = (Tree) drlParser.from_source().getTree();
if (!drlParser.hasErrors()){
CommonTreeNodeStream nodes = new CommonTreeNodeStream(fromSourceTree);
nodes.setTokenStream(tokenStream);
DescrBuilderTree walker = new DescrBuilderTree(nodes);
from_source_clause_return fromReturn = walker.from_source_clause();
parent.setDataSource(fromReturn.retAccessorDescr);