@designliquido/delegua 0.0.2 → 0.1.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 (81) hide show
  1. package/.github/CONTRIBUTING.md +37 -0
  2. package/.github/workflows/principal.yml +3 -1
  3. package/.release-it.json +2 -1
  4. package/.vscode/launch.json +43 -8
  5. package/README.md +9 -1
  6. package/bin/delegua +2 -2
  7. package/bin/delegua.cmd +1 -1
  8. package/index.ts +29 -0
  9. package/package.json +9 -4
  10. package/src/ambiente.ts +56 -0
  11. package/src/avaliador-sintatico/dialetos/egua-classico.ts +983 -0
  12. package/src/avaliador-sintatico/dialetos/index.ts +1 -0
  13. package/src/avaliador-sintatico/index.ts +983 -0
  14. package/src/avaliador-sintatico/parser-error.ts +1 -0
  15. package/src/{lib/globalLib.js → bibliotecas/bibliotecaGlobal.ts} +34 -34
  16. package/src/{lib/importStdlib.js → bibliotecas/importarBiblioteca.ts} +9 -9
  17. package/src/construtos/assign-subscript.ts +19 -0
  18. package/src/construtos/atribuir.ts +17 -0
  19. package/src/construtos/binario.ts +19 -0
  20. package/src/construtos/call.ts +19 -0
  21. package/src/construtos/conjunto.ts +19 -0
  22. package/src/construtos/dicionario.ts +17 -0
  23. package/src/construtos/expr.ts +3 -0
  24. package/src/construtos/funcao.ts +17 -0
  25. package/src/construtos/get.ts +17 -0
  26. package/src/construtos/grouping.ts +15 -0
  27. package/src/construtos/index.ts +18 -0
  28. package/src/construtos/isto.ts +15 -0
  29. package/src/construtos/literal.ts +15 -0
  30. package/src/construtos/logical.ts +19 -0
  31. package/src/construtos/subscript.ts +19 -0
  32. package/src/construtos/super.ts +17 -0
  33. package/src/construtos/unario.ts +17 -0
  34. package/src/construtos/variavel.ts +15 -0
  35. package/src/construtos/vetor.ts +15 -0
  36. package/src/{stmt.js → declaracoes/index.ts} +79 -51
  37. package/src/delegua.ts +156 -0
  38. package/src/estruturas/callable.ts +11 -0
  39. package/src/estruturas/{classe.js → classe.ts} +11 -7
  40. package/src/estruturas/{funcaoPadrao.js → funcao-padrao.ts} +8 -4
  41. package/src/estruturas/funcao.ts +70 -0
  42. package/src/estruturas/index.ts +6 -0
  43. package/src/estruturas/{instancia.js → instancia.ts} +12 -9
  44. package/src/estruturas/modulo.ts +11 -0
  45. package/src/excecoes/break-exception.ts +1 -0
  46. package/src/excecoes/continue-exception.ts +1 -0
  47. package/src/excecoes/erro-em-tempo-de-execucao.ts +11 -0
  48. package/src/excecoes/index.ts +4 -0
  49. package/src/excecoes/return-exception.ts +10 -0
  50. package/src/interfaces/avaliador-sintatico-interface.ts +58 -0
  51. package/src/interfaces/index.ts +6 -0
  52. package/src/interfaces/interpretador-interface.ts +52 -0
  53. package/src/interfaces/lexador-interface.ts +24 -0
  54. package/src/interfaces/pilha-interface.ts +7 -0
  55. package/src/interfaces/resolvedor-interface.ts +49 -0
  56. package/src/interfaces/simbolo-interface.ts +6 -0
  57. package/src/interpretador/dialetos/egua-classico.ts +825 -0
  58. package/src/interpretador/dialetos/index.ts +1 -0
  59. package/src/interpretador/index.ts +825 -0
  60. package/src/lexador/dialetos/egua-classico.ts +333 -0
  61. package/src/lexador/dialetos/index.ts +1 -0
  62. package/src/{lexer.js → lexador/index.ts} +38 -21
  63. package/src/resolvedor/Pilha.ts +29 -0
  64. package/src/resolvedor/ResolverError.ts +8 -0
  65. package/src/resolvedor/dialetos/egua-classico.ts +412 -0
  66. package/src/resolvedor/dialetos/index.ts +1 -0
  67. package/src/{resolver.js → resolvedor/index.ts} +101 -114
  68. package/src/{tiposDeSimbolos.js → tiposDeSimbolos.ts} +21 -22
  69. package/src/web.ts +75 -0
  70. package/tsconfig.json +11 -0
  71. package/indice.js +0 -14
  72. package/src/ambiente.js +0 -53
  73. package/src/delegua.js +0 -102
  74. package/src/erro.js +0 -18
  75. package/src/estruturas/callable.js +0 -5
  76. package/src/estruturas/funcao.js +0 -62
  77. package/src/estruturas/modulo.js +0 -9
  78. package/src/expr.js +0 -228
  79. package/src/interpretador.js +0 -802
  80. package/src/parser.js +0 -822
  81. package/src/web.js +0 -70
