antlr - java

來源:趣味經驗館 1.68W

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

antlr java是什麼,讓我們一起了解一下?

antlr是一個基於 Java 開發的功能強大的語言識別工具,Antlr 以其簡介的語法和高速的運行效率在這類工具中出類拔萃。當你需要開發一種領域語言時,語言可能像 Excel 中的公式一樣複雜,也可能像本文中的例子一樣簡單(只有算術運算),這時你可以考慮使用 Antlr 來處理你的語言。

antlr java

那麼問題來了,antlr能做什麼?

1、程式語言處理

識別和處理程式語言是 Antlr 的首要任務,程式語言的處理是一項繁重複雜的任務,為了簡化處理,一般的編譯技術都將語言處理工作分為前端和後端兩個部分。其中前端包括詞法分析、語法分析、語義分析、中間代碼生成等若干步驟,後端包括目標代碼生成和代碼優化等步驟。

Antlr 致力於解決編譯前端的所有工作。使用 Anltr 的語法可以定義目標語言的詞法記號和語法規則,Antlr 自動生成目標語言的詞法分析器和語法分析器;此外,如果在語法規則中指定抽象語法樹的規則,在生成語法分析器的同時,Antlr 還能夠生成抽象語法樹;最終使用樹分析器遍歷抽象語法樹,完成語義分析和中間代碼生成。整個工作在 Anltr 強大的支持下,將變得非常輕鬆和愉快。 

2、文本處理

當需要文本處理時,首先想到的是正則表達式,使用 Anltr 的詞法分析器生成器,可以很容易的完成正則表達式能夠完成的所有工作;除此之外使用 Anltr 還可以完成一些正則表達式難以完成的工作,比如識別左括號和右括號的成對匹配等。

在應用中,如何在IDEA中安裝使用Antlr?

在Settings-Plugins中安裝ANTLR v4 grammar plugin

新建一個Maven項目,在pom.xml文件中添加ANTLR4插件和運行庫的依賴。注意一定要用最新版的,依賴,不知道最新版本號的可以自己google一下maven antlr4。

<dependencies><dependency><groupId>org.antlr</groupId><artifactid>antlr4-runtime</artifactid><version>4.5.3</version></dependency></dependencies><build><plugins><plugin><groupId>org.antlr</groupId><artifactId>antlr4-maven-plugin</artifactid><version>4.3</version><executions><execution><id>antlr</id><goals><goal>antlr4</goal></goals><phase>none</phase></execution></executions><configuration><outputDirectory>src/test/java</outputDirectory><listener>true</listener><treatWarningsAsErrors>true</treatWarningsAsErrors></configuration></plugin></plugins></build>

熱門標籤