@designliquido/delegua 1.16.2 → 1.17.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/analisador-semantico/analisador-semantico.d.ts +14 -0
- package/analisador-semantico/analisador-semantico.d.ts.map +1 -1
- package/analisador-semantico/analisador-semantico.js +15 -11
- package/analisador-semantico/analisador-semantico.js.map +1 -1
- package/analisador-semantico/dialetos/analisador-semantico-pitugues.d.ts +2 -1
- package/analisador-semantico/dialetos/analisador-semantico-pitugues.d.ts.map +1 -1
- package/analisador-semantico/dialetos/analisador-semantico-pitugues.js +87 -12
- package/analisador-semantico/dialetos/analisador-semantico-pitugues.js.map +1 -1
- 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.d.ts +4 -4
- package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
- package/avaliador-sintatico/avaliador-sintatico.js +30 -20
- package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
- package/bin/package.json +1 -1
- package/construtos/ajuda-como-construto.d.ts +2 -2
- package/construtos/ajuda-como-construto.d.ts.map +1 -1
- package/construtos/ajuda-como-construto.js.map +1 -1
- package/declaracoes/se.d.ts +4 -7
- package/declaracoes/se.d.ts.map +1 -1
- package/declaracoes/se.js.map +1 -1
- package/declaracoes/var.d.ts +2 -2
- package/declaracoes/var.d.ts.map +1 -1
- package/declaracoes/var.js.map +1 -1
- package/interfaces/declaracoes/caminho-se-senao-interface.d.ts +7 -0
- package/interfaces/declaracoes/caminho-se-senao-interface.d.ts.map +1 -0
- package/interfaces/declaracoes/caminho-se-senao-interface.js +3 -0
- package/interfaces/declaracoes/caminho-se-senao-interface.js.map +1 -0
- package/interfaces/declaracoes/index.d.ts +2 -0
- package/interfaces/declaracoes/index.d.ts.map +1 -0
- package/interfaces/declaracoes/index.js +18 -0
- package/interfaces/declaracoes/index.js.map +1 -0
- package/interfaces/interpretador-interface.d.ts +1 -1
- package/interfaces/interpretador-interface.d.ts.map +1 -1
- package/interpretador/argumento-interface.d.ts +1 -1
- package/interpretador/argumento-interface.d.ts.map +1 -1
- package/interpretador/dialetos/pitugues/interpretador-pitugues.js +3 -3
- package/interpretador/dialetos/pitugues/interpretador-pitugues.js.map +1 -1
- package/interpretador/estruturas/chamavel.d.ts +1 -1
- package/interpretador/estruturas/chamavel.d.ts.map +1 -1
- package/interpretador/estruturas/chamavel.js +3 -0
- package/interpretador/estruturas/chamavel.js.map +1 -1
- package/interpretador/estruturas/delegua-funcao.d.ts +2 -2
- package/interpretador/estruturas/delegua-funcao.d.ts.map +1 -1
- package/interpretador/estruturas/delegua-funcao.js +2 -2
- package/interpretador/estruturas/delegua-funcao.js.map +1 -1
- package/interpretador/estruturas/funcao-padrao.d.ts +2 -2
- package/interpretador/estruturas/funcao-padrao.d.ts.map +1 -1
- package/interpretador/estruturas/funcao-padrao.js +4 -2
- package/interpretador/estruturas/funcao-padrao.js.map +1 -1
- package/interpretador/estruturas/metodo-polimorfico.d.ts +1 -1
- package/interpretador/estruturas/metodo-polimorfico.d.ts.map +1 -1
- package/interpretador/estruturas/metodo-polimorfico.js +2 -2
- package/interpretador/estruturas/metodo-polimorfico.js.map +1 -1
- package/interpretador/interpretador-base.d.ts +18 -11
- package/interpretador/interpretador-base.d.ts.map +1 -1
- package/interpretador/interpretador-base.js +101 -230
- package/interpretador/interpretador-base.js.map +1 -1
- package/interpretador/interpretador.d.ts +2 -6
- package/interpretador/interpretador.d.ts.map +1 -1
- package/interpretador/interpretador.js +126 -11
- package/interpretador/interpretador.js.map +1 -1
- package/lexador/lexador.d.ts.map +1 -1
- package/lexador/lexador.js +20 -1
- package/lexador/lexador.js.map +1 -1
- package/lexador/palavras-reservadas.d.ts +2 -86
- package/lexador/palavras-reservadas.d.ts.map +1 -1
- package/lexador/palavras-reservadas.js.map +1 -1
- package/package.json +1 -1
- package/tipos-de-simbolos/delegua.d.ts +1 -0
- package/tipos-de-simbolos/delegua.d.ts.map +1 -1
- package/tipos-de-simbolos/delegua.js +1 -0
- package/tipos-de-simbolos/delegua.js.map +1 -1
- package/tradutores/index.d.ts +1 -1
- package/tradutores/index.d.ts.map +1 -1
- package/tradutores/index.js +1 -1
- package/tradutores/index.js.map +1 -1
- package/tradutores/tradutor-assemblyscript.js +1 -1
- package/tradutores/tradutor-assemblyscript.js.map +1 -1
- package/tradutores/tradutor-javascript.js +1 -1
- package/tradutores/tradutor-javascript.js.map +1 -1
- package/tradutores/tradutor-reverso-calango.d.ts +45 -0
- package/tradutores/tradutor-reverso-calango.d.ts.map +1 -0
- package/tradutores/tradutor-reverso-calango.js +351 -0
- package/tradutores/tradutor-reverso-calango.js.map +1 -0
- package/tradutores/tradutor-reverso-python.d.ts +58 -26
- package/tradutores/tradutor-reverso-python.d.ts.map +1 -1
- package/tradutores/tradutor-reverso-python.js +609 -52
- package/tradutores/tradutor-reverso-python.js.map +1 -1
- package/umd/delegua.js +1426 -588
- package/tradutores/tradutor-calango.d.ts +0 -23
- package/tradutores/tradutor-calango.d.ts.map +0 -1
- package/tradutores/tradutor-calango.js +0 -54
- package/tradutores/tradutor-calango.js.map +0 -1
|
@@ -41,7 +41,7 @@ export declare abstract class AvaliadorSintaticoBase implements AvaliadorSintati
|
|
|
41
41
|
protected abstract declaracaoSe(): Promise<Se>;
|
|
42
42
|
protected abstract expressaoLeia(): Promise<Leia>;
|
|
43
43
|
protected abstract primario(): Promise<Construto>;
|
|
44
|
-
protected abstract resolverDeclaracaoForaDeBloco(): Promise<Declaracao | Declaracao[]>;
|
|
44
|
+
protected abstract resolverDeclaracaoForaDeBloco(): Promise<Declaracao | Declaracao[] | undefined>;
|
|
45
45
|
protected declaracaoBloco(): Promise<Bloco>;
|
|
46
46
|
protected finalizarChamada(entidadeChamada: Construto): Promise<Chamada>;
|
|
47
47
|
protected unario(): Promise<Construto>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avaliador-sintatico-base.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,OAAO,EACP,SAAS,EACT,eAAe,EACf,IAAI,EAIP,MAAM,eAAe,CAAC;AACvB,OAAO,EACH,KAAK,EACL,MAAM,EACN,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,EAAE,EACF,MAAM,EACN,KAAK,EACL,GAAG,EACN,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAClG,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAIpE;;;;GAIG;AACH,8BAAsB,sBAAuB,YAAW,2BAA2B,CAC/E,gBAAgB,EAChB,UAAU,CACb;IACG,QAAQ,EAAE,gBAAgB,EAAE,CAAM;IAClC,KAAK,EAAE,sBAAsB,EAAE,CAAM;IAErC,WAAW,EAAE,MAAM,CAAM;IACzB,KAAK,EAAE,MAAM,CAAK;IAClB,MAAM,EAAE,MAAM,CAAK;IAEnB,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,GAAG,sBAAsB;IAK/E,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,gBAAgB;IAe1E,SAAS,CAAC,eAAe,IAAI,gBAAgB;IAQ7C,SAAS,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAK1D,SAAS,CAAC,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAK5D,SAAS,CAAC,WAAW,IAAI,OAAO;IAIhC,SAAS,CAAC,wBAAwB,IAAI,gBAAgB;IAKtD,SAAS,CAAC,8BAA8B,CAAC,GAAG,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO;IAY1E;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC;IAEjD,SAAS,CAAC,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IACvD,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC;IAC/C,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IACxE,SAAS,CAAC,QAAQ,CAAC,kBAAkB,IAAI,OAAO,CAAC,QAAQ,CAAC;IAC1D,SAAS,CAAC,QAAQ,CAAC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IACxD,SAAS,CAAC,QAAQ,CAAC,cAAc,IAAI,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;IAC7D,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC,EAAE,CAAC;IAC9C,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IACjD,SAAS,CAAC,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC;IACjD,SAAS,CAAC,QAAQ,CAAC,6BAA6B,IAAI,OAAO,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"avaliador-sintatico-base.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -97,7 +97,7 @@ export declare class AvaliadorSintatico extends AvaliadorSintaticoBase implement
|
|
|
97
97
|
* @returns O `ElementoMontaoTipos` correspondente ou `null` se não existir.
|
|
98
98
|
*/
|
|
99
99
|
protected resolverElementoMontao(construto: Construto): ElementoMontaoTipos | null;
|
|
100
|
-
protected resolverCadeiaChamadas(expressaoAnterior: Construto, tipoAnterior?: string):
|
|
100
|
+
protected resolverCadeiaChamadas(expressaoAnterior: Construto, tipoAnterior?: string): Promise<Construto>;
|
|
101
101
|
chamar(): Promise<Construto>;
|
|
102
102
|
/**
|
|
103
103
|
* `AcessoMetodoOuPropriedade` é um construto intermediário em Delégua, e deve ser resolvido como outro
|
|
@@ -209,7 +209,7 @@ export declare class AvaliadorSintatico extends AvaliadorSintaticoBase implement
|
|
|
209
209
|
protected declaracaoParaCadaVetor(simboloPara: SimboloInterface): Promise<ParaCada>;
|
|
210
210
|
protected declaracaoParaCada(simboloPara: SimboloInterface): Promise<ParaCada>;
|
|
211
211
|
protected logicaComumPara(): Promise<{
|
|
212
|
-
inicializador: Expressao | Var | Const[];
|
|
212
|
+
inicializador: Expressao | Var | Var[] | Const[];
|
|
213
213
|
condicao: any;
|
|
214
214
|
incrementar: any;
|
|
215
215
|
corpo: Bloco;
|
|
@@ -223,7 +223,7 @@ export declare class AvaliadorSintatico extends AvaliadorSintaticoBase implement
|
|
|
223
223
|
protected declaracaoTendoComo(): Promise<TendoComo>;
|
|
224
224
|
protected declaracaoDesestruturacaoVariavel(): Promise<Var[]>;
|
|
225
225
|
protected logicaComumInferenciaTiposAcessoMetodoOuPropriedade(entidadeChamada: AcessoMetodoOuPropriedade): string;
|
|
226
|
-
protected logicaComumInferenciaTiposVariaveisEConstantes(inicializador: Construto, tipo: string): string;
|
|
226
|
+
protected logicaComumInferenciaTiposVariaveisEConstantes(inicializador: Construto, tipo: string): string | undefined;
|
|
227
227
|
protected resolverValorConstruto(construto: Construto): string;
|
|
228
228
|
protected resolverInformacaoElementoSintaticoDeDicionario(construto: Construto): ElementoMontaoTipos;
|
|
229
229
|
/**
|
|
@@ -264,7 +264,7 @@ export declare class AvaliadorSintatico extends AvaliadorSintaticoBase implement
|
|
|
264
264
|
* @see resolverDeclaracao
|
|
265
265
|
* @see resolverDecoradores
|
|
266
266
|
*/
|
|
267
|
-
resolverDeclaracaoForaDeBloco(): Promise<Declaracao | Declaracao[]>;
|
|
267
|
+
resolverDeclaracaoForaDeBloco(): Promise<Declaracao | Declaracao[] | undefined>;
|
|
268
268
|
/**
|
|
269
269
|
* Usado quando há erros na avaliação sintática.
|
|
270
270
|
* Garante que o código não entre em _loop_ infinito.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avaliador-sintatico.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico.ts"],"names":[],"mappings":"AAEA,OAAO,EAGH,yBAAyB,EAGzB,kBAAkB,EAKlB,OAAO,EAGP,SAAS,EACT,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,EAAE,2BAA2B,
|
|
1
|
+
{"version":3,"file":"avaliador-sintatico.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico.ts"],"names":[],"mappings":"AAEA,OAAO,EAGH,yBAAyB,EAGzB,kBAAkB,EAKlB,OAAO,EAGP,SAAS,EACT,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,EAAE,2BAA2B,EAAkB,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAElH,OAAO,EAEH,sBAAsB,EAEzB,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,yBAAyB,EAAE,MAAM,oDAAoD,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,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;AAa7D;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,kBACT,SAAQ,sBACR,YAAW,2BAA2B,CAAC,gBAAgB,EAAE,UAAU,CAAC;IAEpE,gBAAgB,EAAE,SAAS,EAAE,CAAM;IACnC,QAAQ,EAAE,gBAAgB,EAAE,CAAM;IAClC,KAAK,EAAE,sBAAsB,EAAE,CAAM;IACrC,sBAAsB,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAA;KAAE,CAAM;IAChE,oBAAoB,EAAE;QAAE,CAAC,aAAa,EAAE,MAAM,GAAG,mBAAmB,CAAA;KAAE,CAAM;IAC5E,4BAA4B,EAAE;QAC1B,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAAC;KACtC,CAAM;IACP,YAAY,EAAE,YAAY,CAAC;IAC3B,0BAA0B,EAAE;QAAE,CAAC,cAAc,EAAE,MAAM,GAAG;YAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAA;KAAE,CAAM;IAC9F,oBAAoB,EAAE;QAClB,CAAC,kBAAkB,EAAE,MAAM,GAAG;YAAE,CAAC,aAAa,EAAE,MAAM,GAAG,2BAA2B,CAAA;SAAE,CAAC;KAC1F,CAAM;IACP,WAAW,EAAE,WAAW,CAAC;IAEzB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,qCAAqC,EAAE,OAAO,CAAC;IAC/C,OAAO,EAAE,OAAO,CAAC;gBAEL,WAAW,UAAQ;IAsB/B,SAAS,CAAC,2BAA2B,IAAI,MAAM;cA8C/B,cAAc,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAqD7D,OAAO,CAAC,qCAAqC;cAoC7B,oBAAoB,IAAI,OAAO,CAAC,SAAS,CAAC;cA4C1C,mBAAmB,CAC/B,oBAAoB,EAAE,gBAAgB,GACvC,OAAO,CAAC,UAAU,CAAC;IAiCtB;;;OAGG;cACa,iBAAiB,IAAI,OAAO,CAAC,qBAAqB,CAAC;cAQnD,cAAc,IAAI,OAAO,CAAC,KAAK,CAAC;cAahC,qBAAqB,IAAI,OAAO,CAAC,qBAAqB,CAAC;cAMvD,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;cAgBtE,0BAA0B,CAAC,WAAW,EAAE,gBAAgB;cAYxD,+BAA+B,CAAC,WAAW,EAAE,gBAAgB;cAgB7D,qBAAqB,CACjC,WAAW,EAAE,gBAAgB,GAC9B,OAAO,CAAC,qBAAqB,CAAC;cAejB,4BAA4B,CAAC,WAAW,EAAE,gBAAgB;IAa1E;;OAEG;cACa,iBAAiB,CAC7B,WAAW,EAAE,gBAAgB,GAC9B,OAAO,CAAC,qBAAqB,GAAG,iBAAiB,CAAC;IAcrD;;;OAGG;cACa,0BAA0B,CACtC,gBAAgB,EAAE,SAAS,GAC5B,OAAO,CAAC,gBAAgB,CAAC;IAkEb,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC;IAuZ7C,SAAS,CAAC,gCAAgC,CAAC,iBAAiB,EAAE,SAAS,GAAG,MAAM;IA4ChF;;;;;OAKG;IACH,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,GAAG,mBAAmB,GAAG,IAAI;cA+ClE,sBAAsB,CAClC,iBAAiB,EAAE,SAAS,EAC5B,YAAY,GAAE,MAAmB,GAClC,OAAO,CAAC,SAAS,CAAC;IA0DN,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC;IAK3C;;;;;;OAMG;IACH,SAAS,CAAC,gDAAgD,CACtD,wBAAwB,EAAE,yBAAyB,GACpD,SAAS;IA4FZ,OAAO,CAAC,+BAA+B;IA0BvC,OAAO,CAAC,6BAA6B;IAyBrC,SAAS,CAAC,gCAAgC,CACtC,yBAAyB,EAAE,2BAA2B,EAAE,EACxD,oBAAoB,EAAE,SAAS,EAAE,GAClC,MAAM,EAAE;IA+DX;;;;;;OAMG;IACH,SAAS,CAAC,uBAAuB,CAC7B,eAAe,EAAE,SAAS,EAC1B,UAAU,EAAE,SAAS,EAAE,EACvB,aAAa,GAAE,MAAM,GAAG,SAAqB,GAC9C,SAAS;IA8GG,gBAAgB,CAC3B,eAAe,EAAE,SAAS,EAC1B,aAAa,GAAE,MAAM,GAAG,SAAqB,GAC9C,OAAO,CAAC,OAAO,CAAC;IAsCJ,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC;IAoB3C;;;;OAIG;IACY,aAAa,IAAI,OAAO,CAAC,SAAS,CAAC;IAYlD;;;OAGG;IACH,OAAO,CAAC,8BAA8B;IAmBtC,SAAS,CAAC,mCAAmC,CACzC,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,gBAAgB;IAsDf,WAAW,IAAI,OAAO,CAAC,SAAS,CAAC;IA6BhD;;;;OAIG;IACY,iBAAiB,IAAI,OAAO,CAAC,SAAS,CAAC;IAsCvC,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC;IAsB9B,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC;IAiB1B,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC;IAmB3B,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC;IAwB9B,mBAAmB,IAAI,OAAO,CAAC,SAAS,CAAC;IAsBzC,EAAE,IAAI,OAAO,CAAC,SAAS,CAAC;IA4BxB,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC;cAYtB,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC;cAW3B,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;IAuBhD;;;OAGG;IACH;;;;OAIG;IACY,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC;IAqB1C;;;OAGG;IACY,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC;IAuE7C;;;OAGG;IACY,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B9B,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC;IAI/B,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAwBxD,SAAS,CAAC,8BAA8B,IAAI,UAAU;IAgBtD,SAAS,CAAC,4BAA4B,IAAI,UAAU;IAU3C,kBAAkB,IAAI,QAAQ;cAavB,mBAAmB;;;;IAUpB,kBAAkB,IAAI,OAAO,CAAC,QAAQ,CAAC;cAYtC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAmFtC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;cA2BpC,mBAAmB,IAAI,OAAO,CAAC,SAAS,CAAC;cAYzC,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;cAMnC,gBAAgB;;;;cAchB,eAAe,CAAC,YAAY,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC;IAgB/E;;;;OAIG;IACH,kBAAkB,IAAI,OAAO,CAAC,QAAQ,CAAC;IA+ExB,cAAc,IAAI,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;cAezC,wBAAwB,CAAC,WAAW,EAAE,gBAAgB;;;;;;cA4DtD,4BAA4B,CAAC,WAAW,EAAE,gBAAgB;cAgB1D,wBAAwB,CAAC,WAAW,EAAE,gBAAgB;;;;;cAqDtD,uBAAuB,CAAC,WAAW,EAAE,gBAAgB;cAYrD,kBAAkB,CAAC,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;cAepE,eAAe;;;;;;cAkDf,yBAAyB,CAAC,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxE,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IA+BrC,YAAY,IAAI,OAAO,CAAC,EAAE,CAAC;IAajC,gBAAgB,IAAI,MAAM;IAapB,eAAe,IAAI,OAAO,CAAC,KAAK,CAAC;cAqDhC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;cAmDpC,mBAAmB,IAAI,OAAO,CAAC,SAAS,CAAC;cA2DzC,iCAAiC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAmDnE,SAAS,CAAC,mDAAmD,CACzD,eAAe,EAAE,yBAAyB,GAC3C,MAAM;IAqDT,SAAS,CAAC,8CAA8C,CACpD,aAAa,EAAE,SAAS,EACxB,IAAI,EAAE,MAAM,GACb,MAAM,GAAG,SAAS;IAsFrB,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM;IAW9D,SAAS,CAAC,+CAA+C,CACrD,SAAS,EAAE,SAAS,GACrB,mBAAmB;IAsBtB;;;OAGG;cACa,qBAAqB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;cAoGvC,kCAAkC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IA8CtE;;;OAGG;IACG,sBAAsB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;cAoFhC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;cAqC/C,qBAAqB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAsDvD,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAuFpE;;;;OAIG;IACG,qBAAqB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAwD5C,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAmlBpD;;;OAGG;IACG,oBAAoB,IAAI,OAAO,CAAC,QAAQ,CAAC;IAgH/C;;;;;;;;;;;OAWG;IACY,6BAA6B,IAAI,OAAO,CAAC,UAAU,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC;IAoE9F;;;;OAIG;IACH,SAAS,CAAC,WAAW,IAAI,IAAI;IA2B7B;;;;;;;OAOG;cACa,kBAAkB,IAAI,OAAO,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;IAuGlE,eAAe,IAAI,OAAO,CAAC,KAAK,CAAC;IAoCvC;;;;OAIG;IACH,SAAS,CAAC,uBAAuB;IA+Q3B,QAAQ,CACV,cAAc,EAAE,cAAc,CAAC,gBAAgB,CAAC,EAChD,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;CAsCpD"}
|
|
@@ -45,6 +45,14 @@ const primitivas_vetor_1 = __importDefault(require("../bibliotecas/primitivas-ve
|
|
|
45
45
|
class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBase {
|
|
46
46
|
constructor(performance = false) {
|
|
47
47
|
super();
|
|
48
|
+
this.pilhaDecoradores = [];
|
|
49
|
+
this.simbolos = [];
|
|
50
|
+
this.erros = [];
|
|
51
|
+
this.tiposDefinidosEmCodigo = {};
|
|
52
|
+
this.interfacesDeclaradas = {};
|
|
53
|
+
this.tiposDefinidosPorBibliotecas = {};
|
|
54
|
+
this.tiposDeFerramentasExternas = {};
|
|
55
|
+
this.primitivasConhecidas = {};
|
|
48
56
|
this.hashArquivo = 0;
|
|
49
57
|
this.atual = 0;
|
|
50
58
|
this.blocos = 0;
|
|
@@ -295,7 +303,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
295
303
|
return new construtos_1.ListaCompreensao(Number(this.simbolos[this.atual]), this.hashArquivo, retornoExpressao, vetor, new construtos_1.ParaCadaComoConstruto(retornoExpressao.hashArquivo, retornoExpressao.linha, variavelIteracao, vetor, new declaracoes_1.Bloco(retornoExpressao.hashArquivo, retornoExpressao.linha, [
|
|
296
304
|
new declaracoes_1.Se(condicao, new declaracoes_1.Bloco(retornoExpressao.hashArquivo, retornoExpressao.linha, [
|
|
297
305
|
new declaracoes_1.Retorna(simboloVariavelIteracao, retornoExpressao),
|
|
298
|
-
]), [],
|
|
306
|
+
]), [], undefined),
|
|
299
307
|
])), retornoExpressao.tipo ? `${retornoExpressao.tipo}[]` : 'qualquer[]');
|
|
300
308
|
}
|
|
301
309
|
async primario() {
|
|
@@ -518,7 +526,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
518
526
|
construto = new construtos_1.AcessoMetodo(construtoTipado.hashArquivo, construtoTipado.objeto, construtoTipado.simbolo.lexema, primitivaVetorSelecionada.tipoRetorno);
|
|
519
527
|
break;
|
|
520
528
|
default:
|
|
521
|
-
if (construtoTipado.tipo in this.tiposDefinidosEmCodigo) {
|
|
529
|
+
if (construtoTipado.tipo && construtoTipado.tipo in this.tiposDefinidosEmCodigo) {
|
|
522
530
|
const tipoCorrespondente = this.tiposDefinidosEmCodigo[construtoTipado.tipo];
|
|
523
531
|
const possivelMetodo = tipoCorrespondente.metodos.filter((m) => m.simbolo.lexema === construtoTipado.simbolo.lexema);
|
|
524
532
|
if (possivelMetodo.length > 0) {
|
|
@@ -1158,7 +1166,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
1158
1166
|
if (Array.isArray(retornoDeclaracao)) {
|
|
1159
1167
|
declaracoes = declaracoes.concat(retornoDeclaracao);
|
|
1160
1168
|
}
|
|
1161
|
-
else if (retornoDeclaracao
|
|
1169
|
+
else if (retornoDeclaracao != null) {
|
|
1162
1170
|
declaracoes.push(retornoDeclaracao);
|
|
1163
1171
|
}
|
|
1164
1172
|
}
|
|
@@ -1219,7 +1227,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
1219
1227
|
const caminhoCondicoes = [await this.expressao()];
|
|
1220
1228
|
this.consumir(delegua_2.default.DOIS_PONTOS, "Esperado ':' após o 'caso'.");
|
|
1221
1229
|
while (this.verificarTipoSimboloAtual(delegua_2.default.CASO)) {
|
|
1222
|
-
this.
|
|
1230
|
+
this.avancarEDevolverAnterior();
|
|
1223
1231
|
caminhoCondicoes.push(await this.expressao());
|
|
1224
1232
|
this.consumir(delegua_2.default.DOIS_PONTOS, "Esperado ':' após declaração do 'caso'.");
|
|
1225
1233
|
}
|
|
@@ -1348,6 +1356,8 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
1348
1356
|
const identificadorModulo = this.avancarEDevolverAnterior();
|
|
1349
1357
|
construtoCaminhoModulo = new construtos_1.Literal(identificadorModulo.hashArquivo, Number(identificadorModulo.linha), identificadorModulo.lexema);
|
|
1350
1358
|
break;
|
|
1359
|
+
default:
|
|
1360
|
+
throw this.erro(this.simbolos[this.atual], "Esperado caminho do módulo como texto ou identificador em declaração de importação.");
|
|
1351
1361
|
}
|
|
1352
1362
|
const importar = new declaracoes_1.Importar(construtoCaminhoModulo);
|
|
1353
1363
|
if (identificadorDeTudo !== null) {
|
|
@@ -1518,7 +1528,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
1518
1528
|
async declaracaoSe() {
|
|
1519
1529
|
const condicao = await this.expressao();
|
|
1520
1530
|
const caminhoEntao = (await this.resolverDeclaracao());
|
|
1521
|
-
let caminhoSenao =
|
|
1531
|
+
let caminhoSenao = undefined;
|
|
1522
1532
|
if (this.verificarSeSimboloAtualEIgualA(delegua_2.default.SENAO, delegua_2.default.SENÃO)) {
|
|
1523
1533
|
caminhoSenao = await this.resolverDeclaracao();
|
|
1524
1534
|
}
|
|
@@ -1635,7 +1645,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
1635
1645
|
const inicializador = await this.expressao();
|
|
1636
1646
|
const retornos = [];
|
|
1637
1647
|
for (let identificador of identificadores) {
|
|
1638
|
-
this.pilhaEscopos.definirInformacoesVariavel(identificador.lexema, new informacao_elemento_sintatico_1.InformacaoElementoSintatico(identificador.lexema, this.logicaComumInferenciaTiposVariaveisEConstantes(inicializador, 'qualquer')));
|
|
1648
|
+
this.pilhaEscopos.definirInformacoesVariavel(identificador.lexema, new informacao_elemento_sintatico_1.InformacaoElementoSintatico(identificador.lexema, this.logicaComumInferenciaTiposVariaveisEConstantes(inicializador, 'qualquer') ?? 'qualquer'));
|
|
1639
1649
|
const declaracaoVar = new declaracoes_1.Var(identificador, new construtos_1.AcessoMetodoOuPropriedade(this.hashArquivo, inicializador, identificador));
|
|
1640
1650
|
declaracaoVar.decoradores = Array.from(this.pilhaDecoradores);
|
|
1641
1651
|
retornos.push(declaracaoVar);
|
|
@@ -1686,8 +1696,9 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
1686
1696
|
if (entidadeChamadaAcessoIndiceVariavel.constructor === construtos_1.AcessoIndiceVariavel) {
|
|
1687
1697
|
return this.logicaComumInferenciaTiposVariaveisEConstantes(entidadeChamadaAcessoIndiceVariavel, tipo);
|
|
1688
1698
|
}
|
|
1689
|
-
|
|
1690
|
-
|
|
1699
|
+
const tipoEntidadeChamadaAcessoIndiceVariavel = entidadeChamadaAcessoIndiceVariavel.tipo;
|
|
1700
|
+
if (tipoEntidadeChamadaAcessoIndiceVariavel.endsWith('[]')) {
|
|
1701
|
+
return tipoEntidadeChamadaAcessoIndiceVariavel.slice(0, -2);
|
|
1691
1702
|
}
|
|
1692
1703
|
// Normalmente, `entidadeChamadaAcessoIndiceVariavel.tipo` aqui será 'vetor'.
|
|
1693
1704
|
return 'qualquer';
|
|
@@ -1790,7 +1801,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
1790
1801
|
// Inicialização de variáveis sem valor.
|
|
1791
1802
|
for (let identificador of identificadores.values()) {
|
|
1792
1803
|
this.pilhaEscopos.definirInformacoesVariavel(identificador.lexema, new informacao_elemento_sintatico_1.InformacaoElementoSintatico(identificador.lexema, tipo));
|
|
1793
|
-
retorno.push(new declaracoes_1.Var(identificador,
|
|
1804
|
+
retorno.push(new declaracoes_1.Var(identificador, undefined, tipo, tipoExplicito, Array.from(this.pilhaDecoradores)));
|
|
1794
1805
|
}
|
|
1795
1806
|
this.verificarSeSimboloAtualEIgualA(delegua_2.default.PONTO_E_VIRGULA);
|
|
1796
1807
|
this.pilhaDecoradores = [];
|
|
@@ -1805,7 +1816,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
1805
1816
|
}
|
|
1806
1817
|
for (let [indice, identificador] of identificadores.entries()) {
|
|
1807
1818
|
const tipoOriginal = tipo; // Preserva o tipo antes da inferência
|
|
1808
|
-
tipo = this.logicaComumInferenciaTiposVariaveisEConstantes(inicializadores[indice], tipo);
|
|
1819
|
+
tipo = this.logicaComumInferenciaTiposVariaveisEConstantes(inicializadores[indice], tipo) ?? tipo;
|
|
1809
1820
|
if (tipo !== 'dicionário') {
|
|
1810
1821
|
this.pilhaEscopos.definirInformacoesVariavel(identificador.lexema, new informacao_elemento_sintatico_1.InformacaoElementoSintatico(identificador.lexema, tipo));
|
|
1811
1822
|
}
|
|
@@ -1873,7 +1884,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
1873
1884
|
let retorno = [];
|
|
1874
1885
|
for (let [indice, identificador] of identificadores.entries()) {
|
|
1875
1886
|
// Se tipo ainda não foi definido, infere.
|
|
1876
|
-
tipo = this.logicaComumInferenciaTiposVariaveisEConstantes(inicializadores[indice], tipo);
|
|
1887
|
+
tipo = this.logicaComumInferenciaTiposVariaveisEConstantes(inicializadores[indice], tipo) ?? tipo;
|
|
1877
1888
|
if (tipo !== 'dicionário') {
|
|
1878
1889
|
this.pilhaEscopos.definirInformacoesVariavel(identificador.lexema, new informacao_elemento_sintatico_1.InformacaoElementoSintatico(identificador.lexema, tipo));
|
|
1879
1890
|
}
|
|
@@ -1913,8 +1924,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
1913
1924
|
const parametros = [];
|
|
1914
1925
|
do {
|
|
1915
1926
|
const parametro = {};
|
|
1916
|
-
if (this.
|
|
1917
|
-
this.consumir(delegua_2.default.MULTIPLICACAO, null);
|
|
1927
|
+
if (this.verificarSeSimboloAtualEIgualA(delegua_2.default.RETICENCIAS)) {
|
|
1918
1928
|
parametro.abrangencia = 'multiplo';
|
|
1919
1929
|
}
|
|
1920
1930
|
else {
|
|
@@ -2111,7 +2121,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
2111
2121
|
continue;
|
|
2112
2122
|
}
|
|
2113
2123
|
// Documentário (/** ... */)
|
|
2114
|
-
let docAtual =
|
|
2124
|
+
let docAtual = undefined;
|
|
2115
2125
|
if (this.simbolos[this.atual].tipo === delegua_2.default.DOCUMENTARIO) {
|
|
2116
2126
|
const simboloDoc = this.avancarEDevolverAnterior();
|
|
2117
2127
|
docAtual = new construtos_1.ComentarioComoConstruto(simboloDoc);
|
|
@@ -2514,10 +2524,10 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
2514
2524
|
await this.resolverDecoradores();
|
|
2515
2525
|
}
|
|
2516
2526
|
// Documentário (/** ... */) antes de uma declaração de função.
|
|
2517
|
-
let
|
|
2527
|
+
let documentacaoTopo = undefined;
|
|
2518
2528
|
if (this.verificarTipoSimboloAtual(delegua_2.default.DOCUMENTARIO)) {
|
|
2519
2529
|
const simboloDoc = this.avancarEDevolverAnterior();
|
|
2520
|
-
|
|
2530
|
+
documentacaoTopo = new construtos_1.ComentarioComoConstruto(simboloDoc);
|
|
2521
2531
|
}
|
|
2522
2532
|
// Decoradores podem aparecer após um documentário.
|
|
2523
2533
|
while (this.verificarTipoSimboloAtual(delegua_2.default.ARROBA)) {
|
|
@@ -2534,13 +2544,13 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
2534
2544
|
}
|
|
2535
2545
|
const declaracaoFuncao = (await this.funcao('funcao'));
|
|
2536
2546
|
declaracaoFuncao.eFuncaoDeDecorador = true;
|
|
2537
|
-
declaracaoFuncao.documentacao =
|
|
2547
|
+
declaracaoFuncao.documentacao = documentacaoTopo;
|
|
2538
2548
|
return declaracaoFuncao;
|
|
2539
2549
|
}
|
|
2540
2550
|
if (this.verificarTipoProximoSimbolo(delegua_2.default.IDENTIFICADOR)) {
|
|
2541
2551
|
this.avancarEDevolverAnterior();
|
|
2542
2552
|
const declaracaoFuncao = (await this.funcao('funcao'));
|
|
2543
|
-
declaracaoFuncao.documentacao =
|
|
2553
|
+
declaracaoFuncao.documentacao = documentacaoTopo;
|
|
2544
2554
|
return declaracaoFuncao;
|
|
2545
2555
|
}
|
|
2546
2556
|
}
|
|
@@ -2558,7 +2568,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
2558
2568
|
catch (erro) {
|
|
2559
2569
|
this.sincronizar();
|
|
2560
2570
|
this.erros.push(erro);
|
|
2561
|
-
return
|
|
2571
|
+
return undefined;
|
|
2562
2572
|
}
|
|
2563
2573
|
}
|
|
2564
2574
|
/**
|
|
@@ -2873,7 +2883,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
2873
2883
|
if (Array.isArray(retornoDeclaracao)) {
|
|
2874
2884
|
declaracoes = declaracoes.concat(retornoDeclaracao);
|
|
2875
2885
|
}
|
|
2876
|
-
else if (retornoDeclaracao
|
|
2886
|
+
else if (retornoDeclaracao != null) {
|
|
2877
2887
|
declaracoes.push(retornoDeclaracao);
|
|
2878
2888
|
}
|
|
2879
2889
|
}
|