@@ -0,0 +1,58 @@
1
+ import { SimboloInterface } from "./simbolo-interface";
2
+
3
+ export interface AvaliadorSintaticoInterface {
4
+ simbolos: SimboloInterface[];
5
+ Delegua: any;
6
+
7
+ atual: number;
8
+ ciclos: number;
9
+
10
+ sincronizar(): void;
11
+ erro(simbolo: any, mensagemDeErro: any): any;
12
+ consumir(tipo: any, mensagemDeErro: any): any;
13
+ verificar(tipo: any): boolean;
14
+ verificarProximo(tipo: any): boolean;
15
+ peek(): any;
16
+ voltar(): any;
17
+ seek(posicao: number): any;
18
+ estaNoFinal(): boolean;
19
+ avancar(): any;
20
+ match(...argumentos: any[]): boolean;
21
+ primario(): any;
22
+ finalizarChamada(callee: any): any;
23
+ chamar(): any;
24
+ unario(): any;
25
+ exponent(): any;
26
+ multiplicar(): any;
27
+ adicionar(): any;
28
+ bitFill(): any;
29
+ bitE(): any;
30
+ bitOu(): any;
31
+ comparar(): any;
32
+ equality(): any;
33
+ em(): any;
34
+ e(): any;
35
+ ou(): any;
36
+ atribuir(): any;
37
+ expressao(): any;
38
+ declaracaoMostrar(): any;
39
+ expressionStatement(): any;
40
+ block(): any;
41
+ declaracaoSe(): any;
42
+ whileStatement(): any;
43
+ forStatement(): any;
44
+ breakStatement(): any;
45
+ declaracaoContinue(): any;
46
+ declaracaoRetorna(): any;
47
+ declaracaoEscolha(): any;
48
+ importStatement(): any;
49
+ tryStatement(): any;
50
+ doStatement(): any;
51
+ statement(): any;
52
+ declaracaoDeVariavel(): any;
53
+ funcao(kind: any): any;
54
+ corpoDaFuncao(kind: any): any;
55
+ declaracaoDeClasse(): any;
56
+ declaracao(): any;
57
+ analisar(): any;
58
+ }
@@ -0,0 +1,6 @@
1
+ export * from "./avaliador-sintatico-interface";
2
+ export * from "./interpretador-interface";
3
+ export * from "./lexador-interface";
4
+ export * from "./pilha-interface"
5
+ export * from "./resolvedor-interface";
6
+ export * from "./simbolo-interface"
@@ -0,0 +1,52 @@
1
+ export interface InterpretadorInterface {
2
+ Delegua: any;
3
+ diretorioBase: any;
4
+ global: any;
5
+ ambiente: any;
6
+ locais: any;
7
+
8
+ resolver(expr: any, depth: any): void;
9
+ visitLiteralExpr(expr: any): any;
10
+ avaliar(expr: any): any;
11
+ visitGroupingExpr(expr: any): any;
12
+ eVerdadeiro(objeto: any): boolean;
13
+ checkNumberOperand(operador: any, operand: any): void;
14
+ visitUnaryExpr(expr: any): any;
15
+ eIgual(esquerda: any, direita: any): any;
16
+ checkNumberOperands(operador: any, direita: any, esquerda: any): void;
17
+ visitBinaryExpr(expr: any): any;
18
+ visitCallExpr(expr: any): any;
19
+ visitAssignExpr(expr: any): any;
20
+ procurarVariavel(nome: any, expr: any): any;
21
+ visitVariableExpr(expr: any): any;
22
+ visitExpressionStmt(stmt: any): any;
23
+ visitLogicalExpr(expr: any): any;
24
+ visitIfStmt(stmt: any): any;
25
+ visitForStmt(stmt: any): any;
26
+ visitDoStmt(stmt: any): any;
27
+ visitSwitchStmt(stmt: any): any;
28
+ visitTryStmt(stmt: any): any;
29
+ visitWhileStmt(stmt: any): any;
30
+ visitImportStmt(stmt: any): any;
31
+ visitPrintStmt(stmt: any): any;
32
+ executeBlock(declaracoes: any, ambiente: any): void;
33
+ visitBlockStmt(stmt: any): null;
34
+ visitVarStmt(stmt: any): null;
35
+ visitContinueStmt(stmt?: any): void;
36
+ visitBreakStmt(stmt?: any): void;
37
+ visitReturnStmt(stmt: any): void;
38
+ visitFunctionExpr(expr: any): any;
39
+ visitAssignSubscriptExpr(expr: any): void;
40
+ visitSubscriptExpr(expressao: any): any;
41
+ visitSetExpr(expr: any): any;
42
+ visitFunctionStmt(stmt: any): any;
43
+ visitClassStmt(stmt: any): any;
44
+ visitGetExpr(expr: any): any;
45
+ visitThisExpr(expr: any): any;
46
+ visitDictionaryExpr(expr: any): any;
47
+ visitArrayExpr(expr: any): any;
48
+ visitSuperExpr(expr: any): any;
49
+ stringify(objeto: any): any;
50
+ executar(stmt: any, imprimirResultado: boolean): void;
51
+ interpretar(declaracoes: any): void;
52
+ }
@@ -0,0 +1,24 @@
1
+ export interface LexadorInterface {
2
+ Delegua: any;
3
+ codigo: any;
4
+ simbolos: any;
5
+ inicio: any;
6
+ atual: any;
7
+ linha: any;
8
+
9
+ eDigito(caractere: any): boolean;
10
+ eAlfabeto(caractere: any): boolean;
11
+ eAlfabetoOuDigito(caractere: any): boolean;
12
+ eFinalDoCodigo(): boolean;
13
+ avancar(): void;
14
+ adicionarSimbolo(tipo: any, literal: any): void;
15
+ match(esperado: any): boolean;
16
+ peek(): any;
17
+ peekNext(): any;
18
+ voltar(): any;
19
+ analisarTexto(texto: string): void;
20
+ analisarNumero(): void;
21
+ identificarPalavraChave(): void;
22
+ scanToken(): void;
23
+ scan(): any;
24
+ }
@@ -0,0 +1,7 @@
1
+ export interface PilhaInterface {
2
+ pilha: Array<any>;
3
+ empilhar(item: any);
4
+ eVazio(item: any): Boolean;
5
+ peek(): Array<any>;
6
+ removerUltimo(): Array<any>;
7
+ }
@@ -0,0 +1,49 @@
1
+ export interface ResolvedorInterface {
2
+ interpretador: any;
3
+ Delegua: any;
4
+ escopos: any;
5
+ FuncaoAtual: any;
6
+ ClasseAtual: any;
7
+ cicloAtual: any;
8
+
9
+ definir(nome: any): void;
10
+ declarar(nome: any): void;
11
+ inicioDoEscopo(): void;
12
+ finalDoEscopo(): void;
13
+ resolver(declaracoes: any): void;
14
+ resolverLocal(expr: any, nome: any): void;
15
+ visitBlockStmt(stmt: any): any;
16
+ visitVariableExpr(expr: any): any;
17
+ visitVarStmt(stmt: any): any;
18
+ visitAssignExpr(expr: any): any;
19
+ resolverFuncao(funcao: any, funcType: any): void;
20
+ visitFunctionStmt(stmt: any): any;
21
+ visitFunctionExpr(stmt: any): any;
22
+ visitTryStmt(stmt: any): any;
23
+ visitClassStmt(stmt: any): any;
24
+ visitSuperExpr(expr: any): any;
25
+ visitGetExpr(expr: any): any;
26
+ visitExpressionStmt(stmt: any): any;
27
+ visitIfStmt(stmt: any): any;
28
+ visitImportStmt(stmt: any): void;
29
+ visitPrintStmt(stmt: any): void;
30
+ visitReturnStmt(stmt: any): any;
31
+ visitSwitchStmt(stmt: any): void;
32
+ visitWhileStmt(stmt: any): any;
33
+ visitForStmt(stmt: any): any;
34
+ visitDoStmt(stmt: any): any;
35
+ visitBinaryExpr(expr: any): any;
36
+ visitCallExpr(expr: any): any;
37
+ visitGroupingExpr(expr: any): any;
38
+ visitDictionaryExpr(expr: any): any;
39
+ visitArrayExpr(expr: any): any;
40
+ visitSubscriptExpr(expr: any): any;
41
+ visitContinueStmt(stmt?: any): any;
42
+ visitBreakStmt(stmt?: any): any;
43
+ visitAssignsubscriptExpr(expr?: any): any;
44
+ visitLiteralExpr(expr?: any): any;
45
+ visitLogicalExpr(expr?: any): any;
46
+ visitUnaryExpr(expr?: any): any;
47
+ visitSetExpr(expr?: any): any;
48
+ visitThisExpr(expr?: any): any;
49
+ }
@@ -0,0 +1,6 @@
1
+ export interface SimboloInterface {
2
+ lexema: string,
3
+ tipo: string,
4
+ literal: string,
5
+ linha: string
6
+ }