環境配置
這裏參考了https://blog.csdn.net/sherrywong1220/article/details/53697737
1.安裝IDEA.
2.在File-Settings-Plugins中安裝ANTLR v4 grammar plugin插件.
3.新建一個Maven項目,在pom.xml文件中添加ANTLR4插件和運行庫的依賴,注意一定要用最新版的。最後在pom.xml中</project>前添加代碼:
<dependencies>
<dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr4-runtime</artifactId>
<version>4.7</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.antlr</groupId>
<artifactId>antlr4</artifactId>
<version>4.7</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>
項目流程
- 新建一個g4文件,在裏面寫入要識別語言的詞法規則和語法規則
.
2. 寫完後,右鍵prolog.g4,選擇Configure ANTLR,配置output路徑。
詞法分析器和語法分析器會生成在java文件夾下的com.antlr.out包下
3.右鍵prolog.g4,選擇Generate ANTLR Recognizer生成所有的監聽器Java代碼。可以看到生成的結果。
4.最後編寫主函數和轉換函數。最後的項目目錄如下:
文法可視化
- 打開Antlr Preview。
- 在g4中選中一個語法定義符號,如expr。右鍵選中的符合,選擇Text Rule expr。
- 在ANTLR Preview中選擇input,輸入表達式,則能顯示出可視化的文法。
https://github.com/antlr/grammars-v4 這個GitHub項目上有幾乎所有語言的g4文件。
antlr4權威指南上的代碼在英文版的書上的鏈接裏有。
我做了一個prolog語言轉自然語言的小例子,是仿照antlr4權威指南上的json轉xml的監聽器方法做的,https://github.com/mantuoluozk/antlr4_prolog2NL