@designliquido/delegua 0.2.4 → 0.2.7

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/bin/package.json +4 -3
  2. package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +67 -0
  3. package/fontes/avaliador-sintatico/avaliador-sintatico.js +663 -0
  4. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -0
  5. package/fontes/avaliador-sintatico/dialetos/{egua-classico.d.ts → avaliador-sintatico-egua-classico.d.ts} +2 -1
  6. package/fontes/avaliador-sintatico/dialetos/{egua-classico.js → avaliador-sintatico-egua-classico.js} +9 -9
  7. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -0
  8. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.d.ts +80 -0
  9. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js +708 -0
  10. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js.map +1 -0
  11. package/fontes/avaliador-sintatico/dialetos/index.d.ts +1 -1
  12. package/fontes/avaliador-sintatico/dialetos/index.js +1 -1
  13. package/fontes/avaliador-sintatico/dialetos/index.js.map +1 -1
  14. package/fontes/avaliador-sintatico/index.d.ts +2 -66
  15. package/fontes/avaliador-sintatico/index.js +15 -659
  16. package/fontes/avaliador-sintatico/index.js.map +1 -1
  17. package/fontes/delegua.d.ts +4 -1
  18. package/fontes/delegua.js +26 -18
  19. package/fontes/delegua.js.map +1 -1
  20. package/fontes/interfaces/avaliador-sintatico-interface.d.ts +4 -3
  21. package/fontes/interfaces/lexador-interface.d.ts +1 -1
  22. package/fontes/interpretador/dialetos/egua-classico.js +1 -1
  23. package/fontes/interpretador/dialetos/egua-classico.js.map +1 -1
  24. package/fontes/interpretador/index.d.ts +3 -66
  25. package/fontes/interpretador/index.js +5 -685
  26. package/fontes/interpretador/index.js.map +1 -1
  27. package/fontes/interpretador/interpretador.d.ts +66 -0
  28. package/fontes/interpretador/interpretador.js +700 -0
  29. package/fontes/interpretador/interpretador.js.map +1 -0
  30. package/fontes/lexador/dialetos/index.d.ts +1 -1
  31. package/fontes/lexador/dialetos/index.js +1 -1
  32. package/fontes/lexador/dialetos/index.js.map +1 -1
  33. package/fontes/lexador/dialetos/{egua-classico.d.ts → lexador-egua-classico.d.ts} +2 -2
  34. package/fontes/lexador/dialetos/{egua-classico.js → lexador-egua-classico.js} +8 -49
  35. package/fontes/lexador/dialetos/lexador-egua-classico.js.map +1 -0
  36. package/fontes/lexador/dialetos/lexador-eguap.d.ts +51 -0
  37. package/fontes/lexador/dialetos/lexador-eguap.js +395 -0
  38. package/fontes/lexador/dialetos/lexador-eguap.js.map +1 -0
  39. package/fontes/lexador/dialetos/pragma.d.ts +8 -0
  40. package/fontes/lexador/dialetos/pragma.js +3 -0
  41. package/fontes/lexador/dialetos/pragma.js.map +1 -0
  42. package/fontes/lexador/dialetos/tipos-de-simbolos-eguap.d.ts +72 -0
  43. package/fontes/lexador/dialetos/tipos-de-simbolos-eguap.js +74 -0
  44. package/fontes/lexador/dialetos/tipos-de-simbolos-eguap.js.map +1 -0
  45. package/fontes/lexador/index.d.ts +2 -43
  46. package/fontes/lexador/index.js +15 -412
  47. package/fontes/lexador/index.js.map +1 -1
  48. package/fontes/lexador/lexador.d.ts +43 -0
  49. package/fontes/lexador/lexador.js +375 -0
  50. package/fontes/lexador/lexador.js.map +1 -0
  51. package/fontes/lexador/palavras-reservadas.d.ts +35 -0
  52. package/fontes/lexador/palavras-reservadas.js +41 -0
  53. package/fontes/lexador/palavras-reservadas.js.map +1 -0
  54. package/fontes/lexador/retorno-lexador.d.ts +4 -0
  55. package/fontes/lexador/simbolo.d.ts +9 -0
  56. package/fontes/lexador/simbolo.js +17 -0
  57. package/fontes/lexador/simbolo.js.map +1 -0
  58. package/fontes/lexador/tipos-de-simbolos.d.ts +72 -0
  59. package/fontes/lexador/tipos-de-simbolos.js +74 -0
  60. package/fontes/lexador/tipos-de-simbolos.js.map +1 -0
  61. package/fontes/tipos-de-simbolos.d.ts +1 -0
  62. package/fontes/tipos-de-simbolos.js +1 -0
  63. package/fontes/tipos-de-simbolos.js.map +1 -1
  64. package/package.json +4 -3
  65. package/testes/avaliador-sintatico.test.js +2 -2
  66. package/testes/avaliador-sintatico.test.js.map +1 -1
  67. package/testes/biblioteca-global.test.js +14 -14
  68. package/testes/biblioteca-global.test.js.map +1 -1
  69. package/testes/egua-classico/avaliador-sintatico.test.js +2 -2
  70. package/testes/egua-classico/avaliador-sintatico.test.js.map +1 -1
  71. package/testes/egua-classico/interpretador.test.js +20 -20
  72. package/testes/egua-classico/interpretador.test.js.map +1 -1
  73. package/testes/egua-classico/resolvedor.test.js +1 -1
  74. package/testes/egua-classico/resolvedor.test.js.map +1 -1
  75. package/testes/eguap/lexador.test.d.ts +1 -0
  76. package/testes/eguap/lexador.test.js +53 -0
  77. package/testes/eguap/lexador.test.js.map +1 -0
  78. package/testes/interpretador.test.js +20 -20
  79. package/testes/interpretador.test.js.map +1 -1
  80. package/testes/resolvedor.test.js +1 -1
  81. package/testes/resolvedor.test.js.map +1 -1
  82. package/fontes/avaliador-sintatico/dialetos/egua-classico.js.map +0 -1
  83. package/fontes/lexador/dialetos/egua-classico.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lexador-eguap.js","sourceRoot":"","sources":["../../../../fontes/lexador/dialetos/lexador-eguap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Pragma é um tipo de objeto que explica a todos os elementos de Delégua como uma linha
