Mensagem de erro
Na mensagem, %s marca um valor que o motor preenche quando levanta o erro.
A história
O motor recusou o seu script porque ele aninha coisas fundo demais para a pilha da máquina. Vamos entender. Se um script aninha chamadas, blocos, coleções ou braços de match numa profundidade que a pilha não aguenta, o programa cairia do fim da pilha e morreria. O motor evita isso, e recusa pelo nome. Não existe um número de profundidade fixo e artificial. O limite é o da própria máquina, lido da memória RAM dela: o motor roda em threads cuja pilha é metade da RAM. Numa máquina real, isso quer dizer centenas de milhares de níveis, então um script que passe disso provavelmente foi gerado, e não escrito à mão. Se o parse acha, ele diz a linha. Se o percurso acha, está avaliando um modelo aninhado. Um exemplo: um gerador de código criou uma expressão com milhões de parênteses. A correção é achatar o aninhamento: ligue o valor interno a um nome antes. Ou rode numa máquina com mais memória.
Texto do catálogo de erros do motor do Rush.
