@designliquido/delegua 0.15.1 → 0.15.3
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/README.md +85 -85
- package/bin/delegua +2 -2
- package/bin/package.json +88 -88
- package/fontes/avaliador-sintatico/avaliador-sintatico-base.d.ts +67 -67
- package/fontes/avaliador-sintatico/avaliador-sintatico-base.js +215 -215
- package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +92 -92
- package/fontes/avaliador-sintatico/avaliador-sintatico.js +857 -857
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.d.ts +27 -27
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.js +319 -294
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.js.map +1 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.d.ts +69 -69
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +640 -640
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.d.ts +84 -84
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js +714 -714
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.d.ts +20 -20
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js +149 -149
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-studio.d.ts +49 -49
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-studio.js +419 -419
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.d.ts +73 -73
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js +534 -534
- package/fontes/avaliador-sintatico/dialetos/index.d.ts +5 -5
- package/fontes/avaliador-sintatico/dialetos/index.js +21 -21
- package/fontes/avaliador-sintatico/erro-avaliador-sintatico.d.ts +5 -5
- package/fontes/avaliador-sintatico/erro-avaliador-sintatico.js +11 -11
- package/fontes/avaliador-sintatico/index.d.ts +2 -2
- package/fontes/avaliador-sintatico/index.js +18 -18
- package/fontes/avaliador-sintatico/retornos/index.d.ts +3 -3
- package/fontes/avaliador-sintatico/retornos/index.js +19 -19
- package/fontes/avaliador-sintatico/retornos/retorno-declaracao.d.ts +3 -3
- package/fontes/avaliador-sintatico/retornos/retorno-declaracao.js +2 -2
- package/fontes/avaliador-sintatico/retornos/retorno-primario.d.ts +3 -3
- package/fontes/avaliador-sintatico/retornos/retorno-primario.js +2 -2
- package/fontes/avaliador-sintatico/retornos/retorno-resolver-declaracao.d.ts +2 -2
- package/fontes/avaliador-sintatico/retornos/retorno-resolver-declaracao.js +2 -2
- package/fontes/bibliotecas/biblioteca-global.d.ts +3 -3
- package/fontes/bibliotecas/biblioteca-global.js +315 -315
- package/fontes/bibliotecas/dialetos/egua-classico/biblioteca-global.d.ts +1 -1
- package/fontes/bibliotecas/dialetos/egua-classico/biblioteca-global.js +230 -230
- package/fontes/bibliotecas/dialetos/egua-classico/index.d.ts +2 -2
- package/fontes/bibliotecas/dialetos/egua-classico/index.js +32 -32
- package/fontes/bibliotecas/dialetos/egua-classico/matematica.d.ts +1 -1
- package/fontes/bibliotecas/dialetos/egua-classico/matematica.js +478 -478
- package/fontes/bibliotecas/dialetos/egua-classico/tempo.d.ts +1 -1
- package/fontes/bibliotecas/dialetos/egua-classico/tempo.js +39 -39
- package/fontes/bibliotecas/dialetos/egua-classico/textos.d.ts +8 -8
- package/fontes/bibliotecas/dialetos/egua-classico/textos.js +201 -201
- package/fontes/bibliotecas/dialetos/visualg/caracteres.d.ts +3 -0
- package/fontes/bibliotecas/dialetos/visualg/caracteres.js +35 -0
- package/fontes/bibliotecas/dialetos/visualg/caracteres.js.map +1 -0
- package/fontes/bibliotecas/dialetos/visualg/index.d.ts +2 -0
- package/fontes/bibliotecas/dialetos/visualg/index.js +18 -0
- package/fontes/bibliotecas/dialetos/visualg/index.js.map +1 -1
- package/fontes/bibliotecas/dialetos/visualg/numerica.d.ts +3 -0
- package/fontes/bibliotecas/dialetos/visualg/numerica.js +65 -0
- package/fontes/bibliotecas/dialetos/visualg/numerica.js.map +1 -0
- package/fontes/bibliotecas/primitivas-texto.d.ts +11 -11
- package/fontes/bibliotecas/primitivas-texto.js +12 -12
- package/fontes/bibliotecas/primitivas-vetor.d.ts +15 -15
- package/fontes/bibliotecas/primitivas-vetor.js +33 -33
- package/fontes/construtos/acesso-indice-variavel.d.ts +15 -15
- package/fontes/construtos/acesso-indice-variavel.js +20 -20
- package/fontes/construtos/acesso-metodo.d.ts +14 -14
- package/fontes/construtos/acesso-metodo.js +19 -19
- package/fontes/construtos/agrupamento.d.ts +14 -14
- package/fontes/construtos/agrupamento.js +19 -19
- package/fontes/construtos/atribuicao-sobrescrita.d.ts +11 -11
- package/fontes/construtos/atribuicao-sobrescrita.js +16 -16
- package/fontes/construtos/atribuir.d.ts +10 -10
- package/fontes/construtos/atribuir.js +15 -15
- package/fontes/construtos/binario.d.ts +22 -22
- package/fontes/construtos/binario.js +27 -27
- package/fontes/construtos/chamada.d.ts +13 -13
- package/fontes/construtos/chamada.js +36 -36
- package/fontes/construtos/construto.d.ts +7 -7
- package/fontes/construtos/construto.js +2 -2
- package/fontes/construtos/definir-valor.d.ts +11 -11
- package/fontes/construtos/definir-valor.js +16 -16
- package/fontes/construtos/dicionario.d.ts +10 -10
- package/fontes/construtos/dicionario.js +15 -15
- package/fontes/construtos/formatacao-escrita.d.ts +16 -16
- package/fontes/construtos/formatacao-escrita.js +21 -21
- package/fontes/construtos/funcao.d.ts +10 -10
- package/fontes/construtos/funcao.js +15 -15
- package/fontes/construtos/index.d.ts +19 -19
- package/fontes/construtos/index.js +35 -35
- package/fontes/construtos/isto.d.ts +9 -9
- package/fontes/construtos/isto.js +14 -14
- package/fontes/construtos/literal.d.ts +10 -10
- package/fontes/construtos/literal.js +14 -14
- package/fontes/construtos/logico.d.ts +11 -11
- package/fontes/construtos/logico.js +16 -16
- package/fontes/construtos/super.d.ts +10 -10
- package/fontes/construtos/super.js +15 -15
- package/fontes/construtos/unario.d.ts +11 -11
- package/fontes/construtos/unario.js +16 -16
- package/fontes/construtos/variavel.d.ts +9 -9
- package/fontes/construtos/variavel.js +14 -14
- package/fontes/construtos/vetor.d.ts +9 -9
- package/fontes/construtos/vetor.js +14 -14
- package/fontes/declaracoes/bloco.d.ts +7 -7
- package/fontes/declaracoes/bloco.js +14 -14
- package/fontes/declaracoes/classe.d.ts +9 -9
- package/fontes/declaracoes/classe.js +16 -16
- package/fontes/declaracoes/continua.d.ts +6 -6
- package/fontes/declaracoes/continua.js +13 -13
- package/fontes/declaracoes/declaracao.d.ts +8 -8
- package/fontes/declaracoes/declaracao.js +17 -17
- package/fontes/declaracoes/enquanto.d.ts +9 -9
- package/fontes/declaracoes/enquanto.js +15 -15
- package/fontes/declaracoes/escolha.d.ts +14 -14
- package/fontes/declaracoes/escolha.js +19 -19
- package/fontes/declaracoes/escreva-mesma-linha.d.ts +8 -8
- package/fontes/declaracoes/escreva-mesma-linha.js +14 -14
- package/fontes/declaracoes/escreva.d.ts +8 -8
- package/fontes/declaracoes/escreva.js +14 -14
- package/fontes/declaracoes/expressao.d.ts +8 -8
- package/fontes/declaracoes/expressao.js +14 -14
- package/fontes/declaracoes/fazer.d.ts +8 -8
- package/fontes/declaracoes/fazer.js +15 -15
- package/fontes/declaracoes/funcao.d.ts +9 -9
- package/fontes/declaracoes/funcao.js +15 -15
- package/fontes/declaracoes/importar.d.ts +9 -9
- package/fontes/declaracoes/importar.js +15 -15
- package/fontes/declaracoes/index.d.ts +19 -19
- package/fontes/declaracoes/index.js +35 -35
- package/fontes/declaracoes/leia.d.ts +12 -12
- package/fontes/declaracoes/leia.js +18 -18
- package/fontes/declaracoes/para.d.ts +10 -10
- package/fontes/declaracoes/para.js +17 -17
- package/fontes/declaracoes/retorna.d.ts +8 -8
- package/fontes/declaracoes/retorna.js +15 -15
- package/fontes/declaracoes/se.d.ts +11 -11
- package/fontes/declaracoes/se.js +17 -17
- package/fontes/declaracoes/sustar.d.ts +6 -6
- package/fontes/declaracoes/sustar.js +13 -13
- package/fontes/declaracoes/tente.d.ts +14 -14
- package/fontes/declaracoes/tente.js +20 -20
- package/fontes/declaracoes/var.d.ts +9 -9
- package/fontes/declaracoes/var.js +15 -15
- package/fontes/depuracao/cyrb53.d.ts +9 -9
- package/fontes/depuracao/cyrb53.js +22 -22
- package/fontes/depuracao/index.d.ts +2 -2
- package/fontes/depuracao/index.js +23 -23
- package/fontes/depuracao/ponto-parada.d.ts +4 -4
- package/fontes/depuracao/ponto-parada.js +2 -2
- package/fontes/espaco-variaveis.d.ts +19 -19
- package/fontes/espaco-variaveis.js +19 -19
- package/fontes/estruturas/chamavel.d.ts +5 -5
- package/fontes/estruturas/chamavel.js +12 -12
- package/fontes/estruturas/classe-padrao.d.ts +17 -17
- package/fontes/estruturas/classe-padrao.js +28 -28
- package/fontes/estruturas/delegua-classe.d.ts +16 -16
- package/fontes/estruturas/delegua-classe.js +38 -38
- package/fontes/estruturas/delegua-funcao.d.ts +18 -18
- package/fontes/estruturas/delegua-funcao.js +60 -60
- package/fontes/estruturas/funcao-padrao.d.ts +12 -12
- package/fontes/estruturas/funcao-padrao.js +22 -22
- package/fontes/estruturas/index.d.ts +9 -9
- package/fontes/estruturas/index.js +25 -25
- package/fontes/estruturas/metodo-primitiva.d.ts +17 -17
- package/fontes/estruturas/metodo-primitiva.js +26 -26
- package/fontes/estruturas/modulo.d.ts +9 -9
- package/fontes/estruturas/modulo.js +13 -13
- package/fontes/estruturas/objeto-delegua-classe.d.ts +10 -10
- package/fontes/estruturas/objeto-delegua-classe.js +26 -26
- package/fontes/estruturas/objeto-padrao.d.ts +9 -9
- package/fontes/estruturas/objeto-padrao.js +21 -21
- package/fontes/excecoes/erro-em-tempo-de-execucao.d.ts +7 -7
- package/fontes/excecoes/erro-em-tempo-de-execucao.js +13 -13
- package/fontes/excecoes/index.d.ts +1 -1
- package/fontes/excecoes/index.js +17 -17
- package/fontes/formatadores/delegua.d.ts +18 -18
- package/fontes/formatadores/delegua.js +82 -82
- package/fontes/formatadores/index.d.ts +1 -1
- package/fontes/formatadores/index.js +17 -17
- package/fontes/interfaces/avaliador-sintatico-interface.d.ts +57 -57
- package/fontes/interfaces/avaliador-sintatico-interface.js +2 -2
- package/fontes/interfaces/construtos/index.d.ts +4 -4
- package/fontes/interfaces/construtos/index.js +2 -2
- package/fontes/interfaces/escopo-execucao.d.ts +11 -11
- package/fontes/interfaces/escopo-execucao.js +2 -2
- package/fontes/interfaces/index.d.ts +11 -11
- package/fontes/interfaces/index.js +27 -27
- package/fontes/interfaces/interpretador-com-depuracao-interface.d.ts +17 -17
- package/fontes/interfaces/interpretador-com-depuracao-interface.js +2 -2
- package/fontes/interfaces/interpretador-interface.d.ts +55 -55
- package/fontes/interfaces/interpretador-interface.js +2 -2
- package/fontes/interfaces/lexador-interface.d.ts +23 -23
- package/fontes/interfaces/lexador-interface.js +2 -2
- package/fontes/interfaces/parametro-interface.d.ts +6 -6
- package/fontes/interfaces/parametro-interface.js +2 -2
- package/fontes/interfaces/pilha-escopos-execucao-interface.d.ts +25 -25
- package/fontes/interfaces/pilha-escopos-execucao-interface.js +2 -2
- package/fontes/interfaces/pilha-interface.d.ts +7 -7
- package/fontes/interfaces/pilha-interface.js +2 -2
- package/fontes/interfaces/resolvedor-interface.d.ts +41 -41
- package/fontes/interfaces/resolvedor-interface.js +2 -2
- package/fontes/interfaces/retornos/index.d.ts +4 -4
- package/fontes/interfaces/retornos/index.js +20 -20
- package/fontes/interfaces/retornos/retorno-avaliador-sintatico.d.ts +6 -6
- package/fontes/interfaces/retornos/retorno-avaliador-sintatico.js +2 -2
- package/fontes/interfaces/retornos/retorno-execucao-interface.d.ts +5 -5
- package/fontes/interfaces/retornos/retorno-execucao-interface.js +2 -2
- package/fontes/interfaces/retornos/retorno-interpretador.d.ts +5 -5
- package/fontes/interfaces/retornos/retorno-interpretador.js +2 -2
- package/fontes/interfaces/retornos/retorno-lexador.d.ts +10 -10
- package/fontes/interfaces/retornos/retorno-lexador.js +2 -2
- package/fontes/interfaces/simbolo-interface.d.ts +7 -7
- package/fontes/interfaces/simbolo-interface.js +2 -2
- package/fontes/interfaces/tradutor-interface.d.ts +4 -4
- package/fontes/interfaces/tradutor-interface.js +2 -2
- package/fontes/interfaces/variavel-interface.d.ts +4 -4
- package/fontes/interfaces/variavel-interface.js +2 -2
- package/fontes/interpretador/dialetos/egua-classico/index.d.ts +1 -1
- package/fontes/interpretador/dialetos/egua-classico/index.js +17 -17
- package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts +99 -99
- package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +743 -743
- package/fontes/interpretador/dialetos/egua-classico/resolvedor/erro-resolvedor.d.ts +5 -5
- package/fontes/interpretador/dialetos/egua-classico/resolvedor/erro-resolvedor.js +11 -11
- package/fontes/interpretador/dialetos/egua-classico/resolvedor/index.d.ts +3 -3
- package/fontes/interpretador/dialetos/egua-classico/resolvedor/index.js +19 -19
- package/fontes/interpretador/dialetos/egua-classico/resolvedor/pilha-escopos.d.ts +9 -9
- package/fontes/interpretador/dialetos/egua-classico/resolvedor/pilha-escopos.js +25 -25
- package/fontes/interpretador/dialetos/egua-classico/resolvedor/resolvedor.d.ts +87 -87
- package/fontes/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js +387 -387
- package/fontes/interpretador/dialetos/egua-classico/resolvedor/retorno-resolvedor.d.ts +6 -6
- package/fontes/interpretador/dialetos/egua-classico/resolvedor/retorno-resolvedor.js +2 -2
- package/fontes/interpretador/dialetos/index.d.ts +4 -4
- package/fontes/interpretador/dialetos/index.js +20 -20
- package/fontes/interpretador/dialetos/portugol-studio/interpretador-portugol-studio.d.ts +12 -12
- package/fontes/interpretador/dialetos/portugol-studio/interpretador-portugol-studio.js +26 -26
- package/fontes/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.d.ts +40 -40
- package/fontes/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.js +96 -96
- package/fontes/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.js.map +1 -1
- package/fontes/interpretador/dialetos/visualg/interpretador-visualg.d.ts +53 -46
- package/fontes/interpretador/dialetos/visualg/interpretador-visualg.js +194 -102
- package/fontes/interpretador/dialetos/visualg/interpretador-visualg.js.map +1 -1
- package/fontes/interpretador/erro-interpretador.d.ts +8 -8
- package/fontes/interpretador/erro-interpretador.js +2 -2
- package/fontes/interpretador/index.d.ts +4 -4
- package/fontes/interpretador/index.js +20 -20
- package/fontes/interpretador/inferenciador.d.ts +1 -1
- package/fontes/interpretador/inferenciador.js +31 -31
- package/fontes/interpretador/interpretador-base.d.ts +186 -188
- package/fontes/interpretador/interpretador-base.js +1001 -1000
- package/fontes/interpretador/interpretador-base.js.map +1 -1
- package/fontes/interpretador/interpretador-com-depuracao.d.ts +199 -199
- package/fontes/interpretador/interpretador-com-depuracao.js +516 -516
- package/fontes/interpretador/interpretador-com-depuracao.js.map +1 -1
- package/fontes/interpretador/pilha-escopos-execucao.d.ts +38 -38
- package/fontes/interpretador/pilha-escopos-execucao.js +158 -158
- package/fontes/lexador/dialetos/index.d.ts +6 -6
- package/fontes/lexador/dialetos/index.js +22 -22
- package/fontes/lexador/dialetos/lexador-birl.d.ts +12 -12
- package/fontes/lexador/dialetos/lexador-birl.js +211 -211
- package/fontes/lexador/dialetos/lexador-egua-classico.d.ts +36 -36
- package/fontes/lexador/dialetos/lexador-egua-classico.js +286 -286
- package/fontes/lexador/dialetos/lexador-eguap.d.ts +51 -51
- package/fontes/lexador/dialetos/lexador-eguap.js +398 -398
- package/fontes/lexador/dialetos/lexador-guarani.d.ts +9 -9
- package/fontes/lexador/dialetos/lexador-guarani.js +113 -113
- package/fontes/lexador/dialetos/lexador-portugol-ipt.d.ts +33 -33
- package/fontes/lexador/dialetos/lexador-portugol-ipt.js +195 -195
- package/fontes/lexador/dialetos/lexador-portugol-studio.d.ts +21 -21
- package/fontes/lexador/dialetos/lexador-portugol-studio.js +280 -280
- package/fontes/lexador/dialetos/lexador-visualg.d.ts +18 -18
- package/fontes/lexador/dialetos/lexador-visualg.js +218 -218
- package/fontes/lexador/dialetos/palavras-reservadas/birl.d.ts +46 -46
- package/fontes/lexador/dialetos/palavras-reservadas/birl.js +63 -63
- package/fontes/lexador/dialetos/palavras-reservadas/egua-classico.d.ts +36 -36
- package/fontes/lexador/dialetos/palavras-reservadas/egua-classico.js +41 -41
- package/fontes/lexador/dialetos/palavras-reservadas/guarani.d.ts +4 -4
- package/fontes/lexador/dialetos/palavras-reservadas/guarani.js +9 -9
- package/fontes/lexador/dialetos/palavras-reservadas/index.d.ts +3 -3
- package/fontes/lexador/dialetos/palavras-reservadas/index.js +19 -19
- package/fontes/lexador/dialetos/palavras-reservadas/portugol-ipt.d.ts +6 -6
- package/fontes/lexador/dialetos/palavras-reservadas/portugol-ipt.js +11 -11
- package/fontes/lexador/dialetos/palavras-reservadas/portugol-studio.d.ts +23 -23
- package/fontes/lexador/dialetos/palavras-reservadas/portugol-studio.js +28 -28
- package/fontes/lexador/dialetos/palavras-reservadas/rantiaquin.d.ts +2 -2
- package/fontes/lexador/dialetos/palavras-reservadas/rantiaquin.js +3 -3
- package/fontes/lexador/dialetos/palavras-reservadas/visualg.d.ts +60 -60
- package/fontes/lexador/dialetos/palavras-reservadas/visualg.js +65 -65
- package/fontes/lexador/dialetos/pragma.d.ts +8 -8
- package/fontes/lexador/dialetos/pragma.js +2 -2
- package/fontes/lexador/erro-lexador.d.ts +5 -5
- package/fontes/lexador/erro-lexador.js +2 -2
- package/fontes/lexador/index.d.ts +2 -2
- package/fontes/lexador/index.js +18 -18
- package/fontes/lexador/lexador-base-linha-unica.d.ts +28 -28
- package/fontes/lexador/lexador-base-linha-unica.js +82 -82
- package/fontes/lexador/lexador-base.d.ts +41 -41
- package/fontes/lexador/lexador-base.js +112 -112
- package/fontes/lexador/lexador.d.ts +43 -43
- package/fontes/lexador/lexador.js +412 -412
- package/fontes/lexador/palavras-reservadas.d.ts +36 -36
- package/fontes/lexador/palavras-reservadas.js +41 -41
- package/fontes/lexador/simbolo.d.ts +10 -10
- package/fontes/lexador/simbolo.js +16 -16
- package/fontes/quebras/index.d.ts +10 -10
- package/fontes/quebras/index.js +19 -19
- package/fontes/tipos-de-simbolos/birl.d.ts +71 -71
- package/fontes/tipos-de-simbolos/birl.js +78 -78
- package/fontes/tipos-de-simbolos/comum.d.ts +22 -22
- package/fontes/tipos-de-simbolos/comum.js +23 -23
- package/fontes/tipos-de-simbolos/delegua.d.ts +80 -80
- package/fontes/tipos-de-simbolos/delegua.js +81 -81
- package/fontes/tipos-de-simbolos/egua-classico.d.ts +77 -77
- package/fontes/tipos-de-simbolos/egua-classico.js +78 -78
- package/fontes/tipos-de-simbolos/eguap.d.ts +73 -73
- package/fontes/tipos-de-simbolos/eguap.js +74 -74
- package/fontes/tipos-de-simbolos/guarani.d.ts +14 -14
- package/fontes/tipos-de-simbolos/guarani.js +15 -15
- package/fontes/tipos-de-simbolos/portugol-ipt.d.ts +28 -28
- package/fontes/tipos-de-simbolos/portugol-ipt.js +29 -29
- package/fontes/tipos-de-simbolos/portugol-studio.d.ts +53 -53
- package/fontes/tipos-de-simbolos/portugol-studio.js +54 -54
- package/fontes/tipos-de-simbolos/rantiaquin.d.ts +2 -2
- package/fontes/tipos-de-simbolos/rantiaquin.js +3 -3
- package/fontes/tipos-de-simbolos/visualg.d.ts +68 -68
- package/fontes/tipos-de-simbolos/visualg.js +69 -69
- package/fontes/tradutores/dicionarios/dicionario-delegua-javascript.d.ts +2 -2
- package/fontes/tradutores/dicionarios/dicionario-delegua-javascript.js +10 -10
- package/fontes/tradutores/dicionarios/index.d.ts +1 -1
- package/fontes/tradutores/dicionarios/index.js +17 -17
- package/fontes/tradutores/index.d.ts +2 -2
- package/fontes/tradutores/index.js +18 -18
- package/fontes/tradutores/python/python3-lexer.d.ts +152 -152
- package/fontes/tradutores/python/python3-lexer.js +1226 -1226
- package/fontes/tradutores/python/python3-listener.d.ts +953 -953
- package/fontes/tradutores/python/python3-listener.js +2 -2
- package/fontes/tradutores/python/python3-parser.d.ts +1330 -1330
- package/fontes/tradutores/python/python3-parser.js +11156 -11156
- package/fontes/tradutores/python/python3-visitor.d.ts +612 -612
- package/fontes/tradutores/python/python3-visitor.js +2 -2
- package/fontes/tradutores/tradutor-javascript.d.ts +83 -83
- package/fontes/tradutores/tradutor-javascript.js +470 -470
- package/fontes/tradutores/tradutor-python.d.ts +1 -1
- package/fontes/tradutores/tradutor-python.js +34 -34
- package/fontes/tradutores/tradutor-reverso-javascript.d.ts +47 -47
- package/fontes/tradutores/tradutor-reverso-javascript.js +342 -342
- package/index.d.ts +5 -5
- package/index.js +23 -23
- package/package.json +88 -88
|
@@ -1,295 +1,320 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.AvaliadorSintaticoBirl = void 0;
|
|
7
|
-
const construtos_1 = require("../../construtos");
|
|
8
|
-
const declaracoes_1 = require("../../declaracoes");
|
|
9
|
-
const avaliador_sintatico_base_1 = require("../avaliador-sintatico-base");
|
|
10
|
-
const birl_1 = __importDefault(require("../../tipos-de-simbolos/birl"));
|
|
11
|
-
class AvaliadorSintaticoBirl extends avaliador_sintatico_base_1.AvaliadorSintaticoBase {
|
|
12
|
-
validarSegmentoHoraDoShow() {
|
|
13
|
-
this.consumir(birl_1.default.HORA, 'Esperado expressão `HORA DO SHOW` para iniciar o programa');
|
|
14
|
-
this.consumir(birl_1.default.DO, 'Esperado expressão `HORA DO SHOW` para iniciar o programa');
|
|
15
|
-
this.consumir(birl_1.default.SHOW, 'Esperado expressão `HORA DO SHOW` para iniciar o programa');
|
|
16
|
-
this.blocos += 1;
|
|
17
|
-
}
|
|
18
|
-
validarSegmentoBirlFinal() {
|
|
19
|
-
this.consumir(birl_1.default.BIRL, 'Esperado expressão `BIRL` para fechamento do programa');
|
|
20
|
-
this.blocos -= 1;
|
|
21
|
-
}
|
|
22
|
-
primario() {
|
|
23
|
-
const simboloAtual = this.simbolos[this.atual];
|
|
24
|
-
if (this.verificarSeSimboloAtualEIgualA(birl_1.default.NEGATIVO))
|
|
25
|
-
return new construtos_1.Literal(this.hashArquivo, Number(simboloAtual.linha), false);
|
|
26
|
-
if (this.verificarSeSimboloAtualEIgualA(birl_1.default.POSITIVO))
|
|
27
|
-
return new construtos_1.Literal(this.hashArquivo, Number(simboloAtual.linha), true);
|
|
28
|
-
if (this.verificarSeSimboloAtualEIgualA(birl_1.default.IDENTIFICADOR)) {
|
|
29
|
-
return new construtos_1.Variavel(this.hashArquivo, this.simbolos[this.atual - 1]);
|
|
30
|
-
}
|
|
31
|
-
if (this.verificarSeSimboloAtualEIgualA(birl_1.default.NUMERO, birl_1.default.FRANGAO, birl_1.default.FRANGÃO, birl_1.default.FRANGO, birl_1.default.TEXTO)) {
|
|
32
|
-
const simboloAnterior = this.simbolos[this.atual - 1];
|
|
33
|
-
return new construtos_1.Literal(this.hashArquivo, Number(simboloAnterior.linha), simboloAnterior.literal);
|
|
34
|
-
}
|
|
35
|
-
if (this.verificarSeSimboloAtualEIgualA(birl_1.default.PARENTESE_ESQUERDO)) {
|
|
36
|
-
const expressao = this.expressao();
|
|
37
|
-
this.consumir(birl_1.default.PARENTESE_DIREITO, "Esperado ')' após a expressão.");
|
|
38
|
-
return new construtos_1.Agrupamento(this.hashArquivo, Number(simboloAtual.linha), expressao);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
chamar() {
|
|
42
|
-
return this.primario();
|
|
43
|
-
}
|
|
44
|
-
atribuir() {
|
|
45
|
-
const expressao = this.ou();
|
|
46
|
-
if (this.verificarSeSimboloAtualEIgualA(birl_1.default.IGUAL)) {
|
|
47
|
-
const igual = this.simboloAnterior();
|
|
48
|
-
const valor = this.atribuir();
|
|
49
|
-
if (expressao instanceof construtos_1.Variavel) {
|
|
50
|
-
const simbolo = expressao.simbolo;
|
|
51
|
-
return new construtos_1.Atribuir(this.hashArquivo, simbolo, valor);
|
|
52
|
-
}
|
|
53
|
-
else if (expressao instanceof construtos_1.AcessoMetodo) {
|
|
54
|
-
const get = expressao;
|
|
55
|
-
return new construtos_1.DefinirValor(this.hashArquivo, 0, get.objeto, get.simbolo, valor);
|
|
56
|
-
}
|
|
57
|
-
else if (expressao instanceof construtos_1.AcessoIndiceVariavel) {
|
|
58
|
-
return new construtos_1.AtribuicaoSobrescrita(this.hashArquivo, 0, expressao.entidadeChamada, expressao.indice, valor);
|
|
59
|
-
}
|
|
60
|
-
this.erro(igual, 'Tarefa de atribuição inválida');
|
|
61
|
-
}
|
|
62
|
-
return expressao;
|
|
63
|
-
}
|
|
64
|
-
blocoEscopo() {
|
|
65
|
-
throw new Error('Método não implementado.');
|
|
66
|
-
}
|
|
67
|
-
declaracaoEnquanto() {
|
|
68
|
-
this.consumir(birl_1.default.NEGATIVA, 'Esperado expressão `NEGATIVA` para iniciar o bloco `ENQUANTO`.');
|
|
69
|
-
this.consumir(birl_1.default.BAMBAM, 'Esperado expressão `BAMBAM` após `NEGATIVA` para iniciar o bloco `ENQUANTO`.');
|
|
70
|
-
this.consumir(birl_1.default.PARENTESE_ESQUERDO, 'Esperado expressão `(` após `BAMBAM` para iniciar o bloco `ENQUANTO`.');
|
|
71
|
-
const codicao = this.expressao();
|
|
72
|
-
this.consumir(birl_1.default.PARENTESE_DIREITO, 'Esperado expressão `)` após a condição para iniciar o bloco `ENQUANTO`.');
|
|
73
|
-
const declaracoes = [];
|
|
74
|
-
while (!this.verificarSeSimboloAtualEIgualA(birl_1.default.BIRL)) {
|
|
75
|
-
declaracoes.push(this.declaracao());
|
|
76
|
-
}
|
|
77
|
-
this.consumir(birl_1.default.BIRL, 'Esperado expressão `BIRL` para fechar o bloco `ENQUANTO`.');
|
|
78
|
-
return new declaracoes_1.Enquanto(codicao, declaracoes);
|
|
79
|
-
}
|
|
80
|
-
declaracaoExpressao() {
|
|
81
|
-
const expressao = this.expressao();
|
|
82
|
-
this.consumir(birl_1.default.PONTO_E_VIRGULA, "Esperado ';' após expressão.");
|
|
83
|
-
return new declaracoes_1.Expressao(expressao);
|
|
84
|
-
}
|
|
85
|
-
declaracaoPara() {
|
|
86
|
-
const simboloPara = this.consumir(birl_1.default.MAIS, 'Esperado expressão `MAIS` para iniciar o bloco `PARA`.');
|
|
87
|
-
this.consumir(birl_1.default.QUERO, 'Esperado expressão `QUERO` após `MAIS` para iniciar o bloco `PARA`.');
|
|
88
|
-
this.consumir(birl_1.default.MAIS, 'Esperado expressão `MAIS` após `QUERO` para iniciar o bloco `PARA`.');
|
|
89
|
-
this.consumir(birl_1.default.PARENTESE_ESQUERDO, 'Esperado expressão `(` após `MAIS` para iniciar o bloco `PARA`.');
|
|
90
|
-
let inicializador;
|
|
91
|
-
if (this.verificarSeSimboloAtualEIgualA(birl_1.default.PONTO_E_VIRGULA)) {
|
|
92
|
-
inicializador = null;
|
|
93
|
-
}
|
|
94
|
-
else if (this.verificarSeSimboloAtualEIgualA(birl_1.default.MONSTRO)) {
|
|
95
|
-
inicializador = this.declaracaoDeVariavel();
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
inicializador = this.declaracaoExpressao();
|
|
99
|
-
}
|
|
100
|
-
let condicao = null;
|
|
101
|
-
if (!this.verificarTipoSimboloAtual(birl_1.default.PONTO_E_VIRGULA)) {
|
|
102
|
-
condicao = this.expressao();
|
|
103
|
-
}
|
|
104
|
-
let incrementar = null;
|
|
105
|
-
if (!this.verificarTipoSimboloAtual(birl_1.default.PARENTESE_DIREITO)) {
|
|
106
|
-
incrementar = this.expressao();
|
|
107
|
-
}
|
|
108
|
-
this.consumir(birl_1.default.PARENTESE_DIREITO, 'Esperado expressão `)` após a condição para iniciar o bloco `PARA`.');
|
|
109
|
-
const declaracao = [];
|
|
110
|
-
while (!this.verificarSeSimboloAtualEIgualA(birl_1.default.BIRL)) {
|
|
111
|
-
declaracao.push(this.declaracao());
|
|
112
|
-
}
|
|
113
|
-
this.consumir(birl_1.default.BIRL, 'Esperado expressão `BIRL` para fechar o bloco `PARA`.');
|
|
114
|
-
return new declaracoes_1.Para(this.hashArquivo, simboloPara.linha, 0, 0, 0, 0);
|
|
115
|
-
}
|
|
116
|
-
declaracaoEscolha() {
|
|
117
|
-
throw new Error('Método não implementado.');
|
|
118
|
-
}
|
|
119
|
-
declaracaoEscreva() {
|
|
120
|
-
const primeiroSimbolo = this.consumir(birl_1.default.CE, 'Esperado expressão `CE` para escrever mensagem.');
|
|
121
|
-
this.consumir(birl_1.default.QUER, 'Esperado expressão `QUER` após `CE` para escrever mensagem.');
|
|
122
|
-
this.consumir(birl_1.default.VER, 'Esperado expressão `VER` após `QUER` para escrever mensagem.');
|
|
123
|
-
this.consumir(birl_1.default.ESSA, 'Esperado expressão `ESSA` após `VER` para escrever mensagem.');
|
|
124
|
-
this.consumir(birl_1.default.PORRA, 'Esperado expressão `PORRA` após `ESSA` para escrever mensagem.');
|
|
125
|
-
this.consumir(birl_1.default.INTERROGACAO, 'Esperado interrogação após `PORRA` para escrever mensagem.');
|
|
126
|
-
this.consumir(birl_1.default.PARENTESE_ESQUERDO, 'Esperado parêntese esquerdo após interrogação para escrever mensagem.');
|
|
127
|
-
const argumento = this.declaracao();
|
|
128
|
-
this.consumir(birl_1.default.PARENTESE_DIREITO, 'Esperado parêntese direito após argumento para escrever mensagem.');
|
|
129
|
-
return new declaracoes_1.Escreva(Number(primeiroSimbolo.linha), this.hashArquivo, [argumento]);
|
|
130
|
-
}
|
|
131
|
-
declaracaoFazer() {
|
|
132
|
-
throw new Error('Método não implementado.');
|
|
133
|
-
}
|
|
134
|
-
declaracaoCaracteres() {
|
|
135
|
-
if (this.verificarTipoSimboloAtual(birl_1.default.BICEPS)) {
|
|
136
|
-
this.consumir(birl_1.default.BICEPS, '');
|
|
137
|
-
}
|
|
138
|
-
const simboloCaractere = this.consumir(birl_1.default.FRANGO, '');
|
|
139
|
-
const inicializacoes = [];
|
|
140
|
-
do {
|
|
141
|
-
const identificador = this.consumir(birl_1.default.IDENTIFICADOR, "Esperado identificador após palavra reservada 'FRANGO'.");
|
|
142
|
-
inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloCaractere.hashArquivo), 0)));
|
|
143
|
-
// Inicialização de variáveis que podem ter valor definido;
|
|
144
|
-
let valorInicializacao;
|
|
145
|
-
if (this.verificarSeSimboloAtualEIgualA(birl_1.default.IGUAL)) {
|
|
146
|
-
this.consumir(birl_1.default.TEXTO, "Esperado ' para começar o texto.");
|
|
147
|
-
const literalInicializacao = this.consumir(birl_1.default.IDENTIFICADOR, 'Esperado literal de FRANGO após símbolo de igual em declaração de variável.');
|
|
148
|
-
this.consumir(birl_1.default.TEXTO, "Esperado ' para terminar o texto.");
|
|
149
|
-
valorInicializacao = String(literalInicializacao.literal);
|
|
150
|
-
}
|
|
151
|
-
inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloCaractere.linha), valorInicializacao)));
|
|
152
|
-
} while (this.verificarSeSimboloAtualEIgualA(birl_1.default.VIRGULA));
|
|
153
|
-
return inicializacoes;
|
|
154
|
-
}
|
|
155
|
-
declaracaoInteiros() {
|
|
156
|
-
let simboloInteiro;
|
|
157
|
-
if (this.verificarTipoSimboloAtual(birl_1.default.MONSTRO)) {
|
|
158
|
-
simboloInteiro = this.consumir(birl_1.default.MONSTRO, '');
|
|
159
|
-
}
|
|
160
|
-
else if (this.verificarTipoSimboloAtual(birl_1.default.MONSTRINHO)) {
|
|
161
|
-
simboloInteiro = this.consumir(birl_1.default.MONSTRINHO, '');
|
|
162
|
-
}
|
|
163
|
-
else if (this.verificarTipoSimboloAtual(birl_1.default.MONSTRAO)) {
|
|
164
|
-
simboloInteiro = this.consumir(birl_1.default.MONSTRAO, '');
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
throw new Error('Simbolo referente a inteiro não especificado.');
|
|
168
|
-
}
|
|
169
|
-
const inicializacoes = [];
|
|
170
|
-
do {
|
|
171
|
-
const identificador = this.consumir(birl_1.default.IDENTIFICADOR, `Esperado identificador após palavra reservada '${simboloInteiro.lexema}'.`);
|
|
172
|
-
inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloInteiro.linha), 0)));
|
|
173
|
-
// Inicializações de variáveis podem ter valores definidos.
|
|
174
|
-
let valorInicializacao = 0x00;
|
|
175
|
-
if (this.verificarSeSimboloAtualEIgualA(birl_1.default.IGUAL)) {
|
|
176
|
-
const literalInicializacao = this.consumir(birl_1.default.NUMERO, `Esperado literal de ${simboloInteiro.lexema} após símbolo de igual em declaração de variável.`);
|
|
177
|
-
valorInicializacao = Number(literalInicializacao.literal);
|
|
178
|
-
}
|
|
179
|
-
inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloInteiro.linha), valorInicializacao)));
|
|
180
|
-
} while (this.verificarSeSimboloAtualEIgualA(birl_1.default.VIRGULA));
|
|
181
|
-
return inicializacoes;
|
|
182
|
-
}
|
|
183
|
-
declaracaoPontoFlutuante() {
|
|
184
|
-
const simboloFloat = this.consumir(birl_1.default.TRAPEZIO, '');
|
|
185
|
-
if (this.verificarTipoSimboloAtual(birl_1.default.DESCENDENTE)) {
|
|
186
|
-
this.consumir(birl_1.default.DESCENDENTE, '');
|
|
187
|
-
}
|
|
188
|
-
const inicializacoes = [];
|
|
189
|
-
do {
|
|
190
|
-
const identificador = this.consumir(birl_1.default.IDENTIFICADOR, "Esperado identificador após palavra reservada 'TRAPEZIO'.");
|
|
191
|
-
inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloFloat.linha), 0)));
|
|
192
|
-
// Inicializações de variáveis que podem ter valores definidos
|
|
193
|
-
let valorInicializacao = 0x00;
|
|
194
|
-
if (this.verificarSeSimboloAtualEIgualA(birl_1.default.IGUAL)) {
|
|
195
|
-
const literalInicializacao = this.consumir(birl_1.default.NUMERO, 'Esperado literal de TRAPEZIO após símbolo de igual em declaração de variavel.');
|
|
196
|
-
valorInicializacao = parseFloat(literalInicializacao.literal);
|
|
197
|
-
}
|
|
198
|
-
inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloFloat.linha), valorInicializacao)));
|
|
199
|
-
} while (this.verificarSeSimboloAtualEIgualA(birl_1.default.VIRGULA));
|
|
200
|
-
return inicializacoes;
|
|
201
|
-
}
|
|
202
|
-
declaracaoRetorna() {
|
|
203
|
-
const primeiroSimbolo = this.consumir(birl_1.default.BORA, 'Esperado expressão `BORA` para retornar valor.');
|
|
204
|
-
this.consumir(birl_1.default.CUMPADE, 'Esperado expressão `CUMPADE` após `BORA` para retornar valor.');
|
|
205
|
-
// this.consumir(tiposDeSimbolos.INTERROGACAO, 'Esperado interrogação após `CUMPADE` para retornar valor.');
|
|
206
|
-
const valor = this.declaracao();
|
|
207
|
-
return new declaracoes_1.Retorna(primeiroSimbolo, valor);
|
|
208
|
-
}
|
|
209
|
-
declaracaoLeia() {
|
|
210
|
-
const primeiroSimbolo = this.consumir(birl_1.default.QUE, 'Esperado expressão `QUE` para ler valor.');
|
|
211
|
-
this.consumir(birl_1.default.QUE, 'Esperado expressão `QUE` após `QUE` para ler valor.');
|
|
212
|
-
this.consumir(birl_1.default.CE, 'Esperado expressão `CE` após `QUE` para ler valor.');
|
|
213
|
-
this.consumir(birl_1.default.QUER, 'Esperado expressão `QUER` após `CE` para ler valor.');
|
|
214
|
-
this.consumir(birl_1.default.MONSTRAO, 'Esperado expressão `MONSTRAO` após `QUER` para ler valor.');
|
|
215
|
-
this.consumir(birl_1.default.INTERROGACAO, 'Esperado interrogação após `MONSTRAO` para ler valor.');
|
|
216
|
-
this.consumir(birl_1.default.PARENTESE_ESQUERDO, 'Esperado parêntese esquerdo após interrogação para ler valor.');
|
|
217
|
-
const simbolo = this.consumir(birl_1.default.TEXTO, 'Esperado texto após parêntese esquerdo para ler valor.');
|
|
218
|
-
const ponteiro = this.consumir(birl_1.default.IDENTIFICADOR, 'Esperado identificador após texto para ler valor.');
|
|
219
|
-
this.consumir(birl_1.default.PARENTESE_DIREITO, 'Esperado parêntese direito após identificador para ler valor.');
|
|
220
|
-
this.consumir(birl_1.default.PONTO_E_VIRGULA, 'Esperado ponto e vírgula após parêntese direito para ler valor.');
|
|
221
|
-
return new declaracoes_1.Leia(Number(primeiroSimbolo.linha), this.hashArquivo, []);
|
|
222
|
-
}
|
|
223
|
-
declaracaoSe() {
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
const
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
case birl_1.default.
|
|
264
|
-
this.
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
}
|
|
294
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.AvaliadorSintaticoBirl = void 0;
|
|
7
|
+
const construtos_1 = require("../../construtos");
|
|
8
|
+
const declaracoes_1 = require("../../declaracoes");
|
|
9
|
+
const avaliador_sintatico_base_1 = require("../avaliador-sintatico-base");
|
|
10
|
+
const birl_1 = __importDefault(require("../../tipos-de-simbolos/birl"));
|
|
11
|
+
class AvaliadorSintaticoBirl extends avaliador_sintatico_base_1.AvaliadorSintaticoBase {
|
|
12
|
+
validarSegmentoHoraDoShow() {
|
|
13
|
+
this.consumir(birl_1.default.HORA, 'Esperado expressão `HORA DO SHOW` para iniciar o programa');
|
|
14
|
+
this.consumir(birl_1.default.DO, 'Esperado expressão `HORA DO SHOW` para iniciar o programa');
|
|
15
|
+
this.consumir(birl_1.default.SHOW, 'Esperado expressão `HORA DO SHOW` para iniciar o programa');
|
|
16
|
+
this.blocos += 1;
|
|
17
|
+
}
|
|
18
|
+
validarSegmentoBirlFinal() {
|
|
19
|
+
this.consumir(birl_1.default.BIRL, 'Esperado expressão `BIRL` para fechamento do programa');
|
|
20
|
+
this.blocos -= 1;
|
|
21
|
+
}
|
|
22
|
+
primario() {
|
|
23
|
+
const simboloAtual = this.simbolos[this.atual];
|
|
24
|
+
if (this.verificarSeSimboloAtualEIgualA(birl_1.default.NEGATIVO))
|
|
25
|
+
return new construtos_1.Literal(this.hashArquivo, Number(simboloAtual.linha), false);
|
|
26
|
+
if (this.verificarSeSimboloAtualEIgualA(birl_1.default.POSITIVO))
|
|
27
|
+
return new construtos_1.Literal(this.hashArquivo, Number(simboloAtual.linha), true);
|
|
28
|
+
if (this.verificarSeSimboloAtualEIgualA(birl_1.default.IDENTIFICADOR)) {
|
|
29
|
+
return new construtos_1.Variavel(this.hashArquivo, this.simbolos[this.atual - 1]);
|
|
30
|
+
}
|
|
31
|
+
if (this.verificarSeSimboloAtualEIgualA(birl_1.default.NUMERO, birl_1.default.FRANGAO, birl_1.default.FRANGÃO, birl_1.default.FRANGO, birl_1.default.TEXTO)) {
|
|
32
|
+
const simboloAnterior = this.simbolos[this.atual - 1];
|
|
33
|
+
return new construtos_1.Literal(this.hashArquivo, Number(simboloAnterior.linha), simboloAnterior.literal);
|
|
34
|
+
}
|
|
35
|
+
if (this.verificarSeSimboloAtualEIgualA(birl_1.default.PARENTESE_ESQUERDO)) {
|
|
36
|
+
const expressao = this.expressao();
|
|
37
|
+
this.consumir(birl_1.default.PARENTESE_DIREITO, "Esperado ')' após a expressão.");
|
|
38
|
+
return new construtos_1.Agrupamento(this.hashArquivo, Number(simboloAtual.linha), expressao);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
chamar() {
|
|
42
|
+
return this.primario();
|
|
43
|
+
}
|
|
44
|
+
atribuir() {
|
|
45
|
+
const expressao = this.ou();
|
|
46
|
+
if (this.verificarSeSimboloAtualEIgualA(birl_1.default.IGUAL)) {
|
|
47
|
+
const igual = this.simboloAnterior();
|
|
48
|
+
const valor = this.atribuir();
|
|
49
|
+
if (expressao instanceof construtos_1.Variavel) {
|
|
50
|
+
const simbolo = expressao.simbolo;
|
|
51
|
+
return new construtos_1.Atribuir(this.hashArquivo, simbolo, valor);
|
|
52
|
+
}
|
|
53
|
+
else if (expressao instanceof construtos_1.AcessoMetodo) {
|
|
54
|
+
const get = expressao;
|
|
55
|
+
return new construtos_1.DefinirValor(this.hashArquivo, 0, get.objeto, get.simbolo, valor);
|
|
56
|
+
}
|
|
57
|
+
else if (expressao instanceof construtos_1.AcessoIndiceVariavel) {
|
|
58
|
+
return new construtos_1.AtribuicaoSobrescrita(this.hashArquivo, 0, expressao.entidadeChamada, expressao.indice, valor);
|
|
59
|
+
}
|
|
60
|
+
this.erro(igual, 'Tarefa de atribuição inválida');
|
|
61
|
+
}
|
|
62
|
+
return expressao;
|
|
63
|
+
}
|
|
64
|
+
blocoEscopo() {
|
|
65
|
+
throw new Error('Método não implementado.');
|
|
66
|
+
}
|
|
67
|
+
declaracaoEnquanto() {
|
|
68
|
+
this.consumir(birl_1.default.NEGATIVA, 'Esperado expressão `NEGATIVA` para iniciar o bloco `ENQUANTO`.');
|
|
69
|
+
this.consumir(birl_1.default.BAMBAM, 'Esperado expressão `BAMBAM` após `NEGATIVA` para iniciar o bloco `ENQUANTO`.');
|
|
70
|
+
this.consumir(birl_1.default.PARENTESE_ESQUERDO, 'Esperado expressão `(` após `BAMBAM` para iniciar o bloco `ENQUANTO`.');
|
|
71
|
+
const codicao = this.expressao();
|
|
72
|
+
this.consumir(birl_1.default.PARENTESE_DIREITO, 'Esperado expressão `)` após a condição para iniciar o bloco `ENQUANTO`.');
|
|
73
|
+
const declaracoes = [];
|
|
74
|
+
while (!this.verificarSeSimboloAtualEIgualA(birl_1.default.BIRL)) {
|
|
75
|
+
declaracoes.push(this.declaracao());
|
|
76
|
+
}
|
|
77
|
+
this.consumir(birl_1.default.BIRL, 'Esperado expressão `BIRL` para fechar o bloco `ENQUANTO`.');
|
|
78
|
+
return new declaracoes_1.Enquanto(codicao, declaracoes);
|
|
79
|
+
}
|
|
80
|
+
declaracaoExpressao() {
|
|
81
|
+
const expressao = this.expressao();
|
|
82
|
+
this.consumir(birl_1.default.PONTO_E_VIRGULA, "Esperado ';' após expressão.");
|
|
83
|
+
return new declaracoes_1.Expressao(expressao);
|
|
84
|
+
}
|
|
85
|
+
declaracaoPara() {
|
|
86
|
+
const simboloPara = this.consumir(birl_1.default.MAIS, 'Esperado expressão `MAIS` para iniciar o bloco `PARA`.');
|
|
87
|
+
this.consumir(birl_1.default.QUERO, 'Esperado expressão `QUERO` após `MAIS` para iniciar o bloco `PARA`.');
|
|
88
|
+
this.consumir(birl_1.default.MAIS, 'Esperado expressão `MAIS` após `QUERO` para iniciar o bloco `PARA`.');
|
|
89
|
+
this.consumir(birl_1.default.PARENTESE_ESQUERDO, 'Esperado expressão `(` após `MAIS` para iniciar o bloco `PARA`.');
|
|
90
|
+
let inicializador;
|
|
91
|
+
if (this.verificarSeSimboloAtualEIgualA(birl_1.default.PONTO_E_VIRGULA)) {
|
|
92
|
+
inicializador = null;
|
|
93
|
+
}
|
|
94
|
+
else if (this.verificarSeSimboloAtualEIgualA(birl_1.default.MONSTRO)) {
|
|
95
|
+
inicializador = this.declaracaoDeVariavel();
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
inicializador = this.declaracaoExpressao();
|
|
99
|
+
}
|
|
100
|
+
let condicao = null;
|
|
101
|
+
if (!this.verificarTipoSimboloAtual(birl_1.default.PONTO_E_VIRGULA)) {
|
|
102
|
+
condicao = this.expressao();
|
|
103
|
+
}
|
|
104
|
+
let incrementar = null;
|
|
105
|
+
if (!this.verificarTipoSimboloAtual(birl_1.default.PARENTESE_DIREITO)) {
|
|
106
|
+
incrementar = this.expressao();
|
|
107
|
+
}
|
|
108
|
+
this.consumir(birl_1.default.PARENTESE_DIREITO, 'Esperado expressão `)` após a condição para iniciar o bloco `PARA`.');
|
|
109
|
+
const declaracao = [];
|
|
110
|
+
while (!this.verificarSeSimboloAtualEIgualA(birl_1.default.BIRL)) {
|
|
111
|
+
declaracao.push(this.declaracao());
|
|
112
|
+
}
|
|
113
|
+
this.consumir(birl_1.default.BIRL, 'Esperado expressão `BIRL` para fechar o bloco `PARA`.');
|
|
114
|
+
return new declaracoes_1.Para(this.hashArquivo, simboloPara.linha, 0, 0, 0, 0);
|
|
115
|
+
}
|
|
116
|
+
declaracaoEscolha() {
|
|
117
|
+
throw new Error('Método não implementado.');
|
|
118
|
+
}
|
|
119
|
+
declaracaoEscreva() {
|
|
120
|
+
const primeiroSimbolo = this.consumir(birl_1.default.CE, 'Esperado expressão `CE` para escrever mensagem.');
|
|
121
|
+
this.consumir(birl_1.default.QUER, 'Esperado expressão `QUER` após `CE` para escrever mensagem.');
|
|
122
|
+
this.consumir(birl_1.default.VER, 'Esperado expressão `VER` após `QUER` para escrever mensagem.');
|
|
123
|
+
this.consumir(birl_1.default.ESSA, 'Esperado expressão `ESSA` após `VER` para escrever mensagem.');
|
|
124
|
+
this.consumir(birl_1.default.PORRA, 'Esperado expressão `PORRA` após `ESSA` para escrever mensagem.');
|
|
125
|
+
this.consumir(birl_1.default.INTERROGACAO, 'Esperado interrogação após `PORRA` para escrever mensagem.');
|
|
126
|
+
this.consumir(birl_1.default.PARENTESE_ESQUERDO, 'Esperado parêntese esquerdo após interrogação para escrever mensagem.');
|
|
127
|
+
const argumento = this.declaracao();
|
|
128
|
+
this.consumir(birl_1.default.PARENTESE_DIREITO, 'Esperado parêntese direito após argumento para escrever mensagem.');
|
|
129
|
+
return new declaracoes_1.Escreva(Number(primeiroSimbolo.linha), this.hashArquivo, [argumento]);
|
|
130
|
+
}
|
|
131
|
+
declaracaoFazer() {
|
|
132
|
+
throw new Error('Método não implementado.');
|
|
133
|
+
}
|
|
134
|
+
declaracaoCaracteres() {
|
|
135
|
+
if (this.verificarTipoSimboloAtual(birl_1.default.BICEPS)) {
|
|
136
|
+
this.consumir(birl_1.default.BICEPS, '');
|
|
137
|
+
}
|
|
138
|
+
const simboloCaractere = this.consumir(birl_1.default.FRANGO, '');
|
|
139
|
+
const inicializacoes = [];
|
|
140
|
+
do {
|
|
141
|
+
const identificador = this.consumir(birl_1.default.IDENTIFICADOR, "Esperado identificador após palavra reservada 'FRANGO'.");
|
|
142
|
+
inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloCaractere.hashArquivo), 0)));
|
|
143
|
+
// Inicialização de variáveis que podem ter valor definido;
|
|
144
|
+
let valorInicializacao;
|
|
145
|
+
if (this.verificarSeSimboloAtualEIgualA(birl_1.default.IGUAL)) {
|
|
146
|
+
this.consumir(birl_1.default.TEXTO, "Esperado ' para começar o texto.");
|
|
147
|
+
const literalInicializacao = this.consumir(birl_1.default.IDENTIFICADOR, 'Esperado literal de FRANGO após símbolo de igual em declaração de variável.');
|
|
148
|
+
this.consumir(birl_1.default.TEXTO, "Esperado ' para terminar o texto.");
|
|
149
|
+
valorInicializacao = String(literalInicializacao.literal);
|
|
150
|
+
}
|
|
151
|
+
inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloCaractere.linha), valorInicializacao)));
|
|
152
|
+
} while (this.verificarSeSimboloAtualEIgualA(birl_1.default.VIRGULA));
|
|
153
|
+
return inicializacoes;
|
|
154
|
+
}
|
|
155
|
+
declaracaoInteiros() {
|
|
156
|
+
let simboloInteiro;
|
|
157
|
+
if (this.verificarTipoSimboloAtual(birl_1.default.MONSTRO)) {
|
|
158
|
+
simboloInteiro = this.consumir(birl_1.default.MONSTRO, '');
|
|
159
|
+
}
|
|
160
|
+
else if (this.verificarTipoSimboloAtual(birl_1.default.MONSTRINHO)) {
|
|
161
|
+
simboloInteiro = this.consumir(birl_1.default.MONSTRINHO, '');
|
|
162
|
+
}
|
|
163
|
+
else if (this.verificarTipoSimboloAtual(birl_1.default.MONSTRAO)) {
|
|
164
|
+
simboloInteiro = this.consumir(birl_1.default.MONSTRAO, '');
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
throw new Error('Simbolo referente a inteiro não especificado.');
|
|
168
|
+
}
|
|
169
|
+
const inicializacoes = [];
|
|
170
|
+
do {
|
|
171
|
+
const identificador = this.consumir(birl_1.default.IDENTIFICADOR, `Esperado identificador após palavra reservada '${simboloInteiro.lexema}'.`);
|
|
172
|
+
inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloInteiro.linha), 0)));
|
|
173
|
+
// Inicializações de variáveis podem ter valores definidos.
|
|
174
|
+
let valorInicializacao = 0x00;
|
|
175
|
+
if (this.verificarSeSimboloAtualEIgualA(birl_1.default.IGUAL)) {
|
|
176
|
+
const literalInicializacao = this.consumir(birl_1.default.NUMERO, `Esperado literal de ${simboloInteiro.lexema} após símbolo de igual em declaração de variável.`);
|
|
177
|
+
valorInicializacao = Number(literalInicializacao.literal);
|
|
178
|
+
}
|
|
179
|
+
inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloInteiro.linha), valorInicializacao)));
|
|
180
|
+
} while (this.verificarSeSimboloAtualEIgualA(birl_1.default.VIRGULA));
|
|
181
|
+
return inicializacoes;
|
|
182
|
+
}
|
|
183
|
+
declaracaoPontoFlutuante() {
|
|
184
|
+
const simboloFloat = this.consumir(birl_1.default.TRAPEZIO, '');
|
|
185
|
+
if (this.verificarTipoSimboloAtual(birl_1.default.DESCENDENTE)) {
|
|
186
|
+
this.consumir(birl_1.default.DESCENDENTE, '');
|
|
187
|
+
}
|
|
188
|
+
const inicializacoes = [];
|
|
189
|
+
do {
|
|
190
|
+
const identificador = this.consumir(birl_1.default.IDENTIFICADOR, "Esperado identificador após palavra reservada 'TRAPEZIO'.");
|
|
191
|
+
inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloFloat.linha), 0)));
|
|
192
|
+
// Inicializações de variáveis que podem ter valores definidos
|
|
193
|
+
let valorInicializacao = 0x00;
|
|
194
|
+
if (this.verificarSeSimboloAtualEIgualA(birl_1.default.IGUAL)) {
|
|
195
|
+
const literalInicializacao = this.consumir(birl_1.default.NUMERO, 'Esperado literal de TRAPEZIO após símbolo de igual em declaração de variavel.');
|
|
196
|
+
valorInicializacao = parseFloat(literalInicializacao.literal);
|
|
197
|
+
}
|
|
198
|
+
inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloFloat.linha), valorInicializacao)));
|
|
199
|
+
} while (this.verificarSeSimboloAtualEIgualA(birl_1.default.VIRGULA));
|
|
200
|
+
return inicializacoes;
|
|
201
|
+
}
|
|
202
|
+
declaracaoRetorna() {
|
|
203
|
+
const primeiroSimbolo = this.consumir(birl_1.default.BORA, 'Esperado expressão `BORA` para retornar valor.');
|
|
204
|
+
this.consumir(birl_1.default.CUMPADE, 'Esperado expressão `CUMPADE` após `BORA` para retornar valor.');
|
|
205
|
+
// this.consumir(tiposDeSimbolos.INTERROGACAO, 'Esperado interrogação após `CUMPADE` para retornar valor.');
|
|
206
|
+
const valor = this.declaracao();
|
|
207
|
+
return new declaracoes_1.Retorna(primeiroSimbolo, valor);
|
|
208
|
+
}
|
|
209
|
+
declaracaoLeia() {
|
|
210
|
+
const primeiroSimbolo = this.consumir(birl_1.default.QUE, 'Esperado expressão `QUE` para ler valor.');
|
|
211
|
+
this.consumir(birl_1.default.QUE, 'Esperado expressão `QUE` após `QUE` para ler valor.');
|
|
212
|
+
this.consumir(birl_1.default.CE, 'Esperado expressão `CE` após `QUE` para ler valor.');
|
|
213
|
+
this.consumir(birl_1.default.QUER, 'Esperado expressão `QUER` após `CE` para ler valor.');
|
|
214
|
+
this.consumir(birl_1.default.MONSTRAO, 'Esperado expressão `MONSTRAO` após `QUER` para ler valor.');
|
|
215
|
+
this.consumir(birl_1.default.INTERROGACAO, 'Esperado interrogação após `MONSTRAO` para ler valor.');
|
|
216
|
+
this.consumir(birl_1.default.PARENTESE_ESQUERDO, 'Esperado parêntese esquerdo após interrogação para ler valor.');
|
|
217
|
+
const simbolo = this.consumir(birl_1.default.TEXTO, 'Esperado texto após parêntese esquerdo para ler valor.');
|
|
218
|
+
const ponteiro = this.consumir(birl_1.default.IDENTIFICADOR, 'Esperado identificador após texto para ler valor.');
|
|
219
|
+
this.consumir(birl_1.default.PARENTESE_DIREITO, 'Esperado parêntese direito após identificador para ler valor.');
|
|
220
|
+
this.consumir(birl_1.default.PONTO_E_VIRGULA, 'Esperado ponto e vírgula após parêntese direito para ler valor.');
|
|
221
|
+
return new declaracoes_1.Leia(Number(primeiroSimbolo.linha), this.hashArquivo, []);
|
|
222
|
+
}
|
|
223
|
+
declaracaoSe() {
|
|
224
|
+
const simboloSe = this.consumir(birl_1.default.ELE, 'Esperado expressão `ELE` para condição.');
|
|
225
|
+
this.consumir(birl_1.default.QUE, 'Esperado expressão `QUE` após `ELE` para condição.');
|
|
226
|
+
this.consumir(birl_1.default.A, 'Esperado expressão `A` após `QUE` para condição.');
|
|
227
|
+
this.consumir(birl_1.default.GENTE, 'Esperado expressão `GENTE` após `A` para condição.');
|
|
228
|
+
this.consumir(birl_1.default.QUER, 'Esperado expressão `QUER` após `GENTE` para condição.');
|
|
229
|
+
this.consumir(birl_1.default.INTERROGACAO, 'Esperado interrogação após `QUER` para condição.');
|
|
230
|
+
const condicao = this.declaracao();
|
|
231
|
+
this.consumir(birl_1.default.QUEBRA_LINHA, 'Esperado quebra de linha após expressão de condição para condição.');
|
|
232
|
+
const declaracoes = [];
|
|
233
|
+
while (this.verificarTipoSimboloAtual(birl_1.default.QUEBRA_LINHA)) {
|
|
234
|
+
this.consumir(birl_1.default.QUEBRA_LINHA, '');
|
|
235
|
+
}
|
|
236
|
+
do {
|
|
237
|
+
declaracoes.push(this.declaracao());
|
|
238
|
+
this.avancarEDevolverAnterior();
|
|
239
|
+
} while (![birl_1.default.BIRL].includes(this.simbolos[this.atual].tipo));
|
|
240
|
+
let caminhoSenao = null;
|
|
241
|
+
if (this.verificarTipoSimboloAtual(birl_1.default.NAO)) {
|
|
242
|
+
const simboloSenao = this.consumir(birl_1.default.NAO, 'Esperado expressão `NAO` após expressão de condição.');
|
|
243
|
+
this.consumir(birl_1.default.VAI, 'Esperado expressão `VAI` após `NAO`.');
|
|
244
|
+
this.consumir(birl_1.default.DAR, 'Esperado expressão `DAR` após `VAI`.');
|
|
245
|
+
this.consumir(birl_1.default.NAO, 'Esperado expressão `NAO` após `DAR`.');
|
|
246
|
+
const declaracaoSenao = [];
|
|
247
|
+
do {
|
|
248
|
+
declaracaoSenao.push(this.declaracao());
|
|
249
|
+
} while (![birl_1.default.BIRL].includes(this.simbolos[this.atual].tipo));
|
|
250
|
+
caminhoSenao = new declaracoes_1.Bloco(this.hashArquivo, Number(simboloSe.linha), declaracaoSenao.filter((d) => d));
|
|
251
|
+
}
|
|
252
|
+
this.consumir(birl_1.default.BIRL, 'Esperado expressão `BIRL` após expressão de condição.');
|
|
253
|
+
return new declaracoes_1.Se(condicao, new declaracoes_1.Bloco(this.hashArquivo, Number(simboloSe.linha), declaracoes.filter((d) => d)), [], caminhoSenao);
|
|
254
|
+
}
|
|
255
|
+
corpoDaFuncao(tipo) {
|
|
256
|
+
throw new Error('Método não implementado.');
|
|
257
|
+
}
|
|
258
|
+
declaracao() {
|
|
259
|
+
const simboloAtual = this.simbolos[this.atual];
|
|
260
|
+
switch (simboloAtual.tipo) {
|
|
261
|
+
case birl_1.default.BORA: // BORA CUMPADE?
|
|
262
|
+
return this.declaracaoRetorna();
|
|
263
|
+
case birl_1.default.QUE:
|
|
264
|
+
return this.declaracaoLeia();
|
|
265
|
+
case birl_1.default.ELE:
|
|
266
|
+
return this.declaracaoSe();
|
|
267
|
+
case birl_1.default.NEGATIVA:
|
|
268
|
+
// Retornar uma declaração de WHILE
|
|
269
|
+
case birl_1.default.MAIS:
|
|
270
|
+
return this.declaracaoPara();
|
|
271
|
+
// Declaração de inteiros
|
|
272
|
+
case birl_1.default.MONSTRO:
|
|
273
|
+
case birl_1.default.MONSTRINHO:
|
|
274
|
+
case birl_1.default.MONSTRAO:
|
|
275
|
+
return this.declaracaoInteiros();
|
|
276
|
+
case birl_1.default.BICEPS:
|
|
277
|
+
case birl_1.default.FRANGO:
|
|
278
|
+
return this.declaracaoCaracteres();
|
|
279
|
+
case birl_1.default.TRAPEZIO:
|
|
280
|
+
return this.declaracaoPontoFlutuante();
|
|
281
|
+
case birl_1.default.OH:
|
|
282
|
+
// Retornar uma declaração de funcao
|
|
283
|
+
case birl_1.default.AJUDA:
|
|
284
|
+
// Retornar uma declaração de chamar funcao
|
|
285
|
+
case birl_1.default.CE: // "CE QUER VER ESSA PORRA?"
|
|
286
|
+
return this.declaracaoEscreva();
|
|
287
|
+
case birl_1.default.PONTO_E_VIRGULA:
|
|
288
|
+
case birl_1.default.QUEBRA_LINHA:
|
|
289
|
+
this.avancarEDevolverAnterior();
|
|
290
|
+
return null;
|
|
291
|
+
default:
|
|
292
|
+
return this.expressao();
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
analisar(retornoLexador, hashArquivo) {
|
|
296
|
+
this.erros = [];
|
|
297
|
+
this.blocos = 0;
|
|
298
|
+
this.atual = 0;
|
|
299
|
+
// 1 validação
|
|
300
|
+
/* if (this.blocos > 0) {
|
|
301
|
+
throw new ErroAvaliadorSintatico(
|
|
302
|
+
null,
|
|
303
|
+
'Quantidade de blocos abertos não corresponde com a quantidade de blocos fechados'
|
|
304
|
+
);
|
|
305
|
+
} */
|
|
306
|
+
this.simbolos = retornoLexador.simbolos;
|
|
307
|
+
const declaracoes = [];
|
|
308
|
+
this.validarSegmentoHoraDoShow();
|
|
309
|
+
while (!this.estaNoFinal() && this.simbolos[this.atual].tipo !== birl_1.default.BIRL) {
|
|
310
|
+
declaracoes.push(this.declaracao());
|
|
311
|
+
}
|
|
312
|
+
this.validarSegmentoBirlFinal();
|
|
313
|
+
return {
|
|
314
|
+
declaracoes: declaracoes.filter((d) => d),
|
|
315
|
+
erros: this.erros,
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
exports.AvaliadorSintaticoBirl = AvaliadorSintaticoBirl;
|
|
295
320
|
//# sourceMappingURL=avaliador-sintatico-birl.js.map
|