@designliquido/delegua 0.51.0 → 0.52.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/avaliador-sintatico/avaliador-sintatico-base.d.ts +1 -1
- package/avaliador-sintatico/avaliador-sintatico-base.d.ts.map +1 -1
- package/avaliador-sintatico/avaliador-sintatico-base.js +4 -4
- package/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
- package/avaliador-sintatico/avaliador-sintatico.d.ts +2 -6
- package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
- package/avaliador-sintatico/avaliador-sintatico.js +4 -54
- package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
- package/avaliador-sintatico/comum.d.ts +4 -1
- package/avaliador-sintatico/comum.d.ts.map +1 -1
- package/avaliador-sintatico/comum.js +88 -0
- package/avaliador-sintatico/comum.js.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-calango.d.ts +33 -0
- package/avaliador-sintatico/dialetos/avaliador-sintatico-calango.d.ts.map +1 -0
- package/avaliador-sintatico/dialetos/avaliador-sintatico-calango.js +231 -0
- package/avaliador-sintatico/dialetos/avaliador-sintatico-calango.js.map +1 -0
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts +1 -0
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +180 -140
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.d.ts +1 -2
- package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.d.ts.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.js.map +1 -1
- package/avaliador-sintatico/traducao/avaliador-sintatico-javascript.d.ts +1 -1
- package/avaliador-sintatico/traducao/avaliador-sintatico-javascript.d.ts.map +1 -1
- package/avaliador-sintatico/traducao/avaliador-sintatico-javascript.js.map +1 -1
- package/bibliotecas/biblioteca-global.d.ts.map +1 -1
- package/bibliotecas/biblioteca-global.js +18 -6
- package/bibliotecas/biblioteca-global.js.map +1 -1
- package/bibliotecas/primitivas-vetor.d.ts.map +1 -1
- package/bibliotecas/primitivas-vetor.js +6 -3
- package/bibliotecas/primitivas-vetor.js.map +1 -1
- package/bin/package.json +1 -1
- package/construtos/acesso-elemento-matriz.d.ts +4 -3
- package/construtos/acesso-elemento-matriz.d.ts.map +1 -1
- package/construtos/acesso-elemento-matriz.js +6 -0
- package/construtos/acesso-elemento-matriz.js.map +1 -1
- package/construtos/acesso-indice-variavel.d.ts +1 -0
- package/construtos/acesso-indice-variavel.d.ts.map +1 -1
- package/construtos/acesso-indice-variavel.js +5 -0
- package/construtos/acesso-indice-variavel.js.map +1 -1
- package/construtos/acesso-metodo-ou-propriedade.d.ts +1 -0
- package/construtos/acesso-metodo-ou-propriedade.d.ts.map +1 -1
- package/construtos/acesso-metodo-ou-propriedade.js +5 -0
- package/construtos/acesso-metodo-ou-propriedade.js.map +1 -1
- package/construtos/acesso-metodo.d.ts +1 -0
- package/construtos/acesso-metodo.d.ts.map +1 -1
- package/construtos/acesso-metodo.js +3 -0
- package/construtos/acesso-metodo.js.map +1 -1
- package/construtos/acesso-propriedade.d.ts +1 -0
- package/construtos/acesso-propriedade.d.ts.map +1 -1
- package/construtos/acesso-propriedade.js +3 -0
- package/construtos/acesso-propriedade.js.map +1 -1
- package/construtos/agrupamento.d.ts +1 -0
- package/construtos/agrupamento.d.ts.map +1 -1
- package/construtos/agrupamento.js +3 -0
- package/construtos/agrupamento.js.map +1 -1
- package/construtos/argumento-referencia-funcao.d.ts +1 -0
- package/construtos/argumento-referencia-funcao.d.ts.map +1 -1
- package/construtos/argumento-referencia-funcao.js +3 -0
- package/construtos/argumento-referencia-funcao.js.map +1 -1
- package/construtos/atribuicao-por-indice.d.ts +1 -0
- package/construtos/atribuicao-por-indice.d.ts.map +1 -1
- package/construtos/atribuicao-por-indice.js +6 -0
- package/construtos/atribuicao-por-indice.js.map +1 -1
- package/construtos/atribuicao-por-indices-matriz.d.ts +6 -5
- package/construtos/atribuicao-por-indices-matriz.d.ts.map +1 -1
- package/construtos/atribuicao-por-indices-matriz.js +7 -0
- package/construtos/atribuicao-por-indices-matriz.js.map +1 -1
- package/construtos/atribuir.d.ts +3 -2
- package/construtos/atribuir.d.ts.map +1 -1
- package/construtos/atribuir.js +7 -0
- package/construtos/atribuir.js.map +1 -1
- package/construtos/binario.d.ts +1 -0
- package/construtos/binario.d.ts.map +1 -1
- package/construtos/binario.js +6 -0
- package/construtos/binario.js.map +1 -1
- package/construtos/chamada.d.ts +1 -0
- package/construtos/chamada.d.ts.map +1 -1
- package/construtos/chamada.js +4 -0
- package/construtos/chamada.js.map +1 -1
- package/construtos/comentario-como-construto.d.ts +1 -0
- package/construtos/comentario-como-construto.d.ts.map +1 -1
- package/construtos/comentario-como-construto.js +3 -0
- package/construtos/comentario-como-construto.js.map +1 -1
- package/construtos/componente-linguagem.d.ts +1 -0
- package/construtos/componente-linguagem.d.ts.map +1 -1
- package/construtos/componente-linguagem.js +3 -0
- package/construtos/componente-linguagem.js.map +1 -1
- package/construtos/constante.d.ts +1 -0
- package/construtos/constante.d.ts.map +1 -1
- package/construtos/constante.js +3 -0
- package/construtos/constante.js.map +1 -1
- package/construtos/construto.d.ts +1 -0
- package/construtos/construto.d.ts.map +1 -1
- package/construtos/decorador.d.ts +1 -0
- package/construtos/decorador.d.ts.map +1 -1
- package/construtos/decorador.js +4 -0
- package/construtos/decorador.js.map +1 -1
- package/construtos/definir-valor.d.ts +1 -0
- package/construtos/definir-valor.d.ts.map +1 -1
- package/construtos/definir-valor.js +3 -0
- package/construtos/definir-valor.js.map +1 -1
- package/construtos/dicionario.d.ts +1 -0
- package/construtos/dicionario.d.ts.map +1 -1
- package/construtos/dicionario.js +3 -0
- package/construtos/dicionario.js.map +1 -1
- package/construtos/expressao-regular.d.ts +1 -0
- package/construtos/expressao-regular.d.ts.map +1 -1
- package/construtos/expressao-regular.js +3 -0
- package/construtos/expressao-regular.js.map +1 -1
- package/construtos/fim-para.d.ts +1 -0
- package/construtos/fim-para.d.ts.map +1 -1
- package/construtos/fim-para.js +3 -0
- package/construtos/fim-para.js.map +1 -1
- package/construtos/formatacao-escrita.d.ts +1 -0
- package/construtos/formatacao-escrita.d.ts.map +1 -1
- package/construtos/formatacao-escrita.js +3 -0
- package/construtos/formatacao-escrita.js.map +1 -1
- package/construtos/funcao.d.ts +1 -0
- package/construtos/funcao.d.ts.map +1 -1
- package/construtos/funcao.js +4 -0
- package/construtos/funcao.js.map +1 -1
- package/construtos/index.d.ts +1 -0
- package/construtos/index.d.ts.map +1 -1
- package/construtos/index.js +1 -0
- package/construtos/index.js.map +1 -1
- package/construtos/isto.d.ts +1 -0
- package/construtos/isto.d.ts.map +1 -1
- package/construtos/isto.js +3 -0
- package/construtos/isto.js.map +1 -1
- package/construtos/leia.d.ts +1 -0
- package/construtos/leia.d.ts.map +1 -1
- package/construtos/leia.js +3 -0
- package/construtos/leia.js.map +1 -1
- package/construtos/literal.d.ts +1 -0
- package/construtos/literal.d.ts.map +1 -1
- package/construtos/literal.js +3 -0
- package/construtos/literal.js.map +1 -1
- package/construtos/logico.d.ts +1 -0
- package/construtos/logico.d.ts.map +1 -1
- package/construtos/logico.js +5 -0
- package/construtos/logico.js.map +1 -1
- package/construtos/referencia-biblioteca-global.d.ts +1 -0
- package/construtos/referencia-biblioteca-global.d.ts.map +1 -1
- package/construtos/referencia-biblioteca-global.js +3 -0
- package/construtos/referencia-biblioteca-global.js.map +1 -1
- package/construtos/referencia-funcao.d.ts +1 -0
- package/construtos/referencia-funcao.d.ts.map +1 -1
- package/construtos/referencia-funcao.js +3 -0
- package/construtos/referencia-funcao.js.map +1 -1
- package/construtos/separador.d.ts +1 -0
- package/construtos/separador.d.ts.map +1 -1
- package/construtos/separador.js +3 -0
- package/construtos/separador.js.map +1 -1
- package/construtos/super.d.ts +1 -0
- package/construtos/super.d.ts.map +1 -1
- package/construtos/super.js +3 -0
- package/construtos/super.js.map +1 -1
- package/construtos/tipo-de.d.ts +1 -0
- package/construtos/tipo-de.d.ts.map +1 -1
- package/construtos/tipo-de.js +3 -0
- package/construtos/tipo-de.js.map +1 -1
- package/construtos/tupla.d.ts +11 -0
- package/construtos/tupla.d.ts.map +1 -0
- package/construtos/tupla.js.map +1 -0
- package/construtos/tuplas/deceto.d.ts +14 -12
- package/construtos/tuplas/deceto.d.ts.map +1 -1
- package/construtos/tuplas/deceto.js +15 -1
- package/construtos/tuplas/deceto.js.map +1 -1
- package/construtos/tuplas/dupla.d.ts +6 -4
- package/construtos/tuplas/dupla.d.ts.map +1 -1
- package/construtos/tuplas/dupla.js +6 -1
- package/construtos/tuplas/dupla.js.map +1 -1
- package/construtos/tuplas/index.d.ts +0 -1
- package/construtos/tuplas/index.d.ts.map +1 -1
- package/construtos/tuplas/index.js +0 -1
- package/construtos/tuplas/index.js.map +1 -1
- package/construtos/tuplas/noneto.d.ts +13 -11
- package/construtos/tuplas/noneto.d.ts.map +1 -1
- package/construtos/tuplas/noneto.js +13 -1
- package/construtos/tuplas/noneto.js.map +1 -1
- package/construtos/tuplas/octeto.d.ts +12 -10
- package/construtos/tuplas/octeto.d.ts.map +1 -1
- package/construtos/tuplas/octeto.js +12 -1
- package/construtos/tuplas/octeto.js.map +1 -1
- package/construtos/tuplas/quarteto.d.ts +8 -6
- package/construtos/tuplas/quarteto.d.ts.map +1 -1
- package/construtos/tuplas/quarteto.js +8 -1
- package/construtos/tuplas/quarteto.js.map +1 -1
- package/construtos/tuplas/quinteto.d.ts +9 -7
- package/construtos/tuplas/quinteto.d.ts.map +1 -1
- package/construtos/tuplas/quinteto.js +9 -1
- package/construtos/tuplas/quinteto.js.map +1 -1
- package/construtos/tuplas/septeto.d.ts +11 -9
- package/construtos/tuplas/septeto.d.ts.map +1 -1
- package/construtos/tuplas/septeto.js +11 -1
- package/construtos/tuplas/septeto.js.map +1 -1
- package/construtos/tuplas/sexteto.d.ts +10 -8
- package/construtos/tuplas/sexteto.d.ts.map +1 -1
- package/construtos/tuplas/sexteto.js +10 -1
- package/construtos/tuplas/sexteto.js.map +1 -1
- package/construtos/tuplas/trio.d.ts +7 -5
- package/construtos/tuplas/trio.d.ts.map +1 -1
- package/construtos/tuplas/trio.js +7 -1
- package/construtos/tuplas/trio.js.map +1 -1
- package/construtos/unario.d.ts +2 -1
- package/construtos/unario.d.ts.map +1 -1
- package/construtos/unario.js +3 -0
- package/construtos/unario.js.map +1 -1
- package/construtos/variavel.d.ts +1 -0
- package/construtos/variavel.d.ts.map +1 -1
- package/construtos/variavel.js +3 -0
- package/construtos/variavel.js.map +1 -1
- package/construtos/vetor.d.ts +1 -0
- package/construtos/vetor.d.ts.map +1 -1
- package/construtos/vetor.js +3 -0
- package/construtos/vetor.js.map +1 -1
- package/declaracoes/aleatorio.d.ts +1 -0
- package/declaracoes/aleatorio.d.ts.map +1 -1
- package/declaracoes/aleatorio.js +4 -0
- package/declaracoes/aleatorio.js.map +1 -1
- package/declaracoes/bloco.d.ts +3 -2
- package/declaracoes/bloco.d.ts.map +1 -1
- package/declaracoes/bloco.js +8 -0
- package/declaracoes/bloco.js.map +1 -1
- package/declaracoes/cabecalho-programa.d.ts +4 -0
- package/declaracoes/cabecalho-programa.d.ts.map +1 -1
- package/declaracoes/cabecalho-programa.js +6 -0
- package/declaracoes/cabecalho-programa.js.map +1 -1
- package/declaracoes/classe.d.ts +1 -0
- package/declaracoes/classe.d.ts.map +1 -1
- package/declaracoes/classe.js +15 -0
- package/declaracoes/classe.js.map +1 -1
- package/declaracoes/comentario.d.ts +1 -0
- package/declaracoes/comentario.d.ts.map +1 -1
- package/declaracoes/comentario.js +3 -0
- package/declaracoes/comentario.js.map +1 -1
- package/declaracoes/const-multiplo.d.ts +1 -0
- package/declaracoes/const-multiplo.d.ts.map +1 -1
- package/declaracoes/const-multiplo.js +4 -0
- package/declaracoes/const-multiplo.js.map +1 -1
- package/declaracoes/const.d.ts +1 -0
- package/declaracoes/const.d.ts.map +1 -1
- package/declaracoes/const.js +3 -0
- package/declaracoes/const.js.map +1 -1
- package/declaracoes/continua.d.ts +1 -0
- package/declaracoes/continua.d.ts.map +1 -1
- package/declaracoes/continua.js +3 -0
- package/declaracoes/continua.js.map +1 -1
- package/declaracoes/declaracao.d.ts +3 -1
- package/declaracoes/declaracao.d.ts.map +1 -1
- package/declaracoes/declaracao.js +3 -0
- package/declaracoes/declaracao.js.map +1 -1
- package/declaracoes/enquanto.d.ts +1 -0
- package/declaracoes/enquanto.d.ts.map +1 -1
- package/declaracoes/enquanto.js +4 -0
- package/declaracoes/enquanto.js.map +1 -1
- package/declaracoes/escolha.d.ts +1 -0
- package/declaracoes/escolha.d.ts.map +1 -1
- package/declaracoes/escolha.js +4 -0
- package/declaracoes/escolha.js.map +1 -1
- package/declaracoes/escreva-mesma-linha.d.ts +1 -0
- package/declaracoes/escreva-mesma-linha.d.ts.map +1 -1
- package/declaracoes/escreva-mesma-linha.js +3 -0
- package/declaracoes/escreva-mesma-linha.js.map +1 -1
- package/declaracoes/escreva.d.ts +1 -0
- package/declaracoes/escreva.d.ts.map +1 -1
- package/declaracoes/escreva.js +3 -0
- package/declaracoes/escreva.js.map +1 -1
- package/declaracoes/expressao.d.ts +1 -0
- package/declaracoes/expressao.d.ts.map +1 -1
- package/declaracoes/expressao.js +3 -0
- package/declaracoes/expressao.js.map +1 -1
- package/declaracoes/falhar.d.ts +1 -0
- package/declaracoes/falhar.d.ts.map +1 -1
- package/declaracoes/falhar.js +3 -0
- package/declaracoes/falhar.js.map +1 -1
- package/declaracoes/fazer.d.ts +2 -1
- package/declaracoes/fazer.d.ts.map +1 -1
- package/declaracoes/fazer.js +4 -0
- package/declaracoes/fazer.js.map +1 -1
- package/declaracoes/funcao.d.ts +1 -0
- package/declaracoes/funcao.d.ts.map +1 -1
- package/declaracoes/funcao.js +4 -0
- package/declaracoes/funcao.js.map +1 -1
- package/declaracoes/importar.d.ts +1 -0
- package/declaracoes/importar.d.ts.map +1 -1
- package/declaracoes/importar.js +3 -0
- package/declaracoes/importar.js.map +1 -1
- package/declaracoes/inicio-algoritmo.d.ts +1 -0
- package/declaracoes/inicio-algoritmo.d.ts.map +1 -1
- package/declaracoes/inicio-algoritmo.js +5 -0
- package/declaracoes/inicio-algoritmo.js.map +1 -1
- package/declaracoes/para-cada.d.ts +1 -0
- package/declaracoes/para-cada.d.ts.map +1 -1
- package/declaracoes/para-cada.js +4 -0
- package/declaracoes/para-cada.js.map +1 -1
- package/declaracoes/para.d.ts +2 -1
- package/declaracoes/para.d.ts.map +1 -1
- package/declaracoes/para.js +11 -0
- package/declaracoes/para.js.map +1 -1
- package/declaracoes/propriedade-classe.d.ts +1 -0
- package/declaracoes/propriedade-classe.d.ts.map +1 -1
- package/declaracoes/propriedade-classe.js +3 -0
- package/declaracoes/propriedade-classe.js.map +1 -1
- package/declaracoes/retorna.d.ts +1 -0
- package/declaracoes/retorna.d.ts.map +1 -1
- package/declaracoes/retorna.js +3 -0
- package/declaracoes/retorna.js.map +1 -1
- package/declaracoes/se.d.ts +3 -2
- package/declaracoes/se.d.ts.map +1 -1
- package/declaracoes/se.js +4 -0
- package/declaracoes/se.js.map +1 -1
- package/declaracoes/sustar.d.ts +1 -0
- package/declaracoes/sustar.d.ts.map +1 -1
- package/declaracoes/sustar.js +3 -0
- package/declaracoes/sustar.js.map +1 -1
- package/declaracoes/tendo-como.d.ts +1 -0
- package/declaracoes/tendo-como.d.ts.map +1 -1
- package/declaracoes/tendo-como.js +4 -0
- package/declaracoes/tendo-como.js.map +1 -1
- package/declaracoes/tente.d.ts +3 -2
- package/declaracoes/tente.d.ts.map +1 -1
- package/declaracoes/tente.js +4 -0
- package/declaracoes/tente.js.map +1 -1
- package/declaracoes/var-multiplo.d.ts +1 -0
- package/declaracoes/var-multiplo.d.ts.map +1 -1
- package/declaracoes/var-multiplo.js +4 -0
- package/declaracoes/var-multiplo.js.map +1 -1
- package/declaracoes/var.d.ts +1 -0
- package/declaracoes/var.d.ts.map +1 -1
- package/declaracoes/var.js +3 -0
- package/declaracoes/var.js.map +1 -1
- package/interfaces/avaliador-sintatico-interface.d.ts +2 -0
- package/interfaces/avaliador-sintatico-interface.d.ts.map +1 -1
- package/interfaces/index.d.ts +1 -0
- package/interfaces/index.d.ts.map +1 -1
- package/interfaces/index.js +1 -0
- package/interfaces/index.js.map +1 -1
- package/interfaces/interpretador-interface.d.ts +3 -2
- package/interfaces/interpretador-interface.d.ts.map +1 -1
- package/interfaces/resultado-parcial-interpretador-interface.d.ts +8 -0
- package/interfaces/resultado-parcial-interpretador-interface.d.ts.map +1 -0
- package/interfaces/resultado-parcial-interpretador-interface.js +3 -0
- package/interfaces/resultado-parcial-interpretador-interface.js.map +1 -0
- package/interfaces/retornos/index.d.ts +1 -1
- package/interfaces/retornos/index.d.ts.map +1 -1
- package/interfaces/retornos/index.js +1 -1
- package/interfaces/retornos/index.js.map +1 -1
- package/interfaces/retornos/retorno-interpretador-interface.d.ts +7 -0
- package/interfaces/retornos/retorno-interpretador-interface.d.ts.map +1 -0
- package/interfaces/retornos/{retorno-interpretador.js → retorno-interpretador-interface.js} +1 -1
- package/interfaces/retornos/retorno-interpretador-interface.js.map +1 -0
- package/interfaces/variavel-interface.d.ts +2 -3
- package/interfaces/variavel-interface.d.ts.map +1 -1
- package/interpretador/depuracao/comum.d.ts.map +1 -1
- package/interpretador/depuracao/comum.js +2 -1
- package/interpretador/depuracao/comum.js.map +1 -1
- package/interpretador/depuracao/interpretador-base-com-depuracao.d.ts +2 -2
- package/interpretador/depuracao/interpretador-base-com-depuracao.d.ts.map +1 -1
- package/interpretador/depuracao/interpretador-base-com-depuracao.js.map +1 -1
- package/interpretador/depuracao/interpretador-com-depuracao.d.ts +2 -2
- package/interpretador/depuracao/interpretador-com-depuracao.d.ts.map +1 -1
- package/interpretador/depuracao/interpretador-com-depuracao.js.map +1 -1
- package/interpretador/dialetos/calango/interpretador-calango.d.ts +5 -0
- package/interpretador/dialetos/calango/interpretador-calango.d.ts.map +1 -0
- package/interpretador/dialetos/calango/interpretador-calango.js +8 -0
- package/interpretador/dialetos/calango/interpretador-calango.js.map +1 -0
- package/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts +3 -3
- package/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts.map +1 -1
- package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +1 -0
- package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
- package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.d.ts +3 -2
- package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.d.ts.map +1 -1
- package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js +3 -0
- package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js.map +1 -1
- package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.d.ts +5 -5
- package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.d.ts.map +1 -1
- package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js.map +1 -1
- package/interpretador/estruturas/classe-padrao.js +2 -2
- package/interpretador/estruturas/classe-padrao.js.map +1 -1
- package/interpretador/estruturas/delegua-funcao.js +3 -3
- package/interpretador/estruturas/delegua-funcao.js.map +1 -1
- package/interpretador/estruturas/descritor-tipo-classe.js +2 -2
- package/interpretador/estruturas/descritor-tipo-classe.js.map +1 -1
- package/interpretador/estruturas/funcao-padrao.js +1 -1
- package/interpretador/estruturas/funcao-padrao.js.map +1 -1
- package/interpretador/estruturas/metodo-primitiva.js +1 -1
- package/interpretador/estruturas/metodo-primitiva.js.map +1 -1
- package/interpretador/estruturas/modulo.js +1 -1
- package/interpretador/estruturas/modulo.js.map +1 -1
- package/interpretador/estruturas/objeto-delegua-classe.js +1 -1
- package/interpretador/estruturas/objeto-delegua-classe.js.map +1 -1
- package/interpretador/estruturas/objeto-padrao.js +1 -1
- package/interpretador/estruturas/objeto-padrao.js.map +1 -1
- package/interpretador/estruturas/referencia-montao.js +1 -1
- package/interpretador/estruturas/referencia-montao.js.map +1 -1
- package/interpretador/interpretador-base.d.ts +25 -13
- package/interpretador/interpretador-base.d.ts.map +1 -1
- package/interpretador/interpretador-base.js +125 -49
- package/interpretador/interpretador-base.js.map +1 -1
- package/interpretador/interpretador-com-depuracao.d.ts +2 -2
- package/interpretador/interpretador-com-depuracao.d.ts.map +1 -1
- package/interpretador/interpretador-com-depuracao.js +2 -1
- package/interpretador/interpretador-com-depuracao.js.map +1 -1
- package/interpretador/interpretador.d.ts +8 -6
- package/interpretador/interpretador.d.ts.map +1 -1
- package/interpretador/interpretador.js +21 -18
- package/interpretador/interpretador.js.map +1 -1
- package/interpretador/pilha-escopos-execucao.d.ts.map +1 -1
- package/interpretador/pilha-escopos-execucao.js +8 -3
- package/interpretador/pilha-escopos-execucao.js.map +1 -1
- package/lexador/dialetos/index.d.ts +1 -0
- package/lexador/dialetos/index.d.ts.map +1 -1
- package/lexador/dialetos/index.js +1 -0
- package/lexador/dialetos/index.js.map +1 -1
- package/lexador/dialetos/lexador-calango.d.ts +29 -0
- package/lexador/dialetos/lexador-calango.d.ts.map +1 -0
- package/lexador/dialetos/lexador-calango.js +231 -0
- package/lexador/dialetos/lexador-calango.js.map +1 -0
- package/lexador/dialetos/lexador-pitugues.d.ts.map +1 -1
- package/lexador/dialetos/lexador-pitugues.js +4 -0
- package/lexador/dialetos/lexador-pitugues.js.map +1 -1
- package/lexador/dialetos/palavras-reservadas/calango.d.ts +15 -0
- package/lexador/dialetos/palavras-reservadas/calango.d.ts.map +1 -0
- package/lexador/dialetos/palavras-reservadas/calango.js +20 -0
- package/lexador/dialetos/palavras-reservadas/calango.js.map +1 -0
- package/package.json +1 -1
- package/quebras/index.d.ts +2 -1
- package/quebras/index.d.ts.map +1 -1
- package/quebras/index.js +2 -1
- package/quebras/index.js.map +1 -1
- package/tipos-de-dados/dialetos/pitugues.d.ts +28 -0
- package/tipos-de-dados/dialetos/pitugues.d.ts.map +1 -0
- package/tipos-de-dados/dialetos/pitugues.js +29 -0
- package/tipos-de-dados/dialetos/pitugues.js.map +1 -0
- package/tipos-de-simbolos/calango.d.ts +42 -0
- package/tipos-de-simbolos/calango.d.ts.map +1 -0
- package/tipos-de-simbolos/calango.js +43 -0
- package/tipos-de-simbolos/calango.js.map +1 -0
- package/tipos-de-simbolos/pitugues.d.ts +1 -0
- package/tipos-de-simbolos/pitugues.d.ts.map +1 -1
- package/tipos-de-simbolos/pitugues.js +1 -0
- package/tipos-de-simbolos/pitugues.js.map +1 -1
- package/tradutores/index.d.ts +1 -0
- package/tradutores/index.d.ts.map +1 -1
- package/tradutores/index.js +1 -0
- package/tradutores/index.js.map +1 -1
- package/tradutores/tradutor-assemblyscript.js.map +1 -1
- package/tradutores/tradutor-calango.d.ts +22 -0
- package/tradutores/tradutor-calango.d.ts.map +1 -0
- package/tradutores/tradutor-calango.js +61 -0
- package/tradutores/tradutor-calango.js.map +1 -0
- package/tradutores/tradutor-javascript.js +1 -1
- package/tradutores/tradutor-javascript.js.map +1 -1
- package/tradutores/tradutor-python.js +1 -1
- package/tradutores/tradutor-python.js.map +1 -1
- package/tradutores/tradutor-reverso-tenda.js +1 -1
- package/tradutores/tradutor-reverso-tenda.js.map +1 -1
- package/umd/delegua.js +1543 -626
- package/construtos/tuplas/tupla.d.ts +0 -9
- package/construtos/tuplas/tupla.d.ts.map +0 -1
- package/construtos/tuplas/tupla.js.map +0 -1
- package/interfaces/retornos/retorno-interpretador.d.ts +0 -6
- package/interfaces/retornos/retorno-interpretador.d.ts.map +0 -1
- package/interfaces/retornos/retorno-interpretador.js.map +0 -1
- /package/construtos/{tuplas/tupla.js → tupla.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modulo.js","sourceRoot":"","sources":["../../../fontes/interpretador/estruturas/modulo.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAa;IAItB,YAAY,IAAa;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,SAAS;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"modulo.js","sourceRoot":"","sources":["../../../fontes/interpretador/estruturas/modulo.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAa;IAItB,YAAY,IAAa;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,SAAS;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;IACrE,CAAC;IAED;;;OAGG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC;CACJ;AAxBD,sCAwBC"}
|
|
@@ -53,7 +53,7 @@ class ObjetoDeleguaClasse {
|
|
|
53
53
|
* @returns {string} A representação do objeto como texto.
|
|
54
54
|
*/
|
|
55
55
|
paraTexto() {
|
|
56
|
-
return '<objeto ' + this.classe.simboloOriginal.lexema + '
|
|
56
|
+
return '<objeto nome=' + this.classe.simboloOriginal.lexema + ' />';
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
59
59
|
* Método utilizado pelo VSCode para representar este objeto quando impresso.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"objeto-delegua-classe.js","sourceRoot":"","sources":["../../../fontes/interpretador/estruturas/objeto-delegua-classe.ts"],"names":[],"mappings":";;;AAAA,6CAAuD;AAIvD;;;;GAIG;AACH,MAAa,mBAAmB;IAI5B,YAAY,MAA2B;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC1B,KAAK,IAAI,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;gBAC3D,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;YAC3D,CAAC;QACL,CAAC;QAED,KAAK,IAAI,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YAC1C,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;QAC3D,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAyB;QAC3B,IAAI,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAExD,MAAM,IAAI,gCAAqB,CAC3B,OAAO,EACP,0BAA0B,OAAO,CAAC,MAAM,4BAA4B,CACvE,CAAC;IACN,CAAC;IAED,WAAW,CAAC,UAAkB;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAExD,MAAM,IAAI,gCAAqB,CAAC,IAAI,EAAE,WAAW,UAAU,4BAA4B,CAAC,CAAC;IAC7F,CAAC;IAED,gBAAgB,CAAC,eAAuB;QACpC,IAAI,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,IAAI,gCAAqB,CAC3B,IAAI,EACJ,gBAAgB,eAAe,4BAA4B,CAC9D,CAAC;IACN,CAAC;IAED,OAAO,CAAC,OAAyB,EAAE,KAAU;QACzC,IACI,IAAI,CAAC,MAAM,CAAC,mCAAmC;YAC/C,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,EACnD,CAAC;YACC,MAAM,IAAI,gCAAqB,CAC3B,OAAO,EACP,gBAAgB,OAAO,CAAC,MAAM,8CAA8C,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CACpH,CAAC;QACN,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACH,SAAS;QACL,OAAO,
|
|
1
|
+
{"version":3,"file":"objeto-delegua-classe.js","sourceRoot":"","sources":["../../../fontes/interpretador/estruturas/objeto-delegua-classe.ts"],"names":[],"mappings":";;;AAAA,6CAAuD;AAIvD;;;;GAIG;AACH,MAAa,mBAAmB;IAI5B,YAAY,MAA2B;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC1B,KAAK,IAAI,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;gBAC3D,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;YAC3D,CAAC;QACL,CAAC;QAED,KAAK,IAAI,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YAC1C,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;QAC3D,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAyB;QAC3B,IAAI,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAExD,MAAM,IAAI,gCAAqB,CAC3B,OAAO,EACP,0BAA0B,OAAO,CAAC,MAAM,4BAA4B,CACvE,CAAC;IACN,CAAC;IAED,WAAW,CAAC,UAAkB;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAExD,MAAM,IAAI,gCAAqB,CAAC,IAAI,EAAE,WAAW,UAAU,4BAA4B,CAAC,CAAC;IAC7F,CAAC;IAED,gBAAgB,CAAC,eAAuB;QACpC,IAAI,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,IAAI,gCAAqB,CAC3B,IAAI,EACJ,gBAAgB,eAAe,4BAA4B,CAC9D,CAAC;IACN,CAAC;IAED,OAAO,CAAC,OAAyB,EAAE,KAAU;QACzC,IACI,IAAI,CAAC,MAAM,CAAC,mCAAmC;YAC/C,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,EACnD,CAAC;YACC,MAAM,IAAI,gCAAqB,CAC3B,OAAO,EACP,gBAAgB,OAAO,CAAC,MAAM,8CAA8C,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CACpH,CAAC;QACN,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACH,SAAS;QACL,OAAO,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,KAAK,CAAC;IACxE,CAAC;IAED;;;OAGG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC;CACJ;AA/ED,kDA+EC"}
|
|
@@ -14,7 +14,7 @@ class ObjetoPadrao {
|
|
|
14
14
|
* @returns {string} A representação do objeto como texto.
|
|
15
15
|
*/
|
|
16
16
|
paraTexto() {
|
|
17
|
-
let retornoTexto = `<objeto-padrão
|
|
17
|
+
let retornoTexto = `<objeto-padrão classe=${this.classePadrao}>\n`;
|
|
18
18
|
for (const [nome, valor] of Object.entries(this)) {
|
|
19
19
|
retornoTexto += ` - ${nome}: ${valor}\n`;
|
|
20
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"objeto-padrao.js","sourceRoot":"","sources":["../../../fontes/interpretador/estruturas/objeto-padrao.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAa,YAAY;IAGrB,YAAY,YAAoB;QAC5B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,SAAS;QACL,IAAI,YAAY,GAAG,
|
|
1
|
+
{"version":3,"file":"objeto-padrao.js","sourceRoot":"","sources":["../../../fontes/interpretador/estruturas/objeto-padrao.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAa,YAAY;IAGrB,YAAY,YAAoB;QAC5B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,SAAS;QACL,IAAI,YAAY,GAAG,yBAAyB,IAAI,CAAC,YAAY,KAAK,CAAC;QACnE,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,YAAY,IAAI,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;QAChD,CAAC;QACD,YAAY,IAAI,kBAAkB,CAAC;QACnC,OAAO,YAAY,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC;CACJ;AA3BD,oCA2BC"}
|
|
@@ -10,7 +10,7 @@ class ReferenciaMontao {
|
|
|
10
10
|
* @returns {string} A representação da referência como texto.
|
|
11
11
|
*/
|
|
12
12
|
paraTexto() {
|
|
13
|
-
return `<
|
|
13
|
+
return `<referência-montão endereço=${this.endereco} />`;
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
16
|
* Método utilizado pelo VSCode para representar este objeto quando impresso.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"referencia-montao.js","sourceRoot":"","sources":["../../../fontes/interpretador/estruturas/referencia-montao.ts"],"names":[],"mappings":";;;AAAA,MAAa,gBAAgB;IAGzB,YAAY,QAAgB;QACxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,SAAS;QACL,OAAO,
|
|
1
|
+
{"version":3,"file":"referencia-montao.js","sourceRoot":"","sources":["../../../fontes/interpretador/estruturas/referencia-montao.ts"],"names":[],"mappings":";;;AAAA,MAAa,gBAAgB;IAGzB,YAAY,QAAgB;QACxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,SAAS;QACL,OAAO,+BAA+B,IAAI,CAAC,QAAQ,KAAK,CAAC;IAC7D,CAAC;IAED;;;OAGG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC;CACJ;AAtBD,4CAsBC"}
|
|
@@ -2,7 +2,7 @@ import { Aleatorio, Bloco, CabecalhoPrograma, Classe, Comentario, Const, ConstMu
|
|
|
2
2
|
import { DescritorTipoClasse, DeleguaFuncao, DeleguaModulo } from './estruturas';
|
|
3
3
|
import { AcessoIndiceVariavel, AcessoMetodo, AcessoMetodoOuPropriedade, AcessoPropriedade, Agrupamento, ArgumentoReferenciaFuncao, AtribuicaoPorIndice, Atribuir, Chamada, ComentarioComoConstruto, Construto, DefinirValor, Dicionario, ExpressaoRegular, FimPara, FormatacaoEscrita, FuncaoConstruto, Leia, Literal, Logico, ReferenciaFuncao, Separador, Super, TipoDe, Tupla, Unario, Variavel, Vetor } from '../construtos';
|
|
4
4
|
import { ErroInterpretador } from '../interfaces/erros/erro-interpretador';
|
|
5
|
-
import {
|
|
5
|
+
import { RetornoInterpretadorInterface } from '../interfaces/retornos/retorno-interpretador-interface';
|
|
6
6
|
import { ContinuarQuebra, RetornoQuebra, SustarQuebra } from '../quebras';
|
|
7
7
|
import { PilhaEscoposExecucaoInterface } from '../interfaces/pilha-escopos-execucao-interface';
|
|
8
8
|
import { MetodoPrimitiva } from './estruturas/metodo-primitiva';
|
|
@@ -10,7 +10,7 @@ import { ArgumentoInterface } from './argumento-interface';
|
|
|
10
10
|
import { MicroLexador } from '../lexador';
|
|
11
11
|
import { MicroAvaliadorSintaticoBase } from '../avaliador-sintatico/micro-avaliador-sintatico-base';
|
|
12
12
|
import { EspacoMemoria } from './espaco-memoria';
|
|
13
|
-
import { InterpretadorInterface, SimboloInterface, VariavelInterface } from '../interfaces';
|
|
13
|
+
import { InterpretadorInterface, ResultadoParcialInterpretadorInterface, SimboloInterface, VariavelInterface } from '../interfaces';
|
|
14
14
|
/**
|
|
15
15
|
* O Interpretador visita todos os elementos complexos gerados pelo avaliador sintático (_parser_),
|
|
16
16
|
* e de fato executa a lógica de programação descrita no código. Este interpretador base é usado
|
|
@@ -24,7 +24,7 @@ export declare class InterpretadorBase implements InterpretadorInterface {
|
|
|
24
24
|
diretorioBase: string;
|
|
25
25
|
erros: ErroInterpretador[];
|
|
26
26
|
declaracoes: Declaracao[];
|
|
27
|
-
resultadoInterpretador:
|
|
27
|
+
resultadoInterpretador: ResultadoParcialInterpretadorInterface[];
|
|
28
28
|
linhaDeclaracaoAtual: number;
|
|
29
29
|
hashArquivoDeclaracaoAtual: number;
|
|
30
30
|
expandirPropriedadesDeObjetosEmEspacoMemoria: boolean;
|
|
@@ -52,7 +52,7 @@ export declare class InterpretadorBase implements InterpretadorInterface {
|
|
|
52
52
|
* @see resolverValor
|
|
53
53
|
*/
|
|
54
54
|
protected resolverNomeObjectoAcessado(objetoAcessado: Construto): string;
|
|
55
|
-
|
|
55
|
+
resolverValor(objeto: any): any;
|
|
56
56
|
visitarExpressaoArgumentoReferenciaFuncao(expressao: ArgumentoReferenciaFuncao): Promise<any> | void;
|
|
57
57
|
visitarExpressaoReferenciaFuncao(expressao: ReferenciaFuncao): Promise<any> | void;
|
|
58
58
|
visitarExpressaoAcessoMetodo(expressao: AcessoMetodo): Promise<any> | void;
|
|
@@ -74,6 +74,15 @@ export declare class InterpretadorBase implements InterpretadorInterface {
|
|
|
74
74
|
visitarExpressaoTipoDe(expressao: TipoDe): Promise<string>;
|
|
75
75
|
visitarExpressaoFalhar(expressao: Falhar): Promise<any>;
|
|
76
76
|
visitarExpressaoFimPara(declaracao: FimPara): Promise<any>;
|
|
77
|
+
/**
|
|
78
|
+
* Chama o método `aceitar` de um construto ou declaração, passando o
|
|
79
|
+
* próprio interpretador como parâmetro.
|
|
80
|
+
*
|
|
81
|
+
* Isto é usado para saber qual método do próprio interpretador chamar
|
|
82
|
+
* na sequência.
|
|
83
|
+
* @param expressao A expressão, que pode ser um construto ou declaração.
|
|
84
|
+
* @returns O retorno da execução do método de visita chamado.
|
|
85
|
+
*/
|
|
77
86
|
avaliar(expressao: Construto | Declaracao): Promise<any>;
|
|
78
87
|
/**
|
|
79
88
|
* Execução da leitura de valores da entrada configurada no
|
|
@@ -85,10 +94,13 @@ export declare class InterpretadorBase implements InterpretadorInterface {
|
|
|
85
94
|
/**
|
|
86
95
|
* Retira a interpolação de um texto.
|
|
87
96
|
* @param {texto} texto O texto
|
|
88
|
-
* @param {any[]}
|
|
89
|
-
* @returns O texto com o valor das
|
|
97
|
+
* @param {any[]} interpolacoes A lista de interpolações a serem resolvidas.
|
|
98
|
+
* @returns O texto com o valor das variáveis.
|
|
90
99
|
*/
|
|
91
|
-
protected retirarInterpolacao(texto: string,
|
|
100
|
+
protected retirarInterpolacao(texto: string, interpolacoes: {
|
|
101
|
+
expressaoInterpolacao: string;
|
|
102
|
+
valor: any;
|
|
103
|
+
}[]): string;
|
|
92
104
|
/**
|
|
93
105
|
* Resolve todas as interpolações em um texto.
|
|
94
106
|
* @param {texto} textoOriginal O texto original com as variáveis interpoladas.
|
|
@@ -196,7 +208,7 @@ export declare class InterpretadorBase implements InterpretadorInterface {
|
|
|
196
208
|
/**
|
|
197
209
|
* Executa expressão de definição de constante.
|
|
198
210
|
* @param declaracao A declaração `Const`.
|
|
199
|
-
* @returns
|
|
211
|
+
* @returns Um descritor de informações importantes para o retorno externo.
|
|
200
212
|
*/
|
|
201
213
|
visitarDeclaracaoConst(declaracao: Const): Promise<any>;
|
|
202
214
|
/**
|
|
@@ -234,7 +246,7 @@ export declare class InterpretadorBase implements InterpretadorInterface {
|
|
|
234
246
|
/**
|
|
235
247
|
* Executa expressão de definição de variável.
|
|
236
248
|
* @param declaracao A declaração Var
|
|
237
|
-
* @returns
|
|
249
|
+
* @returns Um descritor de informações importantes para o retorno externo.
|
|
238
250
|
*/
|
|
239
251
|
visitarDeclaracaoVar(declaracao: Var): Promise<any>;
|
|
240
252
|
/**
|
|
@@ -247,10 +259,10 @@ export declare class InterpretadorBase implements InterpretadorInterface {
|
|
|
247
259
|
/**
|
|
248
260
|
* Efetivamente executa uma declaração.
|
|
249
261
|
* @param declaracao A declaração a ser executada.
|
|
250
|
-
* @
|
|
251
|
-
*
|
|
262
|
+
* @returns O resultado parcial da execução, normalmente usado por
|
|
263
|
+
* ferramentas externas.
|
|
252
264
|
*/
|
|
253
|
-
executar(declaracao: Declaracao): Promise<
|
|
265
|
+
executar(declaracao: Declaracao): Promise<ResultadoParcialInterpretadorInterface>;
|
|
254
266
|
/**
|
|
255
267
|
* Executa o último escopo empilhado no topo na pilha de escopos do interpretador.
|
|
256
268
|
* Esse método pega exceções, mas apenas as devolve.
|
|
@@ -270,6 +282,6 @@ export declare class InterpretadorBase implements InterpretadorInterface {
|
|
|
270
282
|
* pelo modo REPL (LAIR).
|
|
271
283
|
* @returns Um objeto com o resultado da interpretação.
|
|
272
284
|
*/
|
|
273
|
-
interpretar(declaracoes: Declaracao[], manterAmbiente?: boolean): Promise<
|
|
285
|
+
interpretar(declaracoes: Declaracao[], manterAmbiente?: boolean): Promise<RetornoInterpretadorInterface>;
|
|
274
286
|
}
|
|
275
287
|
//# sourceMappingURL=interpretador-base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpretador-base.d.ts","sourceRoot":"","sources":["../../fontes/interpretador/interpretador-base.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,SAAS,EACT,KAAK,EACL,iBAAiB,EACjB,MAAM,EACN,UAAU,EACV,KAAK,EACL,aAAa,EACb,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,OAAO,EACP,OAAO,EACP,iBAAiB,EACjB,SAAS,EACT,MAAM,EACN,KAAK,EACL,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,EAAE,EACF,SAAS,EACT,KAAK,EACL,GAAG,EACH,WAAW,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEH,mBAAmB,EACnB,aAAa,EAEb,aAAa,EAGhB,MAAM,cAAc,CAAC;AACtB,OAAO,EACH,oBAAoB,EACpB,YAAY,EACZ,yBAAyB,EACzB,iBAAiB,EACjB,WAAW,EACX,yBAAyB,EACzB,mBAAmB,EACnB,QAAQ,EACR,OAAO,EACP,uBAAuB,EAEvB,SAAS,EACT,YAAY,EACZ,UAAU,EAEV,gBAAgB,EAChB,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,IAAI,EACJ,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,KAAK,EACL,MAAM,EACN,KAAK,EACL,MAAM,EACN,QAAQ,EACR,KAAK,EACR,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"interpretador-base.d.ts","sourceRoot":"","sources":["../../fontes/interpretador/interpretador-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -126,12 +126,13 @@ class InterpretadorBase {
|
|
|
126
126
|
}
|
|
127
127
|
async visitarDeclaracaoTendoComo(declaracao) {
|
|
128
128
|
const retornoInicializacao = await this.avaliar(declaracao.inicializacaoVariavel);
|
|
129
|
-
this.
|
|
129
|
+
const retornoInicializacaoResolvido = this.resolverValor(retornoInicializacao);
|
|
130
|
+
this.pilhaEscoposExecucao.definirConstante(declaracao.simboloVariavel.lexema, retornoInicializacaoResolvido);
|
|
130
131
|
await this.executar(declaracao.corpo);
|
|
131
132
|
if (retornoInicializacao instanceof estruturas_1.ObjetoDeleguaClasse) {
|
|
132
|
-
const metodoFinalizar =
|
|
133
|
+
const metodoFinalizar = retornoInicializacaoResolvido.classe.metodos['finalizar'];
|
|
133
134
|
if (metodoFinalizar) {
|
|
134
|
-
const chamavel = metodoFinalizar.funcaoPorMetodoDeClasse(
|
|
135
|
+
const chamavel = metodoFinalizar.funcaoPorMetodoDeClasse(retornoInicializacaoResolvido);
|
|
135
136
|
chamavel.chamar(this, []);
|
|
136
137
|
}
|
|
137
138
|
}
|
|
@@ -181,6 +182,15 @@ class InterpretadorBase {
|
|
|
181
182
|
async visitarExpressaoFimPara(declaracao) {
|
|
182
183
|
throw new Error('Método não implementado.');
|
|
183
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* Chama o método `aceitar` de um construto ou declaração, passando o
|
|
187
|
+
* próprio interpretador como parâmetro.
|
|
188
|
+
*
|
|
189
|
+
* Isto é usado para saber qual método do próprio interpretador chamar
|
|
190
|
+
* na sequência.
|
|
191
|
+
* @param expressao A expressão, que pode ser um construto ou declaração.
|
|
192
|
+
* @returns O retorno da execução do método de visita chamado.
|
|
193
|
+
*/
|
|
184
194
|
async avaliar(expressao) {
|
|
185
195
|
// Descomente o código abaixo quando precisar detectar expressões undefined ou nulas.
|
|
186
196
|
// Por algum motivo o depurador do VSCode não funciona direito aqui
|
|
@@ -205,21 +215,25 @@ class InterpretadorBase {
|
|
|
205
215
|
/**
|
|
206
216
|
* Retira a interpolação de um texto.
|
|
207
217
|
* @param {texto} texto O texto
|
|
208
|
-
* @param {any[]}
|
|
209
|
-
* @returns O texto com o valor das
|
|
218
|
+
* @param {any[]} interpolacoes A lista de interpolações a serem resolvidas.
|
|
219
|
+
* @returns O texto com o valor das variáveis.
|
|
210
220
|
*/
|
|
211
|
-
retirarInterpolacao(texto,
|
|
221
|
+
retirarInterpolacao(texto, interpolacoes) {
|
|
212
222
|
let textoFinal = texto;
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
223
|
+
for (const elemento of interpolacoes) {
|
|
224
|
+
// TODO: Há alguma chance de `elemento` ser `undefined` aqui?
|
|
225
|
+
let valor = elemento === null || elemento === void 0 ? void 0 : elemento.valor;
|
|
226
|
+
if (valor.hasOwnProperty('valorRetornado')) {
|
|
227
|
+
valor = valor.valorRetornado;
|
|
228
|
+
}
|
|
229
|
+
if (valor.tipo === delegua_2.default.LOGICO) {
|
|
230
|
+
textoFinal = textoFinal.replace('${' + elemento.expressaoInterpolacao + '}', this.paraTexto(valor));
|
|
217
231
|
}
|
|
218
232
|
else {
|
|
219
|
-
|
|
220
|
-
textoFinal = textoFinal.replace('${' + elemento.
|
|
233
|
+
valor = this.resolverValor(valor);
|
|
234
|
+
textoFinal = textoFinal.replace('${' + elemento.expressaoInterpolacao + '}', `${this.paraTexto(valor)}`);
|
|
221
235
|
}
|
|
222
|
-
}
|
|
236
|
+
}
|
|
223
237
|
return textoFinal;
|
|
224
238
|
}
|
|
225
239
|
/**
|
|
@@ -230,11 +244,11 @@ class InterpretadorBase {
|
|
|
230
244
|
async resolverInterpolacoes(textoOriginal, linha) {
|
|
231
245
|
const variaveis = textoOriginal.match(this.regexInterpolacao);
|
|
232
246
|
let resultadosAvaliacaoSintatica = variaveis.map((s) => {
|
|
233
|
-
const
|
|
234
|
-
let microLexador = this.microLexador.mapear(
|
|
247
|
+
const expressaoInterpolacao = s.replace(/[\$\{\}]*/gm, '');
|
|
248
|
+
let microLexador = this.microLexador.mapear(expressaoInterpolacao);
|
|
235
249
|
const resultadoMicroAvaliadorSintatico = this.microAvaliadorSintatico.analisar(microLexador, linha);
|
|
236
250
|
return {
|
|
237
|
-
|
|
251
|
+
expressaoInterpolacao,
|
|
238
252
|
resultadoMicroAvaliadorSintatico,
|
|
239
253
|
};
|
|
240
254
|
});
|
|
@@ -243,14 +257,14 @@ class InterpretadorBase {
|
|
|
243
257
|
.flatMap((r) => r.resultadoMicroAvaliadorSintatico.declaracoes)
|
|
244
258
|
.map((d) => this.avaliar(d)));
|
|
245
259
|
return resolucoesPromises.map((item, indice) => ({
|
|
246
|
-
|
|
260
|
+
expressaoInterpolacao: resultadosAvaliacaoSintatica[indice].expressaoInterpolacao,
|
|
247
261
|
valor: item,
|
|
248
262
|
}));
|
|
249
263
|
}
|
|
250
264
|
async visitarExpressaoLiteral(expressao) {
|
|
251
265
|
if (this.regexInterpolacao.test(expressao.valor)) {
|
|
252
|
-
const
|
|
253
|
-
return this.retirarInterpolacao(expressao.valor,
|
|
266
|
+
const interpolacoes = await this.resolverInterpolacoes(expressao.valor, expressao.linha);
|
|
267
|
+
return this.retirarInterpolacao(expressao.valor, interpolacoes);
|
|
254
268
|
}
|
|
255
269
|
return expressao.valor;
|
|
256
270
|
}
|
|
@@ -297,6 +311,8 @@ class InterpretadorBase {
|
|
|
297
311
|
return valor;
|
|
298
312
|
}
|
|
299
313
|
const valorAnteriorIncremento = valor;
|
|
314
|
+
// TODO: Provavelmente isso está incorreto. Descobrir se operando resolve para
|
|
315
|
+
// `Construto` ou para `Simbolo`.
|
|
300
316
|
this.pilhaEscoposExecucao.atribuirVariavel(expressao.operando.simbolo, ++valor);
|
|
301
317
|
return valorAnteriorIncremento;
|
|
302
318
|
case delegua_1.default.DECREMENTAR:
|
|
@@ -308,6 +324,8 @@ class InterpretadorBase {
|
|
|
308
324
|
return valor;
|
|
309
325
|
}
|
|
310
326
|
const valorAnteriorDecremento = valor;
|
|
327
|
+
// TODO: Provavelmente isso está incorreto. Descobrir se operando resolve para
|
|
328
|
+
// `Construto` ou para `Simbolo`.
|
|
311
329
|
this.pilhaEscoposExecucao.atribuirVariavel(expressao.operando.simbolo, --valor);
|
|
312
330
|
return valorAnteriorDecremento;
|
|
313
331
|
}
|
|
@@ -505,9 +523,10 @@ class InterpretadorBase {
|
|
|
505
523
|
const nomeArgumento = variavelArgumento.hasOwnProperty('simbolo')
|
|
506
524
|
? variavelArgumento.simbolo.lexema
|
|
507
525
|
: undefined;
|
|
526
|
+
let valor = await this.avaliar(variavelArgumento);
|
|
508
527
|
argumentos.push({
|
|
509
528
|
nome: nomeArgumento,
|
|
510
|
-
valor
|
|
529
|
+
valor,
|
|
511
530
|
});
|
|
512
531
|
}
|
|
513
532
|
return argumentos;
|
|
@@ -519,11 +538,14 @@ class InterpretadorBase {
|
|
|
519
538
|
*/
|
|
520
539
|
async visitarExpressaoDeChamada(expressao) {
|
|
521
540
|
try {
|
|
522
|
-
|
|
541
|
+
let variavelEntidadeChamada = await this.avaliar(expressao.entidadeChamada);
|
|
523
542
|
if (variavelEntidadeChamada === null) {
|
|
524
543
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(expressao.parentese, 'Chamada de função ou método inexistente: ' +
|
|
525
544
|
String(expressao.entidadeChamada), expressao.linha));
|
|
526
545
|
}
|
|
546
|
+
if (variavelEntidadeChamada.hasOwnProperty('valorRetornado')) {
|
|
547
|
+
variavelEntidadeChamada = variavelEntidadeChamada.valorRetornado;
|
|
548
|
+
}
|
|
527
549
|
const entidadeChamada = this.resolverValor(variavelEntidadeChamada);
|
|
528
550
|
if (entidadeChamada instanceof estruturas_1.DeleguaModulo) {
|
|
529
551
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(expressao.parentese, 'Entidade chamada é um módulo de Delégua. Provavelmente você quer chamar um de seus componentes?', expressao.linha));
|
|
@@ -668,17 +690,17 @@ class InterpretadorBase {
|
|
|
668
690
|
await this.avaliar(declaracaoInicializador);
|
|
669
691
|
}
|
|
670
692
|
let retornoExecucao;
|
|
671
|
-
while (!(retornoExecucao instanceof quebras_1.Quebra)) {
|
|
693
|
+
while (!(retornoExecucao && retornoExecucao.valorRetornado instanceof quebras_1.Quebra)) {
|
|
672
694
|
if (declaracao.condicao !== null &&
|
|
673
695
|
!this.eVerdadeiro(await this.avaliar(declaracao.condicao))) {
|
|
674
696
|
break;
|
|
675
697
|
}
|
|
676
698
|
try {
|
|
677
699
|
retornoExecucao = await this.executar(declaracao.corpo);
|
|
678
|
-
if (retornoExecucao instanceof quebras_1.SustarQuebra) {
|
|
700
|
+
if (retornoExecucao && retornoExecucao.valorRetornado instanceof quebras_1.SustarQuebra) {
|
|
679
701
|
return null;
|
|
680
702
|
}
|
|
681
|
-
if (retornoExecucao instanceof quebras_1.ContinuarQuebra) {
|
|
703
|
+
if (retornoExecucao && retornoExecucao.valorRetornado instanceof quebras_1.ContinuarQuebra) {
|
|
682
704
|
retornoExecucao = null;
|
|
683
705
|
}
|
|
684
706
|
}
|
|
@@ -706,13 +728,15 @@ class InterpretadorBase {
|
|
|
706
728
|
let valorVetorResolvido = this.resolverValor(vetorResolvido);
|
|
707
729
|
// Se até aqui vetor resolvido é um dicionário, converte dicionário
|
|
708
730
|
// para vetor de duplas.
|
|
731
|
+
// TODO: Converter elementos para `Construto` se necessário.
|
|
709
732
|
if (declaracao.vetor.tipo === 'dicionário') {
|
|
710
|
-
valorVetorResolvido = Object.entries(valorVetorResolvido)
|
|
733
|
+
valorVetorResolvido = Object.entries(valorVetorResolvido)
|
|
734
|
+
.map(v => new construtos_1.Dupla(v[0], v[1]));
|
|
711
735
|
}
|
|
712
736
|
if (!Array.isArray(valorVetorResolvido)) {
|
|
713
737
|
return Promise.reject("Variável ou literal provida em instrução 'para cada' não é um vetor.");
|
|
714
738
|
}
|
|
715
|
-
while (!(retornoExecucao instanceof quebras_1.Quebra) &&
|
|
739
|
+
while (!(retornoExecucao && retornoExecucao.valorRetornado instanceof quebras_1.Quebra) &&
|
|
716
740
|
declaracao.posicaoAtual < valorVetorResolvido.length) {
|
|
717
741
|
try {
|
|
718
742
|
if (declaracao.variavelIteracao instanceof construtos_1.Variavel) {
|
|
@@ -724,10 +748,10 @@ class InterpretadorBase {
|
|
|
724
748
|
this.pilhaEscoposExecucao.definirVariavel(declaracao.variavelIteracao.segundo.valor, valorComoDupla.segundo);
|
|
725
749
|
}
|
|
726
750
|
retornoExecucao = await this.executar(declaracao.corpo);
|
|
727
|
-
if (retornoExecucao instanceof quebras_1.SustarQuebra) {
|
|
751
|
+
if (retornoExecucao && retornoExecucao.valorRetornado instanceof quebras_1.SustarQuebra) {
|
|
728
752
|
return null;
|
|
729
753
|
}
|
|
730
|
-
if (retornoExecucao instanceof quebras_1.ContinuarQuebra) {
|
|
754
|
+
if (retornoExecucao && retornoExecucao.valorRetornado instanceof quebras_1.ContinuarQuebra) {
|
|
731
755
|
retornoExecucao = null;
|
|
732
756
|
}
|
|
733
757
|
declaracao.posicaoAtual++;
|
|
@@ -750,10 +774,12 @@ class InterpretadorBase {
|
|
|
750
774
|
* @returns O resultado da avaliação do bloco cuja condição é verdadeira.
|
|
751
775
|
*/
|
|
752
776
|
async visitarDeclaracaoSe(declaracao) {
|
|
753
|
-
|
|
777
|
+
const avaliacaoCondicaoSe = await this.avaliar(declaracao.condicao);
|
|
778
|
+
if (this.eVerdadeiro(avaliacaoCondicaoSe)) {
|
|
754
779
|
return await this.executar(declaracao.caminhoEntao);
|
|
755
780
|
}
|
|
756
781
|
for (let i = 0; i < declaracao.caminhosSeSenao.length; i++) {
|
|
782
|
+
// TODO: Qual o tipo de `atual`?
|
|
757
783
|
const atual = declaracao.caminhosSeSenao[i];
|
|
758
784
|
if (this.eVerdadeiro(await this.avaliar(atual.condicao))) {
|
|
759
785
|
return await this.executar(atual.caminho);
|
|
@@ -766,14 +792,14 @@ class InterpretadorBase {
|
|
|
766
792
|
}
|
|
767
793
|
async visitarDeclaracaoEnquanto(declaracao) {
|
|
768
794
|
let retornoExecucao;
|
|
769
|
-
while (!(retornoExecucao instanceof quebras_1.Quebra) &&
|
|
795
|
+
while (!(retornoExecucao && retornoExecucao.valorRetornado instanceof quebras_1.Quebra) &&
|
|
770
796
|
this.eVerdadeiro(await this.avaliar(declaracao.condicao))) {
|
|
771
797
|
try {
|
|
772
798
|
retornoExecucao = await this.executar(declaracao.corpo);
|
|
773
|
-
if (retornoExecucao instanceof quebras_1.SustarQuebra) {
|
|
799
|
+
if (retornoExecucao && retornoExecucao.valorRetornado instanceof quebras_1.SustarQuebra) {
|
|
774
800
|
return null;
|
|
775
801
|
}
|
|
776
|
-
if (retornoExecucao instanceof quebras_1.ContinuarQuebra) {
|
|
802
|
+
if (retornoExecucao && retornoExecucao.valorRetornado instanceof quebras_1.ContinuarQuebra) {
|
|
777
803
|
retornoExecucao = null;
|
|
778
804
|
}
|
|
779
805
|
}
|
|
@@ -833,10 +859,10 @@ class InterpretadorBase {
|
|
|
833
859
|
do {
|
|
834
860
|
try {
|
|
835
861
|
retornoExecucao = await this.executar(declaracao.caminhoFazer);
|
|
836
|
-
if (retornoExecucao instanceof quebras_1.SustarQuebra) {
|
|
862
|
+
if (retornoExecucao && retornoExecucao.valorRetornado instanceof quebras_1.SustarQuebra) {
|
|
837
863
|
return null;
|
|
838
864
|
}
|
|
839
|
-
if (retornoExecucao instanceof quebras_1.ContinuarQuebra) {
|
|
865
|
+
if (retornoExecucao && retornoExecucao.valorRetornado instanceof quebras_1.ContinuarQuebra) {
|
|
840
866
|
retornoExecucao = null;
|
|
841
867
|
}
|
|
842
868
|
}
|
|
@@ -848,7 +874,7 @@ class InterpretadorBase {
|
|
|
848
874
|
});
|
|
849
875
|
return Promise.reject(erro);
|
|
850
876
|
}
|
|
851
|
-
} while (!(retornoExecucao instanceof quebras_1.Quebra) &&
|
|
877
|
+
} while (!(retornoExecucao && retornoExecucao.valorRetornado instanceof quebras_1.Quebra) &&
|
|
852
878
|
this.eVerdadeiro(await this.avaliar(declaracao.condicaoEnquanto)));
|
|
853
879
|
}
|
|
854
880
|
/**
|
|
@@ -891,7 +917,10 @@ class InterpretadorBase {
|
|
|
891
917
|
async avaliarArgumentosEscreva(argumentos) {
|
|
892
918
|
let formatoTexto = '';
|
|
893
919
|
for (const argumento of argumentos) {
|
|
894
|
-
|
|
920
|
+
let resultadoAvaliacao = await this.avaliar(argumento);
|
|
921
|
+
if (resultadoAvaliacao && resultadoAvaliacao.hasOwnProperty('valorRetornado')) {
|
|
922
|
+
resultadoAvaliacao = resultadoAvaliacao.valorRetornado;
|
|
923
|
+
}
|
|
895
924
|
let valor = this.resolverValor(resultadoAvaliacao);
|
|
896
925
|
formatoTexto += `${this.paraTexto(valor)} `;
|
|
897
926
|
}
|
|
@@ -907,7 +936,10 @@ class InterpretadorBase {
|
|
|
907
936
|
try {
|
|
908
937
|
const formatoTexto = await this.avaliarArgumentosEscreva(declaracao.argumentos);
|
|
909
938
|
this.funcaoDeRetornoMesmaLinha(formatoTexto);
|
|
910
|
-
return
|
|
939
|
+
return {
|
|
940
|
+
tipo: 'vazio',
|
|
941
|
+
tipoExplicito: false
|
|
942
|
+
};
|
|
911
943
|
}
|
|
912
944
|
catch (erro) {
|
|
913
945
|
this.erros.push({
|
|
@@ -927,7 +959,10 @@ class InterpretadorBase {
|
|
|
927
959
|
try {
|
|
928
960
|
const formatoTexto = await this.avaliarArgumentosEscreva(declaracao.argumentos);
|
|
929
961
|
this.funcaoDeRetorno(formatoTexto);
|
|
930
|
-
return
|
|
962
|
+
return {
|
|
963
|
+
tipo: 'vazio',
|
|
964
|
+
tipoExplicito: false
|
|
965
|
+
};
|
|
931
966
|
}
|
|
932
967
|
catch (erro) {
|
|
933
968
|
this.erros.push({
|
|
@@ -979,12 +1014,15 @@ class InterpretadorBase {
|
|
|
979
1014
|
/**
|
|
980
1015
|
* Executa expressão de definição de constante.
|
|
981
1016
|
* @param declaracao A declaração `Const`.
|
|
982
|
-
* @returns
|
|
1017
|
+
* @returns Um descritor de informações importantes para o retorno externo.
|
|
983
1018
|
*/
|
|
984
1019
|
async visitarDeclaracaoConst(declaracao) {
|
|
985
1020
|
const valorFinal = await this.avaliacaoDeclaracaoVarOuConst(declaracao);
|
|
986
1021
|
this.pilhaEscoposExecucao.definirConstante(declaracao.simbolo.lexema, valorFinal, declaracao.tipo);
|
|
987
|
-
return
|
|
1022
|
+
return {
|
|
1023
|
+
tipo: declaracao.tipo,
|
|
1024
|
+
tipoExplicito: declaracao.tipoExplicito
|
|
1025
|
+
};
|
|
988
1026
|
}
|
|
989
1027
|
/**
|
|
990
1028
|
* Executa expressão de definição de múltiplas constantes.
|
|
@@ -1156,7 +1194,7 @@ class InterpretadorBase {
|
|
|
1156
1194
|
// Por enquanto, tudo bem deixar isso aqui.
|
|
1157
1195
|
descritorTipoClasse.dialetoRequerDeclaracaoPropriedades = this.requerDeclaracaoPropriedades;
|
|
1158
1196
|
this.pilhaEscoposExecucao.atribuirVariavel(declaracao.simbolo, descritorTipoClasse);
|
|
1159
|
-
return
|
|
1197
|
+
return descritorTipoClasse;
|
|
1160
1198
|
}
|
|
1161
1199
|
/**
|
|
1162
1200
|
* Executa um acesso a método, normalmente de um objeto de classe.
|
|
@@ -1249,11 +1287,21 @@ class InterpretadorBase {
|
|
|
1249
1287
|
/**
|
|
1250
1288
|
* Executa expressão de definição de variável.
|
|
1251
1289
|
* @param declaracao A declaração Var
|
|
1252
|
-
* @returns
|
|
1290
|
+
* @returns Um descritor de informações importantes para o retorno externo.
|
|
1253
1291
|
*/
|
|
1254
1292
|
async visitarDeclaracaoVar(declaracao) {
|
|
1255
1293
|
const valorFinal = await this.avaliacaoDeclaracaoVarOuConst(declaracao);
|
|
1256
|
-
|
|
1294
|
+
let tipoResolvido = declaracao.tipo;
|
|
1295
|
+
if (tipoResolvido.startsWith('função<')) {
|
|
1296
|
+
tipoResolvido = tipoResolvido.replace('função<', '').replace('>', '');
|
|
1297
|
+
}
|
|
1298
|
+
this.pilhaEscoposExecucao.definirVariavel(declaracao.simbolo.lexema, valorFinal, tipoResolvido);
|
|
1299
|
+
// TODO: É relevante registrar uma declaração de variável no
|
|
1300
|
+
// resultado do interpretador?
|
|
1301
|
+
/* return {
|
|
1302
|
+
tipo: declaracao.tipo,
|
|
1303
|
+
tipoExplicito: declaracao.tipoExplicito
|
|
1304
|
+
}; */
|
|
1257
1305
|
return null;
|
|
1258
1306
|
}
|
|
1259
1307
|
/**
|
|
@@ -1278,8 +1326,7 @@ class InterpretadorBase {
|
|
|
1278
1326
|
if (objeto.valor instanceof estruturas_1.ObjetoPadrao)
|
|
1279
1327
|
return objeto.valor.paraTexto();
|
|
1280
1328
|
if (objeto instanceof estruturas_1.ObjetoDeleguaClasse ||
|
|
1281
|
-
objeto instanceof estruturas_1.DeleguaFuncao
|
|
1282
|
-
typeof objeto.paraTexto === 'function')
|
|
1329
|
+
objeto instanceof estruturas_1.DeleguaFuncao)
|
|
1283
1330
|
return objeto.paraTexto();
|
|
1284
1331
|
if (objeto instanceof quebras_1.RetornoQuebra) {
|
|
1285
1332
|
if (typeof objeto.valor === 'boolean')
|
|
@@ -1337,13 +1384,37 @@ class InterpretadorBase {
|
|
|
1337
1384
|
/**
|
|
1338
1385
|
* Efetivamente executa uma declaração.
|
|
1339
1386
|
* @param declaracao A declaração a ser executada.
|
|
1340
|
-
* @
|
|
1341
|
-
*
|
|
1387
|
+
* @returns O resultado parcial da execução, normalmente usado por
|
|
1388
|
+
* ferramentas externas.
|
|
1342
1389
|
*/
|
|
1343
1390
|
async executar(declaracao) {
|
|
1344
1391
|
const resultado = await declaracao.aceitar(this);
|
|
1345
|
-
|
|
1346
|
-
|
|
1392
|
+
// Alguns casos não possuem retorno, como declarações `se`, `enquanto`, etc.,
|
|
1393
|
+
// que não satisfazem suas respectivas condições.
|
|
1394
|
+
if (resultado === null || resultado === undefined) {
|
|
1395
|
+
return null;
|
|
1396
|
+
}
|
|
1397
|
+
// Se o retorno já possui um `valorRetornado`, apenas retorna o resultado.
|
|
1398
|
+
if (resultado.hasOwnProperty('valorRetornado')) {
|
|
1399
|
+
return resultado;
|
|
1400
|
+
}
|
|
1401
|
+
let tipoResultado = resultado.tipo;
|
|
1402
|
+
switch (resultado.constructor) {
|
|
1403
|
+
case estruturas_1.DescritorTipoClasse:
|
|
1404
|
+
tipoResultado = resultado.simboloOriginal.lexema;
|
|
1405
|
+
break;
|
|
1406
|
+
default:
|
|
1407
|
+
if (!tipoResultado) {
|
|
1408
|
+
tipoResultado = (0, inferenciador_1.inferirTipoVariavel)(resultado);
|
|
1409
|
+
}
|
|
1410
|
+
break;
|
|
1411
|
+
}
|
|
1412
|
+
return {
|
|
1413
|
+
hashArquivo: declaracao.hashArquivo,
|
|
1414
|
+
linha: declaracao.linha,
|
|
1415
|
+
valorRetornado: resultado,
|
|
1416
|
+
tipo: tipoResultado
|
|
1417
|
+
};
|
|
1347
1418
|
}
|
|
1348
1419
|
/**
|
|
1349
1420
|
* Executa o último escopo empilhado no topo na pilha de escopos do interpretador.
|
|
@@ -1414,9 +1485,14 @@ class InterpretadorBase {
|
|
|
1414
1485
|
const inicioInterpretacao = (0, browser_process_hrtime_1.default)();
|
|
1415
1486
|
try {
|
|
1416
1487
|
const retornoOuErro = await this.executarUltimoEscopo(manterAmbiente);
|
|
1488
|
+
// TODO: Esta lógica já ocorre em `executarUltimoEscopo`.
|
|
1489
|
+
// Estudar remoção.
|
|
1417
1490
|
if (retornoOuErro instanceof excecoes_1.ErroEmTempoDeExecucao) {
|
|
1418
1491
|
this.erros.push(retornoOuErro);
|
|
1419
1492
|
}
|
|
1493
|
+
if (retornoOuErro !== undefined) {
|
|
1494
|
+
this.resultadoInterpretador.push(retornoOuErro);
|
|
1495
|
+
}
|
|
1420
1496
|
}
|
|
1421
1497
|
catch (erro) {
|
|
1422
1498
|
// TODO: Estudar remoção do `catch`.
|