Example #1
0
    def __unicode__(self):
        res = []
        for param in self._nombres_parametros:
            if param in self._valores_parametros:
                param_s = tesoro_actual().sustantivo_comun_singular(param)
                res.append(u'%s: %s' % (param_s, self._valores_parametros[param]))

        if res == []:
            nombre_s = tesoro_actual().sustantivo_comun_singular_con_articulo_determinado(self._nombre_constructor)
            return nombre_s
        elif len(res) == 1:
            nombre_s = tesoro_actual().sustantivo_comun_singular_con_articulo_indeterminado(self._nombre_constructor)
            return nombre_s + ' que tiene como ' + res[0]
        else:
            nombre_s = tesoro_actual().sustantivo_comun_singular_con_articulo_indeterminado(self._nombre_constructor)
            return nombre_s + ' que tiene\n' + identar(',\n'.join(res[:-1]) + '\ny ' + res[-1])
Example #2
0
 def evaluar_en(self, estado):
     tipo = TTipoInductivo(
         tesoro_actual().sustantivo_comun_singular(self._nombre_tipo)
     )
     for decl in self._declaraciones_constructores:
         constructor = TConstructor(
             self,
             decl.nombre_constructor,
             decl.nombres_parametros,
         )
         estado.entorno.declarar(decl.nombre_constructor, constructor)
         tipo.agregar_constructor(constructor)
     estado.entorno.declarar(self._nombre_tipo, tipo)
     yield TNada()