Can you summarize the following document?
        
  早期Antlr的LL(*)文法仍不支援“左遞迴”(left-recursion),這是所有LL剖析器的侷限,在左遞迴過程沒有消耗掉任何token, LL剖析器很容易造成stack overflow。至於如何消除左遞迴問題,在ANTLR 3中會將parsing策略退化為LL(1) + 回溯的形式。ANTLRWorks則提供一些自動消除左遞迴的功能,但不實用。接下來的ANTLR v4大力支援Kleene Closure表示法,透過kleene star(*)和kleene cross(+)的語法糖(syntax sugar),直接以while語句取代遞迴,總算可以順利解決LL分析法所不允許的左遞迴(但仍不能應付間接左遞迴,比如兩條分支擁有共同的遞迴規則作為字首),因此可相容Yacc的文法。再者,ANTLR對於LL(*)不能正確分析的情況,還支援語義斷言(Semantic Predicate)來輔助判斷, Semantic Predicate可以是任何邏輯,只需返回bool值。  目前Hibernate與WebLogic都是使用ANTLR做為來解析HQL。在NetBeans IDE中更以ANTLR解析C++。Twitter搜尋使用ANTLR解析,一天超過200億次查詢。  雖然ANTLR本身是免費的,但《The Definitive ANTLR Reference》這本參考書則屬於使用者付費。目前免費檔案極少。

  下列為ANTLR的使用列表:
ANTLR(全名:ANother Tool for Language Recognition)是基於LL(*)演算法實現的語法解析器生成器(parser generator),用Java語言編寫,使用自上而下(top-down)的遞迴下降LL剖析器方法。由舊金山大學的Terence Parr博士等人於1989年開始發展。