Herança de gramáticas
A secção de import implementa um mecanismo de herança entre gramáticas.
Por exemplo as gramáticas:
grammar ELang;
stat: (expr ';')* EOF;
expr: INT;
INT: [0-9]+;
WS: [ \r\t\n]+ -> skip;
grammar MyELang;
import ELang;
expr: INT | ID;
ID: [a-z]+;
Geram a gramática MyELang equivalente:
grammar MyELang ;
stat : (expr ’;’ )+ EOF ;
expr : INT | ID ;
ID : [a-z]+ ;
INT : [0-9]+ ;
WS : [ \r\t\n]+ -> skip ;
Isto é, as regras são herdadas, excepto quando são redefinidas na gramática descendente.
Este mecanismo permite herança múltipla:

Note-se a importância na ordem dos imports na gramática Nested.
A regra r vem da gramática G3 e não da gramática G2.
Last updated