JavaCC编译ELParser.jj生成ELParser.java
ELParser.java 语法分析器
---parse方法---
public static Node parse(String ref) throws ELException
{
try {
return (new ELParser(new StringReader(ref))).CompositeExpression();
} catch (ParseException pe) {
throw new ELException(pe.getMessage(), pe);
}
}
parse方法会完全从ELParser.jj拷贝到ELParser.java。
---CompositeExpression方法---
CompositeExpression方法被javacc由ELParser.jj描述的规则生成。
其他类:
ELParserConstants.java
ELParserTokenManager.java 词法分析器
《Lucene源码解析》p363 javacc使用的是编译原理里自上而下分析法,基本采用LL(1)方法
jjtree
http://www.softwaresecretweapons.com/jspwiki/jjtree-tutorial-for-advanced-java-parsing
其他
http://code.alibabatech.com/wiki/display/SimpleEL/Home
dsl
ELParser与QueryParser的比较