Como configurar uma gramática que pode lidar com ambiguidade

Estou tentando criar uma gramática para analisar algumas fórmulas semelhantes ao Excel que eu criei, onde um caractere especial no início de uma seqüência de caracteres significa uma fonte diferente. Por exemplo, $pode significar uma string, portanto " $This is text" seria tratada como uma entrada...