@designliquido/delegua 0.33.7 → 0.33.9

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 (98) hide show
  1. package/analisador-semantico/dialetos/index.d.ts +0 -1
  2. package/analisador-semantico/dialetos/index.d.ts.map +1 -1
  3. package/analisador-semantico/dialetos/index.js +0 -1
  4. package/analisador-semantico/dialetos/index.js.map +1 -1
  5. package/avaliador-sintatico/dialetos/index.d.ts +0 -1
  6. package/avaliador-sintatico/dialetos/index.d.ts.map +1 -1
  7. package/avaliador-sintatico/dialetos/index.js +0 -1
  8. package/avaliador-sintatico/dialetos/index.js.map +1 -1
  9. package/bibliotecas/biblioteca-global.js +3 -3
  10. package/bibliotecas/biblioteca-global.js.map +1 -1
  11. package/bin/package.json +1 -1
  12. package/formatadores/index.d.ts +0 -1
  13. package/formatadores/index.d.ts.map +1 -1
  14. package/formatadores/index.js +0 -1
  15. package/formatadores/index.js.map +1 -1
  16. package/interpretador/dialetos/index.d.ts +0 -1
  17. package/interpretador/dialetos/index.d.ts.map +1 -1
  18. package/interpretador/dialetos/index.js +0 -1
  19. package/interpretador/dialetos/index.js.map +1 -1
  20. package/interpretador/interpretador-base.d.ts.map +1 -1
  21. package/interpretador/interpretador-base.js +6 -2
  22. package/interpretador/interpretador-base.js.map +1 -1
  23. package/interpretador/interpretador-com-depuracao.d.ts.map +1 -1
  24. package/interpretador/interpretador-com-depuracao.js +8 -6
  25. package/interpretador/interpretador-com-depuracao.js.map +1 -1
  26. package/lexador/dialetos/index.d.ts +0 -1
  27. package/lexador/dialetos/index.d.ts.map +1 -1
  28. package/lexador/dialetos/index.js +0 -1
  29. package/lexador/dialetos/index.js.map +1 -1
  30. package/lexador/dialetos/palavras-reservadas/index.d.ts +0 -1
  31. package/lexador/dialetos/palavras-reservadas/index.d.ts.map +1 -1
  32. package/lexador/dialetos/palavras-reservadas/index.js +1 -3
  33. package/lexador/dialetos/palavras-reservadas/index.js.map +1 -1
  34. package/package.json +1 -1
  35. package/tradutores/index.d.ts +0 -1
  36. package/tradutores/index.d.ts.map +1 -1
  37. package/tradutores/index.js +0 -1
  38. package/tradutores/index.js.map +1 -1
  39. package/analisador-semantico/dialetos/analisador-semantico-visualg.d.ts +0 -38
  40. package/analisador-semantico/dialetos/analisador-semantico-visualg.d.ts.map +0 -1
  41. package/analisador-semantico/dialetos/analisador-semantico-visualg.js +0 -229
  42. package/analisador-semantico/dialetos/analisador-semantico-visualg.js.map +0 -1
  43. package/avaliador-sintatico/dialetos/visualg/avaliador-sintatico-visualg.d.ts +0 -85
  44. package/avaliador-sintatico/dialetos/visualg/avaliador-sintatico-visualg.d.ts.map +0 -1
  45. package/avaliador-sintatico/dialetos/visualg/avaliador-sintatico-visualg.js +0 -731
  46. package/avaliador-sintatico/dialetos/visualg/avaliador-sintatico-visualg.js.map +0 -1
  47. package/avaliador-sintatico/dialetos/visualg/index.d.ts +0 -2
  48. package/avaliador-sintatico/dialetos/visualg/index.d.ts.map +0 -1
  49. package/avaliador-sintatico/dialetos/visualg/index.js +0 -18
  50. package/avaliador-sintatico/dialetos/visualg/index.js.map +0 -1
  51. package/avaliador-sintatico/dialetos/visualg/parametro-visualg.d.ts +0 -8
  52. package/avaliador-sintatico/dialetos/visualg/parametro-visualg.d.ts.map +0 -1
  53. package/avaliador-sintatico/dialetos/visualg/parametro-visualg.js +0 -3
  54. package/avaliador-sintatico/dialetos/visualg/parametro-visualg.js.map +0 -1
  55. package/bibliotecas/dialetos/visualg/caracteres.d.ts +0 -4
  56. package/bibliotecas/dialetos/visualg/caracteres.d.ts.map +0 -1
  57. package/bibliotecas/dialetos/visualg/caracteres.js +0 -46
  58. package/bibliotecas/dialetos/visualg/caracteres.js.map +0 -1
  59. package/bibliotecas/dialetos/visualg/index.d.ts +0 -3
  60. package/bibliotecas/dialetos/visualg/index.d.ts.map +0 -1
  61. package/bibliotecas/dialetos/visualg/index.js +0 -19
  62. package/bibliotecas/dialetos/visualg/index.js.map +0 -1
  63. package/bibliotecas/dialetos/visualg/numerica.d.ts +0 -4
  64. package/bibliotecas/dialetos/visualg/numerica.d.ts.map +0 -1
  65. package/bibliotecas/dialetos/visualg/numerica.js +0 -74
  66. package/bibliotecas/dialetos/visualg/numerica.js.map +0 -1
  67. package/formatadores/formatador-visualg.d.ts +0 -73
  68. package/formatadores/formatador-visualg.d.ts.map +0 -1
  69. package/formatadores/formatador-visualg.js +0 -617
  70. package/formatadores/formatador-visualg.js.map +0 -1
  71. package/interpretador/dialetos/visualg/comum.d.ts +0 -21
  72. package/interpretador/dialetos/visualg/comum.d.ts.map +0 -1
  73. package/interpretador/dialetos/visualg/comum.js +0 -372
  74. package/interpretador/dialetos/visualg/comum.js.map +0 -1
  75. package/interpretador/dialetos/visualg/index.d.ts +0 -3
  76. package/interpretador/dialetos/visualg/index.d.ts.map +0 -1
  77. package/interpretador/dialetos/visualg/index.js +0 -19
  78. package/interpretador/dialetos/visualg/index.js.map +0 -1
  79. package/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.d.ts +0 -55
  80. package/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.d.ts.map +0 -1
  81. package/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.js +0 -211
  82. package/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.js.map +0 -1
  83. package/interpretador/dialetos/visualg/interpretador-visualg.d.ts +0 -58
  84. package/interpretador/dialetos/visualg/interpretador-visualg.d.ts.map +0 -1
  85. package/interpretador/dialetos/visualg/interpretador-visualg.js +0 -194
  86. package/interpretador/dialetos/visualg/interpretador-visualg.js.map +0 -1
  87. package/lexador/dialetos/lexador-visualg.d.ts +0 -20
  88. package/lexador/dialetos/lexador-visualg.d.ts.map +0 -1
  89. package/lexador/dialetos/lexador-visualg.js +0 -226
  90. package/lexador/dialetos/lexador-visualg.js.map +0 -1
  91. package/lexador/dialetos/palavras-reservadas/visualg.d.ts +0 -75
  92. package/lexador/dialetos/palavras-reservadas/visualg.d.ts.map +0 -1
  93. package/lexador/dialetos/palavras-reservadas/visualg.js +0 -82
  94. package/lexador/dialetos/palavras-reservadas/visualg.js.map +0 -1
  95. package/tradutores/tradutor-reverso-visualg.d.ts +0 -54
  96. package/tradutores/tradutor-reverso-visualg.d.ts.map +0 -1
  97. package/tradutores/tradutor-reverso-visualg.js +0 -264
  98. package/tradutores/tradutor-reverso-visualg.js.map +0 -1
