@designliquido/delegua 0.5.2 → 0.6.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 (83) hide show
  1. package/README.md +1 -1
  2. package/bin/package.json +1 -1
  3. package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +1 -0
  4. package/fontes/avaliador-sintatico/avaliador-sintatico.js +40 -29
  5. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  6. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +2 -1
  7. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
  8. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.d.ts +1 -0
  9. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js +31 -22
  10. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js.map +1 -1
  11. package/fontes/bibliotecas/biblioteca-global.js +4 -4
  12. package/fontes/bibliotecas/biblioteca-global.js.map +1 -1
  13. package/fontes/construtos/acesso-metodo.d.ts +2 -2
  14. package/fontes/construtos/acesso-metodo.js.map +1 -1
  15. package/fontes/construtos/agrupamento.d.ts +2 -2
  16. package/fontes/construtos/agrupamento.js.map +1 -1
  17. package/fontes/construtos/atribuir.d.ts +2 -2
  18. package/fontes/construtos/atribuir.js.map +1 -1
  19. package/fontes/construtos/binario.d.ts +2 -2
  20. package/fontes/construtos/binario.js.map +1 -1
  21. package/fontes/construtos/chamada.d.ts +2 -2
  22. package/fontes/construtos/chamada.js.map +1 -1
  23. package/fontes/construtos/literal.d.ts +2 -2
  24. package/fontes/construtos/literal.js.map +1 -1
  25. package/fontes/construtos/variavel.d.ts +2 -2
  26. package/fontes/construtos/variavel.js.map +1 -1
  27. package/fontes/declaracoes/bloco.d.ts +2 -2
  28. package/fontes/declaracoes/bloco.js.map +1 -1
  29. package/fontes/declaracoes/escreva.d.ts +4 -4
  30. package/fontes/declaracoes/escreva.js +3 -3
  31. package/fontes/declaracoes/escreva.js.map +1 -1
  32. package/fontes/declaracoes/expressao.d.ts +2 -2
  33. package/fontes/declaracoes/expressao.js.map +1 -1
  34. package/fontes/declaracoes/funcao.d.ts +2 -2
  35. package/fontes/declaracoes/funcao.js.map +1 -1
  36. package/fontes/declaracoes/retorna.d.ts +2 -2
  37. package/fontes/declaracoes/retorna.js.map +1 -1
  38. package/fontes/declaracoes/se.d.ts +2 -2
  39. package/fontes/declaracoes/se.js.map +1 -1
  40. package/fontes/declaracoes/sustar.d.ts +2 -2
  41. package/fontes/declaracoes/sustar.js.map +1 -1
  42. package/fontes/declaracoes/tente.d.ts +2 -2
  43. package/fontes/declaracoes/tente.js.map +1 -1
  44. package/fontes/declaracoes/var.d.ts +2 -2
  45. package/fontes/declaracoes/var.js.map +1 -1
  46. package/fontes/delegua.d.ts +0 -2
  47. package/fontes/delegua.js +6 -10
  48. package/fontes/delegua.js.map +1 -1
  49. package/fontes/importador/importador.js +5 -1
  50. package/fontes/importador/importador.js.map +1 -1
  51. package/fontes/interfaces/delegua-interface.d.ts +1 -2
  52. package/fontes/interfaces/interpretador-interface.d.ts +1 -2
  53. package/fontes/interfaces/pilha-escopos-execucao-interface.d.ts +1 -0
  54. package/fontes/interpretador/dialetos/egua-classico.d.ts +3 -2
  55. package/fontes/interpretador/dialetos/egua-classico.js +4 -3
  56. package/fontes/interpretador/dialetos/egua-classico.js.map +1 -1
  57. package/fontes/interpretador/interpretador-com-depuracao.d.ts +2 -2
  58. package/fontes/interpretador/interpretador-com-depuracao.js +2 -2
  59. package/fontes/interpretador/interpretador-com-depuracao.js.map +1 -1
  60. package/fontes/interpretador/interpretador.d.ts +2 -5
  61. package/fontes/interpretador/interpretador.js +10 -12
  62. package/fontes/interpretador/interpretador.js.map +1 -1
  63. package/fontes/interpretador/pilha-escopos-execucao.d.ts +1 -0
  64. package/fontes/interpretador/pilha-escopos-execucao.js +11 -1
  65. package/fontes/interpretador/pilha-escopos-execucao.js.map +1 -1
  66. package/fontes/lexador/lexador.d.ts +1 -1
  67. package/fontes/lexador/lexador.js +1 -4
  68. package/fontes/lexador/lexador.js.map +1 -1
  69. package/fontes/resolvedor/index.d.ts +0 -1
  70. package/fontes/resolvedor/index.js +0 -1
  71. package/fontes/resolvedor/index.js.map +1 -1
  72. package/package.json +1 -1
  73. package/testes/egua-classico/resolvedor.test.js +18 -19
  74. package/testes/egua-classico/resolvedor.test.js.map +1 -1
  75. package/fontes/resolvedor/resolvedor.d.ts +0 -64
  76. package/fontes/resolvedor/resolvedor.js +0 -345
  77. package/fontes/resolvedor/resolvedor.js.map +0 -1
  78. package/testes/eguap/resolvedor.test.d.ts +0 -1
  79. package/testes/eguap/resolvedor.test.js +0 -38
  80. package/testes/eguap/resolvedor.test.js.map +0 -1
  81. package/testes/resolvedor.test.d.ts +0 -1
  82. package/testes/resolvedor.test.js +0 -35
  83. package/testes/resolvedor.test.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"resolvedor.test.js","sourceRoot":"","sources":["../../../testes/egua-classico/resolvedor.test.ts"],"names":[],"mappings":";;AAAA,gDAA+C;AAE/C,QAAQ,CAAC,4BAA4B,EAAE;IACnC,QAAQ,CAAC,YAAY,EAAE;QACnB,IAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,MAAM,CAAC,CAAC;QAEpC,EAAE,CAAC,SAAS,EAAE;YACV,IAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7E,IAAM,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YACtF,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;YACnE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,EAAE,CAAC,uBAAuB,EAAE;YACxB,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAChC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,EAAE,CAAC,qBAAqB,EAAE;YACtB,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACvC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,EAAE,CAAC,gBAAgB,EAAE;YACjB,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"resolvedor.test.js","sourceRoot":"","sources":["../../../testes/egua-classico/resolvedor.test.ts"],"names":[],"mappings":";;AAAA,gDAA+C;AAC/C,6DAA0E;AAE1E,QAAQ,CAAC,4BAA4B,EAAE;IACnC,QAAQ,CAAC,YAAY,EAAE;QACnB,IAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,MAAM,CAAC,CAAC;QACpC,IAAM,UAAU,GAAG,IAAI,iCAAsB,EAAE,CAAC;QAEhD,EAAE,CAAC,SAAS,EAAE;YACV,IAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7E,IAAM,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YACtF,UAAU,CAAC,QAAQ,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;YAC3D,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;YACxC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YAC9C,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uBAAuB,EAAE;YACxB,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACxB,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;YACxC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YAC9C,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qBAAqB,EAAE;YACtB,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC/B,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;YACxC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YAC9C,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gBAAgB,EAAE;YACjB,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;YACxC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YAC9C,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1,64 +0,0 @@
