Regras sintácticas

Construção de regras: síntese

Syntax
Description

r: ...;

Define rule r

x

Match rule element x

x y ... z

Match a sequence of rule elements

(...)

Subrule

x?

Match rule element x

x*

Match rule element x zero or more times

x+

Match rule element x one or more times

x | ... | z

Multiple alternatives

Regras sintácticas: movendo informação

Em ANTRL4 cada regra sintáctica pode ser vista como uma espécie de método, podendo-se havendo mecanismos de comunicação similares: argumentos e resultado, assim como variáveis locais à regra.

Podemos também anotar regras com um nome alternativo:

expr: el = expr '+' e2 = expr
    | INT;

Podemos também etiquetar com nomes, diferentes alternativas duma regra:

expr: expr ’*’ e2=expr # ExprMul t
    | expr ’+’ e2=expr # ExprAdd
    | INT # ExprInt
    ;

O ANTLR4 irá gerar informação de contexto para cada nome (incluindo métodos para usar no listener e/ou nos visitors).

Last updated