Diferença prática entre as regras do analisador e as regras do lexer no ANTLR?

Eu entendo a teoria por trás da separação das regras do analisador e das regras do léxico em teoria, mas quais são as diferenças práticas entre essas duas declarações na ANTLR:

my_rule: ... ; MY_RULE: ... ; 

Eles resultam em diferentes trees AST? Desempenho diferente? Potenciais ambiguidades?

Jen escreveu :

… quais são as diferenças práticas entre essas duas declarações na ANTLR …

MY_RULE será usado para tokenizar sua fonte de input. Ele representa um bloco de construção fundamental do seu idioma.

my_rule é chamada do analisador, consiste em zero ou mais outras regras de analisador ou tokens produzidos pelo lexer.

Essa é a diferença.

Jen escreveu :

Eles resultam em diferentes trees AST? Desempenho diferente? …

O analisador constrói o AST usando tokens produzidos pelo lexer, então as questões não fazem sentido (para mim). Um léxico apenas “alimenta” o analisador em um stream unidimensional de tokens.