@designliquido/delegua 0.7.6 → 0.8.1

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 (261) hide show
  1. package/bin/package.json +78 -65
  2. package/fontes/avaliador-sintatico/avaliador-sintatico-base.d.ts +63 -0
  3. package/fontes/avaliador-sintatico/avaliador-sintatico-base.js +180 -0
  4. package/fontes/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -0
  5. package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +5 -4
  6. package/fontes/avaliador-sintatico/avaliador-sintatico.js +189 -188
  7. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  8. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.d.ts +34 -32
  9. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +154 -148
  10. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
  11. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.d.ts +13 -12
  12. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js +144 -142
  13. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js.map +1 -1
  14. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.d.ts +48 -0
  15. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js +297 -0
  16. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js.map +1 -0
  17. package/fontes/avaliador-sintatico/erro-avaliador-sintatico.d.ts +1 -1
  18. package/fontes/avaliador-sintatico/retornos/index.d.ts +3 -0
  19. package/fontes/avaliador-sintatico/retornos/index.js +20 -0
  20. package/fontes/avaliador-sintatico/retornos/index.js.map +1 -0
  21. package/fontes/avaliador-sintatico/retornos/retorno-declaracao.d.ts +3 -0
  22. package/fontes/avaliador-sintatico/retornos/retorno-declaracao.js +3 -0
  23. package/fontes/avaliador-sintatico/retornos/retorno-declaracao.js.map +1 -0
  24. package/fontes/avaliador-sintatico/retornos/retorno-primario.d.ts +3 -0
  25. package/fontes/avaliador-sintatico/retornos/retorno-primario.js +3 -0
  26. package/fontes/avaliador-sintatico/retornos/retorno-primario.js.map +1 -0
  27. package/fontes/avaliador-sintatico/retornos/retorno-resolver-declaracao.d.ts +2 -0
  28. package/fontes/avaliador-sintatico/retornos/retorno-resolver-declaracao.js +3 -0
  29. package/fontes/avaliador-sintatico/retornos/retorno-resolver-declaracao.js.map +1 -0
  30. package/fontes/bibliotecas/biblioteca-global.d.ts +2 -2
  31. package/fontes/bibliotecas/biblioteca-global.js +112 -57
  32. package/fontes/bibliotecas/biblioteca-global.js.map +1 -1
  33. package/fontes/bibliotecas/importar-biblioteca.d.ts +1 -1
  34. package/fontes/bibliotecas/importar-biblioteca.js +13 -14
  35. package/fontes/bibliotecas/importar-biblioteca.js.map +1 -1
  36. package/fontes/bibliotecas/primitivas-texto.js +13 -7
  37. package/fontes/bibliotecas/primitivas-texto.js.map +1 -1
  38. package/fontes/bibliotecas/primitivas-vetor.js +25 -11
  39. package/fontes/bibliotecas/primitivas-vetor.js.map +1 -1
  40. package/fontes/construtos/acesso-indice-variavel.d.ts +2 -2
  41. package/fontes/construtos/acesso-indice-variavel.js.map +1 -1
  42. package/fontes/construtos/acesso-metodo.d.ts +2 -2
  43. package/fontes/construtos/acesso-metodo.js.map +1 -1
  44. package/fontes/construtos/agrupamento.d.ts +2 -2
  45. package/fontes/construtos/atribuicao-sobrescrita.d.ts +1 -1
  46. package/fontes/construtos/atribuicao-sobrescrita.js.map +1 -1
  47. package/fontes/construtos/atribuir.d.ts +2 -2
  48. package/fontes/construtos/atribuir.js.map +1 -1
  49. package/fontes/construtos/binario.d.ts +2 -2
  50. package/fontes/construtos/binario.js.map +1 -1
  51. package/fontes/construtos/chamada.d.ts +2 -2
  52. package/fontes/construtos/chamada.js.map +1 -1
  53. package/fontes/construtos/conjunto.d.ts +1 -1
  54. package/fontes/construtos/conjunto.js.map +1 -1
  55. package/fontes/construtos/construto.d.ts +1 -0
  56. package/fontes/construtos/dicionario.d.ts +1 -1
  57. package/fontes/construtos/dicionario.js.map +1 -1
  58. package/fontes/construtos/funcao.d.ts +2 -2
  59. package/fontes/construtos/funcao.js.map +1 -1
  60. package/fontes/construtos/index.d.ts +18 -18
  61. package/fontes/construtos/isto.d.ts +1 -1
  62. package/fontes/construtos/isto.js.map +1 -1
  63. package/fontes/construtos/literal.d.ts +5 -4
  64. package/fontes/construtos/literal.js.map +1 -1
  65. package/fontes/construtos/logico.d.ts +1 -1
  66. package/fontes/construtos/logico.js.map +1 -1
  67. package/fontes/construtos/super.d.ts +4 -4
  68. package/fontes/construtos/super.js.map +1 -1
  69. package/fontes/construtos/unario.d.ts +1 -1
  70. package/fontes/construtos/unario.js.map +1 -1
  71. package/fontes/construtos/variavel.d.ts +2 -2
  72. package/fontes/construtos/variavel.js.map +1 -1
  73. package/fontes/construtos/vetor.d.ts +3 -3
  74. package/fontes/construtos/vetor.js.map +1 -1
  75. package/fontes/declaracoes/bloco.d.ts +4 -4
  76. package/fontes/declaracoes/bloco.js.map +1 -1
  77. package/fontes/declaracoes/classe.d.ts +2 -2
  78. package/fontes/declaracoes/classe.js.map +1 -1
  79. package/fontes/declaracoes/continua.d.ts +2 -2
  80. package/fontes/declaracoes/continua.js.map +1 -1
  81. package/fontes/declaracoes/declaracao.js +2 -2
  82. package/fontes/declaracoes/declaracao.js.map +1 -1
  83. package/fontes/declaracoes/enquanto.d.ts +2 -2
  84. package/fontes/declaracoes/enquanto.js.map +1 -1
  85. package/fontes/declaracoes/escolha.d.ts +7 -4
  86. package/fontes/declaracoes/escolha.js +6 -3
  87. package/fontes/declaracoes/escolha.js.map +1 -1
  88. package/fontes/declaracoes/escreva.d.ts +3 -3
  89. package/fontes/declaracoes/escreva.js.map +1 -1
  90. package/fontes/declaracoes/expressao.d.ts +3 -3
  91. package/fontes/declaracoes/expressao.js.map +1 -1
  92. package/fontes/declaracoes/fazer.d.ts +1 -1
  93. package/fontes/declaracoes/fazer.js.map +1 -1
  94. package/fontes/declaracoes/funcao.d.ts +2 -2
  95. package/fontes/declaracoes/funcao.js.map +1 -1
  96. package/fontes/declaracoes/importar.d.ts +2 -2
  97. package/fontes/declaracoes/importar.js.map +1 -1
  98. package/fontes/declaracoes/index.d.ts +1 -0
  99. package/fontes/declaracoes/index.js +1 -0
  100. package/fontes/declaracoes/index.js.map +1 -1
  101. package/fontes/declaracoes/leia.d.ts +12 -0
  102. package/fontes/declaracoes/leia.js +37 -0
  103. package/fontes/declaracoes/leia.js.map +1 -0
  104. package/fontes/declaracoes/para.d.ts +1 -1
  105. package/fontes/declaracoes/para.js.map +1 -1
  106. package/fontes/declaracoes/retorna.d.ts +2 -2
  107. package/fontes/declaracoes/retorna.js.map +1 -1
  108. package/fontes/declaracoes/se.d.ts +2 -2
  109. package/fontes/declaracoes/se.js.map +1 -1
  110. package/fontes/declaracoes/sustar.d.ts +2 -2
  111. package/fontes/declaracoes/sustar.js.map +1 -1
  112. package/fontes/declaracoes/tente.d.ts +2 -2
  113. package/fontes/declaracoes/tente.js.map +1 -1
  114. package/fontes/declaracoes/var.d.ts +5 -4
  115. package/fontes/declaracoes/var.js.map +1 -1
  116. package/fontes/delegua.d.ts +3 -3
  117. package/fontes/delegua.js +38 -22
  118. package/fontes/delegua.js.map +1 -1
  119. package/fontes/depuracao/cyrb53.js +6 -3
  120. package/fontes/depuracao/cyrb53.js.map +1 -1
  121. package/fontes/depuracao/servidor-depuracao.js +84 -46
  122. package/fontes/depuracao/servidor-depuracao.js.map +1 -1
  123. package/fontes/espaco-variaveis.d.ts +1 -1
  124. package/fontes/espaco-variaveis.js +0 -1
  125. package/fontes/espaco-variaveis.js.map +1 -1
  126. package/fontes/estruturas/chamavel.js +1 -1
  127. package/fontes/estruturas/classe-padrao.d.ts +1 -1
  128. package/fontes/estruturas/classe-padrao.js.map +1 -1
  129. package/fontes/estruturas/delegua-classe.d.ts +4 -4
  130. package/fontes/estruturas/delegua-classe.js +5 -3
  131. package/fontes/estruturas/delegua-classe.js.map +1 -1
  132. package/fontes/estruturas/funcao-padrao.d.ts +1 -1
  133. package/fontes/estruturas/funcao-padrao.js +1 -1
  134. package/fontes/estruturas/funcao.d.ts +4 -4
  135. package/fontes/estruturas/funcao.js +9 -4
  136. package/fontes/estruturas/funcao.js.map +1 -1
  137. package/fontes/estruturas/index.d.ts +9 -9
  138. package/fontes/estruturas/metodo-primitiva.d.ts +1 -1
  139. package/fontes/estruturas/modulo.d.ts +1 -1
  140. package/fontes/estruturas/modulo.js +1 -1
  141. package/fontes/estruturas/objeto-delegua-classe.d.ts +2 -2
  142. package/fontes/estruturas/objeto-delegua-classe.js +2 -2
  143. package/fontes/estruturas/objeto-delegua-classe.js.map +1 -1
  144. package/fontes/estruturas/objeto-padrao.js.map +1 -1
  145. package/fontes/excecoes/erro-em-tempo-de-execucao.d.ts +1 -1
  146. package/fontes/excecoes/erro-em-tempo-de-execucao.js.map +1 -1
  147. package/fontes/excecoes/index.d.ts +1 -1
  148. package/fontes/importador/importador.d.ts +1 -1
  149. package/fontes/importador/importador.js +3 -2
  150. package/fontes/importador/importador.js.map +1 -1
  151. package/fontes/importador/retorno-importador.d.ts +2 -2
  152. package/fontes/interfaces/avaliador-sintatico-interface.d.ts +3 -5
  153. package/fontes/interfaces/delegua-interface.d.ts +2 -2
  154. package/fontes/interfaces/escopo-execucao.d.ts +2 -2
  155. package/fontes/interfaces/importador-interface.d.ts +1 -1
  156. package/fontes/interfaces/interpretador-com-depuracao-interface.d.ts +3 -3
  157. package/fontes/interfaces/interpretador-interface.d.ts +8 -7
  158. package/fontes/interfaces/lexador-interface.d.ts +4 -4
  159. package/fontes/interfaces/parametro-interface.d.ts +1 -1
  160. package/fontes/interfaces/pilha-escopos-execucao-interface.d.ts +5 -5
  161. package/fontes/interfaces/resolvedor-interface.d.ts +5 -5
  162. package/fontes/interfaces/retornos/retorno-avaliador-sintatico.d.ts +2 -2
  163. package/fontes/interfaces/retornos/retorno-execucao-interface.d.ts +1 -1
  164. package/fontes/interfaces/retornos/retorno-interpretador.d.ts +1 -1
  165. package/fontes/interfaces/retornos/retorno-lexador.d.ts +3 -3
  166. package/fontes/interfaces/variavel-interface.d.ts +1 -1
  167. package/fontes/interpretador/dialetos/egua-classico.d.ts +2 -1
  168. package/fontes/interpretador/dialetos/egua-classico.js +75 -47
  169. package/fontes/interpretador/dialetos/egua-classico.js.map +1 -1
  170. package/fontes/interpretador/dialetos/index.js.map +1 -1
  171. package/fontes/interpretador/erro-interpretador.d.ts +1 -1
  172. package/fontes/interpretador/inferenciador.js.map +1 -1
  173. package/fontes/interpretador/interpretador-com-depuracao.js +5 -3
  174. package/fontes/interpretador/interpretador-com-depuracao.js.map +1 -1
  175. package/fontes/interpretador/interpretador.d.ts +10 -4
  176. package/fontes/interpretador/interpretador.js +57 -47
  177. package/fontes/interpretador/interpretador.js.map +1 -1
  178. package/fontes/interpretador/pilha-escopos-execucao.js +16 -5
  179. package/fontes/interpretador/pilha-escopos-execucao.js.map +1 -1
  180. package/fontes/lexador/dialetos/index.js.map +1 -1
  181. package/fontes/lexador/dialetos/lexador-birl.d.ts +25 -0
  182. package/fontes/lexador/dialetos/lexador-birl.js +75 -0
  183. package/fontes/lexador/dialetos/lexador-birl.js.map +1 -0
  184. package/fontes/lexador/dialetos/lexador-egua-classico.js +38 -38
  185. package/fontes/lexador/dialetos/lexador-egua-classico.js.map +1 -1
  186. package/fontes/lexador/dialetos/lexador-eguap.d.ts +4 -4
  187. package/fontes/lexador/dialetos/lexador-eguap.js +50 -44
  188. package/fontes/lexador/dialetos/lexador-eguap.js.map +1 -1
  189. package/fontes/lexador/dialetos/lexador-visualg.d.ts +16 -0
  190. package/fontes/lexador/dialetos/lexador-visualg.js +227 -0
  191. package/fontes/lexador/dialetos/lexador-visualg.js.map +1 -0
  192. package/fontes/lexador/dialetos/palavras-reservadas/birl.d.ts +2 -0
  193. package/fontes/lexador/dialetos/palavras-reservadas/birl.js +4 -0
  194. package/fontes/lexador/dialetos/palavras-reservadas/birl.js.map +1 -0
  195. package/fontes/lexador/dialetos/palavras-reservadas/visualg.d.ts +26 -0
  196. package/fontes/lexador/dialetos/palavras-reservadas/visualg.js +32 -0
  197. package/fontes/lexador/dialetos/palavras-reservadas/visualg.js.map +1 -0
  198. package/fontes/lexador/lexador-base-linha-unica.d.ts +33 -0
  199. package/fontes/lexador/lexador-base-linha-unica.js +92 -0
  200. package/fontes/lexador/lexador-base-linha-unica.js.map +1 -0
  201. package/fontes/lexador/lexador.d.ts +3 -3
  202. package/fontes/lexador/lexador.js +43 -43
  203. package/fontes/lexador/lexador.js.map +1 -1
  204. package/fontes/lexador/palavras-reservadas.js +33 -33
  205. package/fontes/lexador/palavras-reservadas.js.map +1 -1
  206. package/fontes/lexador/simbolo.d.ts +1 -1
  207. package/fontes/lexador/simbolo.js +1 -1
  208. package/fontes/lexador/simbolo.js.map +1 -1
  209. package/fontes/quebras/index.js.map +1 -1
  210. package/fontes/resolvedor/dialetos/egua-classico.js +1 -1
  211. package/fontes/resolvedor/dialetos/egua-classico.js.map +1 -1
  212. package/fontes/resolvedor/dialetos/index.js.map +1 -1
  213. package/fontes/resolvedor/erro-resolvedor.d.ts +1 -1
  214. package/fontes/resolvedor/pilha-escopos.d.ts +1 -1
  215. package/fontes/resolvedor/pilha-escopos.js +2 -2
  216. package/fontes/resolvedor/pilha-escopos.js.map +1 -1
  217. package/fontes/resolvedor/retorno-resolvedor.d.ts +2 -2
  218. package/fontes/tipos-de-simbolos/birl.d.ts +18 -0
  219. package/fontes/tipos-de-simbolos/birl.js +21 -0
  220. package/fontes/tipos-de-simbolos/birl.js.map +1 -0
  221. package/fontes/tipos-de-simbolos/comum.d.ts +18 -0
  222. package/fontes/tipos-de-simbolos/comum.js +20 -0
  223. package/fontes/tipos-de-simbolos/comum.js.map +1 -0
  224. package/fontes/{tipos-de-simbolos.d.ts → tipos-de-simbolos/delegua.d.ts} +0 -0
  225. package/fontes/tipos-de-simbolos/delegua.js +78 -0
  226. package/fontes/tipos-de-simbolos/delegua.js.map +1 -0
  227. package/fontes/{lexador/dialetos/tipos-de-simbolos-eguap.d.ts → tipos-de-simbolos/eguap.d.ts} +0 -0
  228. package/fontes/tipos-de-simbolos/eguap.js +74 -0
  229. package/fontes/tipos-de-simbolos/eguap.js.map +1 -0
  230. package/fontes/tipos-de-simbolos/visualg.d.ts +47 -0
  231. package/fontes/tipos-de-simbolos/visualg.js +49 -0
  232. package/fontes/tipos-de-simbolos/visualg.js.map +1 -0
  233. package/index.js +1 -1
  234. package/index.js.map +1 -1
  235. package/jest.config.js +2 -2
  236. package/jest.config.js.map +1 -1
  237. package/package.json +78 -65
  238. package/testes/avaliador-sintatico.test.js +5 -5
  239. package/testes/avaliador-sintatico.test.js.map +1 -1
  240. package/testes/egua-classico/avaliador-sintatico.test.js +4 -1
  241. package/testes/egua-classico/avaliador-sintatico.test.js.map +1 -1
  242. package/testes/egua-classico/delegua.test.js.map +1 -1
  243. package/testes/egua-classico/resolvedor.test.js.map +1 -1
  244. package/testes/eguap/avaliador-sintatico.test.js +1 -5
  245. package/testes/eguap/avaliador-sintatico.test.js.map +1 -1
  246. package/testes/eguap/lexador.test.js +1 -1
  247. package/testes/eguap/lexador.test.js.map +1 -1
  248. package/testes/interpretador.test.js +48 -0
  249. package/testes/interpretador.test.js.map +1 -1
  250. package/testes/lexador.test.js +45 -45
  251. package/testes/lexador.test.js.map +1 -1
  252. package/testes/visualg/avaliador-sintatico.test.d.ts +1 -0
  253. package/testes/visualg/avaliador-sintatico.test.js +113 -0
  254. package/testes/visualg/avaliador-sintatico.test.js.map +1 -0
  255. package/testes/visualg/lexador.test.d.ts +1 -0
  256. package/testes/visualg/lexador.test.js +67 -0
  257. package/testes/visualg/lexador.test.js.map +1 -0
  258. package/fontes/lexador/dialetos/tipos-de-simbolos-eguap.js +0 -74
  259. package/fontes/lexador/dialetos/tipos-de-simbolos-eguap.js.map +0 -1
  260. package/fontes/tipos-de-simbolos.js +0 -78
  261. package/fontes/tipos-de-simbolos.js.map +0 -1