@@ -22,5 +22,4 @@ __exportStar(require("./lexador-mapler"), exports);
22
22
  __exportStar(require("./lexador-potigol"), exports);
23
23
  __exportStar(require("./lexador-portugol-ipt"), exports);
24
24
  __exportStar(require("./lexador-portugol-studio"), exports);
25
- __exportStar(require("./lexador-visualg"), exports);
26
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/lexador/dialetos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,0DAAwC;AACxC,qDAAmC;AACnC,oDAAkC;AAClC,mDAAiC;AACjC,oDAAkC;AAClC,yDAAuC;AACvC,4DAA0C;AAC1C,oDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/lexador/dialetos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,0DAAwC;AACxC,qDAAmC;AACnC,oDAAkC;AAClC,mDAAiC;AACjC,oDAAkC;AAClC,yDAAuC;AACvC,4DAA0C"}
@@ -1,4 +1,3 @@
1
1
  export { palavrasReservadas as palavrasReservadasBirl } from './birl';
2
2
  export { palavrasReservadas as palavrasReservadasPortugolStudio } from './portugol-studio';
3
- export { palavrasReservadas as palavrasReservadasVisuAlg } from './visualg';
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../fontes/lexador/dialetos/palavras-reservadas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,IAAI,sBAAsB,EAAE,MAAM,QAAQ,CAAC;AACtE,OAAO,EAAE,kBAAkB,IAAI,gCAAgC,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,kBAAkB,IAAI,yBAAyB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../fontes/lexador/dialetos/palavras-reservadas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,IAAI,sBAAsB,EAAE,MAAM,QAAQ,CAAC;AACtE,OAAO,EAAE,kBAAkB,IAAI,gCAAgC,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,10 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.palavrasReservadasVisuAlg = exports.palavrasReservadasPortugolStudio = exports.palavrasReservadasBirl = void 0;
3
+ exports.palavrasReservadasPortugolStudio = exports.palavrasReservadasBirl = void 0;
4
4
  var birl_1 = require("./birl");
