lucene javacc 语法解析器结构分析

/*****************************************/
>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[在字符管理器中发生的异常都使用这个类]
/*****************************************/


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值