Skip to content

Commit

Permalink
Decoradores em chamadas de métodos (#688)
Browse files Browse the repository at this point in the history
* Embonitamento periódico de código.

* - Emagrecimento do avaliador sintático Delégua;
- Decorador passa a trabalhar com argumentos cuja chave não pode repetir.

* Emagrecimento do micro avaliador sintático.

* - Mudando `parametros` para `atributos` em um decorador;
- Não permitindo mais dois atributos diferentes em um decorador com o mesmo nome;
- Melhorando testes unitários correspondentes.

* Decoradores para:

- Chamadas de funções, métodos, etc;
- Atribuições de constantes e variáveis.

* Ajustes adicionais antes de PR.

* Atualizando typedoc.
  • Loading branch information
leonelsanchesdasilva authored Nov 24, 2024
1 parent e7c4120 commit 05f523b
Show file tree
Hide file tree
Showing 51 changed files with 1,158 additions and 992 deletions.
6 changes: 3 additions & 3 deletions fontes/analisador-semantico/analisador-semantico-base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,12 +67,12 @@ import { ContinuarQuebra, RetornoQuebra, SustarQuebra } from '../quebras';
*/
export abstract class AnalisadorSemanticoBase implements AnalisadorSemanticoInterface {
diagnosticos: DiagnosticoAnalisadorSemantico[];

abstract analisar(declaracoes: Declaracao[]): RetornoAnalisadorSemantico;

adicionarDiagnostico(
simbolo: SimboloInterface,
mensagem: string,
simbolo: SimboloInterface,
mensagem: string,
severidade: DiagnosticoSeveridade = DiagnosticoSeveridade.ERRO
): void {
this.diagnosticos.push({
Expand Down
2 changes: 1 addition & 1 deletion fontes/analisador-semantico/analisador-semantico.ts
Original file line number Diff line number Diff line change
Expand Up @@ -414,7 +414,7 @@ export class AnalisadorSemantico extends AnalisadorSemanticoBase {
visitarDeclaracaoEscreva(declaracao: Escreva) {
if (declaracao.argumentos.length === 0) {
const { linha, hashArquivo } = declaracao;
const simbolo: SimboloInterface<''> = { literal: '', tipo:'', lexema: 'escreva', linha, hashArquivo }
const simbolo: SimboloInterface<''> = { literal: '', tipo: '', lexema: 'escreva', linha, hashArquivo };
this.erro(simbolo, `É preciso ter um ou mais parametros para 'escreva(...)'`);
return Promise.resolve();
}
Expand Down
Loading

0 comments on commit 05f523b

Please sign in to comment.