5
5
  Object.defineProperty(exports, "palavrasReservadasBirl", { enumerable: true, get: function () { return birl_1.palavrasReservadas; } });
6
6
  var portugol_studio_1 = require("./portugol-studio");
7
7
  Object.defineProperty(exports, "palavrasReservadasPortugolStudio", { enumerable: true, get: function () { return portugol_studio_1.palavrasReservadas; } });
8
- var visualg_1 = require("./visualg");
9
- Object.defineProperty(exports, "palavrasReservadasVisuAlg", { enumerable: true, get: function () { return visualg_1.palavrasReservadas; } });
10
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../fontes/lexador/dialetos/palavras-reservadas/index.ts"],"names":[],"mappings":";;;AAAA,+BAAsE;AAA7D,8GAAA,kBAAkB,OAA0B;AACrD,qDAA2F;AAAlF,mIAAA,kBAAkB,OAAoC;AAC/D,qCAA4E;AAAnE,oHAAA,kBAAkB,OAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../fontes/lexador/dialetos/palavras-reservadas/index.ts"],"names":[],"mappings":";;;AAAA,+BAAsE;AAA7D,8GAAA,kBAAkB,OAA0B;AACrD,qDAA2F;AAAlF,mIAAA,kBAAkB,OAAoC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@designliquido/delegua",
3
- "version": "0.33.7",
3
+ "version": "0.33.9",
4
4
  "description": "Linguagem de programação simples e moderna usando português estruturado, com suporte a múltiplos dialetos",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -4,5 +4,4 @@ export * from './tradutor-portugol-ipt';
4
4
  export * from './tradutor-python';
5
5
  export * from './tradutor-reverso-javascript';
6
6
  export * from './tradutor-reverso-python';
7
- export * from './tradutor-reverso-visualg';
8
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../fontes/tradutores/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../fontes/tradutores/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC"}
@@ -20,5 +20,4 @@ __exportStar(require("./tradutor-portugol-ipt"), exports);
20
20
  __exportStar(require("./tradutor-python"), exports);
21
21
  __exportStar(require("./tradutor-reverso-javascript"), exports);
22
22
  __exportStar(require("./tradutor-reverso-python"), exports);
