Interpolação de string de análise em ANTLR

Estou trabalhando em uma DSL de manipulação de strings simples para propósitos internos, e gostaria que a linguagem suportasse a interpolação de strings como é usada em Ruby.

Por exemplo:

name = "Bob"
msg = "Hello ${name}!"
print(msg)   # prints "Hello Bob!"

Eu estou tentando implementar meu analisador em ANTLRv3, mas eu sou muito inexperiente com o uso de ANTLR, portanto, não tenho certeza de como implementar esse recurso. Até agora, eu especifiquei meus literais de string no lexer, mas neste caso, obviamente, precisarei lidar com o conteúdo de interpolação no analisador.

Minha gramática atual de string literal é assim:

STRINGLITERAL : '"' ( StringEscapeSeq | ~( '\\' | '"' | '\r' | '\n' ) )* '"' ;
fragment StringEscapeSeq : '\\' ( 't' | 'n' | 'r' | '"' | '\\' | '

Mover a manipulação literal de string para o analisador parece fazer com que todo o resto pare de funcionar como deveria. Pesquisas web curiosas não produziram nenhuma informação. Alguma sugestão de como começar isso?

| ('0'..'9')) ;

Mover a manipulação literal de string para o analisador parece fazer com que todo o resto pare de funcionar como deveria. Pesquisas web curiosas não produziram nenhuma informação. Alguma sugestão de como começar isso?

questionAnswers(1)

yourAnswerToTheQuestion