@designliquido/delegua 1.23.2 → 1.23.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/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
- package/avaliador-sintatico/avaliador-sintatico.js +49 -47
- package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +36 -19
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
- package/bin/package.json +1 -1
- package/package.json +1 -1
- package/umd/delegua.js +84 -65
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avaliador-sintatico.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAElF,OAAO,EAGH,yBAAyB,EAGzB,kBAAkB,EAKlB,OAAO,EAGP,SAAS,EAET,UAAU,EAEV,qBAAqB,EAGrB,eAAe,EACf,qBAAqB,EAErB,IAAI,EACJ,gBAAgB,EAGhB,qBAAqB,EACrB,iBAAiB,EAMjB,KAAK,EAGL,QAAQ,EAEX,MAAM,eAAe,CAAC;AACvB,OAAO,EACH,2BAA2B,EAI3B,kBAAkB,EAClB,gBAAgB,EACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACH,sBAAsB,EACzB,MAAM,4BAA4B,CAAC;AAcpC,OAAO,EACH,KAAK,EAEL,KAAK,EACL,MAAM,EACN,UAAU,EACV,KAAK,EACL,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,OAAO,EACP,OAAO,EACP,SAAS,EACT,QAAQ,EACR,MAAM,EACN,KAAK,EACL,gBAAgB,EAChB,QAAQ,EACR,mBAAmB,EACnB,IAAI,EACJ,QAAQ,EAER,OAAO,EACP,EAAE,EACF,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACN,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kCAAkC,EAAE,MAAM,8DAA8D,CAAC;AAClH,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAE/E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"avaliador-sintatico.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,28 @@ const primitivas_dicionario_1 = __importDefault(require("../bibliotecas/primitiv
|
|
|
24
24
|
const primitivas_numero_1 = __importDefault(require("../bibliotecas/primitivas-numero"));
|
|
25
25
|
const primitivas_texto_1 = __importDefault(require("../bibliotecas/primitivas-texto"));
|
|
26
26
|
const primitivas_vetor_1 = __importDefault(require("../bibliotecas/primitivas-vetor"));
|
|
27
|
+
// Constante usada em "declaracaoRetorna()"
|
|
28
|
+
const simbolosInicioExpressao = new Set([
|
|
29
|
+
delegua_2.default.CHAVE_ESQUERDA,
|
|
30
|
+
delegua_2.default.COLCHETE_ESQUERDO,
|
|
31
|
+
delegua_2.default.FALSO,
|
|
32
|
+
delegua_2.default.FUNCAO,
|
|
33
|
+
delegua_2.default.FUNÇÃO,
|
|
34
|
+
delegua_2.default.IDENTIFICADOR,
|
|
35
|
+
delegua_2.default.ISTO,
|
|
36
|
+
delegua_2.default.NAO,
|
|
37
|
+
delegua_2.default.NEGACAO,
|
|
38
|
+
delegua_2.default.NUMERO,
|
|
39
|
+
delegua_2.default.NULO,
|
|
40
|
+
delegua_2.default.PARENTESE_ESQUERDO,
|
|
41
|
+
delegua_2.default.SUPER,
|
|
42
|
+
delegua_2.default.TEXTO,
|
|
43
|
+
delegua_2.default.VERDADEIRO,
|
|
44
|
+
delegua_2.default.ADICAO,
|
|
45
|
+
delegua_2.default.SUBTRACAO,
|
|
46
|
+
delegua_2.default.INCREMENTAR,
|
|
47
|
+
delegua_2.default.DECREMENTAR
|
|
48
|
+
]);
|
|
27
49
|
/**
|
|
28
50
|
* O avaliador sintático (_Parser_) é responsável por transformar os símbolos do Lexador em estruturas de alto nível.
|
|
29
51
|
* Essas estruturas de alto nível são as partes que executam lógica de programação de fato.
|
|
@@ -1633,24 +1655,9 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
1633
1655
|
}
|
|
1634
1656
|
async declaracaoRetorna() {
|
|
1635
1657
|
const simboloChave = this.simbolos[this.atual - 1];
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
delegua_2.default.COLCHETE_ESQUERDO,
|
|
1640
|
-
delegua_2.default.FALSO,
|
|
1641
|
-
delegua_2.default.FUNCAO,
|
|
1642
|
-
delegua_2.default.FUNÇÃO,
|
|
1643
|
-
delegua_2.default.IDENTIFICADOR,
|
|
1644
|
-
delegua_2.default.ISTO,
|
|
1645
|
-
delegua_2.default.NAO,
|
|
1646
|
-
delegua_2.default.NEGACAO,
|
|
1647
|
-
delegua_2.default.NUMERO,
|
|
1648
|
-
delegua_2.default.NULO,
|
|
1649
|
-
delegua_2.default.PARENTESE_ESQUERDO,
|
|
1650
|
-
delegua_2.default.SUPER,
|
|
1651
|
-
delegua_2.default.TEXTO,
|
|
1652
|
-
delegua_2.default.VERDADEIRO,
|
|
1653
|
-
].includes(this.simbolos[this.atual].tipo)) {
|
|
1658
|
+
const simboloAtual = this.simbolos[this.atual];
|
|
1659
|
+
let valor;
|
|
1660
|
+
if (simboloAtual && simbolosInicioExpressao.has(simboloAtual.tipo)) {
|
|
1654
1661
|
valor = await this.expressao();
|
|
1655
1662
|
}
|
|
1656
1663
|
// Ponto-e-vírgula é opcional aqui.
|
|
@@ -1942,51 +1949,46 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
1942
1949
|
*/
|
|
1943
1950
|
async declaracaoDeVariaveis() {
|
|
1944
1951
|
const simboloVariavel = this.simboloAnterior();
|
|
1945
|
-
const identificadores = [];
|
|
1946
|
-
const retorno = [];
|
|
1947
|
-
let tipo = 'qualquer';
|
|
1948
1952
|
if (this.verificarSeSimboloAtualEIgualA(delegua_2.default.CHAVE_ESQUERDA)) {
|
|
1949
1953
|
return await this.declaracaoDesestruturacaoVariavel();
|
|
1950
1954
|
}
|
|
1955
|
+
const identificadores = [];
|
|
1951
1956
|
do {
|
|
1952
1957
|
identificadores.push(this.consumir(delegua_2.default.IDENTIFICADOR, 'Esperado nome da variável.'));
|
|
1953
1958
|
} while (this.verificarSeSimboloAtualEIgualA(delegua_2.default.VIRGULA));
|
|
1959
|
+
let tipo = 'qualquer';
|
|
1954
1960
|
let tipoExplicito = false;
|
|
1955
1961
|
if (this.verificarSeSimboloAtualEIgualA(delegua_2.default.DOIS_PONTOS)) {
|
|
1956
1962
|
tipo = this.verificarDefinicaoTipoAtual();
|
|
1957
1963
|
tipoExplicito = true;
|
|
1958
1964
|
this.avancarEDevolverAnterior();
|
|
1959
1965
|
}
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1966
|
+
const retorno = [];
|
|
1967
|
+
const decoradores = Array.from(this.pilhaDecoradores);
|
|
1968
|
+
const temAtribuicao = this.verificarSeSimboloAtualEIgualA(delegua_2.default.IGUAL, delegua_2.default.SETA_ESQUERDA);
|
|
1969
|
+
if (!temAtribuicao) {
|
|
1970
|
+
for (const identificador of identificadores) {
|
|
1963
1971
|
this.pilhaEscopos.definirInformacoesVariavel(identificador.lexema, new informacao_elemento_sintatico_1.InformacaoElementoSintatico(identificador.lexema, tipo));
|
|
1964
|
-
retorno.push(new declaracoes_1.Var(identificador, undefined, tipo, tipoExplicito,
|
|
1972
|
+
retorno.push(new declaracoes_1.Var(identificador, undefined, tipo, tipoExplicito, decoradores));
|
|
1965
1973
|
}
|
|
1966
|
-
this.verificarSeSimboloAtualEIgualA(delegua_2.default.PONTO_E_VIRGULA);
|
|
1967
|
-
this.pilhaDecoradores = [];
|
|
1968
|
-
return retorno;
|
|
1969
|
-
}
|
|
1970
|
-
const inicializadores = [];
|
|
1971
|
-
do {
|
|
1972
|
-
inicializadores.push(await this.expressao());
|
|
1973
|
-
} while (this.verificarSeSimboloAtualEIgualA(delegua_2.default.VIRGULA));
|
|
1974
|
-
if (identificadores.length !== inicializadores.length) {
|
|
1975
|
-
throw this.erro(simboloVariavel, 'Quantidade de identificadores à esquerda do igual é diferente da quantidade de valores à direita.');
|
|
1976
1974
|
}
|
|
1977
|
-
|
|
1978
|
-
const
|
|
1979
|
-
|
|
1980
|
-
this.
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1975
|
+
else {
|
|
1976
|
+
const inicializadores = [];
|
|
1977
|
+
do {
|
|
1978
|
+
inicializadores.push(await this.expressao());
|
|
1979
|
+
} while (this.verificarSeSimboloAtualEIgualA(delegua_2.default.VIRGULA));
|
|
1980
|
+
if (identificadores.length !== inicializadores.length) {
|
|
1981
|
+
throw this.erro(simboloVariavel, 'Quantidade de identificadores à esquerda do igual é diferente da quantidade de valores à direita.');
|
|
1982
|
+
}
|
|
1983
|
+
for (let [indice, identificador] of identificadores.entries()) {
|
|
1984
|
+
const inicializador = inicializadores[indice];
|
|
1985
|
+
const tipoInferido = this.logicaComumInferenciaTiposVariaveisEConstantes(inicializador, tipo) ?? tipo;
|
|
1986
|
+
const informacaoSintatica = tipo === 'dicionário'
|
|
1987
|
+
? this.resolverInformacaoElementoSintaticoDeDicionario(inicializador)
|
|
1988
|
+
: new informacao_elemento_sintatico_1.InformacaoElementoSintatico(identificador.lexema, tipoInferido);
|
|
1989
|
+
this.pilhaEscopos.definirInformacoesVariavel(identificador.lexema, informacaoSintatica);
|
|
1990
|
+
retorno.push(new declaracoes_1.Var(identificador, inicializador, tipoInferido, tipoExplicito, decoradores, tipo));
|
|
1987
1991
|
}
|
|
1988
|
-
retorno.push(new declaracoes_1.Var(identificador, inicializadores[indice], tipo, tipoExplicito, Array.from(this.pilhaDecoradores), tipoOriginal // Passa o tipo original para o construtor
|
|
1989
|
-
));
|
|
1990
1992
|
}
|
|
1991
1993
|
this.verificarSeSimboloAtualEIgualA(delegua_2.default.PONTO_E_VIRGULA);
|
|
1992
1994
|
this.pilhaDecoradores = [];
|