@designliquido/delegua 0.40.0 → 0.41.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.
Files changed (121) hide show
  1. package/analisador-semantico/analisador-semantico-base.d.ts +3 -1
  2. package/analisador-semantico/analisador-semantico-base.d.ts.map +1 -1
  3. package/analisador-semantico/analisador-semantico-base.js +8 -2
  4. package/analisador-semantico/analisador-semantico-base.js.map +1 -1
  5. package/analisador-semantico/analisador-semantico.d.ts +7 -3
  6. package/analisador-semantico/analisador-semantico.d.ts.map +1 -1
  7. package/analisador-semantico/analisador-semantico.js +90 -49
  8. package/analisador-semantico/analisador-semantico.js.map +1 -1
  9. package/avaliador-sintatico/avaliador-sintatico.d.ts +2 -0
  10. package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
  11. package/avaliador-sintatico/avaliador-sintatico.js +52 -18
  12. package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  13. package/avaliador-sintatico/informacao-escopo.d.ts +4 -0
  14. package/avaliador-sintatico/informacao-escopo.d.ts.map +1 -1
  15. package/avaliador-sintatico/informacao-escopo.js +1 -0
  16. package/avaliador-sintatico/informacao-escopo.js.map +1 -1
  17. package/avaliador-sintatico/pilha-escopos.d.ts +3 -0
  18. package/avaliador-sintatico/pilha-escopos.d.ts.map +1 -1
  19. package/avaliador-sintatico/pilha-escopos.js +13 -0
  20. package/avaliador-sintatico/pilha-escopos.js.map +1 -1
  21. package/bin/package.json +1 -1
  22. package/construtos/argumento-referencia-funcao.d.ts +16 -0
  23. package/construtos/argumento-referencia-funcao.d.ts.map +1 -0
  24. package/construtos/argumento-referencia-funcao.js +20 -0
  25. package/construtos/argumento-referencia-funcao.js.map +1 -0
  26. package/construtos/chamada.d.ts +1 -0
  27. package/construtos/chamada.d.ts.map +1 -1
  28. package/construtos/chamada.js.map +1 -1
  29. package/construtos/constante.d.ts +1 -0
  30. package/construtos/constante.d.ts.map +1 -1
  31. package/construtos/constante.js.map +1 -1
  32. package/construtos/funcao.d.ts +1 -1
  33. package/construtos/funcao.d.ts.map +1 -1
  34. package/construtos/funcao.js +1 -1
  35. package/construtos/funcao.js.map +1 -1
  36. package/construtos/index.d.ts +2 -0
  37. package/construtos/index.d.ts.map +1 -1
  38. package/construtos/index.js +2 -0
  39. package/construtos/index.js.map +1 -1
  40. package/construtos/referencia-funcao.d.ts +12 -0
  41. package/construtos/referencia-funcao.d.ts.map +1 -0
  42. package/construtos/referencia-funcao.js +17 -0
  43. package/construtos/referencia-funcao.js.map +1 -0
  44. package/construtos/variavel.d.ts +1 -0
  45. package/construtos/variavel.d.ts.map +1 -1
  46. package/construtos/variavel.js.map +1 -1
  47. package/declaracoes/funcao.d.ts +2 -1
  48. package/declaracoes/funcao.d.ts.map +1 -1
  49. package/declaracoes/funcao.js +3 -1
  50. package/declaracoes/funcao.js.map +1 -1
  51. package/declaracoes/index.d.ts +2 -2
  52. package/declaracoes/index.d.ts.map +1 -1
  53. package/declaracoes/index.js +2 -2
  54. package/declaracoes/index.js.map +1 -1
  55. package/espaco-variaveis.d.ts +4 -0
  56. package/espaco-variaveis.d.ts.map +1 -1
  57. package/espaco-variaveis.js +1 -0
  58. package/espaco-variaveis.js.map +1 -1
  59. package/estruturas/delegua-funcao.d.ts.map +1 -1
  60. package/estruturas/delegua-funcao.js +17 -4
  61. package/estruturas/delegua-funcao.js.map +1 -1
  62. package/formatadores/formatador-delegua.d.ts +6 -4
  63. package/formatadores/formatador-delegua.d.ts.map +1 -1
  64. package/formatadores/formatador-delegua.js +22 -0
  65. package/formatadores/formatador-delegua.js.map +1 -1
  66. package/formatadores/formatador-pitugues.d.ts +3 -1
  67. package/formatadores/formatador-pitugues.d.ts.map +1 -1
  68. package/formatadores/formatador-pitugues.js +6 -0
  69. package/formatadores/formatador-pitugues.js.map +1 -1
  70. package/formatadores/index.d.ts +1 -0
  71. package/formatadores/index.d.ts.map +1 -1
  72. package/formatadores/index.js +1 -0
  73. package/formatadores/index.js.map +1 -1
  74. package/inferenciador.d.ts.map +1 -1
  75. package/inferenciador.js.map +1 -1
  76. package/interfaces/pilha-escopos-execucao-interface.d.ts +6 -4
  77. package/interfaces/pilha-escopos-execucao-interface.d.ts.map +1 -1
  78. package/interfaces/visitante-comum-interface.d.ts +3 -1
  79. package/interfaces/visitante-comum-interface.d.ts.map +1 -1
  80. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts +3 -1
  81. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts.map +1 -1
  82. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +6 -0
  83. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
  84. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.d.ts +3 -1
  85. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.d.ts.map +1 -1
  86. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js +6 -0
  87. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js.map +1 -1
  88. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.d.ts +3 -1
  89. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.d.ts.map +1 -1
  90. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js +7 -1
  91. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js.map +1 -1
  92. package/interpretador/interpretador-base.d.ts +3 -1
  93. package/interpretador/interpretador-base.d.ts.map +1 -1
  94. package/interpretador/interpretador-base.js +14 -7
  95. package/interpretador/interpretador-base.js.map +1 -1
  96. package/interpretador/interpretador.d.ts +7 -1
  97. package/interpretador/interpretador.d.ts.map +1 -1
  98. package/interpretador/interpretador.js +31 -2
  99. package/interpretador/interpretador.js.map +1 -1
  100. package/interpretador/pilha-escopos-execucao.d.ts +3 -1
  101. package/interpretador/pilha-escopos-execucao.d.ts.map +1 -1
  102. package/interpretador/pilha-escopos-execucao.js +14 -1
  103. package/interpretador/pilha-escopos-execucao.js.map +1 -1
  104. package/package.json +1 -1
  105. package/quebras/index.d.ts +2 -0
  106. package/quebras/index.d.ts.map +1 -1
  107. package/quebras/index.js +3 -0
  108. package/quebras/index.js.map +1 -1
  109. package/tradutores/tradutor-assemblyscript.d.ts +7 -3
  110. package/tradutores/tradutor-assemblyscript.d.ts.map +1 -1
  111. package/tradutores/tradutor-assemblyscript.js +30 -8
  112. package/tradutores/tradutor-assemblyscript.js.map +1 -1
  113. package/tradutores/tradutor-javascript.d.ts +8 -4
  114. package/tradutores/tradutor-javascript.d.ts.map +1 -1
  115. package/tradutores/tradutor-javascript.js +38 -16
  116. package/tradutores/tradutor-javascript.js.map +1 -1
  117. package/tradutores/tradutor-python.d.ts +5 -1
  118. package/tradutores/tradutor-python.d.ts.map +1 -1
  119. package/tradutores/tradutor-python.js +24 -0
  120. package/tradutores/tradutor-python.js.map +1 -1
  121. package/umd/delegua.js +863 -439
