表达式解析

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的比较

猜你喜欢

转载自nemogu.iteye.com/blog/1485658