def descripcion(self): msj = 'una secuencia de cosas de la forma:\n' + identar(self._parser.descripcion()) if self._separador is None: msj += '\n' else: msj += '\nseparadas por:\n' + identar(self._separador.descripcion()) + '\ny ' msj += 'terminadas por:\n' + identar(self._terminador.descripcion()) return msj
def __unicode__(self): res = [] for costilla in self._entorno: res_costilla = [] for k, v in sorted(costilla.items()): res_costilla.append(u'%s -> %s' % (k, v)) res.append(u'{\n%s\n}' % (identar('\n'.join(res_costilla)),)) return u'Entorno([\n%s\n])' % (identar(',\n'.join(res),))
def __unicode__(self): s = [] for k, v in self._casos: s.append(u'%s => %s' % (k, v)) return u'TAnalisisDeCasosTopePila([\n%s\n])' % ( identar(',\n'.join(s)), )
def __unicode__(self): s = [] for k, v in self._casos: s.append(u'%s => %s' % (k, v)) return u'TAnalisisDeCasosExpresion(%s, [\n%s\n])' % ( self._expresion, identar(',\n'.join(s)), )
def __unicode__(self): ps = [] for p, v in self._parametros: ps.append(u'%s = %s' % (p, v)) return u'TAplicacionDirectaConstructor(%s, [\n%s\n])' % ( self._constructor, identar('\n'.join(map(unicode, ps))) )
def descripcion(self): ds = [] for p in self._parsers: if callable(p): ds.append('<thunk>') continue d = p.descripcion() if d is not None: ds.append(d) return 'alguna de las siguientes cosas:\n' + identar('\n'.join(ds))
def mensaje_de_error(self, it): msj = u'Tu programa es fruta.' max_its = [] for r in self.max_match(it): max_its = agregar_max_its(max_its, r) fallos = [] for _it, subparser in max_its: descripcion = subparser.descripcion_completa() if descripcion is not None: fallos.append(descripcion) it2 = _it if fallos != []: if len(fallos) == 1: comentario = '' else: comentario = ' alguna de las siguientes cosas' msj += u'\nEsperaba%s:\n%s' % (comentario, identar('\n'.join(fallos)),) msj += u'\n---\nCerca de:\n\n%s\n' % (identar(it2.contexto()),) return msj
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])
def __unicode__(self): return u'TDefinicionDeTipoInductivo(%s, [\n%s\n])' % ( self._nombre_tipo, identar('\n'.join(map(unicode, self._declaraciones_constructores))), )
def __unicode__(self): return u'TDeclaracionConstructorConParametros(%s, [\n%s\n])' % ( self.nombre_constructor, identar('\n'.join(map(unicode, self.nombres_parametros))), )
def __unicode__(self): kvs = [] for k, v in self._sustantivos.items(): kvs.append(u'%s -> %s' % (k, v)) return 'Tesoro(sustantivos = {\n' + identar(',\n'.join(kvs)) + '\n})'
def descripcion(self): ds = [d for p in self._parsers for d in [p.descripcion()] if d is not None] return 'una secuencia de las siguientes cosas:\n' + identar('\n'.join(ds))
def __unicode__(self): return u'TDefinicionDeFuncion(%s, [%s],\n%s\n)' % ( self._verbo, unicode_list(self._parametros), identar(unicode(self._cuerpo)) )
def __unicode__(self): return u'TBloque([\n%s\n])' % (identar(unicode_list(self._subterminos, sep=u',\n')),)
def __unicode__(self): return u'TInvocarVerbo(%s, [\n%s\n])' % ( self._verbo, identar(unicode_list(self._argumentos, sep=u',\n')) )
def __unicode__(self): return u'Estado(\n%s,\n%s\n)' % ( identar(unicode(self.entorno)), identar('Pila([\n' + identar(',\n'.join(map(unicode, self.pila))) + '\n])') )