1
- import { ResolvedorInterface } from '../interfaces/resolvedor-interface';
2
- import { PilhaEscopos } from './pilha-escopos';
3
- import { ErroResolvedor } from './erro-resolvedor';
4
- import { AcessoIndiceVariavel, AcessoMetodo, Agrupamento, Atribuir, Binario, Chamada, Construto, Dicionario, Funcao, Logico, Super, Variavel, Vetor } from '../construtos';
5
- import { SimboloInterface } from '../interfaces';
6
- import { Bloco, Classe, Enquanto, Escolha, Escreva, Expressao, Fazer, Funcao as FuncaoDeclaracao, Importar, Para, Se, Tente, Var } from '../declaracoes';
7
- import { RetornoResolvedor } from './retorno-resolvedor';
8
- /**
9
- * O Resolvedor (Resolver) é responsável por catalogar todos os identificadores complexos, como por exemplo: funções, classes, variáveis,
10
- * e delimitar os escopos onde esses identificadores existem.
11
- * Exemplo: uma classe A declara dois métodos chamados M e N. Todas as variáveis declaradas dentro de M não podem ser vistas por N, e vice-versa.
12
- * No entanto, todas as variáveis declaradas dentro da classe A podem ser vistas tanto por M quanto por N.
13
- * @deprecated Marcado para remoção. Como a implementação de blocos de escopo não precisa mais ter etapa de resolução, o
14
- * resolvedor deve ser removido em versões futuras.
15
- */
16
- export declare class Resolvedor implements ResolvedorInterface {
17
- erros: ErroResolvedor[];
18
- escopos: PilhaEscopos;
19
- locais: Map<Construto, number>;
20
- funcaoAtual: any;
21
- classeAtual: any;
22
- cicloAtual: any;
23
- constructor();
24
- definir(simbolo: SimboloInterface): void;
25
- declarar(simbolo: SimboloInterface): void;
26
- inicioDoEscopo(): void;
27
- finalDoEscopo(): void;
28
- resolverLocal(expressao: Construto, simbolo: SimboloInterface): void;
29
- visitarExpressaoBloco(declaracao: Bloco): any;
30
- visitarExpressaoDeVariavel(expressao: Variavel): any;
31
- visitarExpressaoVar(declaracao: Var): any;
32
- visitarExpressaoDeAtribuicao(expressao: Atribuir): any;
33
- resolverFuncao(funcao: Funcao, tipoFuncao: string): void;
34
- visitarExpressaoFuncao(declaracao: FuncaoDeclaracao): any;
35
- visitarExpressaoDeleguaFuncao(declaracao: Funcao): any;
36
- visitarExpressaoTente(declaracao: Tente): any;
37
- visitarExpressaoClasse(declaracao: Classe): any;
38
- visitarExpressaoSuper(expressao: Super): any;
39
- visitarExpressaoAcessoMetodo(expressao: AcessoMetodo): any;
40
- visitarDeclaracaoDeExpressao(declaracao: Expressao): any;
41
- visitarExpressaoSe(declaracao: Se): any;
42
- visitarExpressaoImportar(declaracao: Importar): void;
43
- visitarExpressaoEscreva(declaracao: Escreva): void;
44
- visitarExpressaoRetornar(declaracao: any): any;
45
- visitarExpressaoEscolha(declaracao: Escolha): void;
46
- visitarExpressaoEnquanto(declaracao: Enquanto): any;
47
- visitarExpressaoPara(declaracao: Para): any;
48
- visitarExpressaoFazer(declaracao: Fazer): any;
49
- visitarExpressaoBinaria(expressao: Binario): any;
50
- visitarExpressaoDeChamada(expressao: Chamada): any;
51
- visitarExpressaoAgrupamento(expressao: Agrupamento): any;
52
- visitarExpressaoDicionario(expressao: Dicionario): any;
53
- visitarExpressaoVetor(expressao: Vetor): any;
54
- visitarExpressaoAcessoIndiceVariavel(expressao: AcessoIndiceVariavel): any;
55
- visitarExpressaoContinua(declaracao?: any): any;
56
- visitarExpressaoSustar(declaracao?: any): any;
57
- visitarExpressaoAtribuicaoSobrescrita(expressao?: any): any;
58
- visitarExpressaoLiteral(expressao?: any): any;
59
- visitarExpressaoLogica(expressao?: Logico): any;
60
- visitarExpressaoUnaria(expressao?: any): any;
61
- visitarExpressaoDefinir(expressao?: any): any;
62
- visitarExpressaoIsto(expressao?: any): any;
63
- resolver(declaracoes: Construto | Construto[]): RetornoResolvedor;
64
- }
@@ -1,345 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Resolvedor = void 0;
4
- var pilha_escopos_1 = require("./pilha-escopos");
5
- var erro_resolvedor_1 = require("./erro-resolvedor");
6
- var TipoFuncao = {
7
- NENHUM: 'NENHUM',
8
- FUNCAO: 'FUNCAO',
9
- CONSTRUTOR: 'CONSTRUTOR',
10
- METODO: 'METODO',
11
- };
12
- var TipoClasse = {
13
- NENHUM: 'NENHUM',
14
- CLASSE: 'CLASSE',
15
- SUBCLASSE: 'SUBCLASSE',
16
- };
17
- var TipoLacoRepeticao = {
18
- NENHUM: 'NENHUM',
19
- ENQUANTO: 'ENQUANTO',
20
- ESCOLHA: 'ESCOLHA',
21
- PARA: 'PARA',
22
- FAZER: 'FAZER',
23
- };
24
- /**
25
- * O Resolvedor (Resolver) é responsável por catalogar todos os identificadores complexos, como por exemplo: funções, classes, variáveis,
26
- * e delimitar os escopos onde esses identificadores existem.
27
- * Exemplo: uma classe A declara dois métodos chamados M e N. Todas as variáveis declaradas dentro de M não podem ser vistas por N, e vice-versa.
28
- * No entanto, todas as variáveis declaradas dentro da classe A podem ser vistas tanto por M quanto por N.
29
- * @deprecated Marcado para remoção. Como a implementação de blocos de escopo não precisa mais ter etapa de resolução, o
30
- * resolvedor deve ser removido em versões futuras.
31
- */
32
- var Resolvedor = /** @class */ (function () {
33
- function Resolvedor() {
34
- this.erros = [];
35
- this.escopos = new pilha_escopos_1.PilhaEscopos();
36
- this.locais = new Map();
37
- this.funcaoAtual = TipoFuncao.NENHUM;
38
- this.classeAtual = TipoClasse.NENHUM;
39
- this.cicloAtual = TipoClasse.NENHUM;
40
- }
41
- Resolvedor.prototype.definir = function (simbolo) {
42
- if (this.escopos.eVazio())
43
- return;
44
- this.escopos.topoDaPilha()[simbolo.lexema] = true;
45
- };
46
- Resolvedor.prototype.declarar = function (simbolo) {
47
- if (this.escopos.eVazio())
48
- return;
49
- var escopo = this.escopos.topoDaPilha();
50
- if (escopo.hasOwnProperty(simbolo.lexema)) {
51
- var erro = new erro_resolvedor_1.ErroResolvedor(simbolo, 'Variável com esse nome já declarada neste escopo.');
52
- this.erros.push(erro);
53
- }
54
- escopo[simbolo.lexema] = false;
55
- };
56
- Resolvedor.prototype.inicioDoEscopo = function () {
57
- this.escopos.empilhar({});
58
- };
59
- Resolvedor.prototype.finalDoEscopo = function () {
60
- this.escopos.removerUltimo();
61
- };
62
- Resolvedor.prototype.resolverLocal = function (expressao, simbolo) {
63
- for (var i = this.escopos.pilha.length - 1; i >= 0; i--) {
64
- if (this.escopos.pilha[i].hasOwnProperty(simbolo.lexema)) {
65
- this.locais.set(expressao, this.escopos.pilha.length - 1 - i);
66
- }
67
- }
68
- };
69
- Resolvedor.prototype.visitarExpressaoBloco = function (declaracao) {
70
- this.inicioDoEscopo();
71
- this.resolver(declaracao.declaracoes);
72
- this.finalDoEscopo();
73
- return null;
74
- };
75
- Resolvedor.prototype.visitarExpressaoDeVariavel = function (expressao) {
76
- if (!this.escopos.eVazio() &&
77
- this.escopos.topoDaPilha()[expressao.simbolo.lexema] === false) {
78
- var erro = new erro_resolvedor_1.ErroResolvedor(expressao.simbolo, 'Não é possível ler a variável local em seu próprio inicializador.');
79
- this.erros.push(erro);
80
- throw erro;
81
- }
82
- this.resolverLocal(expressao, expressao.simbolo);
83
- return null;
84
- };
85
- Resolvedor.prototype.visitarExpressaoVar = function (declaracao) {
86
- this.declarar(declaracao.simbolo);
87
- if (declaracao.inicializador !== null) {
88
- this.resolver(declaracao.inicializador);
89
- }
90
- this.definir(declaracao.simbolo);
91
- return null;
92
- };
93
- Resolvedor.prototype.visitarExpressaoDeAtribuicao = function (expressao) {
94
- this.resolver(expressao.valor);
95
- this.resolverLocal(expressao, expressao.simbolo);
96
- return null;
97
- };
98
- Resolvedor.prototype.resolverFuncao = function (funcao, tipoFuncao) {
99
- var enclosingFunc = this.funcaoAtual;
100
- this.funcaoAtual = tipoFuncao;
101
- this.inicioDoEscopo();
102
- var parametros = funcao.parametros;
103
- if (parametros && parametros.length > 0) {
104
- for (var i = 0; i < parametros.length; i++) {
105
- this.declarar(parametros[i]['nome']);
106
- this.definir(parametros[i]['nome']);
107
- }
108
- }
109
- this.resolver(funcao.corpo);
110
- this.finalDoEscopo();
111
- this.funcaoAtual = enclosingFunc;
112
- };
113
- Resolvedor.prototype.visitarExpressaoFuncao = function (declaracao) {
114
- this.declarar(declaracao.simbolo);
115
- this.definir(declaracao.simbolo);
116
- this.resolverFuncao(declaracao.funcao, TipoFuncao.FUNCAO);
117
- return null;
118
- };
119
- Resolvedor.prototype.visitarExpressaoDeleguaFuncao = function (declaracao) {
120
- this.resolverFuncao(declaracao, TipoFuncao.FUNCAO);
121
- return null;
122
- };
123
- Resolvedor.prototype.visitarExpressaoTente = function (declaracao) {
124
- this.resolver(declaracao.caminhoTente);
125
- if (declaracao.caminhoPegue !== null)
126
- this.resolver(declaracao.caminhoPegue);
127
- if (declaracao.caminhoSenao !== null)
128
- this.resolver(declaracao.caminhoSenao);
129
- if (declaracao.caminhoFinalmente !== null)
130
- this.resolver(declaracao.caminhoFinalmente);
131
- };
132
- Resolvedor.prototype.visitarExpressaoClasse = function (declaracao) {
133
- var enclosingClass = this.classeAtual;
134
- this.classeAtual = TipoClasse.CLASSE;
135
- this.declarar(declaracao.simbolo);
136
- this.definir(declaracao.simbolo);
137
- if (declaracao.superClasse !== null &&
138
- declaracao.simbolo.lexema === declaracao.superClasse.simbolo.lexema) {
139
- var erro = new erro_resolvedor_1.ErroResolvedor(declaracao.simbolo, 'Uma classe não pode herdar de si mesma.');
140
- this.erros.push(erro);
141
- }
142
- if (declaracao.superClasse !== null) {
143
- this.classeAtual = TipoClasse.SUBCLASSE;
144
- this.resolver(declaracao.superClasse);
145
- }
146
- if (declaracao.superClasse !== null) {
147
- this.inicioDoEscopo();
148
- this.escopos.topoDaPilha()['super'] = true;
149
- }
150
- this.inicioDoEscopo();
151
- this.escopos.topoDaPilha()['isto'] = true;
152
- var metodos = declaracao.metodos;
153
- for (var i = 0; i < metodos.length; i++) {
154
- var declaracao_1 = TipoFuncao.METODO;
155
- if (metodos[i].simbolo.lexema === 'isto') {
156
- declaracao_1 = TipoFuncao.CONSTRUTOR;
157
- }
158
- this.resolverFuncao(metodos[i].funcao, declaracao_1);
159
- }
160
- this.finalDoEscopo();
161
- if (declaracao.superClasse !== null)
162
- this.finalDoEscopo();
163
- this.classeAtual = enclosingClass;
164
- return null;
165
- };
166
- Resolvedor.prototype.visitarExpressaoSuper = function (expressao) {
167
- if (this.classeAtual === TipoClasse.NENHUM) {
168
- var erro = new erro_resolvedor_1.ErroResolvedor(expressao.simboloChave, "Não pode usar 'super' fora de uma classe.");
169
- this.erros.push(erro);
170
- }
171
- else if (this.classeAtual !== TipoClasse.SUBCLASSE) {
172
- var erro = new erro_resolvedor_1.ErroResolvedor(expressao.simboloChave, "Não se usa 'super' numa classe sem SuperClasse.");
173
- this.erros.push(erro);
174
- }
175
- this.resolverLocal(expressao, expressao.simboloChave);
176
- return null;
177
- };
178
- Resolvedor.prototype.visitarExpressaoAcessoMetodo = function (expressao) {
179
- this.resolver(expressao.objeto);
180
- return null;
181
- };
182
- Resolvedor.prototype.visitarDeclaracaoDeExpressao = function (declaracao) {
183
- this.resolver(declaracao.expressao);
184
- return null;
185
- };
186
- Resolvedor.prototype.visitarExpressaoSe = function (declaracao) {
187
- this.resolver(declaracao.condicao);
188
- this.resolver(declaracao.caminhoEntao);
189
- for (var i = 0; i < declaracao.caminhosSeSenao.length; i++) {
190
- this.resolver(declaracao.caminhosSeSenao[i].condicao);
191
- this.resolver(declaracao.caminhosSeSenao[i].caminho);
192
- }
193
- if (declaracao.caminhoSenao !== null)
194
- this.resolver(declaracao.caminhoSenao);
195
- return null;
196
- };
197
- Resolvedor.prototype.visitarExpressaoImportar = function (declaracao) {
198
- this.resolver(declaracao.caminho);
199
- };
200
- Resolvedor.prototype.visitarExpressaoEscreva = function (declaracao) {
201
- this.resolver(declaracao.expressao);
202
- };
203
- Resolvedor.prototype.visitarExpressaoRetornar = function (declaracao) {
204
- if (this.funcaoAtual === TipoFuncao.NENHUM) {
205
- var erro = new erro_resolvedor_1.ErroResolvedor(declaracao.palavraChave, 'Não é possível retornar do código do escopo superior.');
206
- this.erros.push(erro);
207
- }
208
- if (declaracao.valor !== null) {
209
- if (this.funcaoAtual === TipoFuncao.CONSTRUTOR) {
210
- var erro = new erro_resolvedor_1.ErroResolvedor(declaracao.palavraChave, 'Não pode retornar o valor do construtor.');
211
- this.erros.push(erro);
212
- }
213
- this.resolver(declaracao.valor);
214
- }
215
- return null;
216
- };
217
- Resolvedor.prototype.visitarExpressaoEscolha = function (declaracao) {
218
- var enclosingType = this.cicloAtual;
219
- this.cicloAtual = TipoLacoRepeticao.ESCOLHA;
220
- var caminhos = declaracao.caminhos;
221
- var caminhoPadrao = declaracao.caminhoPadrao;
222
- for (var i = 0; i < caminhos.length; i++) {
223
- this.resolver(caminhos[i]['declaracoes']);
224
- }
225
- if (caminhoPadrao !== null)
226
- this.resolver(caminhoPadrao['declaracoes']);
227
- this.cicloAtual = enclosingType;
228
- };
229
- Resolvedor.prototype.visitarExpressaoEnquanto = function (declaracao) {
230
- this.resolver(declaracao.condicao);
231
- this.resolver(declaracao.corpo);
232
- return null;
233
- };
234
- Resolvedor.prototype.visitarExpressaoPara = function (declaracao) {
235
- if (declaracao.inicializador !== null) {
236
- this.resolver(declaracao.inicializador);
237
- }
238
- if (declaracao.condicao !== null) {
239
- this.resolver(declaracao.condicao);
240
- }
241
- if (declaracao.incrementar !== null) {
242
- this.resolver(declaracao.incrementar);
243
- }
244
- var enclosingType = this.cicloAtual;
245
- this.cicloAtual = TipoLacoRepeticao.ENQUANTO;
246
- this.resolver(declaracao.corpo);
247
- this.cicloAtual = enclosingType;
248
- return null;
249
- };
250
- Resolvedor.prototype.visitarExpressaoFazer = function (declaracao) {
251
- this.resolver(declaracao.condicaoEnquanto);
252
- var enclosingType = this.cicloAtual;
253
- this.cicloAtual = TipoLacoRepeticao.FAZER;
254
- this.resolver(declaracao.caminhoFazer);
255
- this.cicloAtual = enclosingType;
256
- return null;
257
- };
258
- Resolvedor.prototype.visitarExpressaoBinaria = function (expressao) {
259
- this.resolver(expressao.esquerda);
260
- this.resolver(expressao.direita);
261
- return null;
262
- };
263
- Resolvedor.prototype.visitarExpressaoDeChamada = function (expressao) {
264
- this.resolver(expressao.entidadeChamada);
265
- var argumentos = expressao.argumentos;
266
- for (var i = 0; i < argumentos.length; i++) {
267
- this.resolver(argumentos[i]);
268
- }
269
- return null;
270
- };
271
- Resolvedor.prototype.visitarExpressaoAgrupamento = function (expressao) {
272
- this.resolver(expressao.expressao);
273
- return null;
274
- };
275
- Resolvedor.prototype.visitarExpressaoDicionario = function (expressao) {
276
- for (var i = 0; i < expressao.chaves.length; i++) {
277
- this.resolver(expressao.chaves[i]);
278
- this.resolver(expressao.valores[i]);
279
- }
280
- return null;
281
- };
282
- Resolvedor.prototype.visitarExpressaoVetor = function (expressao) {
283
- for (var i = 0; i < expressao.valores.length; i++) {
284
- this.resolver(expressao.valores[i]);
285
- }
286
- return null;
287
- };
288
- Resolvedor.prototype.visitarExpressaoAcessoIndiceVariavel = function (expressao) {
289
- this.resolver(expressao.entidadeChamada);
290
- this.resolver(expressao.indice);
291
- return null;
292
- };
293
- Resolvedor.prototype.visitarExpressaoContinua = function (declaracao) {
294
- return null;
295
- };
296
- Resolvedor.prototype.visitarExpressaoSustar = function (declaracao) {
297
- return null;
298
- };
299
- Resolvedor.prototype.visitarExpressaoAtribuicaoSobrescrita = function (expressao) {
300
- return null;
301
- };
302
- Resolvedor.prototype.visitarExpressaoLiteral = function (expressao) {
303
- return null;
304
- };
305
- Resolvedor.prototype.visitarExpressaoLogica = function (expressao) {
306
- this.resolver(expressao.esquerda);
307
- this.resolver(expressao.direita);
308
- return null;
309
- };
310
- Resolvedor.prototype.visitarExpressaoUnaria = function (expressao) {
311
- this.resolver(expressao.direita);
312
- return null;
313
- };
314
- Resolvedor.prototype.visitarExpressaoDefinir = function (expressao) {
315
- this.resolver(expressao.valor);
316
- this.resolver(expressao.objeto);
317
- return null;
318
- };
319
- Resolvedor.prototype.visitarExpressaoIsto = function (expressao) {
320
- if (this.classeAtual == TipoClasse.NENHUM) {
321
- var erro = new erro_resolvedor_1.ErroResolvedor(expressao.palavraChave, "Não pode usar 'isto' fora da classe.");
322
- this.erros.push(erro);
323
- }
324
- this.resolverLocal(expressao, expressao.palavraChave);
325
- return null;
326
- };
327
- Resolvedor.prototype.resolver = function (declaracoes) {
328
- if (Array.isArray(declaracoes)) {
329
- for (var i = 0; i < declaracoes.length; i++) {
330
- if (declaracoes[i] && declaracoes[i].aceitar)
331
- declaracoes[i].aceitar(this);
332
- }
333
- }
334
- else if (declaracoes && declaracoes.aceitar) {
335
- declaracoes.aceitar(this);
336
- }
337
- return {
338
- erros: this.erros,
339
- locais: this.locais
340
- };
341
- };
342
- return Resolvedor;
343
- }());
344
- exports.Resolvedor = Resolvedor;
345
- //# sourceMappingURL=resolvedor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolvedor.js","sourceRoot":"","sources":["../../../fontes/resolvedor/resolvedor.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var delegua_1 = require("../../fontes/delegua");
4
- describe('Resolvedor (EguaP)', function () {
5
- describe('resolver()', function () {
6
- var delegua = new delegua_1.Delegua('eguap');
7
- it('Sucesso', function () {
8
- var retornoLexador = delegua.lexador.mapear(["escreva('Olá mundo');"], -1);
9
- var retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
10
- delegua.resolvedor.resolver(retornoAvaliadorSintatico.declaracoes);
11
- expect(delegua.resolvedor.escopos).toBeTruthy();
12
- expect(delegua.resolvedor.escopos.pilha).toBeTruthy();
13
- expect(delegua.resolvedor.escopos.pilha).toHaveLength(0);
14
- });
15
- // TODO: Resolver bug.
16
- it('Sucesso - Vetor vazio', function () {
17
- delegua.resolvedor.resolver([]);
18
- expect(delegua.resolvedor.escopos).toBeTruthy();
19
- expect(delegua.resolvedor.escopos.pilha).toBeTruthy();
20
- expect(delegua.resolvedor.escopos.pilha).toHaveLength(0);
21
- });
22
- // TODO: Resolver bug.
23
- it('Sucesso - Undefined', function () {
24
- delegua.resolvedor.resolver(undefined);
25
- expect(delegua.resolvedor.escopos).toBeTruthy();
26
- expect(delegua.resolvedor.escopos.pilha).toBeTruthy();
27
- expect(delegua.resolvedor.escopos.pilha).toHaveLength(0);
28
- });
29
- // TODO: Resolver bug.
30
- it('Sucesso - Null', function () {
31
- delegua.resolvedor.resolver(null);
32
- expect(delegua.resolvedor.escopos).toBeTruthy();
33
- expect(delegua.resolvedor.escopos.pilha).toBeTruthy();
34
- expect(delegua.resolvedor.escopos.pilha).toHaveLength(0);
35
- });
36
- });
37
- });
38
- //# sourceMappingURL=resolvedor.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolvedor.test.js","sourceRoot":"","sources":["../../../testes/eguap/resolvedor.test.ts"],"names":[],"mappings":";;AAAA,gDAA+C;AAE/C,QAAQ,CAAC,oBAAoB,EAAE;IAC3B,QAAQ,CAAC,YAAY,EAAE;QACnB,IAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,OAAO,CAAC,CAAC;QAErC,EAAE,CAAC,SAAS,EAAE;YACV,IAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7E,IAAM,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YACtF,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;YACnE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,EAAE,CAAC,uBAAuB,EAAE;YACxB,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAChC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,EAAE,CAAC,qBAAqB,EAAE;YACtB,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACvC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,EAAE,CAAC,gBAAgB,EAAE;YACjB,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var delegua_1 = require("../fontes/delegua");
4
- describe('Resolvedor', function () {
5
- describe('resolver()', function () {
6
- var delegua = new delegua_1.Delegua('delegua');
7
- it('Sucesso', function () {
8
- var retornoLexador = delegua.lexador.mapear(["escreva('Olá mundo')"], -1);
9
- var retornoAvaliadorSintatico = delegua.avaliadorSintatico.analisar(retornoLexador);
10
- delegua.resolvedor.resolver(retornoAvaliadorSintatico.declaracoes);
11
- expect(delegua.resolvedor.escopos).toBeTruthy();
12
- expect(delegua.resolvedor.escopos.pilha).toBeTruthy();
13
- expect(delegua.resolvedor.escopos.pilha).toHaveLength(0);
14
- });
15
- it('Sucesso - Vetor vazio', function () {
16
- delegua.resolvedor.resolver([]);
17
- expect(delegua.resolvedor.escopos).toBeTruthy();
18
- expect(delegua.resolvedor.escopos.pilha).toBeTruthy();
19
- expect(delegua.resolvedor.escopos.pilha).toHaveLength(0);
20
- });
21
- it('Sucesso - Undefined', function () {
22
- delegua.resolvedor.resolver(undefined);
23
- expect(delegua.resolvedor.escopos).toBeTruthy();
24
- expect(delegua.resolvedor.escopos.pilha).toBeTruthy();
25
- expect(delegua.resolvedor.escopos.pilha).toHaveLength(0);
26
- });
27
- it('Sucesso - Null', function () {
28
- delegua.resolvedor.resolver(null);
29
- expect(delegua.resolvedor.escopos).toBeTruthy();
30
- expect(delegua.resolvedor.escopos.pilha).toBeTruthy();
31
- expect(delegua.resolvedor.escopos.pilha).toHaveLength(0);
32
- });
33
- });
34
- });
35
- //# sourceMappingURL=resolvedor.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolvedor.test.js","sourceRoot":"","sources":["../../testes/resolvedor.test.ts"],"names":[],"mappings":";;AAAA,6CAA4C;AAE5C,QAAQ,CAAC,YAAY,EAAE;IACnB,QAAQ,CAAC,YAAY,EAAE;QACnB,IAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,SAAS,CAAC,CAAC;QAEvC,EAAE,CAAC,SAAS,EAAE;YACV,IAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5E,IAAM,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YACtF,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;YACnE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uBAAuB,EAAE;YACxB,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAChC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qBAAqB,EAAE;YACtB,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACvC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gBAAgB,EAAE;YACjB,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}