1. 程式人生 > >Antlr4 --- 規則檔案概覽

Antlr4 --- 規則檔案概覽

  規則檔案既可以是詞法檔案{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 ;