@designliquido/delegua 0.0.1 → 0.1.2
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/README.md +14 -7
- package/bin/delegua.cmd +1 -0
- package/bin/package.json +51 -0
- package/index.js +25 -12
- package/index.js.map +1 -0
- package/package.json +51 -37
- package/src/ambiente.js +49 -0
- package/src/ambiente.js.map +1 -0
- package/src/avaliador-sintatico/dialetos/egua-classico.js +635 -0
- package/src/avaliador-sintatico/dialetos/egua-classico.js.map +1 -0
- package/src/avaliador-sintatico/dialetos/index.js +14 -0
- package/src/avaliador-sintatico/dialetos/index.js.map +1 -0
- package/src/avaliador-sintatico/index.js +635 -0
- package/src/avaliador-sintatico/index.js.map +1 -0
- package/src/avaliador-sintatico/parser-error.js +27 -0
- package/src/avaliador-sintatico/parser-error.js.map +1 -0
- package/src/bibliotecas/bibliotecaGlobal.js +97 -0
- package/src/bibliotecas/bibliotecaGlobal.js.map +1 -0
- package/src/bibliotecas/importarBiblioteca.js +32 -0
- package/src/bibliotecas/importarBiblioteca.js.map +1 -0
- package/src/construtos/assign-subscript.js +35 -0
- package/src/construtos/assign-subscript.js.map +1 -0
- package/src/construtos/atribuir.js +34 -0
- package/src/construtos/atribuir.js.map +1 -0
- package/src/construtos/binario.js +35 -0
- package/src/construtos/binario.js.map +1 -0
- package/src/construtos/call.js +35 -0
- package/src/construtos/call.js.map +1 -0
- package/src/construtos/conjunto.js +35 -0
- package/src/construtos/conjunto.js.map +1 -0
- package/src/construtos/dicionario.js +34 -0
- package/src/construtos/dicionario.js.map +1 -0
- package/src/construtos/expr.js +11 -0
- package/src/construtos/expr.js.map +1 -0
- package/src/construtos/funcao.js +34 -0
- package/src/construtos/funcao.js.map +1 -0
- package/src/construtos/get.js +34 -0
- package/src/construtos/get.js.map +1 -0
- package/src/construtos/grouping.js +33 -0
- package/src/construtos/grouping.js.map +1 -0
- package/src/construtos/index.js +31 -0
- package/src/construtos/index.js.map +1 -0
- package/src/construtos/isto.js +33 -0
- package/src/construtos/isto.js.map +1 -0
- package/src/construtos/literal.js +33 -0
- package/src/construtos/literal.js.map +1 -0
- package/src/construtos/logical.js +35 -0
- package/src/construtos/logical.js.map +1 -0
- package/src/construtos/subscript.js +35 -0
- package/src/construtos/subscript.js.map +1 -0
- package/src/construtos/super.js +34 -0
- package/src/construtos/super.js.map +1 -0
- package/src/construtos/unario.js +34 -0
- package/src/construtos/unario.js.map +1 -0
- package/src/construtos/variavel.js +33 -0
- package/src/construtos/variavel.js.map +1 -0
- package/src/construtos/vetor.js +33 -0
- package/src/construtos/vetor.js.map +1 -0
- package/src/declaracoes/index.js +249 -0
- package/src/declaracoes/index.js.map +1 -0
- package/src/delegua.js +132 -0
- package/src/delegua.js.map +1 -0
- package/src/estruturas/callable.js +16 -0
- package/src/estruturas/callable.js.map +1 -0
- package/src/estruturas/classe.js +57 -0
- package/src/estruturas/classe.js.map +1 -0
- package/src/estruturas/funcao-padrao.js +38 -0
- package/src/estruturas/funcao-padrao.js.map +1 -0
- package/src/estruturas/funcao.js +81 -0
- package/src/estruturas/funcao.js.map +1 -0
- package/src/estruturas/index.js +19 -0
- package/src/estruturas/index.js.map +1 -0
- package/src/estruturas/instancia.js +28 -0
- package/src/estruturas/instancia.js.map +1 -0
- package/src/estruturas/modulo.js +15 -0
- package/src/estruturas/modulo.js.map +1 -0
- package/src/excecoes/break-exception.js +27 -0
- package/src/excecoes/break-exception.js.map +1 -0
- package/src/excecoes/continue-exception.js +27 -0
- package/src/excecoes/continue-exception.js.map +1 -0
- package/src/excecoes/erro-em-tempo-de-execucao.js +31 -0
- package/src/excecoes/erro-em-tempo-de-execucao.js.map +1 -0
- package/src/excecoes/index.js +17 -0
- package/src/excecoes/index.js.map +1 -0
- package/src/excecoes/return-exception.js +30 -0
- package/src/excecoes/return-exception.js.map +1 -0
- package/src/interfaces/avaliador-sintatico-interface.js +3 -0
- package/src/interfaces/avaliador-sintatico-interface.js.map +1 -0
- package/src/interfaces/index.js +19 -0
- package/src/interfaces/index.js.map +1 -0
- package/src/interfaces/interpretador-interface.js +3 -0
- package/src/interfaces/interpretador-interface.js.map +1 -0
- package/src/interfaces/lexador-interface.js +3 -0
- package/src/interfaces/lexador-interface.js.map +1 -0
- package/src/interfaces/pilha-interface.js +3 -0
- package/src/interfaces/pilha-interface.js.map +1 -0
- package/src/interfaces/resolvedor-interface.js +3 -0
- package/src/interfaces/resolvedor-interface.js.map +1 -0
- package/src/interfaces/simbolo-interface.js +3 -0
- package/src/interfaces/simbolo-interface.js.map +1 -0
- package/src/interpretador/dialetos/egua-classico.js +665 -0
- package/src/interpretador/dialetos/egua-classico.js.map +1 -0
- package/src/interpretador/dialetos/index.js +14 -0
- package/src/interpretador/dialetos/index.js.map +1 -0
- package/src/interpretador/index.js +665 -0
- package/src/interpretador/index.js.map +1 -0
- package/src/lexador/dialetos/egua-classico.js +287 -0
- package/src/lexador/dialetos/egua-classico.js.map +1 -0
- package/src/lexador/dialetos/index.js +14 -0
- package/src/lexador/dialetos/index.js.map +1 -0
- package/src/lexador/index.js +287 -0
- package/src/lexador/index.js.map +1 -0
- package/src/resolvedor/Pilha.js +27 -0
- package/src/resolvedor/Pilha.js.map +1 -0
- package/src/resolvedor/ResolverError.js +29 -0
- package/src/resolvedor/ResolverError.js.map +1 -0
- package/src/resolvedor/dialetos/egua-classico.js +331 -0
- package/src/resolvedor/dialetos/egua-classico.js.map +1 -0
- package/src/resolvedor/dialetos/index.js +14 -0
- package/src/resolvedor/dialetos/index.js.map +1 -0
- package/src/resolvedor/index.js +331 -0
- package/src/resolvedor/index.js.map +1 -0
- package/src/tiposDeSimbolos.js +69 -0
- package/src/tiposDeSimbolos.js.map +1 -0
- package/src/web.js +65 -69
- package/src/web.js.map +1 -0
- package/.vscode/launch.json +0 -29
- package/.vscode/settings.json +0 -3
- package/LICENSE +0 -21
- package/babel.config.js +0 -1
- package/index.html +0 -43
- package/src/egua.js +0 -102
- package/src/environment.js +0 -53
- package/src/errors.js +0 -17
- package/src/expr.js +0 -228
- package/src/interpreter.js +0 -798
- package/src/lexer.js +0 -315
- package/src/lib/__tests__/eguamat.test.js +0 -101
- package/src/lib/eguamat.js +0 -725
- package/src/lib/globalLib.js +0 -171
- package/src/lib/importStdlib.js +0 -41
- package/src/lib/tempo.js +0 -50
- package/src/parser.js +0 -826
- package/src/resolver.js +0 -425
- package/src/stmt.js +0 -215
- package/src/structures/callable.js +0 -5
- package/src/structures/class.js +0 -43
- package/src/structures/function.js +0 -62
- package/src/structures/instance.js +0 -27
- package/src/structures/module.js +0 -9
- package/src/structures/standardFn.js +0 -18
- package/src/tokenTypes.js +0 -67
- package/testes/testes.egua +0 -631
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
const Callable = require("./callable.js");
|
|
2
|
-
const Environment = require("../environment.js");
|
|
3
|
-
const ReturnExpection = require("../errors.js").ReturnException;
|
|
4
|
-
|
|
5
|
-
module.exports = class EguaFunction extends Callable {
|
|
6
|
-
constructor(name, declaration, closure, isInitializer = false) {
|
|
7
|
-
super();
|
|
8
|
-
this.name = name;
|
|
9
|
-
this.declaration = declaration;
|
|
10
|
-
this.closure = closure;
|
|
11
|
-
this.isInitializer = isInitializer;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
arity() {
|
|
15
|
-
return this.declaration.params.length;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
toString() {
|
|
19
|
-
if (this.name === null) return "<função>";
|
|
20
|
-
return `<função ${this.name}>`;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
call(interpreter, args) {
|
|
24
|
-
let environment = new Environment(this.closure);
|
|
25
|
-
let params = this.declaration.params;
|
|
26
|
-
for (let i = 0; i < params.length; i++) {
|
|
27
|
-
let param = params[i];
|
|
28
|
-
|
|
29
|
-
let name = param["name"].lexeme;
|
|
30
|
-
let value = args[i];
|
|
31
|
-
if (args[i] === null) {
|
|
32
|
-
value = param["default"] ? param["default"].value : null;
|
|
33
|
-
}
|
|
34
|
-
environment.defineVar(name, value);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
try {
|
|
38
|
-
interpreter.executeBlock(this.declaration.body, environment);
|
|
39
|
-
} catch (error) {
|
|
40
|
-
if (error instanceof ReturnExpection) {
|
|
41
|
-
if (this.isInitializer) return this.closure.getVarAt(0, "isto");
|
|
42
|
-
return error.value;
|
|
43
|
-
} else {
|
|
44
|
-
throw error;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
if (this.isInitializer) return this.closure.getVarAt(0, "isto");
|
|
49
|
-
return null;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
bind(instance) {
|
|
53
|
-
let environment = new Environment(this.closure);
|
|
54
|
-
environment.defineVar("isto", instance);
|
|
55
|
-
return new EguaFunction(
|
|
56
|
-
this.name,
|
|
57
|
-
this.declaration,
|
|
58
|
-
environment,
|
|
59
|
-
this.isInitializer
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
const RuntimeError = require("../errors.js").RuntimeError;
|
|
2
|
-
|
|
3
|
-
module.exports = class EguaInstance {
|
|
4
|
-
constructor(creatorClass) {
|
|
5
|
-
this.creatorClass = creatorClass;
|
|
6
|
-
this.fields = {};
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
get(name) {
|
|
10
|
-
if (this.fields.hasOwnProperty(name.lexeme)) {
|
|
11
|
-
return this.fields[name.lexeme];
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
let method = this.creatorClass.findMethod(name.lexeme);
|
|
15
|
-
if (method) return method.bind(this);
|
|
16
|
-
|
|
17
|
-
throw new RuntimeError(name, "Método indefinido não recuperado.");
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
set(name, value) {
|
|
21
|
-
this.fields[name.lexeme] = value;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
toString() {
|
|
25
|
-
return "<Objeto " + this.creatorClass.name + ">";
|
|
26
|
-
}
|
|
27
|
-
};
|
package/src/structures/module.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
const Callable = require("./callable.js");
|
|
2
|
-
|
|
3
|
-
module.exports = class StandardFn extends Callable {
|
|
4
|
-
constructor(arityValue, func) {
|
|
5
|
-
super();
|
|
6
|
-
this.arityValue = arityValue;
|
|
7
|
-
this.func = func;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
call(interpreter, args, token) {
|
|
11
|
-
this.token = token;
|
|
12
|
-
return this.func.apply(this, args);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
toString() {
|
|
16
|
-
return "<função>";
|
|
17
|
-
}
|
|
18
|
-
};
|
package/src/tokenTypes.js
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
BANG: "BANG",
|
|
3
|
-
BANG_EQUAL: "BANG_EQUAL",
|
|
4
|
-
BIT_AND: "BIT_AND",
|
|
5
|
-
BIT_OR: "BIT_OR",
|
|
6
|
-
BIT_XOR: "BIT_XOR",
|
|
7
|
-
BIT_NOT: "BIT_NOT",
|
|
8
|
-
CASO: "CASO",
|
|
9
|
-
CLASSE: "CLASSE",
|
|
10
|
-
COLON: "COLON",
|
|
11
|
-
COMMA: "COMMA",
|
|
12
|
-
CONTINUA: "CONTINUA",
|
|
13
|
-
DOT: "DOT",
|
|
14
|
-
E: "E",
|
|
15
|
-
EM: "EM",
|
|
16
|
-
ENQUANTO: "ENQUANTO",
|
|
17
|
-
EOF: "EOF",
|
|
18
|
-
EQUAL: "EQUAL",
|
|
19
|
-
EQUAL_EQUAL: "EQUAL_EQUAL",
|
|
20
|
-
ESCOLHA: "ESCOLHA",
|
|
21
|
-
ESCREVA: "ESCREVA",
|
|
22
|
-
FALSO: "FALSO",
|
|
23
|
-
FAZER: "FAZER",
|
|
24
|
-
FINALMENTE: "FINALMENTE",
|
|
25
|
-
FUNCAO: "FUNCAO",
|
|
26
|
-
GREATER: "GREATER",
|
|
27
|
-
GREATER_EQUAL: "GREATER_EQUAL",
|
|
28
|
-
GREATER_GREATER: "GREATER_GREATER",
|
|
29
|
-
HERDA: "HERDA",
|
|
30
|
-
IDENTIFIER: "IDENTIFIER",
|
|
31
|
-
IMPORTAR: "IMPORTAR",
|
|
32
|
-
ISTO: "ISTO",
|
|
33
|
-
LEFT_BRACE: "LEFT_BRACE",
|
|
34
|
-
LEFT_PAREN: "LEFT_PAREN",
|
|
35
|
-
LEFT_SQUARE_BRACKET: "LEFT_SQUARE_BRACKET",
|
|
36
|
-
LESS: "LESS",
|
|
37
|
-
LESS_EQUAL: "LESS_EQUAL",
|
|
38
|
-
LESSER_LESSER: "LESSER_LESSER",
|
|
39
|
-
MAIS_IGUAL: "MAIS_IGUAL",
|
|
40
|
-
MENOR_IGUAL: "MENOR_IGUAL",
|
|
41
|
-
MINUS: "MINUS",
|
|
42
|
-
MODULUS: "MODULUS",
|
|
43
|
-
NULO: "NULO",
|
|
44
|
-
NUMBER: "NUMBER",
|
|
45
|
-
OU: "OU",
|
|
46
|
-
PADRAO: "PADRAO",
|
|
47
|
-
PARA: "PARA",
|
|
48
|
-
PAUSA: "PAUSA",
|
|
49
|
-
PEGUE: "PEGUE",
|
|
50
|
-
PLUS: "PLUS",
|
|
51
|
-
RETORNA: "RETORNA",
|
|
52
|
-
RIGHT_PAREN: "RIGHT_PAREN",
|
|
53
|
-
RIGHT_BRACE: "RIGHT_BRACE",
|
|
54
|
-
RIGHT_SQUARE_BRACKET: "RIGHT_SQUARE_BRACKET",
|
|
55
|
-
SEMICOLON: "SEMICOLON",
|
|
56
|
-
SLASH: "SLASH",
|
|
57
|
-
STAR: "STAR",
|
|
58
|
-
STAR_STAR: "STAR_STAR",
|
|
59
|
-
STRING: "STRING",
|
|
60
|
-
SE: "SE",
|
|
61
|
-
SENAO: "SENAO",
|
|
62
|
-
SENAOSE: "SENAOSE",
|
|
63
|
-
SUPER: "SUPER",
|
|
64
|
-
TENTE: "TENTE",
|
|
65
|
-
VAR: "VAR",
|
|
66
|
-
VERDADEIRO: "VERDADEIRO"
|
|
67
|
-
};
|