Closed emcardoso closed 7 years ago
Detectamos que o FormalVisitor também não está bom. Ele deveria servir de base para construir visitors com menos código boilerplate.
Building visitor agora estende FormalVisitor, isso reduziu o tamanho da classe, eliminando código boilerplate. O construtor de NTType foi modificado para a forma solicitada. As tabelas forma movidas para um pacote próprio (Environemts) dentro de apeg.parser.ast.visitors. O Building visistor foi renomeado para BuldEnvironmentVisitor. A tabela de símbolos RuleEnvironment apenas mapeia nós de não terminais para símbolos.
Na classe NTType, a função match deve ir para o visitor que realiza a veriicação de tipos. Deve-se implementar funções getParamAt(int i) e getReturnAt(i) que obtém o tipo posicional e funções get para obter informações da aridade da função (não-terminal).
This is done.
Remover a funão ADD do NTTye, e fazer com que todos os parâmetros sejam rcebidos pelo construtor.