Estrutura sintática

As gramáticas em ANTLR4 têm a seguinte estrutura sintática.

grammar Name;            // mandatory
options { ... }          // optional
import  { ... }          // optional
tokens { ... }           // optional
@actionName { ... }      // optional
rule1: ... ;             // parser and lexer rules
...

As regras léxicas e sintáticas podem aparecer misturadas e distinguem-se por a primeira letra do nome da regra ser minúscula (analisador sintático), ou maiúscula (analisador léxico).

A ordem pela qual as regras léxicas são definidas é muito importante.

É possível separar as gramáticas sintáticas das léxicas precedendo a palavra reservada grammar com as palavras reservadas parser ou lexer.

parser gramamar NameParser;
...
lexer grammar NameLexer;

A secção das opções permite definir algumas opções para os analisadores (eg. origem dos tokens, e a linguagem de programação de destino).

options { tokenVocab = NameLexer }

Qualquer opção pode ser redefinida por argumentos na invocação do ANTLR4.

A seção import relaciona-se com herança de gramáticas.

Last updated