3
+ * deve ser processada.
4
+ */
5
+ export interface Pragma {
6
+ linha: number;
7
+ espacosIndentacao?: number;
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=pragma.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pragma.js","sourceRoot":"","sources":["../../../../fontes/lexador/dialetos/pragma.ts"],"names":[],"mappings":""}
@@ -0,0 +1,72 @@
1
+ declare const _default: {
2
+ ADICAO: string;
3
+ BIT_AND: string;
4
+ BIT_OR: string;
5
+ BIT_XOR: string;
6
+ BIT_NOT: string;
7
+ CASO: string;
8
+ CHAVE_DIREITA: string;
9
+ CHAVE_ESQUERDA: string;
10
+ CLASSE: string;
11
+ COLCHETE_DIREITO: string;
12
+ COLCHETE_ESQUERDO: string;
13
+ CONTINUA: string;
14
+ DIFERENTE: string;
15
+ DIVISAO: string;
16
+ DOIS_PONTOS: string;
17
+ E: string;
18
+ EM: string;
19
+ ENQUANTO: string;
20
+ EOF: string;
21
+ ESCOLHA: string;
22
+ ESCREVA: string;
23
+ EXPONENCIACAO: string;
24
+ IGUAL: string;
25
+ IGUAL_IGUAL: string;
26
+ FALSO: string;
27
+ FAZER: string;
28
+ FINALMENTE: string;
29
+ FUNCAO: string;
30
+ FUNÇÃO: string;
31
+ HERDA: string;
32
+ IDENTIFICADOR: string;
33
+ IMPORTAR: string;
34
+ ISTO: string;
35
+ MAIOR: string;
36
+ MAIOR_IGUAL: string;
37
+ MAIOR_MAIOR: string;
38
+ MAIS_IGUAL: string;
39
+ MENOR: string;
40
+ MENOS_IGUAL: string;
41
+ MENOR_IGUAL: string;
42
+ MENOR_MENOR: string;
43
+ MODULO: string;
44
+ MULTIPLICACAO: string;
45
+ NEGACAO: string;
46
+ NULO: string;
47
+ NUMERO: string;
48
+ OU: string;
49
+ PADRAO: string;
50
+ PARA: string;
51
+ PARENTESE_DIREITO: string;
52
+ PARENTESE_ESQUERDO: string;
53
+ PAUSA: string;
54
+ PEGUE: string;
55
+ PONTO: string;
56
+ PONTO_E_VIRGULA: string;
57
+ RETORNA: string;
58
+ SUBTRACAO: string;
59
+ SE: string;
60
+ SENAO: string;
61
+ SENÃO: string;
62
+ SENAOSE: string;
63
+ SENÃOSE: string;
64
+ SUPER: string;
65
+ SUSTAR: string;
66
+ TENTE: string;
67
+ TEXTO: string;
68
+ VARIAVEL: string;
69
+ VERDADEIRO: string;
70
+ VIRGULA: string;
71
+ };
72
+ export default _default;
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
4
+ ADICAO: "ADICAO",
5
+ BIT_AND: "BIT_AND",
6
+ BIT_OR: "BIT_OR",
7
+ BIT_XOR: "BIT_XOR",
8
+ BIT_NOT: "BIT_NOT",
9
+ CASO: "CASO",
10
+ CHAVE_DIREITA: "CHAVE_DIREITA",
11
+ CHAVE_ESQUERDA: "CHAVE_ESQUERDA",
12
+ CLASSE: "CLASSE",
13
+ COLCHETE_DIREITO: "COLCHETE_DIREITO",
14
+ COLCHETE_ESQUERDO: "COLCHETE_ESQUERDO",
15
+ CONTINUA: "CONTINUA",
16
+ DIFERENTE: "DIFERENTE",
17
+ DIVISAO: "DIVISAO",
18
+ DOIS_PONTOS: "DOIS_PONTOS",
19
+ E: "E",
20
+ EM: "EM",
21
+ ENQUANTO: "ENQUANTO",
22
+ EOF: "EOF",
23
+ ESCOLHA: "ESCOLHA",
24
+ ESCREVA: "ESCREVA",
25
+ EXPONENCIACAO: "EXPONENCIACAO",
26
+ IGUAL: "IGUAL",
27
+ IGUAL_IGUAL: "IGUAL_IGUAL",
28
+ FALSO: "FALSO",
29
+ FAZER: "FAZER",
30
+ FINALMENTE: "FINALMENTE",
31
+ FUNCAO: "FUNCAO",
32
+ FUNÇÃO: "FUNÇÃO",
33
+ HERDA: "HERDA",
34
+ IDENTIFICADOR: "IDENTIFICADOR",
35
+ IMPORTAR: "IMPORTAR",
36
+ ISTO: "ISTO",
37
+ MAIOR: "MAIOR",
38
+ MAIOR_IGUAL: "MAIOR_IGUAL",
39
+ MAIOR_MAIOR: "MAIOR_MAIOR",
40
+ MAIS_IGUAL: "MAIS_IGUAL",
41
+ MENOR: "MENOR",
42
+ MENOS_IGUAL: "MENOS_IGUAL",
43
+ MENOR_IGUAL: "MENOR_IGUAL",
44
+ MENOR_MENOR: "MENOR_MENOR",
45
+ MODULO: "MODULO",
46
+ MULTIPLICACAO: "MULTIPLICACAO",
47
+ NEGACAO: "NEGACAO",
48
+ NULO: "NULO",
49
+ NUMERO: "NUMERO",
50
+ OU: "OU",
51
+ PADRAO: "PADRAO",
52
+ PARA: "PARA",
53
+ PARENTESE_DIREITO: "PARENTESE_DIREITO",
54
+ PARENTESE_ESQUERDO: "PARENTESE_ESQUERDO",
55
+ PAUSA: "PAUSA",
56
+ PEGUE: "PEGUE",
57
+ PONTO: "PONTO",
58
+ PONTO_E_VIRGULA: "PONTO_E_VIRGULA",
59
+ RETORNA: "RETORNA",
60
+ SUBTRACAO: "SUBTRACAO",
61
+ SE: "SE",
62
+ SENAO: "SENAO",
63
+ SENÃO: "SENÃO",
64
+ SENAOSE: "SENAOSE",
65
+ SENÃOSE: "SENÃOSE",
66
+ SUPER: "SUPER",
67
+ SUSTAR: "SUSTAR",
68
+ TENTE: "TENTE",
69
+ TEXTO: "TEXTO",
70
+ VARIAVEL: "VARIAVEL",
71
+ VERDADEIRO: "VERDADEIRO",
72
+ VIRGULA: "VIRGULA"
73
+ };
74
+ //# sourceMappingURL=tipos-de-simbolos-eguap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tipos-de-simbolos-eguap.js","sourceRoot":"","sources":["../../../../fontes/lexador/dialetos/tipos-de-simbolos-eguap.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACX,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,MAAM,EAAE,QAAQ;IAChB,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,mBAAmB;IACtC,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,aAAa;IAC1B,CAAC,EAAE,GAAG;IACN,EAAE,EAAE,IAAI;IACR,QAAQ,EAAE,UAAU;IACpB,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,eAAe;IAC9B,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,aAAa,EAAE,eAAe;IAC9B,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,QAAQ;IAChB,aAAa,EAAE,eAAe;IAC9B,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,EAAE,EAAE,IAAI;IACR,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,oBAAoB;IACxC,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,eAAe,EAAE,iBAAiB;IAClC,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;CACrB,CAAC"}
@@ -1,43 +1,2 @@
1
- import { LexadorInterface, SimboloInterface } from "../interfaces";
2
- import { ErroLexador } from "./erro-lexador";
3
- import { RetornoLexador } from "./retorno-lexador";
4
- /**
5
- * O Lexador é responsável por transformar o código em uma coleção de tokens de linguagem.
6
- * Cada token de linguagem é representado por um tipo, um lexema e informações da linha de código em que foi expresso.
7
- * Também é responsável por mapear as palavras reservadas da linguagem, que não podem ser usadas por outras
8
- * estruturas, tais como nomes de variáveis, funções, literais, classes e assim por diante.
9
- */
10
- export declare class Lexador implements LexadorInterface {
11
- codigo: string[];
12
- simbolos: SimboloInterface[];
13
- erros: ErroLexador[];
14
- inicioSimbolo: number;
15
- atual: number;
16
- linha: number;
17
- performance: boolean;
18
- constructor(performance?: boolean);
19
- eDigito(caractere: string): boolean;
20
- eAlfabeto(caractere: string): boolean;
21
- eAlfabetoOuDigito(caractere: any): boolean;
22
- eFinalDaLinha(): boolean;
23
- /**
24
- * Indica se o código está na última linha.
25
- * @returns Verdadeiro se contador de linhas está na última linha.
26
- * Falso caso contrário.
27
- */
28
- eUltimaLinha(): boolean;
29
- eFinalDoCodigo(): boolean;
30
- avancar(): void;
31
- adicionarSimbolo(tipo: any, literal?: any): void;
32
- proximoIgualA(esperado: any): boolean;
33
- simboloAtual(): string;
34
- avancarParaProximaLinha(): void;
35
- proximoSimbolo(): string;
36
- simboloAnterior(): string;
37
- analisarTexto(delimitador?: string): void;
38
- analisarNumero(): void;
39
- identificarPalavraChave(): void;
40
- encontrarFimComentarioAsterisco(): void;
41
- analisarToken(): void;
42
- mapear(codigo?: string[]): RetornoLexador;
43
- }
1
+ export * from './lexador';
2
+ export * from './simbolo';
@@ -1,416 +1,19 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
4
15
  };
