<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Muchas gracias a todos por las
      respuestas.<br>
      <br>
      Al final era más fácil de lo que pensaba. Por un lado necesitaba
      un tipo de etiquetas para delimitar unos bloques en el archivo de
      texto y por otro otras etiquetas de las que tenía que establecer
      unos parámetros. El asunto es que no había nada de recursividad,
      con lo que separando el archivo en bloques y luego leyendo línea
      por línea con expresiones regulares me las puedo apañar.<br>
      <br>
      De nuevo gracias :) ¡Un saludo!<br>
      <br>
      Juanlu<br>
      <br>
      On 07/03/2014 11:53 AM, Chema Cortes wrote:<br>
    </div>
    <blockquote
cite="mid:CAAD4gUDpro7BowsGHo=cFTfNjjKUFmQhL-Tys8TnRi49QkntYw@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">El 2 de julio de 2014, 23:27, Juan
            Luis Cano <span dir="ltr"><<a moz-do-not-send="true"
                href="mailto:juanlu001@gmail.com" target="_blank">juanlu001@gmail.com</a>></span>
            escribió:<br>
            <blockquote class="gmail_quote" style="margin:0px 0px 0px
              0.8ex;border-left:1px solid
              rgb(204,204,204);padding-left:1ex">Hola a todos, como no
              sé mucho sobre conceptos teóricos de programación me
              gustaría hacer una consulta a la lista a ver si alguien me
              puede ayudar.<br>
              <br>
              Necesito crear un lenguaje de etiquetas para que el
              usuario pueda escribir una especie de «plantilla» con él y
              que el programa extraiga una información de él y genere
              unos datos. A grandes rasgos algo así:<br>
              <br>
              [TITULO]<br>
              Aquí va el título, bla bla<br>
              <br>
              [META1]<br>
              Más información<br>
              <br>
              [BLOQUE1]<br>
              <br>
              [PARAM1][XX,00-10,99]<br>
              <br>
              [FIN_BLOQUE1]<br>
              <br>
              Mi primera aproximación ha sido ir «parseando» el archivo
              caracter a caracter, porque el programa no sabe lo que va
              a leer. Abro corchete [, cierro corchete ], si encuentro
              texto entonces hago esto, si no lo otro... Sin embargo me
              figuro que a medida que el lenguaje crezca en complejidad
              puedo verme en serios problemas, y además entiendo que
              este proceso no es nuevo.<br>
              <br>
              ¿Pensáis que para este tipo de cosas es mejor utilizar
              algo tipo pyparsing o PLY? ¿O tal vez tratar de traducir
              esto a un lenguaje de marcas ya conocido como XML y
              utilizar herramientas ya disponibles para ello? ¿Podría
              limitarme a expresiones regulares o necesitaría una
              gramática libre de contexto?<br>
              <br>
            </blockquote>
            <div><br>
            </div>
            <div>Parece que necesitas un "lenguaje de marcas" para
              parametrizar una aplicación. Lo normal sería usar XML ó
              JSON/YAML, pero no sé qué grado de complicación esperas
              que pase. JSON es bastante fácil y directo de usar y
              siempre puedes pasar a YAML si requieres tipos de datos
              más específicos y complicados. Por otro lado, XML tiene
              herramientas de procesado semántico y numerosos estándares
              de integración que lo hacen más compatible con otras
              aplicaciones.<br>
              <br>
            </div>
            <div>Si la complejidad viene desde la necesidad de ser más
              "expresivo", la solución pasa por crearte un DSL. Con
              python no es tarea imposible, pero hay otros lenguajes que
              se prestan más a ello como son lua, ruby o scala (por
              decir unos pocos similares a python). Lua es bastante
              flexible para esta tarea y es sencillo empotrarlo a través
              del módulo Lupa para python.</div>
            <div><br>
            </div>
            <div>Es mejor que el usuario "colabore" y escriba la
              información lo más fácil posible (eg: ConfigParser). Lo
              que sí que te recomiendo es que evites crear un lenguaje
              nuevo. Es mucho trabajo y complicas más tu problema que lo
              que se simplifica.</div>
            <div><br>
              <br>
               </div>
            <blockquote class="gmail_quote" style="margin:0px 0px 0px
              0.8ex;border-left:1px solid
              rgb(204,204,204);padding-left:1ex">
              Espero haberme explicado bien, me temo que no puedo dar
              muchos detalles o ejemplos concretos. Si tengo que contar
              algo un poco mejor haré lo que pueda.<br>
              <br>
              Un saludo y gracias de antemano<br>
              <br>
              Juanlu<br>
            </blockquote>
          </div>
          <br clear="all">
          <br>
          -- <br>
          Hyperreals *R  "Quarks, bits y otras criaturas
          infinitesimales": <a moz-do-not-send="true"
            href="http://ch3m4.org/blog" target="_blank">http://ch3m4.org/blog</a><br>
          Buscador Python Hispano: <a moz-do-not-send="true"
            href="http://ch3m4.org/python-es" target="_blank">http://ch3m4.org/python-es</a>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Python-es mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Python-es@python.org">Python-es@python.org</a>
<a class="moz-txt-link-freetext" href="https://mail.python.org/mailman/listinfo/python-es">https://mail.python.org/mailman/listinfo/python-es</a>
FAQ: <a class="moz-txt-link-freetext" href="http://python-es-faq.wikidot.com/">http://python-es-faq.wikidot.com/</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>