} else {
SelectorLexer lexer = new SelectorLexer(
new StringReader(expression));
lexer.initialise();
SelectorParser parser = new SelectorParser(lexer);
parser.initialise();
parser.selector(); // start parsing at the selector rule
SelectorTreeParser builder = new SelectorTreeParser();
builder.initialise(new DefaultExpressionFactory());
_evaluator = builder.selector(parser.getAST());
}
} catch (Exception exception) {
throw new InvalidSelectorException(exception.toString());
}
}