23
- __exportStar(require("./tradutor-reverso-visualg"), exports);
24
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../fontes/tradutores/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,wDAAsC;AACtC,0DAAwC;AACxC,oDAAkC;AAClC,gEAA8C;AAC9C,4DAA0C;AAC1C,6DAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../fontes/tradutores/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,wDAAsC;AACtC,0DAAwC;AACxC,oDAAkC;AAClC,gEAA8C;AAC9C,4DAA0C"}
@@ -1,38 +0,0 @@
1
- import { Atribuir, Chamada } from '../../construtos';
2
- import { Aleatorio, Declaracao, EscrevaMesmaLinha, Expressao, FuncaoDeclaracao, Retorna, Var } from '../../declaracoes';
3
- import { SimboloInterface } from '../../interfaces';
4
- import { DiagnosticoAnalisadorSemantico } from '../../interfaces/erros';
5
- import { FuncaoHipoteticaInterface } from '../../interfaces/funcao-hipotetica-interface';
6
- import { RetornoAnalisadorSemantico } from '../../interfaces/retornos/retorno-analisador-semantico';
7
- import { VariavelHipoteticaInterface } from '../../interfaces/variavel-hipotetica-interface';
8
- import { RetornoQuebra } from '../../quebras';
9
- import { AnalisadorSemanticoBase } from '../analisador-semantico-base';
10
- import { PilhaVariaveis } from '../pilha-variaveis';
11
- export declare class AnalisadorSemanticoVisuAlg extends AnalisadorSemanticoBase {
12
- pilhaVariaveis: PilhaVariaveis;
13
- variaveis: {
14
- [nomeVariavel: string]: VariavelHipoteticaInterface;
15
- };
16
- funcoes: {
17
- [nomeFuncao: string]: FuncaoHipoteticaInterface;
18
- };
19
- atual: number;
20
- diagnosticos: DiagnosticoAnalisadorSemantico[];
21
- constructor();
22
- erro(simbolo: SimboloInterface, mensagem: string): void;
23
- aviso(simbolo: SimboloInterface, mensagem: string): void;
24
- visitarExpressaoDeAtribuicao(expressao: Atribuir): Promise<void>;
25
- private gerarNumeroAleatorio;
26
- private encontrarLeiaNoAleatorio;
27
- private atualizarVariavelComValorAleatorio;
28
- private palavraAleatoriaCom5Digitos;
29
- visitarDeclaracaoAleatorio(declaracao: Aleatorio): Promise<any>;
30
- visitarDeclaracaoVar(declaracao: Var): Promise<any>;
31
- visitarDeclaracaoDeExpressao(declaracao: Expressao): Promise<void>;
32
- visitarDeclaracaoDefinicaoFuncao(declaracao: FuncaoDeclaracao): Promise<void>;
33
- visitarDeclaracaoEscrevaMesmaLinha(declaracao: EscrevaMesmaLinha): Promise<void>;
34
- visitarExpressaoDeChamada(expressao: Chamada): Promise<void>;
35
- visitarExpressaoRetornar(declaracao: Retorna): Promise<RetornoQuebra>;
36
- analisar(declaracoes: Declaracao[]): RetornoAnalisadorSemantico;
37
- }
38
- //# sourceMappingURL=analisador-semantico-visualg.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analisador-semantico-visualg.d.ts","sourceRoot":"","sources":["../../../fontes/analisador-semantico/dialetos/analisador-semantico-visualg.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EACR,OAAO,EAWV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACH,SAAS,EAOT,UAAU,EAIV,iBAAiB,EACjB,SAAS,EAET,gBAAgB,EAMhB,OAAO,EAIP,GAAG,EAEN,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,8BAA8B,EAAyB,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AACzF,OAAO,EAAE,0BAA0B,EAAE,MAAM,wDAAwD,CAAC;AACpG,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAC7F,OAAO,EAAmB,aAAa,EAAgB,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,qBAAa,0BAA2B,SAAQ,uBAAuB;IACnE,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE;QAAE,CAAC,YAAY,EAAE,MAAM,GAAG,2BAA2B,CAAA;KAAE,CAAC;IACnE,OAAO,EAAE;QAAE,CAAC,UAAU,EAAE,MAAM,GAAG,yBAAyB,CAAA;KAAE,CAAC;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,8BAA8B,EAAE,CAAC;;IAW/C,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAUvD,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAUxD,4BAA4B,CAAC,SAAS,EAAE,QAAQ;IA0ChD,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,wBAAwB;IAehC,OAAO,CAAC,kCAAkC;IAe1C,OAAO,CAAC,2BAA2B;IAWnC,0BAA0B,CAAC,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IAiB/D,oBAAoB,CAAC,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAcnD,4BAA4B,CAAC,UAAU,EAAE,SAAS;IAgBlD,gCAAgC,CAAC,UAAU,EAAE,gBAAgB;IAsB7D,kCAAkC,CAAC,UAAU,EAAE,iBAAiB;IAuBhE,yBAAyB,CAAC,SAAS,EAAE,OAAO;IA4C5C,wBAAwB,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAIrE,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,0BAA0B;CAalE"}
@@ -1,229 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AnalisadorSemanticoVisuAlg = void 0;
4
- const construtos_1 = require("../../construtos");
5
- const declaracoes_1 = require("../../declaracoes");
6
- const erros_1 = require("../../interfaces/erros");
7
- const analisador_semantico_base_1 = require("../analisador-semantico-base");
8
- const pilha_variaveis_1 = require("../pilha-variaveis");
9
- class AnalisadorSemanticoVisuAlg extends analisador_semantico_base_1.AnalisadorSemanticoBase {
10
- constructor() {
11
- super();
12
- this.pilhaVariaveis = new pilha_variaveis_1.PilhaVariaveis();
13
- this.variaveis = {};
14
- this.funcoes = {};
15
- this.atual = 0;
16
- this.diagnosticos = [];
17
- }
18
- erro(simbolo, mensagem) {
19
- this.diagnosticos.push({
20
- simbolo: simbolo,
21
- mensagem: mensagem,
22
- hashArquivo: simbolo.hashArquivo,
23
- linha: simbolo.linha,
24
- severidade: erros_1.DiagnosticoSeveridade.ERRO,
25
- });
26
- }
27
- aviso(simbolo, mensagem) {
28
- this.diagnosticos.push({
29
- simbolo: simbolo,
30
- mensagem: mensagem,
31
- hashArquivo: simbolo.hashArquivo,
32
- linha: simbolo.linha,
33
- severidade: erros_1.DiagnosticoSeveridade.AVISO,
34
- });
35
- }
36
- visitarExpressaoDeAtribuicao(expressao) {
37
- const { simbolo, valor } = expressao;
38
- let variavel = this.variaveis[simbolo.lexema];
39
- if (!variavel) {
40
- this.erro(simbolo, `Variável ${simbolo.lexema} ainda não foi declarada.`);
41
- return Promise.resolve();
42
- }
43
- if (variavel.tipo) {
44
- if (valor instanceof construtos_1.Literal && variavel.tipo.includes('[]')) {
45
- this.erro(simbolo, `Atribuição inválida, esperado tipo '${variavel.tipo}' na atribuição.`);
46
- return Promise.resolve();
47
- }
48
- if (valor instanceof construtos_1.Vetor && !variavel.tipo.includes('[]')) {
49
- this.erro(simbolo, `Atribuição inválida, esperado tipo '${variavel.tipo}' na atribuição.`);
50
- return Promise.resolve();
51
- }
52
- if (valor instanceof construtos_1.Literal) {
53
- let valorLiteral = typeof valor.valor;
54
- if (!['qualquer'].includes(variavel.tipo)) {
55
- if (valorLiteral === 'string') {
56
- if (variavel.tipo.toLowerCase() != 'caractere') {
57
- this.erro(simbolo, `Esperado tipo '${variavel.tipo}' na atribuição.`);
58
- return Promise.resolve();
59
- }
60
- }
61
- if (valorLiteral === 'number') {
62
- if (!['inteiro', 'real'].includes(variavel.tipo.toLowerCase())) {
63
- this.erro(simbolo, `Esperado tipo '${variavel.tipo}' na atribuição.`);
64
- return Promise.resolve();
65
- }
66
- }
67
- }
68
- }
69
- }
70
- if (variavel) {
71
- this.variaveis[simbolo.lexema].valor = valor;
72
- }
73
- }
74
- gerarNumeroAleatorio(min, max) {
75
- return Math.floor(Math.random() * (max - min) + min);
76
- }
77
- encontrarLeiaNoAleatorio(declaracao, menorNumero, maiorNumero) {
78
- if ('declaracoes' in declaracao) {
79
- // Se a declaração tiver um campo 'declaracoes', ela é um Bloco
80
- const declaracoes = declaracao.declaracoes;
81
- for (const subDeclaracao of declaracoes) {
82
- this.encontrarLeiaNoAleatorio(subDeclaracao, menorNumero, maiorNumero);
83
- }
84
- }
85
- else if (declaracao instanceof declaracoes_1.Leia) {
86
- // Se encontrarmos um Leia, podemos efetuar as operações imediatamente
87
- for (const argumento of declaracao.argumentos) {
88
- this.atualizarVariavelComValorAleatorio(argumento, menorNumero, maiorNumero);
89
- }
90
- }
91
- }
92
- atualizarVariavelComValorAleatorio(variavel, menorNumero, maiorNumero) {
93
- if (this.variaveis[variavel.simbolo.lexema]) {
94
- let valor = 0;
95
- if (this.variaveis[variavel.simbolo.lexema].tipo.toLowerCase() === 'inteiro' ||
96
- this.variaveis[variavel.simbolo.lexema].tipo.toLowerCase() === 'real')
97
- valor = this.gerarNumeroAleatorio(menorNumero, maiorNumero);
98
- else if (this.variaveis[variavel.simbolo.lexema].tipo.toLowerCase() === 'caracter')
99
- valor = this.palavraAleatoriaCom5Digitos();
100
- this.variaveis[variavel.simbolo.lexema].valor = valor;
101
- }
102
- }
103
- palavraAleatoriaCom5Digitos() {
104
- const caracteres = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
105
- let palavra = '';
106
- for (let i = 0; i < 5; i++) {
107
- const indiceAleatorio = Math.floor(Math.random() * caracteres.length);
108
- palavra += caracteres.charAt(indiceAleatorio);
109
- }
110
- return palavra;
111
- }
112
- visitarDeclaracaoAleatorio(declaracao) {
113
- //Isso acontece quando não é informado os número máximos e mínimos
114
- let menorNumero = 0;
115
- let maiorNumero = 100;
116
- if (declaracao.argumentos) {
117
- menorNumero = Math.min(declaracao.argumentos.min, declaracao.argumentos.max);
118
- maiorNumero = Math.max(declaracao.argumentos.min, declaracao.argumentos.max);
119
- }
120
- for (let corpoDeclaracao of declaracao.corpo.declaracoes) {
121
- this.encontrarLeiaNoAleatorio(corpoDeclaracao, menorNumero, maiorNumero);
122
- }
123
- return Promise.resolve();
124
- }
125
- visitarDeclaracaoVar(declaracao) {
126
- this.variaveis[declaracao.simbolo.lexema] = {
127
- imutavel: false,
128
- tipo: declaracao.tipo,
129
- valor: declaracao.inicializador !== null
130
- ? declaracao.inicializador.valor !== undefined
131
- ? declaracao.inicializador.valor
132
- : declaracao.inicializador
133
- : undefined,
134
- };
135
- return Promise.resolve();
136
- }
137
- visitarDeclaracaoDeExpressao(declaracao) {
138
- switch (declaracao.expressao.constructor.name) {
139
- case 'Atribuir':
140
- this.visitarExpressaoDeAtribuicao(declaracao.expressao);
141
- break;
142
- case 'Chamada':
143
- this.visitarExpressaoDeChamada(declaracao.expressao);
144
- break;
145
- default:
146
- console.log(declaracao.expressao);
147
- break;
148
- }
149
- return Promise.resolve();
150
- }
151
- visitarDeclaracaoDefinicaoFuncao(declaracao) {
152
- for (let parametro of declaracao.funcao.parametros) {
153
- if (parametro.hasOwnProperty('tipoDado') && !parametro.tipoDado.tipo) {
154
- this.erro(declaracao.simbolo, `O tipo '${parametro.tipoDado.tipoInvalido}' não é valido`);
155
- }
156
- }
157
- if (declaracao.funcao.tipoRetorno === undefined) {
158
- this.erro(declaracao.simbolo, `Declaração de retorno da função é inválida`);
159
- }
160
- if (declaracao.funcao.parametros.length >= 255) {
161
- this.erro(declaracao.simbolo, 'Não pode haver mais de 255 parâmetros');
162
- }
163
- this.funcoes[declaracao.simbolo.lexema] = {
164
- valor: declaracao.funcao,
165
- };
166
- return Promise.resolve();
167
- }
168
- visitarDeclaracaoEscrevaMesmaLinha(declaracao) {
169
- declaracao.argumentos.forEach((argumento) => {
170
- var _a;
171
- if (argumento.expressao instanceof construtos_1.Variavel) {
172
- if (!this.variaveis[argumento.expressao.simbolo.lexema]) {
173
- this.erro(argumento.expressao.simbolo, `Variável '${argumento.expressao.simbolo.lexema}' não existe.`);
174
- return Promise.resolve();
175
- }
176
- if (((_a = this.variaveis[argumento.expressao.simbolo.lexema]) === null || _a === void 0 ? void 0 : _a.valor) === undefined) {
177
- this.aviso(argumento.expressao.simbolo, `Variável '${argumento.expressao.simbolo.lexema}' não foi inicializada.`);
178
- }
179
- }
180
- });
181
- return Promise.resolve();
182
- }
183
- visitarExpressaoDeChamada(expressao) {
184
- var _a, _b;
185
- if (expressao.entidadeChamada instanceof construtos_1.Variavel) {
186
- const variavel = expressao.entidadeChamada;
187
- const funcaoChamada = this.variaveis[variavel.simbolo.lexema] || this.funcoes[variavel.simbolo.lexema];
188
- if (!funcaoChamada) {
189
- this.erro(variavel.simbolo, `Função '${variavel.simbolo.lexema}' não foi declarada.`);
190
- return Promise.resolve();
191
- }
192
- const funcao = funcaoChamada.valor;
193
- if (funcao.parametros.length != expressao.argumentos.length) {
194
- this.erro(variavel.simbolo, `Esperava ${funcao.parametros.length} ${funcao.parametros.length > 1 ? 'argumentos' : 'argumento'}, mas obteve ${expressao.argumentos.length}.`);
195
- }
196
- for (let [indice, argumentoFuncao] of funcao.parametros.entries()) {
197
- const argumentoChamada = expressao.argumentos[indice];
198
- if (argumentoChamada) {
199
- if (((_a = argumentoFuncao.tipoDado) === null || _a === void 0 ? void 0 : _a.tipo.toLowerCase()) === 'caracter' &&
200
- typeof argumentoChamada.valor !== 'string') {
201
- this.erro(variavel.simbolo, `O tipo do valor passado para o parâmetro '${argumentoFuncao.nome.lexema}' (${argumentoFuncao.tipoDado.nome}) é diferente do esperado pela função.`);
202
- }
203
- else if (['inteiro', 'real'].includes((_b = argumentoFuncao.tipoDado) === null || _b === void 0 ? void 0 : _b.tipo.toLowerCase()) &&
204
- typeof argumentoChamada.valor !== 'number') {
205
- this.erro(variavel.simbolo, `O tipo do valor passado para o parâmetro '${argumentoFuncao.nome.lexema}' (${argumentoFuncao.tipoDado.nome}) é diferente do esperado pela função.`);
206
- }
207
- }
208
- }
209
- }
210
- return Promise.resolve();
211
- }
212
- visitarExpressaoRetornar(declaracao) {
213
- return Promise.resolve(null);
214
- }
215
- analisar(declaracoes) {
216
- this.variaveis = {};
217
- this.atual = 0;
218
- this.diagnosticos = [];
219
- while (this.atual < declaracoes.length) {
220
- declaracoes[this.atual].aceitar(this);
221
- this.atual++;
222
- }
223
- return {
224
- diagnosticos: this.diagnosticos,
225
- };
226
- }
227
- }
228
- exports.AnalisadorSemanticoVisuAlg = AnalisadorSemanticoVisuAlg;
229
- //# sourceMappingURL=analisador-semantico-visualg.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analisador-semantico-visualg.js","sourceRoot":"","sources":["../../../fontes/analisador-semantico/dialetos/analisador-semantico-visualg.ts"],"names":[],"mappings":"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"}
@@ -1,85 +0,0 @@
1
- import { RetornoLexador, RetornoAvaliadorSintatico } from '../../../interfaces/retornos';
2
- import { AvaliadorSintaticoBase } from '../../avaliador-sintatico-base';
3
- import { Aleatorio, Declaracao, Enquanto, Escolha, Escreva, EscrevaMesmaLinha, Fazer, FuncaoDeclaracao, Leia, Para, Retorna, Se } from '../../../declaracoes';
4
- import { Construto, FuncaoConstruto } from '../../../construtos';
5
- import { ParametroInterface, SimboloInterface } from '../../../interfaces';
6
- import { TipoDadosElementar } from '../../../tipo-dados-elementar';
7
- export declare class AvaliadorSintaticoVisuAlg extends AvaliadorSintaticoBase {
8
- blocoPrincipalIniciado: boolean;
9
- constructor();
10
- private validarSegmentoAlgoritmo;
11
- private criarVetorNDimensional;
12
- private validarDimensoesVetor;
13
- private logicaComumParametroVisuAlg;
14
- /**
15
- * Validação do segmento de declaração de variáveis (opcional).
16
- * @returns Vetor de Construtos para inicialização de variáveis.
17
- */
18
- private validarSegmentoVar;
19
- private validarSegmentoInicio;
20
- estaNoFinal(): boolean;
21
- metodoBibliotecaGlobal(): Construto;
22
- primario(): Construto;
23
- comparacaoIgualdade(): Construto;
24
- ou(): Construto;
25
- /**
26
- * Método que resolve atribuições.
27
- * @returns Um construto do tipo `Atribuir`, `Conjunto` ou `AtribuicaoPorIndice`.
28
- */
29
- atribuir(): Construto;
30
- expressao(): Construto;
31
- blocoEscopo(): any[];
32
- chamar(): Construto;
33
- simboloAtual(): SimboloInterface;
34
- verificarDefinicaoTipoAtual(): TipoDadosElementar;
35
- corpoDaFuncao(tipo: any): FuncaoConstruto;
36
- declaracaoEnquanto(): Enquanto;
37
- private logicaCasosEscolha;
38
- declaracaoEscolha(): Escolha;
39
- private logicaComumEscreva;
40
- declaracaoEscreva(): Escreva;
41
- declaracaoEscrevaMesmaLinha(): EscrevaMesmaLinha;
42
- /**
43
- * Criação de declaração "repita".
44
- * @returns Um construto do tipo Fazer
45
- */
46
- declaracaoFazer(): Fazer;
47
- /**
48
- * Criação de declaração "interrompa".
49
- * Em VisuAlg, "sustar" é chamada de "interrompa".
50
- * @returns Uma declaração do tipo Sustar.
51
- */
52
- private declaracaoInterrompa;
53
- /**
54
- * Análise de uma declaração `leia()`. No VisuAlg, `leia()` aceita 1..N argumentos.
55
- * @returns Uma declaração `Leia`.
56
- */
57
- declaracaoLeia(): Leia;
58
- declaracaoPara(): Para;
59
- logicaComumParametros(): ParametroInterface[];
60
- /**
61
- * Procedimentos nada mais são do que funções que não retornam valor.
62
- */
63
- declaracaoProcedimento(): FuncaoDeclaracao;
64
- declaracaoRetorna(): Retorna;
65
- declaracaoSe(): Se;
66
- declaracaoAleatorio(): Aleatorio;
67
- resolverDeclaracaoForaDeBloco(): Declaracao | Declaracao[] | Construto | Construto[] | any;
68
- /**
69
- * No VisuAlg, há uma determinada cadência de validação de símbolos.
70
- * - O primeiro símbolo é `algoritmo`, seguido por um identificador e
71
- * uma quebra de linha.
72
- * - Os próximos símbolo pode `var`, que pode ser seguido por uma série de
73
- * declarações de variáveis e finalizado por uma quebra de linha,
74
- * ou ainda `funcao` ou `procedimento`, seguidos dos devidos símbolos que definem
75
- * os blocos.
76
- * - O penúltimo símbolo é `inicio`, seguido por uma quebra de linha.
77
- * Pode haver ou não declarações dentro do bloco.
78
- * - O último símbolo deve ser `fimalgoritmo`, que também é usado para
79
- * definir quando não existem mais construtos a serem adicionados.
80
- * @param retornoLexador Os símbolos entendidos pelo Lexador.
81
- * @param hashArquivo Obrigatório por interface mas não usado aqui.
82
- */
83
- analisar(retornoLexador: RetornoLexador<SimboloInterface>, hashArquivo: number): RetornoAvaliadorSintatico<Declaracao>;
84
- }
85
- //# sourceMappingURL=avaliador-sintatico-visualg.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"avaliador-sintatico-visualg.d.ts","sourceRoot":"","sources":["../../../../fontes/avaliador-sintatico/dialetos/visualg/avaliador-sintatico-visualg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EACH,SAAS,EAGT,UAAU,EACV,QAAQ,EACR,OAAO,EACP,OAAO,EACP,iBAAiB,EAEjB,KAAK,EACL,gBAAgB,EAChB,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,EAAE,EAGL,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EASH,SAAS,EAGT,eAAe,EAKlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAK3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAInE,qBAAa,yBAA0B,SAAQ,sBAAsB;IACjE,sBAAsB,EAAE,OAAO,CAAC;;IAOhC,OAAO,CAAC,wBAAwB;IAahC,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,qBAAqB;IAyB7B,OAAO,CAAC,2BAA2B;IAqCnC;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA0H1B,OAAO,CAAC,qBAAqB;IAQ7B,WAAW,IAAI,OAAO;IAItB,sBAAsB,IAAI,SAAS;IAyBnC,QAAQ,IAAI,SAAS;IAuCrB,mBAAmB,IAAI,SAAS;IAYhC,EAAE,IAAI,SAAS;IAYf;;;OAGG;IACH,QAAQ,IAAI,SAAS;IAmCrB,SAAS,IAAI,SAAS;IAKtB,WAAW,IAAI,GAAG,EAAE;IAkBpB,MAAM,IAAI,SAAS;IAmCnB,YAAY,IAAI,gBAAgB;IAIhC,2BAA2B,IAAI,kBAAkB;IAyBjD,aAAa,CAAC,IAAI,EAAE,GAAG,GAAG,eAAe;IAqCzC,kBAAkB,IAAI,QAAQ;IAuC9B,OAAO,CAAC,kBAAkB;IAa1B,iBAAiB,IAAI,OAAO;IAqE5B,OAAO,CAAC,kBAAkB;IAyD1B,iBAAiB,IAAI,OAAO;IAQ5B,2BAA2B,IAAI,iBAAiB;IAQhD;;;OAGG;IACH,eAAe,IAAI,KAAK;IAoCxB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;;OAGG;IACH,cAAc,IAAI,IAAI;IAoBtB,cAAc,IAAI,IAAI;IA+KtB,qBAAqB,IAAI,kBAAkB,EAAE;IA+B7C;;OAEG;IACH,sBAAsB;IA2BtB,iBAAiB,IAAI,OAAO;IAsB5B,YAAY,IAAI,EAAE;IAyDlB,mBAAmB,IAAI,SAAS;IAqDhC,6BAA6B,IAAI,UAAU,GAAG,UAAU,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE,GAAG,GAAG;IAmD1F;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CACJ,cAAc,EAAE,cAAc,CAAC,gBAAgB,CAAC,EAChD,WAAW,EAAE,MAAM,GACpB,yBAAyB,CAAC,UAAU,CAAC;CA+C3C"}