@@ -1,4 +1,4 @@
1
- import { Atribuir, AcessoIndiceVariavel, AcessoElementoMatriz, AcessoMetodoOuPropriedade, Agrupamento, AtribuicaoPorIndice, AtribuicaoPorIndicesMatriz, Binario, Chamada, DefinirValor, FuncaoConstruto, Dicionario, ExpressaoRegular, FimPara, FormatacaoEscrita, Isto, Literal, Logico, Super, Tupla, TipoDe, Unario, Vetor, Comentario, AcessoMetodo, AcessoPropriedade } from '../construtos';
1
+ import { Atribuir, AcessoIndiceVariavel, AcessoElementoMatriz, AcessoMetodoOuPropriedade, Agrupamento, AtribuicaoPorIndice, AtribuicaoPorIndicesMatriz, Binario, Chamada, DefinirValor, FuncaoConstruto, Dicionario, ExpressaoRegular, FimPara, FormatacaoEscrita, Isto, Literal, Logico, Super, Tupla, TipoDe, Unario, Vetor, Comentario, AcessoMetodo, AcessoPropriedade, ArgumentoReferenciaFuncao, ReferenciaFuncao } from '../construtos';
2
2
  import { Declaracao, TendoComo, InicioAlgoritmo, Aleatorio, CabecalhoPrograma, Classe, Const, ConstMultiplo, Expressao, FuncaoDeclaracao, Enquanto, Escolha, Escreva, Fazer, Importar, Para, ParaCada, Se, Tente, Var, VarMultiplo, Bloco, Continua, EscrevaMesmaLinha, Falhar, Leia, Retorna, Sustar } from '../declaracoes';
3
3
  import { DiagnosticoAnalisadorSemantico, DiagnosticoSeveridade, SimboloInterface } from '../interfaces';
4
4
  import { AnalisadorSemanticoInterface } from '../interfaces/analisador-semantico-interface';
@@ -13,6 +13,8 @@ export declare abstract class AnalisadorSemanticoBase implements AnalisadorSeman
13
13
  diagnosticos: DiagnosticoAnalisadorSemantico[];
