ANTLR應用情境

來源:互聯網
上載者:User

ANTLR是用java實現的一個語言辨識器,它通過定義一個要識別目標語言的結構檔案,然後用它的工具將該檔案產生為可解析目標語言的java代碼,利用產生的程式碼就可對目標語言進行解析。這種方式避免了自己編寫java代碼去解析文本,可利用ANTLR解析JSON,HTML,XML,EDIFACT,或自訂的報文格式。解析出來的資訊需要做什麼處理也可以在結構檔案中定義。下面給出一些定義目標語言元素的描述方式:

帶雙引號的字串:  STRING: ' "' ( '\"' | ~('"') )* '" '

字母數字底線:   ID: 'a'..'z'|'0'..'9'|'_'

擷取解析出的內容:   s=ID+  {System.out.println($s.text);} 

s的內容為1個或多個字母數字,當目標字串符合這個條件時,可以從$s.text獲得目標中的實際內容。

ANTLR結構定義內容很多,具體文法格式和使用方式見 http://www.antlr.org/  或書籍: The Definitive Guide ANTLR Reference

利用ANTLR,可以設計特定領域語言(DSL),類似hibernate中的HQL,用DSL來定義要執行操作的高層文法,這種文法接近人可理解的語言,由DSL到電腦語言的翻譯則通過ANTLR來做,可在ANTLR的結構語言中定義DSL命令具體要執行何種操作。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.