@designliquido/delegua 0.15.15 → 0.16.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 (49) hide show
  1. package/bin/package.json +1 -1
  2. package/fontes/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
  3. package/fontes/avaliador-sintatico/avaliador-sintatico.js +1 -1
  4. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  5. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-mapler.d.ts +62 -0
  6. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-mapler.js +513 -0
  7. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-mapler.js.map +1 -0
  8. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.d.ts +10 -4
  9. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js +55 -13
  10. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js.map +1 -1
  11. package/fontes/avaliador-sintatico/dialetos/index.d.ts +1 -0
  12. package/fontes/avaliador-sintatico/dialetos/index.js +1 -0
  13. package/fontes/avaliador-sintatico/dialetos/index.js.map +1 -1
  14. package/fontes/interpretador/dialetos/index.d.ts +2 -0
  15. package/fontes/interpretador/dialetos/index.js +2 -0
  16. package/fontes/interpretador/dialetos/index.js.map +1 -1
  17. package/fontes/interpretador/dialetos/mapler/comum.d.ts +10 -0
  18. package/fontes/interpretador/dialetos/mapler/comum.js +143 -0
  19. package/fontes/interpretador/dialetos/mapler/comum.js.map +1 -0
  20. package/fontes/interpretador/dialetos/mapler/interpretador-mapler-com-depuracao.d.ts +47 -0
  21. package/fontes/interpretador/dialetos/mapler/interpretador-mapler-com-depuracao.js +152 -0
  22. package/fontes/interpretador/dialetos/mapler/interpretador-mapler-com-depuracao.js.map +1 -0
  23. package/fontes/interpretador/dialetos/mapler/interpretador-mapler.d.ts +43 -0
  24. package/fontes/interpretador/dialetos/mapler/interpretador-mapler.js +127 -0
  25. package/fontes/interpretador/dialetos/mapler/interpretador-mapler.js.map +1 -0
  26. package/fontes/interpretador/interpretador-com-depuracao.js +3 -0
  27. package/fontes/interpretador/interpretador-com-depuracao.js.map +1 -1
  28. package/fontes/lexador/dialetos/index.d.ts +1 -0
  29. package/fontes/lexador/dialetos/index.js +1 -0
  30. package/fontes/lexador/dialetos/index.js.map +1 -1
  31. package/fontes/lexador/dialetos/lexador-mapler.d.ts +9 -0
  32. package/fontes/lexador/dialetos/lexador-mapler.js +205 -0
  33. package/fontes/lexador/dialetos/lexador-mapler.js.map +1 -0
  34. package/fontes/lexador/dialetos/palavras-reservadas/mapler.d.ts +31 -0
  35. package/fontes/lexador/dialetos/palavras-reservadas/mapler.js +37 -0
  36. package/fontes/lexador/dialetos/palavras-reservadas/mapler.js.map +1 -0
  37. package/fontes/lexador/dialetos/palavras-reservadas/visualg.d.ts +1 -0
  38. package/fontes/lexador/dialetos/palavras-reservadas/visualg.js +1 -0
  39. package/fontes/lexador/dialetos/palavras-reservadas/visualg.js.map +1 -1
  40. package/fontes/tipos-de-simbolos/mapler.d.ts +55 -0
  41. package/fontes/tipos-de-simbolos/mapler.js +57 -0
  42. package/fontes/tipos-de-simbolos/mapler.js.map +1 -0
  43. package/fontes/tipos-de-simbolos/visualg.d.ts +1 -0
  44. package/fontes/tipos-de-simbolos/visualg.js +1 -0
  45. package/fontes/tipos-de-simbolos/visualg.js.map +1 -1
  46. package/fontes/tradutores/tradutor-visualg.d.ts +3 -0
  47. package/fontes/tradutores/tradutor-visualg.js +39 -46
  48. package/fontes/tradutores/tradutor-visualg.js.map +1 -1
  49. package/package.json +1 -1
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.InterpretadorMaplerComDepuracao = void 0;
27
+ const construtos_1 = require("../../../construtos");
28
+ const quebras_1 = require("../../../quebras");
29
+ const interpretador_com_depuracao_1 = require("../../interpretador-com-depuracao");
30
+ const comum = __importStar(require("./comum"));
31
+ /**
32
+ * Interpretador com depuração para o dialeto Mapler.
33
+ */
34
+ class InterpretadorMaplerComDepuracao extends interpretador_com_depuracao_1.InterpretadorComDepuracao {
35
+ constructor(diretorioBase, funcaoDeRetorno = null, funcaoDeRetornoMesmaLinha = null) {
36
+ super(diretorioBase, funcaoDeRetorno, funcaoDeRetornoMesmaLinha);
37
+ this.mensagemPrompt = '> ';
38
+ }
39
+ async avaliarArgumentosEscrevaMapler(argumentos) {
40
+ let formatoTexto = '';
41
+ for (const argumento of argumentos) {
42
+ const resultadoAvaliacao = await this.avaliar(argumento);
43
+ let valor = (resultadoAvaliacao === null || resultadoAvaliacao === void 0 ? void 0 : resultadoAvaliacao.hasOwnProperty('valor')) ? resultadoAvaliacao.valor : resultadoAvaliacao;
44
+ formatoTexto += `${this.paraTexto(valor)}`;
45
+ }
46
+ return formatoTexto;
47
+ }
48
+ /**
49
+ * No Mapler, o bloco executa se a condição for falsa.
50
+ * Por isso a reimplementação aqui.
51
+ * @param declaracao A declaração `Fazer`
52
+ * @returns Só retorna em caso de erro na execução, e neste caso, o erro.
53
+ */
54
+ async visitarDeclaracaoFazer(declaracao) {
55
+ let retornoExecucao;
56
+ do {
57
+ try {
58
+ retornoExecucao = await this.executar(declaracao.caminhoFazer);
59
+ if (retornoExecucao instanceof quebras_1.ContinuarQuebra) {
60
+ retornoExecucao = null;
61
+ }
62
+ }
63
+ catch (erro) {
64
+ return Promise.reject(erro);
65
+ }
66
+ } while (!(retornoExecucao instanceof quebras_1.Quebra) &&
67
+ !this.eVerdadeiro(await this.avaliar(declaracao.condicaoEnquanto)));
68
+ }
69
+ /**
70
+ * Execução de uma escrita na saída padrão, sem quebras de linha.
71
+ * Implementada para alguns dialetos, como Mapler.
72
+ *
73
+ * Como `readline.question` sobrescreve o que foi escrito antes, aqui
74
+ * definimos `this.mensagemPrompt` para uso com `leia`.
75
+ * No Mapler é muito comum usar `escreva()` seguido de `leia()` para
76
+ * gerar um prompt na mesma linha.
77
+ * @param declaracao A declaração.
78
+ * @returns Sempre nulo, por convenção de visita.
79
+ */
80
+ async visitarExpressaoEscrevaMesmaLinha(declaracao) {
81
+ try {
82
+ const formatoTexto = await this.avaliarArgumentosEscrevaMapler(declaracao.argumentos);
83
+ this.mensagemPrompt = formatoTexto;
84
+ this.funcaoDeRetornoMesmaLinha(formatoTexto);
85
+ return null;
86
+ }
87
+ catch (erro) {
88
+ this.erros.push(erro);
89
+ }
90
+ }
91
+ /**
92
+ * Execução de uma escrita na saída configurada, que pode ser `console` (padrão) ou
93
+ * alguma função para escrever numa página Web.
94
+ * @param declaracao A declaração.
95
+ * @returns Sempre nulo, por convenção de visita.
96
+ */
97
+ async visitarExpressaoEscreva(declaracao) {
98
+ try {
99
+ const formatoTexto = await this.avaliarArgumentosEscrevaMapler(declaracao.argumentos);
100
+ this.funcaoDeRetorno(formatoTexto);
101
+ return null;
102
+ }
103
+ catch (erro) {
104
+ this.erros.push(erro);
105
+ }
106
+ }
107
+ async atribuirVariavel(expressao, valor) {
108
+ if (expressao instanceof construtos_1.Variavel) {
109
+ this.pilhaEscoposExecucao.atribuirVariavel(expressao.simbolo, valor);
110
+ return;
111
+ }
112
+ if (expressao instanceof construtos_1.AcessoIndiceVariavel) {
113
+ const promises = await Promise.all([
114
+ this.avaliar(expressao.entidadeChamada),
115
+ this.avaliar(expressao.indice)
116
+ ]);
117
+ let alvo = promises[0];
118
+ let indice = promises[1];
119
+ if (alvo.hasOwnProperty('valor')) {
120
+ alvo = alvo.valor;
121
+ }
122
+ if (indice.hasOwnProperty('valor')) {
123
+ indice = indice.valor;
124
+ }
125
+ alvo[indice] = valor;
126
+ }
127
+ }
128
+ /**
129
+ * Execução da leitura de valores da entrada configurada no
130
+ * início da aplicação.
131
+ * @param expressao Expressão do tipo Leia
132
+ * @returns Promise com o resultado da leitura.
133
+ */
134
+ async visitarExpressaoLeia(expressao) {
135
+ for (let argumento of expressao.argumentos) {
136
+ const promessaLeitura = () => new Promise((resolucao) => this.interfaceEntradaSaida.question(this.mensagemPrompt, (resposta) => {
137
+ this.mensagemPrompt = '> ';
138
+ resolucao(resposta);
139
+ }));
140
+ const valorLido = await promessaLeitura();
141
+ await this.atribuirVariavel(argumento, valorLido);
142
+ }
143
+ }
144
+ async visitarExpressaoBinaria(expressao) {
145
+ return comum.visitarExpressaoBinaria(this, expressao);
146
+ }
147
+ async visitarExpressaoLogica(expressao) {
148
+ return comum.visitarExpressaoLogica(this, expressao);
149
+ }
150
+ }
151
+ exports.InterpretadorMaplerComDepuracao = InterpretadorMaplerComDepuracao;
152
+ //# sourceMappingURL=interpretador-mapler-com-depuracao.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpretador-mapler-com-depuracao.js","sourceRoot":"","sources":["../../../../../fontes/interpretador/dialetos/mapler/interpretador-mapler-com-depuracao.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { Binario, Logico } from '../../../construtos';
2
+ import { Escreva, EscrevaMesmaLinha, Fazer, Leia } from '../../../declaracoes';
3
+ import { InterpretadorBase } from '../..';
4
+ export declare class InterpretadorMapler extends InterpretadorBase {
5
+ mensagemPrompt: string;
6
+ constructor(diretorioBase: string, performance?: boolean, funcaoDeRetorno?: Function, funcaoDeRetornoMesmaLinha?: Function);
7
+ private avaliarArgumentosEscrevaMapler;
8
+ /**
9
+ * No Mapler, o bloco de condição executa se falso.
10
+ * Por isso a reimplementação aqui.
11
+ * @param declaracao A declaração `Fazer`
12
+ * @returns Só retorna em caso de erro na execução, e neste caso, o erro.
13
+ */
14
+ visitarDeclaracaoFazer(declaracao: Fazer): Promise<any>;
15
+ /**
16
+ * Execução de uma escrita na saída padrão, sem quebras de linha.
17
+ * Implementada para alguns dialetos, como Mapler.
18
+ *
19
+ * Como `readline.question` sobrescreve o que foi escrito antes, aqui
20
+ * definimos `this.mensagemPrompt` para uso com `leia`.
21
+ * No Mapler é muito comum usar `escreva()` seguido de `leia()` para
22
+ * gerar um prompt na mesma linha.
23
+ * @param declaracao A declaração.
24
+ * @returns Sempre nulo, por convenção de visita.
25
+ */
26
+ visitarExpressaoEscrevaMesmaLinha(declaracao: EscrevaMesmaLinha): Promise<any>;
27
+ /**
28
+ * Execução de uma escrita na saída configurada, que pode ser `console` (padrão) ou
29
+ * alguma função para escrever numa página Web.
30
+ * @param declaracao A declaração.
31
+ * @returns Sempre nulo, por convenção de visita.
32
+ */
33
+ visitarDeclaracaoEscreva(declaracao: Escreva): Promise<any>;
34
+ /**
35
+ * Execução da leitura de valores da entrada configurada no
36
+ * início da aplicação.
37
+ * @param expressao Expressão do tipo Leia
38
+ * @returns Promise com o resultado da leitura.
39
+ */
40
+ visitarExpressaoLeia(expressao: Leia): Promise<any>;
41
+ visitarExpressaoBinaria(expressao: Binario | any): Promise<any>;
42
+ visitarExpressaoLogica(expressao: Logico): Promise<any>;
43
+ }
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.InterpretadorMapler = void 0;
27
+ const __1 = require("../..");
28
+ const quebras_1 = require("../../../quebras");
29
+ const comum = __importStar(require("./comum"));
30
+ class InterpretadorMapler extends __1.InterpretadorBase {
31
+ constructor(diretorioBase, performance = false, funcaoDeRetorno = null, funcaoDeRetornoMesmaLinha = null) {
32
+ super(diretorioBase, performance, funcaoDeRetorno, funcaoDeRetornoMesmaLinha);
33
+ this.mensagemPrompt = '> ';
34
+ }
35
+ async avaliarArgumentosEscrevaMapler(argumentos) {
36
+ let formatoTexto = '';
37
+ for (const argumento of argumentos) {
38
+ const resultadoAvaliacao = await this.avaliar(argumento);
39
+ let valor = (resultadoAvaliacao === null || resultadoAvaliacao === void 0 ? void 0 : resultadoAvaliacao.hasOwnProperty('valor')) ? resultadoAvaliacao.valor : resultadoAvaliacao;
40
+ formatoTexto += `${this.paraTexto(valor)}`;
41
+ }
42
+ return formatoTexto;
43
+ }
44
+ /**
45
+ * No Mapler, o bloco de condição executa se falso.
46
+ * Por isso a reimplementação aqui.
47
+ * @param declaracao A declaração `Fazer`
48
+ * @returns Só retorna em caso de erro na execução, e neste caso, o erro.
49
+ */
50
+ async visitarDeclaracaoFazer(declaracao) {
51
+ let retornoExecucao;
52
+ do {
53
+ try {
54
+ retornoExecucao = await this.executar(declaracao.caminhoFazer);
55
+ if (retornoExecucao instanceof quebras_1.ContinuarQuebra) {
56
+ retornoExecucao = null;
57
+ }
58
+ }
59
+ catch (erro) {
60
+ return Promise.reject(erro);
61
+ }
62
+ } while (!(retornoExecucao instanceof quebras_1.Quebra) &&
63
+ !this.eVerdadeiro(await this.avaliar(declaracao.condicaoEnquanto)));
64
+ }
65
+ /**
66
+ * Execução de uma escrita na saída padrão, sem quebras de linha.
67
+ * Implementada para alguns dialetos, como Mapler.
68
+ *
69
+ * Como `readline.question` sobrescreve o que foi escrito antes, aqui
70
+ * definimos `this.mensagemPrompt` para uso com `leia`.
71
+ * No Mapler é muito comum usar `escreva()` seguido de `leia()` para
72
+ * gerar um prompt na mesma linha.
73
+ * @param declaracao A declaração.
74
+ * @returns Sempre nulo, por convenção de visita.
75
+ */
76
+ async visitarExpressaoEscrevaMesmaLinha(declaracao) {
77
+ try {
78
+ const formatoTexto = await this.avaliarArgumentosEscrevaMapler(declaracao.argumentos);
79
+ this.mensagemPrompt = formatoTexto;
80
+ this.funcaoDeRetornoMesmaLinha(formatoTexto);
81
+ return null;
82
+ }
83
+ catch (erro) {
84
+ this.erros.push(erro);
85
+ }
86
+ }
87
+ /**
88
+ * Execução de uma escrita na saída configurada, que pode ser `console` (padrão) ou
89
+ * alguma função para escrever numa página Web.
90
+ * @param declaracao A declaração.
91
+ * @returns Sempre nulo, por convenção de visita.
92
+ */
93
+ async visitarDeclaracaoEscreva(declaracao) {
94
+ try {
95
+ const formatoTexto = await this.avaliarArgumentosEscrevaMapler(declaracao.argumentos);
96
+ this.funcaoDeRetorno(formatoTexto);
97
+ return null;
98
+ }
99
+ catch (erro) {
100
+ this.erros.push(erro);
101
+ }
102
+ }
103
+ /**
104
+ * Execução da leitura de valores da entrada configurada no
105
+ * início da aplicação.
106
+ * @param expressao Expressão do tipo Leia
107
+ * @returns Promise com o resultado da leitura.
108
+ */
109
+ async visitarExpressaoLeia(expressao) {
110
+ for (let argumento of expressao.argumentos) {
111
+ const promessaLeitura = () => new Promise((resolucao) => this.interfaceEntradaSaida.question(this.mensagemPrompt, (resposta) => {
112
+ this.mensagemPrompt = '> ';
113
+ resolucao(resposta);
114
+ }));
115
+ const valorLido = await promessaLeitura();
116
+ this.pilhaEscoposExecucao.atribuirVariavel(argumento.simbolo, valorLido);
117
+ }
118
+ }
119
+ async visitarExpressaoBinaria(expressao) {
120
+ return comum.visitarExpressaoBinaria(this, expressao);
121
+ }
122
+ async visitarExpressaoLogica(expressao) {
123
+ return comum.visitarExpressaoLogica(this, expressao);
124
+ }
125
+ }
126
+ exports.InterpretadorMapler = InterpretadorMapler;
127
+ //# sourceMappingURL=interpretador-mapler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpretador-mapler.js","sourceRoot":"","sources":["../../../../../fontes/interpretador/dialetos/mapler/interpretador-mapler.ts"],"names":[],"mappings":"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"}
@@ -406,6 +406,9 @@ class InterpretadorComDepuracao extends interpretador_base_1.InterpretadorBase {
406
406
  }
