DesignLiquido / portugol-studio

Nossa implementação do dialeto Portugol Studio, usando TypeScript.
MIT License
4 stars 1 forks source link

erro na atribuicao de valores #31

Open Aristidescosta opened 2 months ago

Aristidescosta commented 2 months ago

Ao executar o seguinte código, o programa simplesmente funciona, embora que tem um erro, que é a tipagem da variável

programa 
{ 
  funcao inicio () 
  {
    caracter message
    message = "olá mundo"
    escreva(message)
  } 
}

Resposta atual é : olá mundo Sendo que deveria gerar um erro como o seguinte: Não é possível atribuir um valor do tipo 'cadeia' a uma variável do tipo 'caracter' (linha 10, posição 4) - (refêrencia tirada do portugol studio)

Aristidescosta commented 2 months ago

@leonelsanchesdasilva

import { TIPO_NATIVO, TipoInferencia } from "../interpretador";
export interface VariavelInterface {
    valor: any;
    tipo: TipoInferencia | TIPO_NATIVO;
    subtipo?: 'texto' | 'número' | 'longo' | 'lógico';
    imutavel: boolean;
    nomeReferencia?: string;
}

export type TipoInferencia = "texto" | "número" | "longo" | "vetor" | "dicionário" | "nulo" | "lógico" | "função" | "símbolo" | "objeto" | "módulo";

Acredito que o tipo de inferenciador esteja errado, isto porque os tipos não combinam com os do Portugol Studio

Além de que, este TipoInferencia vem do núcleo do Delegua. Acredito que não seja a tipagem correcta, esperarei pela resposta do Sr. Leonel quanto a esse assunto.

leonelsanchesdasilva commented 2 months ago

@Aristidescosta Podes implementar novos tipos, e sobrescrever todos os lugares que usam os tipos de Delégua.