Skip to content

Versão 0.3

Pre-release
Pre-release

Choose a tag to compare

@thiagomg thiagomg released this 27 Oct 06:48
· 39 commits to main since this release

Linguagem

:_como_texto em mapas

Se o mapa tiver o campo :_como_texto (função de um argumento que devolve texto), escreva, escreva_erro, formate, junte e o + com texto usam essa função. Sem o campo, o mapa continua mapa{…}.

como_texto = funcao(fr) { formate("{}/{}", fr:numerador, fr:denominador) }
fr = mapa([:numerador -> 1, :denominador -> 4])
fr:_como_texto = como_texto
escreva(fr)            // 1/4
escreva("x" + fr)      // x1/4

Se :_como_texto formatar o mesmo mapa de novo, ou não devolver texto, o programa falha com erro claro.

Pilha de chamadas (stack trace)

erro: divisão por zero em app.lep:2:5
pilha de chamadas:
  0: boom (app.lep:2:5)
  1: <modulo> (app.lep:4:1)

Expressa Aula

Bugs variados corrigidos, dentre eles:

  • Copiar e colar entre janelas da Aula cola o texto inteiro. Antes o recuo elétrico no meio do colar cortava o trecho (por exemplo em mdc).
  • Recuo: inicio / { / fim dentro de string ou comentário não abrem bloco (escreva("início: …") deixa de recuar o resto do arquivo).
  • Destaque: palavras com acento (função, não, até, senão, início, contém) aparecem como palavra-chave.
  • Assinatura (tooltip): Escape esconde e só volta quando o cursor sai da chamada.
  • Erro: a saída mostra a pilha; clique no quadro vai à linha. O painel Pilha preenche no erro; duplo clique também salta. Aceita arquivo:linha:coluna e o formato 0: nome (arquivo:linha).

Exemplos

  • exemplos/lib/fracao.lep vira biblioteca: nova, soma, simplifica, mdc, mmc, em_texto, em_fracao.
  • exemplos/escola/calc_fracoes.lep soma frações e imprime 1/4 + 1/4 = 1/2.

Compatibilidade

Programas da 0.2.3 continuam válidos. Mapas passam a ter texto customizado só se o aluno definir :_como_texto.

Bugs conhecidos

  • A janela de ajuda não fecha normalmente quando aberta pela segunda vez