5
16
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Lexador = void 0;
7
- var perf_hooks_1 = require("perf_hooks");
8
- var tipos_de_simbolos_1 = __importDefault(require("../tipos-de-simbolos"));
9
- var palavrasReservadas = {
10
- e: tipos_de_simbolos_1.default.E,
11
- em: tipos_de_simbolos_1.default.EM,
12
- classe: tipos_de_simbolos_1.default.CLASSE,
13
- senao: tipos_de_simbolos_1.default.SENAO,
14
- senão: tipos_de_simbolos_1.default.SENÃO,
15
- falso: tipos_de_simbolos_1.default.FALSO,
16
- para: tipos_de_simbolos_1.default.PARA,
17
- funcao: tipos_de_simbolos_1.default.FUNCAO,
18
- função: tipos_de_simbolos_1.default.FUNÇÃO,
19
- se: tipos_de_simbolos_1.default.SE,
20
- senaose: tipos_de_simbolos_1.default.SENAOSE,
21
- senãose: tipos_de_simbolos_1.default.SENÃOSE,
22
- nulo: tipos_de_simbolos_1.default.NULO,
23
- ou: tipos_de_simbolos_1.default.OU,
24
- escreva: tipos_de_simbolos_1.default.ESCREVA,
25
- retorna: tipos_de_simbolos_1.default.RETORNA,
26
- super: tipos_de_simbolos_1.default.SUPER,
27
- isto: tipos_de_simbolos_1.default.ISTO,
28
- verdadeiro: tipos_de_simbolos_1.default.VERDADEIRO,
29
- var: tipos_de_simbolos_1.default.VARIAVEL,
30
- fazer: tipos_de_simbolos_1.default.FAZER,
31
- enquanto: tipos_de_simbolos_1.default.ENQUANTO,
32
- pausa: tipos_de_simbolos_1.default.PAUSA,
33
- continua: tipos_de_simbolos_1.default.CONTINUA,
34
- escolha: tipos_de_simbolos_1.default.ESCOLHA,
35
- caso: tipos_de_simbolos_1.default.CASO,
36
- padrao: tipos_de_simbolos_1.default.PADRAO,
37
- importar: tipos_de_simbolos_1.default.IMPORTAR,
38
- tente: tipos_de_simbolos_1.default.TENTE,
39
- pegue: tipos_de_simbolos_1.default.PEGUE,
40
- finalmente: tipos_de_simbolos_1.default.FINALMENTE,
41
- herda: tipos_de_simbolos_1.default.HERDA,
42
- };
43
- var Simbolo = /** @class */ (function () {
44
- function Simbolo(tipo, lexema, literal, linha) {
45
- this.tipo = tipo;
46
- this.lexema = lexema;
47
- this.literal = literal;
48
- this.linha = linha;
49
- }
50
- Simbolo.prototype.paraTexto = function () {
51
- return this.tipo + " " + this.lexema + " " + this.literal;
52
- };
53
- return Simbolo;
54
- }());
55
- /**
56
- * O Lexador é responsável por transformar o código em uma coleção de tokens de linguagem.
57
- * Cada token de linguagem é representado por um tipo, um lexema e informações da linha de código em que foi expresso.
58
- * Também é responsável por mapear as palavras reservadas da linguagem, que não podem ser usadas por outras
59
- * estruturas, tais como nomes de variáveis, funções, literais, classes e assim por diante.
60
- */
61
- var Lexador = /** @class */ (function () {
62
- function Lexador(performance) {
63
- if (performance === void 0) { performance = false; }
64
- this.performance = performance;
65
- this.simbolos = [];
66
- this.erros = [];
67
- this.inicioSimbolo = 0;
68
- this.atual = 0;
69
- this.linha = 0;
70
- }
71
- Lexador.prototype.eDigito = function (caractere) {
72
- return caractere >= '0' && caractere <= '9';
73
- };
74
- Lexador.prototype.eAlfabeto = function (caractere) {
75
- var acentuacoes = [
76
- 'á',
77
- 'Á',
78
- 'ã',
79
- 'Ã',
80
- 'â',
81
- 'Â',
82
- 'à',
83
- 'À',
84
- 'é',
85
- 'É',
86
- 'ê',
87
- 'Ê',
88
- 'í',
89
- 'Í',
90
- 'ó',
91
- 'Ó',
92
- 'õ',
93
- 'Õ',
94
- 'ô',
95
- 'Ô',
96
- 'ú',
97
- 'Ú',
98
- 'ç',
99
- 'Ç',
100
- '_',
101
- ];
102
- return ((caractere >= 'a' && caractere <= 'z') ||
103
- (caractere >= 'A' && caractere <= 'Z') ||
104
- acentuacoes.includes(caractere));
105
- };
106
- Lexador.prototype.eAlfabetoOuDigito = function (caractere) {
107
- return this.eDigito(caractere) || this.eAlfabeto(caractere);
108
- };
109
- Lexador.prototype.eFinalDaLinha = function () {
110
- return this.atual >= this.codigo[this.linha].length;
111
- };
112
- /**
113
- * Indica se o código está na última linha.
114
- * @returns Verdadeiro se contador de linhas está na última linha.
115
- * Falso caso contrário.
116
- */
117
- Lexador.prototype.eUltimaLinha = function () {
118
- return this.linha >= this.codigo.length - 1;
119
- };
120
- Lexador.prototype.eFinalDoCodigo = function () {
121
- return this.eUltimaLinha() &&
122
- this.codigo[this.codigo.length - 1].length <= this.atual;
123
- };
124
- Lexador.prototype.avancar = function () {
125
- this.atual += 1;
126
- if (this.eFinalDaLinha() && !this.eUltimaLinha()) {
127
- this.linha++;
128
- this.atual = 0;
129
- }
130
- };
131
- Lexador.prototype.adicionarSimbolo = function (tipo, literal) {
132
- if (literal === void 0) { literal = null; }
133
- var texto = this.codigo[this.linha].substring(this.inicioSimbolo, this.atual);
134
- this.simbolos.push(new Simbolo(tipo, texto, literal, this.linha + 1));
135
- };
136
- Lexador.prototype.proximoIgualA = function (esperado) {
137
- if (this.eFinalDaLinha()) {
138
- return false;
139
- }
140
- if (this.codigo[this.linha][this.atual + 1] !== esperado) {
141
- return false;
142
- }
143
- return true;
144
- };
145
- Lexador.prototype.simboloAtual = function () {
146
- if (this.eFinalDaLinha())
147
- return '\0';
148
- return this.codigo[this.linha].charAt(this.atual);
149
- };
150
- Lexador.prototype.avancarParaProximaLinha = function () {
151
- this.linha++;
152
- this.atual = 0;
153
- };
154
- Lexador.prototype.proximoSimbolo = function () {
155
- if (this.atual + 1 >= this.codigo[this.linha].length)
156
- return '\0';
157
- return this.codigo[this.linha].charAt(this.atual + 1);
158
- };
159
- Lexador.prototype.simboloAnterior = function () {
160
- return this.codigo[this.linha].charAt(this.atual - 1);
161
- };
162
- Lexador.prototype.analisarTexto = function (delimitador) {
163
- if (delimitador === void 0) { delimitador = '"'; }
164
- while (this.simboloAtual() !== delimitador && !this.eFinalDoCodigo()) {
165
- this.avancar();
166
- }
167
- if (this.eFinalDoCodigo()) {
168
- this.erros.push({
169
- linha: this.linha + 1,
170
- caractere: this.simboloAnterior(),
171
- mensagem: 'Texto não finalizado.'
172
- });
173
- return;
174
- }
175
- var valor = this.codigo[this.linha].substring(this.inicioSimbolo + 1, this.atual);
176
- this.adicionarSimbolo(tipos_de_simbolos_1.default.TEXTO, valor);
177
- };
178
- Lexador.prototype.analisarNumero = function () {
179
- while (this.eDigito(this.simboloAtual())) {
180
- this.avancar();
181
- }
182
- if (this.simboloAtual() == '.' && this.eDigito(this.proximoSimbolo())) {
183
- this.avancar();
184
- while (this.eDigito(this.simboloAtual())) {
185
- this.avancar();
186
- }
187
- }
188
- var numeroCompleto = this.codigo[this.linha].substring(this.inicioSimbolo, this.atual);
189
- this.adicionarSimbolo(tipos_de_simbolos_1.default.NUMERO, parseFloat(numeroCompleto));
190
- };
191
- Lexador.prototype.identificarPalavraChave = function () {
192
- while (this.eAlfabetoOuDigito(this.simboloAtual())) {
193
- this.avancar();
194
- }
195
- var codigo = this.codigo[this.linha].substring(this.inicioSimbolo, this.atual);
196
- var tipo = codigo in palavrasReservadas
197
- ? palavrasReservadas[codigo]
198
- : tipos_de_simbolos_1.default.IDENTIFICADOR;
199
- this.adicionarSimbolo(tipo);
200
- };
201
- Lexador.prototype.encontrarFimComentarioAsterisco = function () {
202
- while (!this.eUltimaLinha()) {
203
- this.avancar();
204
- if (this.simboloAtual() === '*' && this.proximoSimbolo() === '/') {
205
- this.avancar();
206
- this.avancar();
207
- break;
208
- }
209
- }
210
- };
211
- Lexador.prototype.analisarToken = function () {
212
- var caractere = this.simboloAtual();
213
- switch (caractere) {
214
- case '[':
215
- this.adicionarSimbolo(tipos_de_simbolos_1.default.COLCHETE_ESQUERDO);
216
- this.avancar();
217
- break;
218
- case ']':
219
- this.adicionarSimbolo(tipos_de_simbolos_1.default.COLCHETE_DIREITO);
220
- this.avancar();
221
- break;
222
- case '(':
223
- this.adicionarSimbolo(tipos_de_simbolos_1.default.PARENTESE_ESQUERDO);
224
- this.avancar();
225
- break;
226
- case ')':
227
- this.adicionarSimbolo(tipos_de_simbolos_1.default.PARENTESE_DIREITO);
228
- this.avancar();
229
- break;
230
- case '{':
231
- this.adicionarSimbolo(tipos_de_simbolos_1.default.CHAVE_ESQUERDA);
232
- this.avancar();
233
- break;
234
- case '}':
235
- this.adicionarSimbolo(tipos_de_simbolos_1.default.CHAVE_DIREITA);
236
- this.avancar();
237
- break;
238
- case ',':
239
- this.adicionarSimbolo(tipos_de_simbolos_1.default.VIRGULA);
240
- this.avancar();
241
- break;
242
- case '.':
243
- this.adicionarSimbolo(tipos_de_simbolos_1.default.PONTO);
244
- this.avancar();
245
- break;
246
- case '-':
247
- this.avancar();
248
- if (this.simboloAtual() === '=') {
249
- this.adicionarSimbolo(tipos_de_simbolos_1.default.MENOS_IGUAL);
250
- this.avancar();
251
- }
252
- else {
253
- this.adicionarSimbolo(tipos_de_simbolos_1.default.SUBTRACAO);
254
- }
255
- break;
256
- case '+':
257
- this.avancar();
258
- if (this.simboloAtual() === '=') {
259
- this.adicionarSimbolo(tipos_de_simbolos_1.default.MAIS_IGUAL);
260
- this.avancar();
261
- }
262
- else {
263
- this.adicionarSimbolo(tipos_de_simbolos_1.default.ADICAO);
264
- }
265
- break;
266
- case ':':
267
- this.adicionarSimbolo(tipos_de_simbolos_1.default.DOIS_PONTOS);
268
- this.avancar();
269
- break;
270
- case '%':
271
- this.adicionarSimbolo(tipos_de_simbolos_1.default.MODULO);
272
- this.avancar();
273
- break;
274
- case '*':
275
- this.inicioSimbolo = this.atual;
276
- this.avancar();
277
- if (this.simboloAtual() === '*') {
278
- this.avancar();
279
- this.adicionarSimbolo(tipos_de_simbolos_1.default.EXPONENCIACAO);
280
- }
281
- else {
282
- this.adicionarSimbolo(tipos_de_simbolos_1.default.MULTIPLICACAO);
283
- }
284
- break;
285
- case '!':
286
- this.avancar();
287
- if (this.simboloAtual() === '=') {
288
- this.adicionarSimbolo(tipos_de_simbolos_1.default.DIFERENTE);
289
- this.avancar();
290
- }
291
- else {
292
- this.adicionarSimbolo(tipos_de_simbolos_1.default.NEGACAO);
293
- }
294
- break;
295
- case '=':
296
- this.avancar();
297
- if (this.simboloAtual() === '=') {
298
- this.adicionarSimbolo(tipos_de_simbolos_1.default.IGUAL_IGUAL);
299
- this.avancar();
300
- }
301
- else {
302
- this.adicionarSimbolo(tipos_de_simbolos_1.default.IGUAL);
303
- }
304
- break;
305
- case '&':
306
- this.adicionarSimbolo(tipos_de_simbolos_1.default.BIT_AND);
307
- this.avancar();
308
- break;
309
- case '~':
310
- this.adicionarSimbolo(tipos_de_simbolos_1.default.BIT_NOT);
311
- this.avancar();
312
- break;
313
- case '|':
314
- this.adicionarSimbolo(tipos_de_simbolos_1.default.BIT_OR);
315
- this.avancar();
316
- break;
317
- case '^':
318
- this.adicionarSimbolo(tipos_de_simbolos_1.default.BIT_XOR);
319
- this.avancar();
320
- break;
321
- case '<':
322
- this.avancar();
323
- if (this.simboloAtual() === '=') {
324
- this.adicionarSimbolo(tipos_de_simbolos_1.default.MENOR_IGUAL);
325
- this.avancar();
326
- }
327
- else if (this.simboloAtual() === '<') {
328
- this.adicionarSimbolo(tipos_de_simbolos_1.default.MENOR_MENOR);
329
- this.avancar();
330
- }
331
- else {
332
- this.adicionarSimbolo(tipos_de_simbolos_1.default.MENOR);
333
- }
334
- break;
335
- case '>':
336
- this.avancar();
337
- if (this.simboloAtual() === '=') {
338
- this.adicionarSimbolo(tipos_de_simbolos_1.default.MAIOR_IGUAL);
339
- this.avancar();
340
- }
341
- else if (this.simboloAtual() === '>') {
342
- this.adicionarSimbolo(tipos_de_simbolos_1.default.MAIOR_MAIOR);
343
- this.avancar();
344
- }
345
- else {
346
- this.adicionarSimbolo(tipos_de_simbolos_1.default.MAIOR);
347
- }
348
- break;
349
- case '/':
350
- this.avancar();
351
- if (this.simboloAtual() == '/') {
352
- this.avancarParaProximaLinha();
353
- }
354
- else if (this.simboloAtual() === '*') {
355
- this.encontrarFimComentarioAsterisco();
356
- }
357
- else {
358
- this.adicionarSimbolo(tipos_de_simbolos_1.default.DIVISAO);
359
- }
360
- break;
361
- // Esta sessão ignora espaços em branco na tokenização.
362
- // Ponto-e-vírgula é opcional em Delégua, então pode apenas ser ignorado.
363
- case ' ':
364
- case '\0':
365
- case '\r':
366
- case '\t':
367
- case ';':
368
- this.avancar();
369
- break;
370
- case '"':
371
- this.avancar();
372
- this.analisarTexto('"');
373
- this.avancar();
374
- break;
375
- case "'":
376
- this.avancar();
377
- this.analisarTexto("'");
378
- this.avancar();
379
- break;
380
- default:
381
- if (this.eDigito(caractere))
382
- this.analisarNumero();
383
- else if (this.eAlfabeto(caractere))
384
- this.identificarPalavraChave();
385
- else {
386
- this.erros.push({
387
- linha: this.linha + 1,
388
- caractere: caractere,
389
- mensagem: 'Caractere inesperado.'
390
- });
391
- this.avancar();
392
- }
393
- }
394
- };
395
- Lexador.prototype.mapear = function (codigo) {
396
- var inicioMapeamento = perf_hooks_1.performance.now();
397
- this.erros = [];
398
- this.simbolos = [];
399
- this.codigo = codigo || [''];
400
- while (!this.eFinalDoCodigo()) {
401
- this.inicioSimbolo = this.atual;
402
- this.analisarToken();
403
- }
404
- var fimMapeamento = perf_hooks_1.performance.now();
405
- if (this.performance) {
406
- console.log("[Lexador] Tempo para mapeamento: ".concat(fimMapeamento - inicioMapeamento, "ms"));
407
- }
408
- return {
409
- simbolos: this.simbolos,
410
- erros: this.erros
411
- };
412
- };
413
- return Lexador;
414
- }());
415
- exports.Lexador = Lexador;
17
+ __exportStar(require("./lexador"), exports);
18
+ __exportStar(require("./simbolo"), exports);
416
19
  //# sourceMappingURL=index.js.map