@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.
Files changed (153) hide show
  1. package/README.md +14 -7
  2. package/bin/delegua.cmd +1 -0
  3. package/bin/package.json +51 -0
  4. package/index.js +25 -12
  5. package/index.js.map +1 -0
  6. package/package.json +51 -37
  7. package/src/ambiente.js +49 -0
  8. package/src/ambiente.js.map +1 -0
  9. package/src/avaliador-sintatico/dialetos/egua-classico.js +635 -0
  10. package/src/avaliador-sintatico/dialetos/egua-classico.js.map +1 -0
  11. package/src/avaliador-sintatico/dialetos/index.js +14 -0
  12. package/src/avaliador-sintatico/dialetos/index.js.map +1 -0
  13. package/src/avaliador-sintatico/index.js +635 -0
  14. package/src/avaliador-sintatico/index.js.map +1 -0
  15. package/src/avaliador-sintatico/parser-error.js +27 -0
  16. package/src/avaliador-sintatico/parser-error.js.map +1 -0
  17. package/src/bibliotecas/bibliotecaGlobal.js +97 -0
  18. package/src/bibliotecas/bibliotecaGlobal.js.map +1 -0
  19. package/src/bibliotecas/importarBiblioteca.js +32 -0
  20. package/src/bibliotecas/importarBiblioteca.js.map +1 -0
  21. package/src/construtos/assign-subscript.js +35 -0
  22. package/src/construtos/assign-subscript.js.map +1 -0
  23. package/src/construtos/atribuir.js +34 -0
  24. package/src/construtos/atribuir.js.map +1 -0
  25. package/src/construtos/binario.js +35 -0
  26. package/src/construtos/binario.js.map +1 -0
  27. package/src/construtos/call.js +35 -0
  28. package/src/construtos/call.js.map +1 -0
  29. package/src/construtos/conjunto.js +35 -0
  30. package/src/construtos/conjunto.js.map +1 -0
  31. package/src/construtos/dicionario.js +34 -0
  32. package/src/construtos/dicionario.js.map +1 -0
  33. package/src/construtos/expr.js +11 -0
  34. package/src/construtos/expr.js.map +1 -0
  35. package/src/construtos/funcao.js +34 -0
  36. package/src/construtos/funcao.js.map +1 -0
  37. package/src/construtos/get.js +34 -0
  38. package/src/construtos/get.js.map +1 -0
  39. package/src/construtos/grouping.js +33 -0
  40. package/src/construtos/grouping.js.map +1 -0
  41. package/src/construtos/index.js +31 -0
  42. package/src/construtos/index.js.map +1 -0
  43. package/src/construtos/isto.js +33 -0
  44. package/src/construtos/isto.js.map +1 -0
  45. package/src/construtos/literal.js +33 -0
  46. package/src/construtos/literal.js.map +1 -0
  47. package/src/construtos/logical.js +35 -0
  48. package/src/construtos/logical.js.map +1 -0
  49. package/src/construtos/subscript.js +35 -0
  50. package/src/construtos/subscript.js.map +1 -0
  51. package/src/construtos/super.js +34 -0
  52. package/src/construtos/super.js.map +1 -0
  53. package/src/construtos/unario.js +34 -0
  54. package/src/construtos/unario.js.map +1 -0
  55. package/src/construtos/variavel.js +33 -0
  56. package/src/construtos/variavel.js.map +1 -0
  57. package/src/construtos/vetor.js +33 -0
  58. package/src/construtos/vetor.js.map +1 -0
  59. package/src/declaracoes/index.js +249 -0
  60. package/src/declaracoes/index.js.map +1 -0
  61. package/src/delegua.js +132 -0
  62. package/src/delegua.js.map +1 -0
  63. package/src/estruturas/callable.js +16 -0
  64. package/src/estruturas/callable.js.map +1 -0
  65. package/src/estruturas/classe.js +57 -0
  66. package/src/estruturas/classe.js.map +1 -0
  67. package/src/estruturas/funcao-padrao.js +38 -0
  68. package/src/estruturas/funcao-padrao.js.map +1 -0
  69. package/src/estruturas/funcao.js +81 -0
  70. package/src/estruturas/funcao.js.map +1 -0
  71. package/src/estruturas/index.js +19 -0
  72. package/src/estruturas/index.js.map +1 -0
  73. package/src/estruturas/instancia.js +28 -0
  74. package/src/estruturas/instancia.js.map +1 -0
  75. package/src/estruturas/modulo.js +15 -0
  76. package/src/estruturas/modulo.js.map +1 -0
  77. package/src/excecoes/break-exception.js +27 -0
  78. package/src/excecoes/break-exception.js.map +1 -0
  79. package/src/excecoes/continue-exception.js +27 -0
  80. package/src/excecoes/continue-exception.js.map +1 -0
  81. package/src/excecoes/erro-em-tempo-de-execucao.js +31 -0
  82. package/src/excecoes/erro-em-tempo-de-execucao.js.map +1 -0
  83. package/src/excecoes/index.js +17 -0
  84. package/src/excecoes/index.js.map +1 -0
  85. package/src/excecoes/return-exception.js +30 -0
  86. package/src/excecoes/return-exception.js.map +1 -0
  87. package/src/interfaces/avaliador-sintatico-interface.js +3 -0
  88. package/src/interfaces/avaliador-sintatico-interface.js.map +1 -0
  89. package/src/interfaces/index.js +19 -0
  90. package/src/interfaces/index.js.map +1 -0
  91. package/src/interfaces/interpretador-interface.js +3 -0
  92. package/src/interfaces/interpretador-interface.js.map +1 -0
  93. package/src/interfaces/lexador-interface.js +3 -0
  94. package/src/interfaces/lexador-interface.js.map +1 -0
  95. package/src/interfaces/pilha-interface.js +3 -0
  96. package/src/interfaces/pilha-interface.js.map +1 -0
  97. package/src/interfaces/resolvedor-interface.js +3 -0
  98. package/src/interfaces/resolvedor-interface.js.map +1 -0
  99. package/src/interfaces/simbolo-interface.js +3 -0
  100. package/src/interfaces/simbolo-interface.js.map +1 -0
  101. package/src/interpretador/dialetos/egua-classico.js +665 -0
  102. package/src/interpretador/dialetos/egua-classico.js.map +1 -0
  103. package/src/interpretador/dialetos/index.js +14 -0
  104. package/src/interpretador/dialetos/index.js.map +1 -0
  105. package/src/interpretador/index.js +665 -0
  106. package/src/interpretador/index.js.map +1 -0
  107. package/src/lexador/dialetos/egua-classico.js +287 -0
  108. package/src/lexador/dialetos/egua-classico.js.map +1 -0
  109. package/src/lexador/dialetos/index.js +14 -0
  110. package/src/lexador/dialetos/index.js.map +1 -0
  111. package/src/lexador/index.js +287 -0
  112. package/src/lexador/index.js.map +1 -0
  113. package/src/resolvedor/Pilha.js +27 -0
  114. package/src/resolvedor/Pilha.js.map +1 -0
  115. package/src/resolvedor/ResolverError.js +29 -0
  116. package/src/resolvedor/ResolverError.js.map +1 -0
  117. package/src/resolvedor/dialetos/egua-classico.js +331 -0
  118. package/src/resolvedor/dialetos/egua-classico.js.map +1 -0
  119. package/src/resolvedor/dialetos/index.js +14 -0
  120. package/src/resolvedor/dialetos/index.js.map +1 -0
  121. package/src/resolvedor/index.js +331 -0
  122. package/src/resolvedor/index.js.map +1 -0
  123. package/src/tiposDeSimbolos.js +69 -0
  124. package/src/tiposDeSimbolos.js.map +1 -0
  125. package/src/web.js +65 -69
  126. package/src/web.js.map +1 -0
  127. package/.vscode/launch.json +0 -29
  128. package/.vscode/settings.json +0 -3
  129. package/LICENSE +0 -21
  130. package/babel.config.js +0 -1
  131. package/index.html +0 -43
  132. package/src/egua.js +0 -102
  133. package/src/environment.js +0 -53
  134. package/src/errors.js +0 -17
  135. package/src/expr.js +0 -228
  136. package/src/interpreter.js +0 -798
  137. package/src/lexer.js +0 -315
  138. package/src/lib/__tests__/eguamat.test.js +0 -101
  139. package/src/lib/eguamat.js +0 -725
  140. package/src/lib/globalLib.js +0 -171
  141. package/src/lib/importStdlib.js +0 -41
  142. package/src/lib/tempo.js +0 -50
  143. package/src/parser.js +0 -826
  144. package/src/resolver.js +0 -425
  145. package/src/stmt.js +0 -215
  146. package/src/structures/callable.js +0 -5
  147. package/src/structures/class.js +0 -43
  148. package/src/structures/function.js +0 -62
  149. package/src/structures/instance.js +0 -27
  150. package/src/structures/module.js +0 -9
  151. package/src/structures/standardFn.js +0 -18
  152. package/src/tokenTypes.js +0 -67
  153. package/testes/testes.egua +0 -631
