if(pe != null)
return pe;
try {
NetUIELParser learn = new NetUIELParser(new StringReader(expression));
ParsedExpression expr = learn.parse();
expr.seal();
/* infrequent; this should only happen when there is a cache miss */
synchronized(PARSED_CACHE) {
PARSED_CACHE.put(expression, expr);