/*****************************************/
>lucene javacc 语法解析器结构分析
/*****************************************/
/*****************************************/
// * Query ::= ( Clause )*
// * Clause ::= ["+", "-"] [<TERM> ":"] ( <TERM> | "(" Query ")" )
/*****************************************/
/*****************************************/
//上面的表达式总结了当前.jjt文件的总体结构以及想法并且完整的表达出来他的思路
//上面的表达式需要javacc的写法来解释
//一个query是由多个Clause元素组成的因为(Clause)*被()*包围着这个表示循环
//并且在接着的第二行又解释了Cluase元素的组成
//clause是由可以带修饰符+或者-,或者可以有查询字段名字或者可以没有,然后后面
//跟着一本标准的查询单元或者是一个有括号包围分为一组的查询对象,因为上面写着
//query=(Clause)*从这里可以看出这里是不停的在递归寻找clause或者Query
/*****************************************/
/*****************************************/
//QueryParser.jj[主要的语法描述文件]
//CharStream.java[这个用于将输入的字符窜编程字符流]
//FastCharStream.java
//MultiFieldQueryParser.java[lucene用于多字段查询的解析器]
//ParseException.java[在语法解析器中发生的异常都使用这个类]
//QueryParser.java[这个类是重要的用于语法解析的类]
//QueryParserConstants.java[这类描述了在.jj中定义的token]
//QueryParserTokenManager.java
//Token.java [kind=对应到QueryParserConstants中的token的标识,image=根据token截取到的字符窜,next=下一个字符窜,specialToken=被定义成特殊字符的东西]
//TokenMgrError.java[在字符管理器中发生的异常都使用这个类]
/*****************************************/
lucene javacc 语法解析器结构分析
最新推荐文章于 2020-02-27 10:36:09 发布