package/index.html DELETED
@@ -1,43 +0,0 @@
1
- <html lang="pt-br">
2
-
3
- <head>
4
- <!-- Global site tag (gtag.js) - Google Analytics -->
5
- <script async src="https://www.googletagmanager.com/gtag/js?id=UA-147268561-3"></script>
6
- <script>
7
- window.dataLayer = window.dataLayer || [];
8
- function gtag() { dataLayer.push(arguments); }
9
- gtag('js', new Date());
10
-
11
- gtag('config', 'UA-147268561-3');
12
- </script>
13
-
14
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
15
- <meta charset="UTF-8">
16
-
17
- <title>IDEgua - Linguagem egua</title>
18
- <link rel="stylesheet" href="./web/style.css" />
19
- <link rel="stylesheet" href="./web/theme.css">
20
- <link href="https://fonts.googleapis.com/css?family=Roboto+Mono&display=swap" rel="stylesheet" />
21
- <link rel="shortcut icon" href="./web/assets/logo2.svg">
22
- </head>
23
-
24
- <body>
25
- <div id="container">
26
- <div id="left"><select id="demoSelector"></select></div>
27
- <div id="middle"><img src="web/assets/egua.png" alt="egua" width="100px" height="auto"></div>
28
- <div id="right"><button id="runBtn">Executar</button></div>
29
- </div>
30
-
31
- <div id="editor"></div>
32
- <div id="output" aria-live="polite"></div>
33
-
34
- <script src="web/dist.js"></script>
35
-
36
- <!-- framework do editor do código -->
37
- <script src="./web/codeflask.min.js"></script>
38
-
39
- <script src="web/demos.js"></script>
40
- <script src="web/index.js"></script>
41
- </body>
42
-
43
- </html>
package/src/egua.js DELETED
@@ -1,102 +0,0 @@
1
- const Lexer = require("./lexer.js");
2
- const Parser = require("./parser.js");
3
- const Resolver = require("./resolver.js");
4
- const Interpreter = require("./interpreter.js");
5
- const tokenTypes = require("./tokenTypes.js");
6
- const fs = require("fs");
7
- const path = require("path");
8
- const readline = require("readline");
9
-
10
- module.exports.Egua = class Egua {
11
- constructor(nomeArquivo) {
12
- this.nomeArquivo = nomeArquivo;
13
-
14
- this.teveErro = false;
15
- this.teveErroEmTempoDeExecucao = false;
16
- }
17
-
18
- runPrompt() {
19
- const interpreter = new Interpreter(this, process.cwd(), undefined);
20
- console.log("Console da Linguagem Delégua v1.1.15");
21
- const leiaLinha = readline.createInterface({
22
- input: process.stdin,
23
- output: process.stdout,
24
- prompt: "\negua> "
25
- });
26
-
27
- leiaLinha.prompt();
28
-
29
- leiaLinha.on("line", linha => {
30
- this.teveErro = false;
31
- this.teveErroEmTempoDeExecucao = false;
32
-
33
- this.run(linha, interpreter);
34
- leiaLinha.prompt();
35
- });
36
- }
37
-
38
- runfile(nomeArquivo) {
39
- this.nomeArquivo = path.basename(nomeArquivo);
40
- const interpretador = new Interpreter(this, process.cwd());
41
-
42
- const dadosDoArquivo = fs.readFileSync(nomeArquivo).toString();
43
- this.run(dadosDoArquivo, interpretador);
44
-
45
- if (this.teveErro) process.exit(65);
46
- if (this.teveErroEmTempoDeExecucao) process.exit(70);
47
- }
48
-
49
- run(code, interpretador) {
50
- const lexer = new Lexer(code, this);
51
- const simbolos = lexer.scan();
52
-
53
- if (this.teveErro === true) return;
54
-
55
- const analisar = new Parser(simbolos, this);
56
- const declaracoes = analisar.analisar();
57
-
58
- if (this.teveErro === true) return;
59
-
60
- const resolver = new Resolver(interpretador, this);
61
- resolver.resolver(declaracoes);
62
-
63
- if (this.teveErro === true) return;
64
-
65
- interpretador.interpretar(declaracoes);
66
- }
67
-
68
- reportar(linha, onde, mensagem) {
69
- if (this.nomeArquivo)
70
- console.error(
71
- `[Arquivo: ${this.nomeArquivo}] [Linha: ${linha}] Erro${onde}: ${mensagem}`
72
- );
73
- else console.error(`[Linha: ${linha}] Erro${onde}: ${mensagem}`);
74
- this.teveErro = true;
75
- }
76
-
77
- error(simbolo, mensagemDeErro) {
78
- if (simbolo.type === tokenTypes.EOF) {
79
- this.reportar(simbolo.line, " no final", mensagemDeErro);
80
- } else {
81
- this.reportar(simbolo.line, ` no '${simbolo.lexeme}'`, mensagemDeErro);
82
- }
83
- }
84
-
85
- lexerError(linha, caractere, mensagem) {
86
- this.reportar(linha, ` no '${caractere}'`, mensagem);
87
- }
88
-
89
- runtimeError(erro) {
90
- const linha = erro.token.line;
91
- if (erro.token && linha) {
92
- if (this.nomeArquivo)
93
- console.error(
94
- `Erro: [Arquivo: ${this.nomeArquivo}] [Linha: ${erro.token.line}] ${erro.message}`
95
- );
96
- else console.error(`Erro: [Linha: ${erro.token.line}] ${erro.message}`);
97
- } else {
98
- console.error(`Erro: ${erro.message}`);
99
- }
100
- this.teveErroEmTempoDeExecucao = true;
101
- }
102
- };
@@ -1,53 +0,0 @@
1
- const RuntimeError = require("./errors.js").RuntimeError;
2
-
3
- module.exports = class Environment {
4
- constructor(enclosing) {
5
- this.enclosing = enclosing || null;
6
- this.values = {};
7
- }
8
-
9
- defineVar(varName, value) {
10
- this.values[varName] = value;
11
- }
12
-
13
- assignVarAt(distance, name, value) {
14
- this.ancestor(distance).values[name.lexeme] = value;
15
- }
16
-
17
- assignVar(name, value) {
18
- if (this.values[name.lexeme] !== undefined) {
19
- this.values[name.lexeme] = value;
20
- return;
21
- }
22
-
23
- if (this.enclosing != null) {
24
- this.enclosing.assignVar(name, value);
25
- return;
26
- }
27
-
28
- throw new RuntimeError(name, "Variável não definida '" + name.lexeme + "'.");
29
- }
30
-
31
- ancestor(distance) {
32
- let environment = this;
33
- for (let i = 0; i < distance; i++) {
34
- environment = environment.enclosing;
35
- }
36
-
37
- return environment;
38
- }
39
-
40
- getVarAt(distance, name) {
41
- return this.ancestor(distance).values[name];
42
- }
43
-
44
- getVar(token) {
45
- if (this.values[token.lexeme] !== undefined) {
46
- return this.values[token.lexeme];
47
- }
48
-
49
- if (this.enclosing !== null) return this.enclosing.getVar(token);
50
-
51
- throw new RuntimeError(token, "Variável não definida '" + token.lexeme + "'.");
52
- }
53
- };
package/src/errors.js DELETED
@@ -1,17 +0,0 @@
1
- module.exports.RuntimeError = class RuntimeError extends Error {
2
- constructor(token, message) {
3
- super(message);
4
- this.token = token;
5
- }
6
- };
7
-
8
- module.exports.ContinueException = class ContinueException extends Error { };
9
-
10
- module.exports.BreakException = class BreakException extends Error { };
11
-
12
- module.exports.ReturnException = class ReturnException extends Error {
13
- constructor(value) {
14
- super(value);
15
- this.value = value;
16
- }
17
- };
package/src/expr.js DELETED
@@ -1,228 +0,0 @@
1
- class Expr {
2
- aceitar(visitor) {}
3
- }
4
-
5
- class Assign extends Expr {
6
- constructor(name, value) {
7
- super();
8
- this.name = name;
9
- this.value = value;
10
- }
11
-
12
- aceitar(visitor) {
13
- return visitor.visitAssignExpr(this);
14
- }
15
- }
16
-
17
- class Binary extends Expr {
18
- constructor(left, operator, right) {
19
- super();
20
- this.left = left;
21
- this.operator = operator;
22
- this.right = right;
23
- }
24
-
25
- aceitar(visitor) {
26
- return visitor.visitBinaryExpr(this);
27
- }
28
- }
29
-
30
- class Funcao extends Expr {
31
- constructor(params, body) {
32
- super();
33
- this.params = params;
34
- this.body = body;
35
- }
36
-
37
- aceitar(visitor) {
38
- return visitor.visitFunctionExpr(this);
39
- }
40
- }
41
-
42
- class Call extends Expr {
43
- constructor(callee, paren, args) {
44
- super();
45
- this.callee = callee;
46
- this.paren = paren;
47
- this.args = args;
48
- }
49
-
50
- aceitar(visitor) {
51
- return visitor.visitCallExpr(this);
52
- }
53
- }
54
-
55
- class Get extends Expr {
56
- constructor(object, name) {
57
- super();
58
- this.object = object;
59
- this.name = name;
60
- }
61
-
62
- aceitar(visitor) {
63
- return visitor.visitGetExpr(this);
64
- }
65
- }
66
-
67
- class Grouping extends Expr {
68
- constructor(expression) {
69
- super();
70
- this.expression = expression;
71
- }
72
-
73
- aceitar(visitor) {
74
- return visitor.visitGroupingExpr(this);
75
- }
76
- }
77
-
78
- class Literal extends Expr {
79
- constructor(value) {
80
- super();
81
- this.value = value;
82
- }
83
-
84
- aceitar(visitor) {
85
- return visitor.visitLiteralExpr(this);
86
- }
87
- }
88
-
89
- class Array extends Expr {
90
- constructor(values) {
91
- super();
92
- this.values = values;
93
- }
94
-
95
- aceitar(visitor) {
96
- return visitor.visitArrayExpr(this);
97
- }
98
- }
99
-
100
- class Dictionary extends Expr {
101
- constructor(keys, values) {
102
- super();
103
- this.keys = keys;
104
- this.values = values;
105
- }
106
-
107
- aceitar(visitor) {
108
- return visitor.visitDictionaryExpr(this);
109
- }
110
- }
111
-
112
- class Subscript extends Expr {
113
- constructor(callee, index, closeBracket) {
114
- super();
115
- this.callee = callee;
116
- this.index = index;
117
- this.closeBracket = closeBracket;
118
- }
119
-
120
- aceitar(visitor) {
121
- return visitor.visitSubscriptExpr(this);
122
- }
123
- }
124
-
125
- class Assignsubscript extends Expr {
126
- constructor(obj, index, value) {
127
- super();
128
- this.obj = obj;
129
- this.index = index;
130
- this.value = value;
131
- }
132
-
133
- aceitar(visitor) {
134
- return visitor.visitAssignsubscriptExpr(this);
135
- }
136
- }
137
-
138
- class Logical extends Expr {
139
- constructor(left, operator, right) {
140
- super();
141
- this.left = left;
142
- this.operator = operator;
143
- this.right = right;
144
- }
145
-
146
- aceitar(visitor) {
147
- return visitor.visitLogicalExpr(this);
148
- }
149
- }
150
-
151
- class Set extends Expr {
152
- constructor(object, name, value) {
153
- super();
154
- this.object = object;
155
- this.name = name;
156
- this.value = value;
157
- }
158
-
159
- aceitar(visitor) {
160
- return visitor.visitSetExpr(this);
161
- }
162
- }
163
-
164
- class Super extends Expr {
165
- constructor(keyword, method) {
166
- super();
167
- this.keyword = keyword;
168
- this.method = method;
169
- }
170
-
171
- aceitar(visitor) {
172
- return visitor.visitSuperExpr(this);
173
- }
174
- }
175
-
176
- class Isto extends Expr {
177
- constructor(keyword) {
178
- super();
179
- this.keyword = keyword;
180
- }
181
-
182
- aceitar(visitor) {
183
- return visitor.visitThisExpr(this);
184
- }
185
- }
186
-
187
- class Unary extends Expr {
188
- constructor(operator, right) {
189
- super();
190
- this.operator = operator;
191
- this.right = right;
192
- }
193
-
194
- aceitar(visitor) {
195
- return visitor.visitUnaryExpr(this);
196
- }
197
- }
198
-
199
- class Variable extends Expr {
200
- constructor(name) {
201
- super();
202
- this.name = name;
203
- }
204
-
205
- aceitar(visitor) {
206
- return visitor.visitVariableExpr(this);
207
- }
208
- }
209
-
210
- module.exports = {
211
- Assign,
212
- Binary,
213
- Funcao,
214
- Call,
215
- Get,
216
- Grouping,
217
- Literal,
218
- Array,
219
- Dictionary,
220
- Subscript,
221
- Assignsubscript,
222
- Logical,
223
- Set,
224
- Super,
225
- Isto,
226
- Unary,
227
- Variable
228
- };