14
14
  abstract analisar(declaracoes: Declaracao[]): RetornoAnalisadorSemantico;
15
15
  adicionarDiagnostico(simbolo: SimboloInterface, mensagem: string, severidade?: DiagnosticoSeveridade): void;
16
+ visitarExpressaoArgumentoReferenciaFuncao(expressao: ArgumentoReferenciaFuncao): Promise<any> | void;
17
+ visitarExpressaoReferenciaFuncao(expressao: ReferenciaFuncao): Promise<any> | void;
16
18
  visitarExpressaoAcessoMetodo(expressao: AcessoMetodo): Promise<any> | void;
17
19
  visitarExpressaoAcessoPropriedade(expressao: AcessoPropriedade): Promise<any> | void;
18
20
  visitarDeclaracaoAleatorio(declaracao: Aleatorio): Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"analisador-semantico-base.d.ts","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analisador-semantico-base.d.ts","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico-base.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,12 @@ class AnalisadorSemanticoBase {
17
17
  severidade: severidade,
18
18
  });
19
19
  }
20
+ visitarExpressaoArgumentoReferenciaFuncao(expressao) {
21
+ return Promise.resolve();
22
+ }
23
+ visitarExpressaoReferenciaFuncao(expressao) {
24
+ return Promise.resolve();
25
+ }
20
26
  visitarExpressaoAcessoMetodo(expressao) {
21
27
  return Promise.resolve();
22
28
  }
@@ -114,7 +120,7 @@ class AnalisadorSemanticoBase {
114
120
  return Promise.resolve();
115
121
  }
116
122
  visitarExpressaoContinua(declaracao) {
117
- return Promise.resolve();
123
+ return null;
118
124
  }
