@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.
- package/.github/CONTRIBUTING.md +37 -0
- package/.github/workflows/principal.yml +3 -1
- package/.release-it.json +2 -1
- package/.vscode/launch.json +43 -8
- package/README.md +9 -1
- package/bin/delegua +2 -2
- package/bin/delegua.cmd +1 -1
- package/index.ts +29 -0
- package/package.json +9 -4
- package/src/ambiente.ts +56 -0
- package/src/avaliador-sintatico/dialetos/egua-classico.ts +983 -0
- package/src/avaliador-sintatico/dialetos/index.ts +1 -0
- package/src/avaliador-sintatico/index.ts +983 -0
- package/src/avaliador-sintatico/parser-error.ts +1 -0
- package/src/{lib/globalLib.js → bibliotecas/bibliotecaGlobal.ts} +34 -34
- package/src/{lib/importStdlib.js → bibliotecas/importarBiblioteca.ts} +9 -9
- package/src/construtos/assign-subscript.ts +19 -0
- package/src/construtos/atribuir.ts +17 -0
- package/src/construtos/binario.ts +19 -0
- package/src/construtos/call.ts +19 -0
- package/src/construtos/conjunto.ts +19 -0
- package/src/construtos/dicionario.ts +17 -0
- package/src/construtos/expr.ts +3 -0
- package/src/construtos/funcao.ts +17 -0
- package/src/construtos/get.ts +17 -0
- package/src/construtos/grouping.ts +15 -0
- package/src/construtos/index.ts +18 -0
- package/src/construtos/isto.ts +15 -0
- package/src/construtos/literal.ts +15 -0
- package/src/construtos/logical.ts +19 -0
- package/src/construtos/subscript.ts +19 -0
- package/src/construtos/super.ts +17 -0
- package/src/construtos/unario.ts +17 -0
- package/src/construtos/variavel.ts +15 -0
- package/src/construtos/vetor.ts +15 -0
- package/src/{stmt.js → declaracoes/index.ts} +79 -51
- package/src/delegua.ts +156 -0
- package/src/estruturas/callable.ts +11 -0
- package/src/estruturas/{classe.js → classe.ts} +11 -7
- package/src/estruturas/{funcaoPadrao.js → funcao-padrao.ts} +8 -4
- package/src/estruturas/funcao.ts +70 -0
- package/src/estruturas/index.ts +6 -0
- package/src/estruturas/{instancia.js → instancia.ts} +12 -9
- package/src/estruturas/modulo.ts +11 -0
- package/src/excecoes/break-exception.ts +1 -0
- package/src/excecoes/continue-exception.ts +1 -0
- package/src/excecoes/erro-em-tempo-de-execucao.ts +11 -0
- package/src/excecoes/index.ts +4 -0
- package/src/excecoes/return-exception.ts +10 -0
- package/src/interfaces/avaliador-sintatico-interface.ts +58 -0
- package/src/interfaces/index.ts +6 -0
- package/src/interfaces/interpretador-interface.ts +52 -0
- package/src/interfaces/lexador-interface.ts +24 -0
- package/src/interfaces/pilha-interface.ts +7 -0
- package/src/interfaces/resolvedor-interface.ts +49 -0
- package/src/interfaces/simbolo-interface.ts +6 -0
- package/src/interpretador/dialetos/egua-classico.ts +825 -0
- package/src/interpretador/dialetos/index.ts +1 -0
- package/src/interpretador/index.ts +825 -0
- package/src/lexador/dialetos/egua-classico.ts +333 -0
- package/src/lexador/dialetos/index.ts +1 -0
- package/src/{lexer.js → lexador/index.ts} +38 -21
- package/src/resolvedor/Pilha.ts +29 -0
- package/src/resolvedor/ResolverError.ts +8 -0
- package/src/resolvedor/dialetos/egua-classico.ts +412 -0
- package/src/resolvedor/dialetos/index.ts +1 -0
- package/src/{resolver.js → resolvedor/index.ts} +101 -114
- package/src/{tiposDeSimbolos.js → tiposDeSimbolos.ts} +21 -22
- package/src/web.ts +75 -0
- package/tsconfig.json +11 -0
- package/indice.js +0 -14
- package/src/ambiente.js +0 -53
- package/src/delegua.js +0 -102
- package/src/erro.js +0 -18
- package/src/estruturas/callable.js +0 -5
- package/src/estruturas/funcao.js +0 -62
- package/src/estruturas/modulo.js +0 -9
- package/src/expr.js +0 -228
- package/src/interpretador.js +0 -802
- package/src/parser.js +0 -822
- 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,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,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
|
+
}
|