Sintaxis de dislines

versión 1.0
23-07-2005. Daniel Clemente.
Español Català English Esperanto

Ésta es la sintaxis que usa el programa dislines, http://www.danielclemente.com/dislines/index.es.html



1. Reglas generales

2. Etiquetas básicas

  @es Esta línea sólo saldrá en el fichero nombre.es.ext
  @en Y ésta, sólo en nombre.en.ext
  
  Las líneas sin etiqueta son comunes para todos los archivos.

Los caracteres válidos para un nombre de etiqueta son todos los permitidos para un fichero, excepto éstos: @ ,{}/\

3. Etiquetas múltiples

Para asociar dos o más etiquetas a una línea, separarlas por comas:

  @it,es,fr 50 euros
  @en $60

Nota: no poner espacios entre las comas. Recuerda que la línea real empieza a partir del primer espacio.

4. Bloques

Si se van a escribir varias líneas usando la misma etiqueta, no hace falta repetirla en cada línea. Se pueden usar bloques:

  @{es
  Todas estas líneas
  son sólo
  de la versión en español.
  @}es

También se pueden usar varias etiquetas:

  @{es,en,it
  aaaa
  bbbb
  @}es,en,it

Hay varias formas de escribir las etiquetas de inicio y de fin de bloque:

La más corta y cómoda es posiblemente:

  @en{
  aaaa
  bbbb
  @}

Los bloques no se pueden anidar.

5. Comodidades

Se permiten varias técnicas para hacer más sencillo usar este lenguaje.

5.1. Última etiqueta usada

Si se quieren escribir varias líneas con la misma etiqueta, va bien usar bloques. Si son pocas líneas, se puede repetir @etiqueta en cada línea, o también usar @ seguida de una o más comillas dobles (") para volver a usar la etiqueta anterior. Ej.:

  @en Etiqueta 'en'
  @"" Misma etiqueta (en)
  @"" La misma (en)
  @fr Etiqueta 'fr'
  @"" La misma (fr)

5.2. Comentarios

Se pueden poner comentarios:

  @-- Esta línea no saldrá en ninguna versión

El número de guiones (-) puede ser cualquiera. Ejemplo:

  @--------------- también sirve

También se pueden hacer bloques de comentario:

  @{---
  varias
  líneas
  @}---

5.3. Indentación

Si quieres mantener el mismo margen en cada línea, hay varias formas:

Se pueden poner varias arrobas (en vez de una) al principio de un comando:

  @@@català |--- prova --|
  @@@@@@esp |-- prueba --|
  @@english |--- test ---|
  @@@@@@@eo |--- provo --|
  
  @nombre_largo 123456789
  @@@@@@@@corto 987654321

Las líneas comunes también pueden escribirse con varias arrobas por delante, que no indican nada especial:

  @en English line
  @es Línea en español
  @@@ Esta línea es común

Los comentarios (@--) y la repetición de etiqueta (@"") pueden llevar cualquier número de - o ".

6. Casos raros

No hace falta que conozcas esto a menos que te hayas encontrado con alguno de estos problemas.

6.1. Escribir @ a principio de palabra en una línea común

Las líneas comunes se pueden escribir directamente, pero si empiezan por @ se interpretarán como una asignación de etiqueta.

La solución es usar las arrobas inútiles explicadas en el apartado anterior. Ej.: para escribir @echo on:

  Esto es incorrecto, está asignando la etiqueta "echo"
  @echo on
  
  Lo correcto es:
  @ @echo on
  @@@@@ @echo on
  @@@@@@@@@ @echo on
  etc.

Esto es aplicable también a bloques: hay que poner @ @echo on dentro de un bloque para que no se interprete como una asignación de etiqueta.

6.2. Resto de línea al abrir/cerrar un bloque

Al usar bloques, es recomendable dejar las líneas de apertura y de cierre sin más texto que la propia etiqueta. Por ejemplo:

  @{es
  aaaaaaa
  bbbbbb
  ccccccc
  @}es

Si se incluye texto, por ejemplo,

  @{es aaa
  bbb
  ccc
  @}es ddd

tanto el primero (aaa) como el último (ddd) serán ignorados. El no incluir aaa es debido a que no interesa añadir una línea en blanco si se abre el bloque sólo con @{es.

6.3. Comandos dentro de un bloque

Los únicos comandos interpretados dentro de un bloque son los comentarios de una línea (@----) y las arrobas inútiles a principio de línea:

  @{fr
  
  @---- comentario; no sale en 'fr' ni en ningún otro
  @---- es incorrecto poner ahora: @es Hola
  
  Todo esto es equivalente:
  a b c
  @ a b c
  @@@@@@ a b c
  
  @}fr

El resto de comandos darán error.

Como los bloques no se pueden anidar, los comentarios en bloque (@{--) no sirven para comentar otros bloques. Hay que usar @-- en cada línea.

Los motivos para interpretar las líneas de un bloque son: ser consistente con lo de "todas las líneas que empezaban por @ en el archivo original han de ser protegidas por una @ inicial", permitir comentarios dentro del bloque, y permitir escribir @} sin cerrarlo por error.

6.4. Uso de @"" en sitios especiales

@"" (repetir última etiqueta usada) sólo sirve para etiquetas sencillas, no para bloques. Alargar el bloque suele ser suficiente.

Si se pone @"" en la primera línea (no hay ninguna etiqueta previa), se interpreta como una línea común a todas las versiones.

6.5. Bloque sin etiqueta

Esto:

  @{
  aa
  bb
  @}

es inútil e incorrecto. Lo mismo pasa con @{, y similares.

6.6. Comentarios y etiquetas a la vez

No hace falta escribir esto:

  @---,aa,---,-,---,bb lalala

Equivale a @aa,bb lalala (los comentarios se ignoran). Lo mismo pasa con bloques.

6.7. Misma etiqueta varias veces

Esto no es recomendable y tiene un resultado indefinido:

  @es,es ¿Doble? Quizás sí, quizás no.

7. Ideas para la siguiente versión

Para la versión 2 de esta especificación (si es que hace falta), puede que incluya cosas como:

7.1. Comandos especiales

Se ponen al principio del fichero:

  @! instrucción

Servirían para muchas cosas. Por ejemplo:

  @! ExecuteAfter: txt2tags $BASENAME.en.t2t
  @! Encoding(es): iso-8859-1

7.2. Grupos de etiquetas

  @! Group euros es,fr,it

Y luego:

  @euros 6 euros
  ( equivale a usar @es,fr,it )

7.3. Selección inversa de etiquetas

Se puede asociar a una línea "todas las etiquetas excepto las especificadas". Ej.:

  @ˆen Todo excepto en
  @ˆen,it Todo excepto en,it
  @ˆ{en
  todo excepto en
  ....
  ..
  @ˆ}en

7.4. Repetición de líneas y bloques

Esto:

  @{en,en
  ab
  cd
  @}en,en

¿debería poner el bloque dos veces seguidas? No parece muy útil, y complica el programa.

8. Espero sugerencias

Dime qué opinas de este lenguaje y del programa, y qué puedo añadir, quitar, o simplificar. Quiero que sea sencillo, útil, y apto para escribirlo a mano.


Julio 2005, Daniel Clemente Laboreo. ( n142857 {arroba/- g-m-a-i-l- .-c-o-m )

http://www.danielclemente.com/dislines/