119
125
  visitarExpressaoDeChamada(expressao) {
120
126
  return Promise.resolve();
@@ -165,7 +171,7 @@ class AnalisadorSemanticoBase {
165
171
  return Promise.resolve();
166
172
  }
167
173
  visitarExpressaoSustar(declaracao) {
168
- return Promise.resolve();
174
+ return null;
169
175
  }
170
176
  visitarExpressaoTupla(expressao) {
171
177
  return Promise.resolve();
@@ -1 +1 @@
1
- {"version":3,"file":"analisador-semantico-base.js","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analisador-semantico-base.js","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico-base.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { Atribuir, Chamada, TipoDe } from '../construtos';
1
+ import { ArgumentoReferenciaFuncao, Atribuir, Chamada, Construto, FuncaoConstruto, ReferenciaFuncao, TipoDe, Variavel } from '../construtos';
2
2
  import { Const, Declaracao, Enquanto, Escolha, Escreva, Expressao, Falhar, FuncaoDeclaracao, Retorna, Var } from '../declaracoes';
3
- import { SimboloInterface } from '../interfaces';
3
+ import { ParametroInterface, SimboloInterface } from '../interfaces';
4
4
  import { DiagnosticoAnalisadorSemantico } from '../interfaces/erros';
5
5
  import { RetornoAnalisadorSemantico } from '../interfaces/retornos/retorno-analisador-semantico';
6
6
  import { RetornoQuebra } from '../quebras';
@@ -13,7 +13,7 @@ interface VariavelHipoteticaInterface {
13
13
  valor?: any;
14
14
  }
15
15
  interface FuncaoHipoteticaInterface {
16
- valor: any;
16
+ valor: FuncaoConstruto;
17
17
  }
18
18
  export declare class AnalisadorSemantico extends AnalisadorSemanticoBase {
19
19
  pilhaVariaveis: PilhaVariaveis;
@@ -33,6 +33,10 @@ export declare class AnalisadorSemantico extends AnalisadorSemanticoBase {
33
33
  private verificarTipoDe;
34
34
  visitarExpressaoFalhar(expressao: Falhar): Promise<any>;
35
35
  private verificarFalhar;
36
+ comparacaoArgumentosContraParametrosFuncao(simboloFuncao: SimboloInterface, parametros: ParametroInterface[], argumentos: Construto[]): void;
37
+ visitarChamadaPorArgumentoReferenciaFuncao(argumentoReferenciaFuncao: ArgumentoReferenciaFuncao, argumentos: Construto[]): void;
38
+ visitarChamadaPorReferenciaFuncao(referenciaFuncao: ReferenciaFuncao, argumentos: Construto[]): void;
39
+ visitarChamadaPorVariavel(entidadeChamadaVariavel: Variavel, argumentos: Construto[]): Promise<void>;
36
40
  visitarExpressaoDeChamada(expressao: Chamada): Promise<void>;
37
41
  visitarExpressaoDeAtribuicao(expressao: Atribuir): Promise<void>;
38
42
  visitarDeclaracaoDeExpressao(declaracao: Expressao): Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"analisador-semantico.d.ts","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analisador-semantico.d.ts","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico.ts"],"names":[],"mappings":"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"}
@@ -76,15 +76,18 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
76
76
  return this.verificarTipoDe(expressao.valor);
77
77
  }
78
78
  verificarTipoDe(valor) {
79
- if (valor instanceof construtos_1.Binario) {
80
- this.verificarTipoDe(valor.direita);
81
- this.verificarTipoDe(valor.esquerda);
82
- }
83
- if (valor instanceof construtos_1.Agrupamento) {
84
- return this.verificarTipoDe(valor.expressao);
85
- }
86
- if (valor instanceof construtos_1.Variavel) {
87
- return this.verificarVariavel(valor);
79
+ switch (valor.constructor.name) {
80
+ case 'Agrupamento':
81
+ const valorAgrupamento = valor;
82
+ return this.verificarTipoDe(valorAgrupamento.expressao);
83
+ case 'Binario':
84
+ const valorBinario = valor;
85
+ this.verificarTipoDe(valorBinario.direita);
86
+ this.verificarTipoDe(valorBinario.esquerda);
87
+ break;
88
+ case 'Variavel':
89
+ const valorVariavel = valor;
90
+ return this.verificarVariavel(valorVariavel);
88
91
  }
89
92
  return Promise.resolve();
90
93
  }
@@ -104,36 +107,67 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
104
107
  }
105
108
  return Promise.resolve();
106
109
  }
107
- visitarExpressaoDeChamada(expressao) {
108
- if (expressao.entidadeChamada instanceof construtos_1.Variavel) {
109
- const variavel = expressao.entidadeChamada;
110
- const funcaoChamada = this.variaveis[variavel.simbolo.lexema] || this.funcoes[variavel.simbolo.lexema];
111
- if (!funcaoChamada) {
112
- this.erro(expressao.entidadeChamada.simbolo, `Chamada da função '${expressao.entidadeChamada.simbolo.lexema}' não existe.`);
113
- return Promise.resolve();
114
- }
115
- const funcao = funcaoChamada.valor;
116
- if (funcao.parametros.length !== expressao.argumentos.length) {
117
- this.erro(expressao.entidadeChamada.simbolo, `Função '${expressao.entidadeChamada.simbolo.lexema}' espera ${funcao.parametros.length} parâmetros. Atual: ${expressao.argumentos.length}.`);
118
- }
119
- for (let [indice, parametro] of funcao.parametros.entries()) {
120
- // TODO: `argumento` pode ser Literal (tipo já resolvido) ou variável (tipo inferido em outra etapa).
121
- const argumento = expressao.argumentos[indice];
122
- if (argumento) {
123
- if (parametro.tipoDado === 'texto' && argumento.tipo !== 'texto') {
124
- this.erro(expressao.entidadeChamada.simbolo, `O valor passado para o parâmetro '${parametro.nome.lexema}' (${parametro.tipoDado}) é diferente do esperado pela função (${argumento.tipo}).`);
125
- }
126
- else if (['inteiro', 'número', 'real'].includes(parametro.tipoDado)) {
127
- // Aqui, se houver diferença entre os tipos do parâmetro e do argumento, não há erro,
128
- // porque Delégua pode trabalhar com conversões implícitas.
129
- // Isso pode ou não mudar no futuro.
130
- if (!['inteiro', 'número', 'real'].includes(argumento.tipo)) {
131
- this.erro(expressao.entidadeChamada.simbolo, `O valor passado para o parâmetro '${parametro.nome.lexema}' (${parametro.tipoDado}) é diferente do esperado pela função (${argumento.tipo}).`);
132
- }
110
+ comparacaoArgumentosContraParametrosFuncao(simboloFuncao, parametros, argumentos) {
111
+ if (parametros.length !== argumentos.length) {
112
+ this.erro(simboloFuncao, `Função '${simboloFuncao.lexema}' espera ${parametros.length} parâmetros. Atual: ${argumentos.length}.`);
113
+ }
114
+ for (let [indice, parametro] of parametros.entries()) {
115
+ // TODO: `argumento` pode ser Literal (tipo já resolvido) ou variável (tipo inferido em outra etapa).
116
+ const argumento = argumentos[indice];
117
+ if (argumento) {
118
+ if (parametro.tipoDado === 'texto' && argumento.tipo !== 'texto') {
119
+ this.erro(simboloFuncao, `O valor passado para o parâmetro '${parametro.nome.lexema}' (${parametro.tipoDado}) é diferente do esperado pela função (${argumento.tipo}).`);
120
+ }
121
+ else if (['inteiro', 'número', 'real'].includes(parametro.tipoDado)) {
122
+ // Aqui, se houver diferença entre os tipos do parâmetro e do argumento, não erro,
123
+ // porque Delégua pode trabalhar com conversões implícitas.
124
+ // Isso pode ou não mudar no futuro.
125
+ if (!['inteiro', 'número', 'real'].includes(argumento.tipo)) {
126
+ this.erro(simboloFuncao, `O valor passado para o parâmetro '${parametro.nome.lexema}' (${parametro.tipoDado}) é diferente do esperado pela função (${argumento.tipo}).`);
133
127
  }
134
128
  }
135
129
  }
136
130
  }
131
+ }
132
+ visitarChamadaPorArgumentoReferenciaFuncao(argumentoReferenciaFuncao, argumentos) {
133
+ const variavelCorrespondente = this.variaveis[argumentoReferenciaFuncao.simboloFuncao.lexema].valor;
134
+ if (!variavelCorrespondente) {
135
+ return;
136
+ }
137
+ this.comparacaoArgumentosContraParametrosFuncao(argumentoReferenciaFuncao.simboloFuncao, variavelCorrespondente.parametros, argumentos);
138
+ }
139
+ visitarChamadaPorReferenciaFuncao(referenciaFuncao, argumentos) {
140
+ const funcaoCorrespondente = this.funcoes[referenciaFuncao.simboloFuncao.lexema];
141
+ if (!funcaoCorrespondente) {
142
+ return;
143
+ }
144
+ this.comparacaoArgumentosContraParametrosFuncao(referenciaFuncao.simboloFuncao, funcaoCorrespondente.valor.parametros, argumentos);
145
+ }
146
+ visitarChamadaPorVariavel(entidadeChamadaVariavel, argumentos) {
147
+ const variavel = entidadeChamadaVariavel;
148
+ const funcaoChamada = this.variaveis[variavel.simbolo.lexema] || this.funcoes[variavel.simbolo.lexema];
149
+ if (!funcaoChamada) {
150
+ this.erro(entidadeChamadaVariavel.simbolo, `Chamada da função '${entidadeChamadaVariavel.simbolo.lexema}' não existe.`);
151
+ return Promise.resolve();
152
+ }
153
+ const funcao = funcaoChamada.valor;
154
+ this.comparacaoArgumentosContraParametrosFuncao(entidadeChamadaVariavel.simbolo, funcao.parametros, argumentos);
155
+ }
156
+ visitarExpressaoDeChamada(expressao) {
157
+ switch (expressao.entidadeChamada.constructor.name) {
158
+ case 'ArgumentoReferenciaFuncao':
159
+ const entidadeChamadaArgumentoReferenciaFuncao = expressao.entidadeChamada;
160
+ this.visitarChamadaPorArgumentoReferenciaFuncao(entidadeChamadaArgumentoReferenciaFuncao, expressao.argumentos);
161
+ break;
162
+ case 'ReferenciaFuncao':
163
+ const entidadeChamadaReferenciaFuncao = expressao.entidadeChamada;
164
+ this.visitarChamadaPorReferenciaFuncao(entidadeChamadaReferenciaFuncao, expressao.argumentos);
165
+ break;
166
+ case 'Variavel':
167
+ const entidadeChamadaVariavel = expressao.entidadeChamada;
168
+ this.visitarChamadaPorVariavel(entidadeChamadaVariavel, expressao.argumentos);
169
+ break;
170
+ }
137
171
  return Promise.resolve();
138
172
  }
139
173
  visitarExpressaoDeAtribuicao(expressao) {
@@ -311,9 +345,13 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
311
345
  return Promise.resolve();
312
346
  }
313
347
  verificarChamada(chamada) {
314
- let funcaoChamada = chamada.entidadeChamada;
315
- if (!this.funcoes[funcaoChamada.simbolo.lexema]) {
316
- this.erro(funcaoChamada.simbolo, `Chamada da função '${funcaoChamada.simbolo.lexema}' não existe.`);
348
+ switch (chamada.entidadeChamada.constructor.name) {
349
+ case 'Variavel':
350
+ let entidadeChamadaVariavel = chamada.entidadeChamada;
351
+ if (!this.funcoes[entidadeChamadaVariavel.simbolo.lexema]) {
352
+ this.erro(entidadeChamadaVariavel.simbolo, `Chamada da função '${entidadeChamadaVariavel.simbolo.lexema}' não existe.`);
353
+ }
354
+ break;
317
355
  }
318
356
  return Promise.resolve();
319
357
  }
@@ -373,20 +411,23 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
373
411
  }
374
412
  visitarDeclaracaoVar(declaracao) {
375
413
  this.verificarTipoAtribuido(declaracao);
376
- if (declaracao.inicializador instanceof construtos_1.FuncaoConstruto) {
377
- const funcao = declaracao.inicializador;
378
- if (funcao.parametros.length >= 255) {
379
- this.erro(declaracao.simbolo, 'Função não pode ter mais de 255 parâmetros.');
414
+ if (declaracao.inicializador) {
415
+ switch (declaracao.inicializador.constructor.name) {
416
+ case 'FuncaoConstruto':
417
+ const funcaoConstruto = declaracao.inicializador;
418
+ if (funcaoConstruto.parametros.length >= 255) {
419
+ this.erro(declaracao.simbolo, 'Função não pode ter mais de 255 parâmetros.');
420
+ }
421
+ break;
380
422
  }
381
423
  }
424
+ const valorInicializador = declaracao.inicializador && declaracao.inicializador.valor ?
425
+ declaracao.inicializador.valor :
426
+ declaracao.inicializador;
382
427
  this.variaveis[declaracao.simbolo.lexema] = {
383
428
  imutavel: false,
384
429
  tipo: declaracao.tipo,
385
- valor: declaracao.inicializador !== null
386
- ? declaracao.inicializador.valor !== undefined
387
- ? declaracao.inicializador.valor
388
- : declaracao.inicializador
389
- : undefined,
430
+ valor: valorInicializador || undefined,
390
431
  };
391
432
  return Promise.resolve();
392
433
  }
@@ -394,13 +435,13 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
394
435
  return Promise.resolve(null);
395
436
  }
396
437
  visitarDeclaracaoDefinicaoFuncao(declaracao) {
397
- if (declaracao.funcao.tipoRetorno === undefined) {
438
+ if (declaracao.funcao.tipo === undefined) {
398
439
  this.erro(declaracao.simbolo, `Declaração de retorno da função é inválido.`);
399
440
  }
400
441
  if (declaracao.funcao.parametros.length >= 255) {
401
442
  this.erro(declaracao.simbolo, 'Função não pode ter mais de 255 parâmetros.');
402
443
  }
403
- let tipoRetornoFuncao = declaracao.funcao.tipoRetorno;
444
+ let tipoRetornoFuncao = declaracao.funcao.tipo;
404
445
  if (tipoRetornoFuncao) {
405
446
  let funcaoContemRetorno = declaracao.funcao.corpo.find((c) => c instanceof declaracoes_1.Retorna);
406
447
  if (funcaoContemRetorno) {
@@ -1 +1 @@
1
- {"version":3,"file":"analisador-semantico.js","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analisador-semantico.js","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,7 @@ export declare class AvaliadorSintatico extends AvaliadorSintaticoBase implement
32
32
  [key: string]: string;
33
33
  };
34
34
  };
35
+ primitivasConhecidas: string[];
35
36
  hashArquivo: number;
36
37
  atual: number;
37
38
  blocos: number;
@@ -52,6 +53,7 @@ export declare class AvaliadorSintatico extends AvaliadorSintaticoBase implement
52
53
  * @see finalizarChamada
53
54
  */
54
55
  protected resolverEntidadeChamadaAcessoMetodoOuPropriedade(entidadeChamadaResolvida: AcessoMetodoOuPropriedade): Construto;
56
+ protected resolverEntidadeChamada(entidadeChamada: Construto): Construto;
55
57
  finalizarChamada(entidadeChamada: Construto): Chamada;
56
58
  unario(): Construto;
57
59
  multiplicar(): Construto;
@@ -1 +1 @@
1
- {"version":3,"file":"avaliador-sintatico.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"avaliador-sintatico.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,14 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
40
40
  this.performance = performance;
41
41
  this.tiposDefinidosEmCodigo = {};
42
42
  this.tiposDeFerramentasExternas = {};
43
+ this.primitivasConhecidas = [
44
+ ...Object.keys(primitivas_dicionario_1.default),
45
+ ...Object.keys(primitivas_numero_1.default),
46
+ ...Object.keys(primitivas_texto_1.default),
47
+ ...Object.keys(primitivas_vetor_1.default),
48
+ 'inteiro',
49
+ 'texto'
50
+ ];
43
51
  this.pilhaEscopos = new pilha_escopos_1.PilhaEscopos();
44
52
  }
45
53
  verificarDefinicaoTipoAtual() {
@@ -154,7 +162,9 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
154
162
  case delegua_2.default.FUNCAO:
155
163
  case delegua_2.default.FUNÇÃO:
156
164
  const simboloFuncao = this.avancarEDevolverAnterior();
157
- return this.corpoDaFuncao(simboloFuncao.lexema);
165
+ const corpoDaFuncao = this.corpoDaFuncao(simboloFuncao.lexema);
166
+ this.pilhaEscopos.definirTipoVariavel(simboloFuncao.lexema, 'função');
167
+ return corpoDaFuncao;
158
168
  case delegua_2.default.IDENTIFICADOR:
159
169
  const simboloIdentificador = this.avancarEDevolverAnterior();
160
170
  let tipoOperando;
@@ -254,7 +264,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
254
264
  const tipoCorrespondente = this.tiposDefinidosEmCodigo[construtoTipado.tipo];
255
265
  const possivelMetodo = tipoCorrespondente.metodos.filter(m => m.simbolo.lexema === construtoTipado.simbolo.lexema);
256
266
  if (possivelMetodo.length > 0) {
257
- construto = new construtos_1.AcessoMetodo(construtoTipado.hashArquivo, construtoTipado.objeto, construtoTipado.simbolo.lexema, possivelMetodo[0].tipoRetorno);
267
+ construto = new construtos_1.AcessoMetodo(construtoTipado.hashArquivo, construtoTipado.objeto, construtoTipado.simbolo.lexema, possivelMetodo[0].tipo);
258
268
  break;
259
269
  }
260
270
  const possivelPropriedade = tipoCorrespondente.propriedades.filter(p => p.nome.lexema === construtoTipado.simbolo.lexema);
@@ -356,6 +366,26 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
356
366
  }
357
367
  return entidadeChamadaResolvida;
358
368
  }
369
+ resolverEntidadeChamada(entidadeChamada) {
370
+ if (entidadeChamada.constructor.name === 'Variavel') {
371
+ const entidadeChamadaResolvidaVariavel = entidadeChamada;
372
+ if (this.primitivasConhecidas.includes(entidadeChamadaResolvidaVariavel.simbolo.lexema)) {
373
+ return entidadeChamadaResolvidaVariavel;
374
+ }
375
+ if (entidadeChamadaResolvidaVariavel.simbolo.lexema in this.tiposDefinidosEmCodigo) {
376
+ return entidadeChamadaResolvidaVariavel;
377
+ }
378
+ const possivelReferencia = this.pilhaEscopos.obterReferenciaFuncao(entidadeChamadaResolvidaVariavel.simbolo.lexema);
379
+ if (possivelReferencia !== null) {
380
+ return new construtos_1.ReferenciaFuncao(entidadeChamada.hashArquivo, entidadeChamada.linha, entidadeChamadaResolvidaVariavel.simbolo, entidadeChamadaResolvidaVariavel.tipo, possivelReferencia.id);
381
+ }
382
+ return new construtos_1.ArgumentoReferenciaFuncao(entidadeChamada.hashArquivo, entidadeChamada.linha, entidadeChamadaResolvidaVariavel.simbolo);
383
+ }
384
+ if (entidadeChamada.constructor.name === 'AcessoMetodoOuPropriedade') {
385
+ return this.resolverEntidadeChamadaAcessoMetodoOuPropriedade(entidadeChamada);
386
+ }
387
+ return entidadeChamada;
388
+ }
359
389
  finalizarChamada(entidadeChamada) {
360
390
  const argumentos = [];
361
391
  if (!this.verificarTipoSimboloAtual(delegua_2.default.PARENTESE_DIREITO)) {
@@ -369,12 +399,11 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
369
399
  }
370
400
  this.consumir(delegua_2.default.PARENTESE_DIREITO, "Esperado ')' após os argumentos.");
371
401
  // Toda chamada precisa saber de antemão qual o tipo resolvido.
372
- let entidadeChamadaResolvida = entidadeChamada;
373
- if (entidadeChamadaResolvida.constructor.name === 'AcessoMetodoOuPropriedade') {
374
- entidadeChamadaResolvida = this.resolverEntidadeChamadaAcessoMetodoOuPropriedade(entidadeChamadaResolvida);
375
- }
402
+ const entidadeChamadaResolvida = this.resolverEntidadeChamada(entidadeChamada);
376
403
  // TODO: Criar forma de validar tipos dos argumentos da entidade chamada.
377
- return new construtos_1.Chamada(this.hashArquivo, entidadeChamadaResolvida, argumentos);
404
+ const construtoChamada = new construtos_1.Chamada(this.hashArquivo, entidadeChamadaResolvida, argumentos);
405
+ construtoChamada.tipo = 'qualquer';
406
+ return construtoChamada;
378
407
  }
379
408
  unario() {
380
409
  if (this.verificarSeSimboloAtualEIgualA(delegua_2.default.NEGACAO, delegua_2.default.SUBTRACAO, delegua_2.default.BIT_NOT, delegua_2.default.INCREMENTAR, delegua_2.default.DECREMENTAR)) {
@@ -403,6 +432,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
403
432
  while (this.verificarSeSimboloAtualEIgualA(delegua_2.default.SUBTRACAO, delegua_2.default.ADICAO, delegua_2.default.MENOS_IGUAL)) {
404
433
  const operador = this.simbolos[this.atual - 1];
405
434
  const direito = this.multiplicar();
435
+ // const tipoInferido = inferirTipoParaBinario(expressao, operador, direito);
406
436
  expressao = new construtos_1.Binario(this.hashArquivo, expressao, operador, direito);
407
437
  }
408
438
  if (this.verificarSeSimboloAtualEIgualA(delegua_2.default.MAIS_IGUAL)) {
@@ -505,13 +535,6 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
505
535
  case 'AcessoMetodoOuPropriedade':
506
536
  const expressaoAcessoMetodoOuPropriedade = expressao;
507
537
  return new construtos_1.DefinirValor(this.hashArquivo, igual.linha, expressaoAcessoMetodoOuPropriedade.objeto, expressaoAcessoMetodoOuPropriedade.simbolo, valor);
508
- /* case 'Super':
509
- const expressaoSuper = expressao as Super;
510
- return new DefinirValor(
511
- this.hashArquivo,
512
- igual.linha,
513
- expressaoSuper.
514
- ); */
515
538
  case 'AcessoIndiceVariavel':
516
539
  const expressaoAcessoIndiceVariavel = expressao;
517
540
  return new construtos_1.AtribuicaoPorIndice(this.hashArquivo, expressaoAcessoIndiceVariavel.linha, expressaoAcessoIndiceVariavel.entidadeChamada, expressaoAcessoIndiceVariavel.indice, valor);
@@ -768,6 +791,8 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
768
791
  delegua_2.default.CHAVE_ESQUERDA,
769
792
  delegua_2.default.COLCHETE_ESQUERDO,
770
793
  delegua_2.default.FALSO,
794
+ delegua_2.default.FUNCAO,
795
+ delegua_2.default.FUNÇÃO,
771
796
  delegua_2.default.IDENTIFICADOR,
772
797
  delegua_2.default.ISTO,
773
798
  delegua_2.default.NEGACAO,
@@ -999,6 +1024,12 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
999
1024
  case 'AcessoPropriedade':
1000
1025
  const entidadeChamadaAcessoPropriedade = entidadeChamadaChamada;
1001
1026
  return entidadeChamadaAcessoPropriedade.tipoRetornoPropriedade;
1027
+ case 'ArgumentoReferenciaFuncao':
1028
+ // TODO: Voltar aqui se necessário.
1029
+ return 'qualquer';
1030
+ case 'ReferenciaFuncao':
1031
+ const entidadeChamadaReferenciaFuncao = entidadeChamadaChamada;
1032
+ return entidadeChamadaReferenciaFuncao.tipo;
1002
1033
  case 'Variavel':
1003
1034
  const entidadeChamadaVariavel = entidadeChamadaChamada;
1004
1035
  return entidadeChamadaVariavel.tipo;
@@ -1006,7 +1037,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
1006
1037
  break;
1007
1038
  case 'FuncaoConstruto':
1008
1039
  const funcaoConstruto = inicializador;
1009
- return `função<${funcaoConstruto.tipoRetorno}>`;
1040
+ return `função<${funcaoConstruto.tipo}>`;
1010
1041
  case 'Leia':
1011
1042
  return 'texto';
1012
1043
  case 'Dupla':
@@ -1138,8 +1169,10 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
1138
1169
  // para ela. Vai ser atualizado após avaliação do corpo da função.
1139
1170
  this.pilhaEscopos.definirTipoVariavel(simbolo.lexema, 'qualquer');
1140
1171
  const corpoDaFuncao = this.corpoDaFuncao(tipo);
1141
- this.pilhaEscopos.definirTipoVariavel(simbolo.lexema, corpoDaFuncao.tipoRetorno);
1142
- return new declaracoes_1.FuncaoDeclaracao(simbolo, corpoDaFuncao, corpoDaFuncao.tipoRetorno, decoradores);
1172
+ this.pilhaEscopos.definirTipoVariavel(simbolo.lexema, corpoDaFuncao.tipo);
1173
+ const funcaoDeclaracao = new declaracoes_1.FuncaoDeclaracao(simbolo, corpoDaFuncao, corpoDaFuncao.tipo, decoradores);
1174
+ this.pilhaEscopos.registrarReferenciaFuncao(simbolo.lexema, funcaoDeclaracao);
1175
+ return funcaoDeclaracao;
1143
1176
  }
1144
1177
  logicaComumParametros() {
1145
1178
  const parametros = [];
@@ -1237,6 +1270,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
1237
1270
  }
1238
1271
  }
1239
1272
  const tiposRetornos = new Set(expressoesRetorna.map(e => e.tipo));
1273
+ let retornaChamadoExplicitamente = tiposRetornos.size > 0;
1240
1274
  if (tiposRetornos.size > 1 && tipoRetorno !== 'qualquer') {
1241
1275
  let tiposEncontrados = Array.from(tiposRetornos).reduce((acumulador, valor) => acumulador += valor + ', ', '');
1242
1276
  tiposEncontrados = tiposEncontrados.slice(0, -2);
@@ -1251,7 +1285,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
1251
1285
  const tipoRetornoDeduzido = tiposRetornos.values().next().value;
1252
1286
  tipoRetorno = tipoRetornoDeduzido;
1253
1287
  }
1254
- else if (!definicaoExplicitaDeTipo) {
1288
+ else if (!retornaChamadoExplicitamente && !definicaoExplicitaDeTipo) {
1255
1289
  // Ou, se esses retornos sequer existem, e o tipo explícito não é
1256
1290
  // 'qualquer', o tipo inferido é 'vazio'.
1257
1291
  tipoRetorno = 'vazio';