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的比较
本文详细介绍了如何使用JavaCC编译器将ELParser.jj文件转化为ELParser.java,重点阐述了parse方法和CompositeExpression方法的实现。同时,文章还探讨了相关类如ELParserConstants和ELParserTokenManager的作用,以及javacc在自上而下分析法中的应用,通过Lucene源码解析进一步说明其工作原理。
2724

被折叠的 条评论
为什么被折叠?



