/**
* Parse a filter expression.
*
* @param filter the filter expression
* @return compiled nodes
*/
public List<SquigglyNode> parse(String filter) {
filter = StringUtils.trim(filter);
if (StringUtils.isEmpty(filter)) {
return Collections.emptyList();
}
// get it from the cache if we can
List<SquigglyNode> cachedNodes = CACHE.getIfPresent(filter);
if (cachedNodes != null) {
return cachedNodes;
}
SquigglyExpressionLexer lexer = ThrowingErrorListener.overwrite(new SquigglyExpressionLexer(new ANTLRInputStream(filter)));
SquigglyExpressionParser parser = ThrowingErrorListener.overwrite(new SquigglyExpressionParser(new CommonTokenStream(lexer)));
Visiter visiter = new Visiter();
List<SquigglyNode> nodes = visiter.visit(parser.parse());
CACHE.put(filter, nodes);
return nodes;
}
SquigglyParser.java 文件源码
java
阅读 22
收藏 0
点赞 0
评论 0
项目:squiggly-filter-jackson
作者:
评论列表
文章目录