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[在字符管理器中發生的異常都使用這個類]
/*****************************************/


發佈了92 篇原創文章 · 獲贊 3 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章