407
407
  return retornoExecucao;
408
408
  }
409
+ catch (erro) {
410
+ this.erros.push(erro);
411
+ }
409
412
  finally {
410
413
  if (!this.pontoDeParadaAtivo && this.comando !== 'adentrarEscopo') {
411
414
  this.pilhaEscoposExecucao.removerUltimo();
@@ -1 +1 @@
1
- {"version":3,"file":"interpretador-com-depuracao.js","sourceRoot":"","sources":["../../../fontes/interpretador/interpretador-com-depuracao.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interpretador-com-depuracao.js","sourceRoot":"","sources":["../../../fontes/interpretador/interpretador-com-depuracao.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ export * from './lexador-birl';
2
2
  export * from './lexador-egua-classico';
3
3
  export * from './lexador-eguap';
4
4
  export * from './lexador-guarani';
5
+ export * from './lexador-mapler';
5
6
  export * from './lexador-portugol-ipt';
6
7
  export * from './lexador-portugol-studio';
7
8
  export * from './lexador-visualg';
@@ -18,6 +18,7 @@ __exportStar(require("./lexador-birl"), exports);
18
18
  __exportStar(require("./lexador-egua-classico"), exports);
19
19
  __exportStar(require("./lexador-eguap"), exports);
20
20
  __exportStar(require("./lexador-guarani"), exports);
21
+ __exportStar(require("./lexador-mapler"), exports);
21
22
  __exportStar(require("./lexador-portugol-ipt"), exports);
22
23
  __exportStar(require("./lexador-portugol-studio"), exports);
23
24
  __exportStar(require("./lexador-visualg"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../fontes/lexador/dialetos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,0DAAwC;AACxC,kDAAgC;AAChC,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,kDAAgC;AAChC,oDAAkC;AAClC,mDAAiC;AACjC,yDAAuC;AACvC,4DAA0C;AAC1C,oDAAkC"}
@@ -0,0 +1,9 @@
1
+ import { RetornoLexador } from '../../interfaces/retornos';
2
+ import { LexadorBaseLinhaUnica } from '../lexador-base-linha-unica';
3
+ export declare class LexadorMapler extends LexadorBaseLinhaUnica {
4
+ analisarNumero(): void;
5
+ analisarTexto(delimitador: string): void;
6
+ identificarPalavraChave(): void;
7
+ analisarToken(): void;
8
+ mapear(codigo: string[], hashArquivo: number): RetornoLexador;
9
+ }
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LexadorMapler = void 0;
7
+ const lexador_base_linha_unica_1 = require("../lexador-base-linha-unica");
8
+ const mapler_1 = __importDefault(require("../../tipos-de-simbolos/mapler"));
9
+ const mapler_2 = __importDefault(require("./palavras-reservadas/mapler"));
10
+ class LexadorMapler extends lexador_base_linha_unica_1.LexadorBaseLinhaUnica {
11
+ analisarNumero() {
12
+ while (this.eDigito(this.simboloAtual())) {
13
+ this.avancar();
14
+ }
15
+ if (this.simboloAtual() == '.' && this.eDigito(this.proximoSimbolo())) {
16
+ this.avancar();
17
+ while (this.eDigito(this.simboloAtual())) {
18
+ this.avancar();
19
+ }
20
+ }
21
+ const numeroCompleto = this.codigo.substring(this.inicioSimbolo, this.atual);
22
+ this.adicionarSimbolo(mapler_1.default.NUMERO, parseFloat(numeroCompleto));
23
+ }
24
+ analisarTexto(delimitador) {
25
+ while (this.simboloAtual() !== delimitador && !this.eFinalDoCodigo()) {
26
+ this.avancar();
27
+ }
28
+ if (this.eFinalDoCodigo()) {
29
+ this.erros.push({
30
+ linha: this.linha + 1,
31
+ caractere: this.simboloAnterior(),
32
+ mensagem: 'Caractere não finalizado.',
33
+ });
34
+ return;
35
+ }
36
+ const valor = this.codigo.substring(this.inicioSimbolo + 1, this.atual);
37
+ this.adicionarSimbolo(mapler_1.default.CARACTERE, valor);
38
+ }
39
+ identificarPalavraChave() {
40
+ while (this.eAlfabetoOuDigito(this.simboloAtual())) {
41
+ this.avancar();
42
+ }
43
+ const codigo = this.codigo.substring(this.inicioSimbolo, this.atual).toLowerCase();
44
+ if (codigo in mapler_2.default) {
45
+ this.adicionarSimbolo(mapler_2.default[codigo], codigo);
46
+ }
47
+ else {
48
+ this.adicionarSimbolo(mapler_1.default.IDENTIFICADOR, codigo);
49
+ }
50
+ }
51
+ analisarToken() {
52
+ const caractere = this.simboloAtual();
53
+ switch (caractere) {
54
+ case '(':
55
+ this.adicionarSimbolo(mapler_1.default.PARENTESE_ESQUERDO);
56
+ this.avancar();
57
+ break;
58
+ case ')':
59
+ this.adicionarSimbolo(mapler_1.default.PARENTESE_DIREITO);
60
+ this.avancar();
61
+ break;
62
+ case '[':
63
+ this.adicionarSimbolo(mapler_1.default.COLCHETE_ESQUERDO);
64
+ this.avancar();
65
+ break;
66
+ case ']':
67
+ this.adicionarSimbolo(mapler_1.default.COLCHETE_DIREITO);
68
+ this.avancar();
69
+ break;
70
+ case ':':
71
+ this.adicionarSimbolo(mapler_1.default.DOIS_PONTOS);
72
+ this.avancar();
73
+ break;
74
+ case '<':
75
+ this.avancar();
76
+ switch (this.simboloAtual()) {
77
+ case '-':
78
+ this.adicionarSimbolo(mapler_1.default.SETA_ATRIBUICAO);
79
+ this.avancar();
80
+ break;
81
+ case '=':
82
+ this.adicionarSimbolo(mapler_1.default.MENOR_IGUAL);
83
+ this.avancar();
84
+ break;
85
+ case '>':
86
+ this.adicionarSimbolo(mapler_1.default.DIFERENTE);
87
+ this.avancar();
88
+ break;
89
+ default:
90
+ this.adicionarSimbolo(mapler_1.default.MENOR);
91
+ break;
92
+ }
93
+ break;
94
+ case '>':
95
+ this.avancar();
96
+ if (this.simboloAtual() === '=') {
97
+ this.adicionarSimbolo(mapler_1.default.MAIOR_IGUAL);
98
+ this.avancar();
99
+ }
100
+ else {
101
+ this.adicionarSimbolo(mapler_1.default.MAIOR);
102
+ }
103
+ break;
104
+ case '=':
105
+ this.adicionarSimbolo(mapler_1.default.IGUAL);
106
+ this.avancar();
107
+ break;
108
+ case ',':
109
+ this.adicionarSimbolo(mapler_1.default.VIRGULA);
110
+ this.avancar();
111
+ break;
112
+ case ';':
113
+ this.adicionarSimbolo(mapler_1.default.PONTO_VIRGULA);
114
+ this.avancar();
115
+ break;
116
+ case '.':
117
+ this.adicionarSimbolo(mapler_1.default.PONTO);
118
+ this.avancar();
119
+ break;
120
+ case '-':
121
+ this.adicionarSimbolo(mapler_1.default.SUBTRACAO);
122
+ this.avancar();
123
+ break;
124
+ case '+':
125
+ this.adicionarSimbolo(mapler_1.default.ADICAO);
126
+ this.avancar();
127
+ break;
128
+ case '%':
129
+ this.adicionarSimbolo(mapler_1.default.MODULO);
130
+ this.avancar();
131
+ break;
132
+ case '*':
133
+ this.adicionarSimbolo(mapler_1.default.MULTIPLICACAO);
134
+ this.avancar();
135
+ break;
136
+ case '/':
137
+ this.avancar();
138
+ switch (this.simboloAtual()) {
139
+ case '/':
140
+ while (this.simboloAtual() != '\n' && !this.eFinalDoCodigo())
141
+ this.avancar();
142
+ break;
143
+ default:
144
+ this.adicionarSimbolo(mapler_1.default.DIVISAO);
145
+ break;
146
+ }
147
+ break;
148
+ // Esta sessão ignora espaços em branco na tokenização.
149
+ // Ponto-e-vírgula é opcional em Delégua, então pode apenas ser ignorado.
150
+ case ' ':
151
+ case '\0':
152
+ case '\r':
153
+ case '\t':
154
+ this.avancar();
155
+ break;
156
+ case '\n':
157
+ // this.adicionarSimbolo(tiposDeSimbolos.QUEBRA_LINHA);
158
+ this.linha++;
159
+ this.avancar();
160
+ break;
161
+ // case '"':
162
+ // this.avancar();
163
+ // this.analisarTexto('"');
164
+ // this.avancar();
165
+ // break;
166
+ case '"':
167
+ this.avancar();
168
+ this.analisarTexto('"');
169
+ this.avancar();
170
+ break;
171
+ default:
172
+ if (this.eDigito(caractere))
173
+ this.analisarNumero();
174
+ else if (this.eAlfabeto(caractere))
175
+ this.identificarPalavraChave();
176
+ else {
177
+ this.erros.push({
178
+ linha: this.linha + 1,
179
+ caractere: caractere,
180
+ mensagem: 'Caractere inesperado.',
181
+ });
182
+ this.avancar();
183
+ }
184
+ }
185
+ }
186
+ mapear(codigo, hashArquivo) {
187
+ this.erros = [];
188
+ this.simbolos = [];
189
+ this.inicioSimbolo = 0;
190
+ this.atual = 0;
191
+ this.linha = 0;
192
+ this.codigo = codigo.join('\n') || '';
193
+ this.hashArquivo = hashArquivo;
194
+ while (!this.eFinalDoCodigo()) {
195
+ this.inicioSimbolo = this.atual;
196
+ this.analisarToken();
197
+ }
198
+ return {
199
+ simbolos: this.simbolos,
200
+ erros: this.erros,
201
+ };
202
+ }
203
+ }
204
+ exports.LexadorMapler = LexadorMapler;
205
+ //# sourceMappingURL=lexador-mapler.js.map