adicionando implementação da AST (incompleta)