Antlr4 --- 規則檔案概覽
阿新 • • 發佈:2019-01-06
規則檔案既可以是詞法檔案{xxx}Lexer.g4和語法檔案{xxx}Parser.g4兩個規則檔案分開寫,也可以寫在一個檔案{xxx}.g4;
檔案結構
語法宣告
- {xxx}.g4檔案: grammar Name;
- {xxx}Lexer.g4檔案:lexer grammar Name;
- {xxx}Parser.g4檔案: parser grammar Name;
可選項設定
options
- superClass:用於生成xxxLexer.java、xxxParser.java等解析器原始碼;
- language: 指定解析器的語言,如Java;
- tokenVocab:toekn詞庫;
- TokenLabelType:預設的是antlr的Token型別,這裡可以使用自定義的token類,需要配合TokenFactory使用;
import
用於在{xxx}.g4檔案中匯入詞法規則檔案或者語法規則檔案;
actionName
- @header:定義類檔案頭。比如嵌入java的package、import宣告;
- @member:定義類檔案內容。比如類成員、方法;
語法規則
- 規則名:以小寫字母開頭;
- 規則結構:符合分支中的任一條件,即命中該規則;
ruleName : alternative1 | ... | alternativeN ;
詞法規則
- 規則名:以大寫字母開頭;
- 規則結構:符合分支中的任一條件,即命中該規則;
RULENANME : alternative1 | ... | alternativeN ;