package/bin/package.json CHANGED
@@ -1,70 +1,83 @@
1
1
  {
2
- "name": "@designliquido/delegua",
3
- "version": "0.7.5",
4
- "description": "Linguagem de programação simples e moderna usando português",
5
- "main": "index.ts",
6
- "scripts": {
7
- "empacotar": "rm -Rf ./dist && tsc && copyfiles -V ./bin/delegua ./bin/delegua.cmd ./dist && copyfiles -V ./package.json ./dist/bin && copyfiles -V ./README.md ./dist",
8
- "lair": "ts-node index.ts",
9
- "publicar-npm": "npm publish ./dist --access public",
10
- "testes": "./bin/delegua-ts testes/exemplos/testes.egua",
11
- "testes:delegua:bhaskara": "./bin/delegua-ts testes/exemplos/dialetos/egua-classico/bhaskara.egua",
12
- "testes:delegua:fibonacci": "./bin/delegua-ts testes/exemplos/dialetos/egua-classico/fibonacci.egua",
13
- "testes:egua-classico": "./bin/delegua-ts --dialeto egua testes/exemplos/dialetos/egua-classico/testes.egua",
14
- "testes:servidor-depuracao": "ts-node ./fontes/depuracao/servidor-depuracao.ts",
15
- "testes-unitarios": "jest --coverage",
16
- "observar-testes-unitarios": "jest --watchAll"
17
- },
18
- "repository": {
19
- "type": "git",
20
- "url": "git+https://github.com/DesignLiquido/delegua.git"
21
- },
22
- "bin": {
23
- "delegua": "./bin/delegua"
24
- },
25
- "keywords": [
26
- "egua",
27
- "eguap",
28
- "delegua"
29
- ],
30
- "author": "Leonel Sanches da Silva",
31
- "contributors": [
32
- {
33
- "name": "Leonel Sanches da Silva",
34
- "url": "https://www.linkedin.com/in/leonelsanchesdasilva/"
2
+ "name": "@designliquido/delegua",
3
+ "version": "0.8.0",
4
+ "description": "Linguagem de programação simples e moderna usando português",
5
+ "main": "index.ts",
6
+ "scripts": {
7
+ "empacotar": "rm -Rf ./dist && tsc && copyfiles -V ./bin/delegua ./bin/delegua.cmd ./dist && copyfiles -V ./package.json ./dist/bin && copyfiles -V ./README.md ./dist",
8
+ "lair": "ts-node index.ts",
9
+ "publicar-npm": "npm publish ./dist --access public",
10
+ "testes": "./bin/delegua-ts testes/exemplos/testes.egua",
11
+ "testes:delegua:bhaskara": "./bin/delegua-ts testes/exemplos/dialetos/egua-classico/bhaskara.egua",
12
+ "testes:delegua:fibonacci": "./bin/delegua-ts testes/exemplos/dialetos/egua-classico/fibonacci.egua",
13
+ "testes:egua-classico": "./bin/delegua-ts --dialeto egua testes/exemplos/dialetos/egua-classico/testes.egua",
14
+ "testes:servidor-depuracao": "ts-node ./fontes/depuracao/servidor-depuracao.ts",
15
+ "testes-unitarios": "jest --coverage",
16
+ "observar-testes-unitarios": "jest --watchAll",
17
+ "observar-testes-unitarios-com-coverage": "jest --coverage --watchAll",
18
+ "lint": "eslint . --ext .ts",
19
+ "prettier-format": "prettier --config .prettierrc 'fontes/**/*.ts' --write"
35
20
  },
36
- {
37
- "name": "Samuel Renan Gonçalves Vaz",
38
- "url": "https://www.linkedin.com/in/samuel-renan-gon%C3%A7alves-vaz-b6b83a103/"
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "git+https://github.com/DesignLiquido/delegua.git"
39
24
  },
40
- {
41
- "name": "Alessandro Fuhr de Mello",
42
- "url": "https://github.com/AlessandroFMello"
25
+ "bin": {
26
+ "delegua": "./bin/delegua"
27
+ },
28
+ "keywords": [
29
+ "egua",
30
+ "eguap",
31
+ "delegua"
32
+ ],
33
+ "author": "Leonel Sanches da Silva",
34
+ "contributors": [
35
+ {
36
+ "name": "Leonel Sanches da Silva",
37
+ "url": "https://www.linkedin.com/in/leonelsanchesdasilva/"
38
+ },
39
+ {
40
+ "name": "Samuel Renan Gonçalves Vaz",
41
+ "url": "https://www.linkedin.com/in/samuel-renan-gon%C3%A7alves-vaz-b6b83a103/"
42
+ },
43
+ {
44
+ "name": "Alessandro Fuhr de Mello",
45
+ "url": "https://github.com/AlessandroFMello"
46
+ },
47
+ {
48
+ "name": "Italo Brito Brandão",
49
+ "url": "https://github.com/ItaloCobains"
50
+ }
51
+ ],
52
+ "license": "MIT",
53
+ "bugs": {
54
+ "url": "https://github.com/DesignLiquido/delegua/issues"
55
+ },
56
+ "homepage": "https://github.com/DesignLiquido/delegua#readme",
57
+ "devDependencies": {
58
+ "@babel/preset-env": "^7.12.1",
59
+ "@designliquido/delegua-estatistica": "^0.0.5",
60
+ "@designliquido/delegua-fisica": "^0.0.2",
61
+ "@designliquido/delegua-matematica": "^0.0.2",
62
+ "@designliquido/delegua-tempo": "^0.0.1",
63
+ "@types/jest": "^29.0.3",
64
+ "@types/node": "^17.0.13",
65
+ "@typescript-eslint/eslint-plugin": "^5.42.0",
66
+ "@typescript-eslint/parser": "^5.42.0",
67
+ "copyfiles": "^2.4.1",
68
+ "eslint": "^8.26.0",
69
+ "eslint-config-prettier": "^8.5.0",
70
+ "eslint-plugin-prettier": "^4.2.1",
71
+ "jest": "^29.0.3",
72
+ "prettier": "^2.7.1",
73
+ "release-it": "^14.14.2",
74
+ "ts-jest": "^29.0.1",
75
+ "ts-node": "^10.9.1",
76
+ "typescript": "^4.6.3"
77
+ },
78
+ "dependencies": {
79
+ "browser-process-hrtime": "^1.0.0",
80
+ "chalk": "4.1.2",
81
+ "commander": "^8.3.0"
43
82
  }
44
- ],
45
- "license": "MIT",
46
- "bugs": {
47
- "url": "https://github.com/DesignLiquido/delegua/issues"
48
- },
49
- "homepage": "https://github.com/DesignLiquido/delegua#readme",
50
- "devDependencies": {
51
- "@babel/preset-env": "^7.12.1",
52
- "@designliquido/delegua-estatistica": "^0.0.5",
53
- "@designliquido/delegua-fisica": "^0.0.2",
54
- "@designliquido/delegua-matematica": "^0.0.2",
55
- "@designliquido/delegua-tempo": "^0.0.1",
56
- "@types/jest": "^29.0.3",
57
- "@types/node": "^17.0.13",
58
- "copyfiles": "^2.4.1",
59
- "jest": "^29.0.3",
60
- "release-it": "^14.14.2",
61
- "ts-jest": "^29.0.1",
62
- "ts-node": "^10.9.1",
63
- "typescript": "^4.6.3"
64
- },
65
- "dependencies": {
66
- "browser-process-hrtime": "^1.0.0",
67
- "chalk": "4.1.2",
68
- "commander": "^8.3.0"
69
- }
70
83
  }
@@ -0,0 +1,63 @@
1
+ import { Construto, Funcao } from '../construtos';
2
+ import { Escreva, Expressao, Se, Enquanto, Para, Sustar, Continua, Retorna, Escolha, Importar, Tente, Fazer, Var, Funcao as FuncaoDeclaracao, Classe, Declaracao } from '../declaracoes';
3
+ import { AvaliadorSintaticoInterface, SimboloInterface } from '../interfaces';
4
+ import { RetornoLexador, RetornoAvaliadorSintatico } from '../interfaces/retornos';
5
+ import { ErroAvaliadorSintatico } from './erro-avaliador-sintatico';
6
+ /**
7
+ * O Avaliador Sintático Base é uma tentativa de mapear métodos em comum
8
+ * entre todos os outros Avaliadores Sintáticos. Depende de um dicionário
9
+ * de tipos de símbolos comuns entre todos os dialetos.
10
+ */
11
+ export declare abstract class AvaliadorSintaticoBase implements AvaliadorSintaticoInterface {
12
+ simbolos: SimboloInterface[];
13
+ erros: ErroAvaliadorSintatico[];
14
+ atual: number;
15
+ ciclos: number;
16
+ consumir(tipo: string, mensagemDeErro: string): SimboloInterface;
17
+ erro(simbolo: SimboloInterface, mensagemDeErro: string): ErroAvaliadorSintatico;
18
+ verificarTipoSimboloAtual(tipo: string): boolean;
19
+ verificarTipoProximoSimbolo(tipo: string): boolean;
20
+ estaNoFinal(): boolean;
21
+ avancarEDevolverAnterior(): SimboloInterface;
22
+ verificarSeSimboloAtualEIgualA(...argumentos: string[]): boolean;
23
+ abstract primario(): Construto;
24
+ finalizarChamada(entidadeChamada: Construto): Construto;
25
+ abstract chamar(): Construto;
26
+ unario(): Construto;
27
+ exponenciacao(): Construto;
28
+ multiplicar(): Construto;
29
+ adicaoOuSubtracao(): Construto;
30
+ bitFill(): Construto;
31
+ bitE(): Construto;
32
+ bitOu(): Construto;
33
+ comparar(): Construto;
34
+ comparacaoIgualdade(): Construto;
35
+ em(): Construto;
36
+ e(): Construto;
37
+ ou(): Construto;
38
+ /**
39
+ * `atribuir()` deve chamar `ou()` na implementação.
40
+ */
41
+ abstract atribuir(): Construto;
42
+ expressao(): Construto;
43
+ abstract declaracaoEscreva(): Escreva;
44
+ declaracaoExpressao(): Expressao;
45
+ abstract blocoEscopo(): Declaracao[];
46
+ declaracaoSe(): Se;
47
+ abstract declaracaoEnquanto(): Enquanto;
48
+ abstract declaracaoPara(): Para;
49
+ declaracaoSustar(): Sustar;
50
+ declaracaoContinua(): Continua;
51
+ declaracaoRetorna(): Retorna;
52
+ abstract declaracaoEscolha(): Escolha;
53
+ declaracaoImportar(): Importar;
54
+ declaracaoTente(): Tente;
55
+ abstract declaracaoFazer(): Fazer;
56
+ resolverDeclaracao(): void;
57
+ declaracaoDeVariavel(): Var;
58
+ funcao(tipo: string): FuncaoDeclaracao;
59
+ abstract corpoDaFuncao(tipo: string): Funcao;
60
+ declaracaoDeClasse(): Classe;
61
+ abstract declaracao(): Declaracao;
62
+ abstract analisar(retornoLexador: RetornoLexador, hashArquivo?: number): RetornoAvaliadorSintatico;
63
+ }
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AvaliadorSintaticoBase = void 0;
7
+ var construtos_1 = require("../construtos");
8
+ var declaracoes_1 = require("../declaracoes");
9
+ var erro_avaliador_sintatico_1 = require("./erro-avaliador-sintatico");
10
+ var comum_1 = __importDefault(require("../tipos-de-simbolos/comum"));
11
+ /**
12
+ * O Avaliador Sintático Base é uma tentativa de mapear métodos em comum
13
+ * entre todos os outros Avaliadores Sintáticos. Depende de um dicionário
14
+ * de tipos de símbolos comuns entre todos os dialetos.
15
+ */
16
+ var AvaliadorSintaticoBase = /** @class */ (function () {
17
+ function AvaliadorSintaticoBase() {
18
+ }
19
+ AvaliadorSintaticoBase.prototype.consumir = function (tipo, mensagemDeErro) {
20
+ if (this.verificarTipoSimboloAtual(tipo))
21
+ return this.avancarEDevolverAnterior();
22
+ throw this.erro(this.simbolos[this.atual], mensagemDeErro);
23
+ };
24
+ AvaliadorSintaticoBase.prototype.erro = function (simbolo, mensagemDeErro) {
25
+ var excecao = new erro_avaliador_sintatico_1.ErroAvaliadorSintatico(simbolo, mensagemDeErro);
26
+ this.erros.push(excecao);
27
+ return excecao;
28
+ };
29
+ AvaliadorSintaticoBase.prototype.verificarTipoSimboloAtual = function (tipo) {
30
+ if (this.estaNoFinal())
31
+ return false;
32
+ return this.simbolos[this.atual].tipo === tipo;
33
+ };
34
+ AvaliadorSintaticoBase.prototype.verificarTipoProximoSimbolo = function (tipo) {
35
+ return this.simbolos[this.atual + 1].tipo === tipo;
36
+ };
37
+ AvaliadorSintaticoBase.prototype.estaNoFinal = function () {
38
+ return this.atual === this.simbolos.length;
39
+ };
40
+ AvaliadorSintaticoBase.prototype.avancarEDevolverAnterior = function () {
41
+ if (!this.estaNoFinal())
42
+ this.atual += 1;
43
+ return this.simbolos[this.atual - 1];
44
+ };
45
+ AvaliadorSintaticoBase.prototype.verificarSeSimboloAtualEIgualA = function () {
46
+ var argumentos = [];
47
+ for (var _i = 0; _i < arguments.length; _i++) {
48
+ argumentos[_i] = arguments[_i];
49
+ }
50
+ for (var i = 0; i < argumentos.length; i++) {
51
+ var tipoAtual = argumentos[i];
52
+ if (this.verificarTipoSimboloAtual(tipoAtual)) {
53
+ this.avancarEDevolverAnterior();
54
+ return true;
55
+ }
56
+ }
57
+ return false;
58
+ };
59
+ AvaliadorSintaticoBase.prototype.finalizarChamada = function (entidadeChamada) {
60
+ throw new Error('Método não implementado.');
61
+ };
62
+ AvaliadorSintaticoBase.prototype.unario = function () {
63
+ if (this.verificarSeSimboloAtualEIgualA(comum_1.default.NEGACAO, comum_1.default.SUBTRACAO)) {
64
+ var operador = this.simbolos[this.atual - 1];
65
+ var direito = this.unario();
66
+ return new construtos_1.Unario(-1, operador, direito);
67
+ }
68
+ return this.chamar();
69
+ };
70
+ AvaliadorSintaticoBase.prototype.exponenciacao = function () {
71
+ throw new Error('Método não implementado.');
72
+ };
73
+ AvaliadorSintaticoBase.prototype.multiplicar = function () {
74
+ var expressao = this.unario();
75
+ while (this.verificarSeSimboloAtualEIgualA(comum_1.default.DIVISAO, comum_1.default.MULTIPLICACAO, comum_1.default.MODULO)) {
76
+ var operador = this.simbolos[this.atual - 1];
77
+ var direito = this.unario();
78
+ expressao = new construtos_1.Binario(-1, expressao, operador, direito);
79
+ }
80
+ return expressao;
81
+ };
82
+ AvaliadorSintaticoBase.prototype.adicaoOuSubtracao = function () {
83
+ var expressao = this.multiplicar();
84
+ while (this.verificarSeSimboloAtualEIgualA(comum_1.default.SUBTRACAO, comum_1.default.ADICAO)) {
85
+ var operador = this.simbolos[this.atual - 1];
86
+ var direito = this.multiplicar();
87
+ expressao = new construtos_1.Binario(-1, expressao, operador, direito);
88
+ }
89
+ return expressao;
90
+ };
91
+ AvaliadorSintaticoBase.prototype.bitFill = function () {
92
+ throw new Error('Método não implementado.');
93
+ };
94
+ AvaliadorSintaticoBase.prototype.bitE = function () {
95
+ throw new Error('Método não implementado.');
96
+ };
97
+ AvaliadorSintaticoBase.prototype.bitOu = function () {
98
+ throw new Error('Método não implementado.');
99
+ };
100
+ AvaliadorSintaticoBase.prototype.comparar = function () {
101
+ var expressao = this.adicaoOuSubtracao();
102
+ while (this.verificarSeSimboloAtualEIgualA(comum_1.default.MAIOR, comum_1.default.MAIOR_IGUAL, comum_1.default.MENOR, comum_1.default.MENOR_IGUAL)) {
103
+ var operador = this.simbolos[this.atual - 1];
104
+ var direito = this.adicaoOuSubtracao();
105
+ expressao = new construtos_1.Binario(-1, expressao, operador, direito);
106
+ }
107
+ return expressao;
108
+ };
109
+ AvaliadorSintaticoBase.prototype.comparacaoIgualdade = function () {
110
+ var expressao = this.comparar();
111
+ while (this.verificarSeSimboloAtualEIgualA(comum_1.default.DIFERENTE, comum_1.default.IGUAL)) {
112
+ var operador = this.simbolos[this.atual - 1];
113
+ var direito = this.comparar();
114
+ expressao = new construtos_1.Binario(-1, expressao, operador, direito);
115
+ }
116
+ return expressao;
117
+ };
118
+ AvaliadorSintaticoBase.prototype.em = function () {
119
+ throw new Error('Método não implementado.');
120
+ };
121
+ AvaliadorSintaticoBase.prototype.e = function () {
122
+ var expressao = this.comparacaoIgualdade();
123
+ while (this.verificarSeSimboloAtualEIgualA(comum_1.default.E)) {
124
+ var operador = this.simbolos[this.atual - 1];
125
+ var direito = this.comparacaoIgualdade();
126
+ expressao = new construtos_1.Logico(-1, expressao, operador, direito);
127
+ }
128
+ return expressao;
129
+ };
130
+ AvaliadorSintaticoBase.prototype.ou = function () {
131
+ var expressao = this.e();
132
+ while (this.verificarSeSimboloAtualEIgualA(comum_1.default.OU)) {
133
+ var operador = this.simbolos[this.atual - 1];
134
+ var direito = this.e();
135
+ expressao = new construtos_1.Logico(-1, expressao, operador, direito);
136
+ }
137
+ return expressao;
138
+ };
139
+ AvaliadorSintaticoBase.prototype.expressao = function () {
140
+ return this.atribuir();
141
+ };
142
+ AvaliadorSintaticoBase.prototype.declaracaoExpressao = function () {
143
+ throw new Error('Método não implementado.');
144
+ };
145
+ AvaliadorSintaticoBase.prototype.declaracaoSe = function () {
146
+ throw new Error('Método não implementado.');
147
+ };
148
+ AvaliadorSintaticoBase.prototype.declaracaoSustar = function () {
149
+ throw new Error('Método não implementado.');
150
+ };
151
+ AvaliadorSintaticoBase.prototype.declaracaoContinua = function () {
152
+ throw new Error('Método não implementado.');
153
+ };
154
+ AvaliadorSintaticoBase.prototype.declaracaoRetorna = function () {
155
+ throw new Error('Método não implementado.');
156
+ };
157
+ AvaliadorSintaticoBase.prototype.declaracaoImportar = function () {
158
+ throw new Error('Método não implementado.');
159
+ };
160
+ AvaliadorSintaticoBase.prototype.declaracaoTente = function () {
161
+ throw new Error('Método não implementado.');
162
+ };
163
+ AvaliadorSintaticoBase.prototype.resolverDeclaracao = function () {
164
+ throw new Error('Método não implementado.');
165
+ };
166
+ AvaliadorSintaticoBase.prototype.declaracaoDeVariavel = function () {
167
+ throw new Error('Método não implementado.');
168
+ };
169
+ AvaliadorSintaticoBase.prototype.funcao = function (tipo) {
170
+ var simboloFuncao = this.avancarEDevolverAnterior();
171
+ var nomeFuncao = this.consumir(comum_1.default.IDENTIFICADOR, "Esperado nome ".concat(tipo, "."));
172
+ return new declaracoes_1.Funcao(nomeFuncao, this.corpoDaFuncao(tipo));
173
+ };
174
+ AvaliadorSintaticoBase.prototype.declaracaoDeClasse = function () {
175
+ throw new Error('Método não implementado.');
176
+ };
177
+ return AvaliadorSintaticoBase;
178
+ }());
179
+ exports.AvaliadorSintaticoBase = AvaliadorSintaticoBase;
180
+ //# sourceMappingURL=avaliador-sintatico-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avaliador-sintatico-base.js","sourceRoot":"","sources":["../../../fontes/avaliador-sintatico/avaliador-sintatico-base.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { ErroAvaliadorSintatico } from './erro-avaliador-sintatico';
4
4
  import { Classe, Continua, Enquanto, Escolha, Escreva, Expressao, Fazer, Funcao as FuncaoDeclaracao, Importar, Para, Sustar, Retorna, Se, Tente, Var } from '../declaracoes';
5
5
  import { RetornoAvaliadorSintatico } from '../interfaces/retornos/retorno-avaliador-sintatico';
6
6
  import { RetornoLexador } from '../interfaces/retornos/retorno-lexador';
7
+ import { RetornoDeclaracao, RetornoResolverDeclaracao } from './retornos';
7
8
  /**
8
9
  * O avaliador sintático (Parser) é responsável por transformar os símbolos do Lexador em estruturas de alto nível.
9
10
  * Essas estruturas de alto nível são as partes que executam lógica de programação de fato.
@@ -25,7 +26,7 @@ export declare class AvaliadorSintatico implements AvaliadorSintaticoInterface {
25
26
  simboloAnterior(): SimboloInterface;
26
27
  estaNoFinal(): boolean;
27
28
  avancarEDevolverAnterior(): SimboloInterface;
28
- verificarSeSimboloAtualEIgualA(...argumentos: any[]): boolean;
29
+ verificarSeSimboloAtualEIgualA(...argumentos: string[]): boolean;
29
30
  primario(): Construto;
30
31
  finalizarChamada(entidadeChamada: Construto): Construto;
31
32
  chamar(): Construto;
@@ -54,7 +55,7 @@ export declare class AvaliadorSintatico implements AvaliadorSintaticoInterface {
54
55
  expressao(): Construto;
55
56
  declaracaoEscreva(): Escreva;
56
57
  declaracaoExpressao(): Expressao;
57
- blocoEscopo(): any[];
58
+ blocoEscopo(): Array<RetornoDeclaracao>;
58
59
  declaracaoSe(): Se;
59
60
  declaracaoEnquanto(): Enquanto;
60
61
  declaracaoPara(): Para;
@@ -65,7 +66,7 @@ export declare class AvaliadorSintatico implements AvaliadorSintaticoInterface {
65
66
  declaracaoImportar(): Importar;
66
67
  declaracaoTente(): Tente;
67
68
  declaracaoFazer(): Fazer;
68
- resolverDeclaracao(): any;
69
+ resolverDeclaracao(): RetornoResolverDeclaracao;
69
70
  /**
70
71
  * Caso símbolo atual seja `var`, devolve uma declaração de variável.
71
72
  * @returns Um Construto do tipo Var.
@@ -75,7 +76,7 @@ export declare class AvaliadorSintatico implements AvaliadorSintaticoInterface {
75
76
  logicaComumParametros(): ParametroInterface[];
76
77
  corpoDaFuncao(tipo: string): Funcao;
77
78
  declaracaoDeClasse(): Classe;
78
- declaracao(): any;
79
+ declaracao(): RetornoDeclaracao;
79
80
  /**
80
81
  * Usado quando há erros na avaliação sintática.
81
82
  * Garante que o código não entre em loop infinito.