CobolScript (3) Plantillas

Published on Author lopezLeave a comment

Anterior Post 
Siguiente Post 

Me gusta tener un motor de plantillas en los lenguajes que implemento, así que agregué uno a mi proyecto de código abierto CobolScript, un compilador COBOL a JavaScript. El primer ejemplo:

https://github.com/ajlopez/CobolScript/tree/master/samples/template

El código:

<#
data division.
working-storage section.
01 n.

procedure division.
#>
Factorial
---------

<#
perform show-factorial varying n from 1 to 10.

show-factorial.
local result.
perform factorial using n giving result.
#>
${n}!= ${result}
<#
.
factorial using n.
local m.
if n = 1 then return n.
subtract 1 from n giving m.
perform factorial using m giving m.
multiply n by m.
return m.
#>

El archivo plantilla es compilado a COBOL transformando cada texto en un comando DISPLAY … WITH NO ADVANCING (los saltos de línea ya están en el texto). El código entre <# y #> se copia tal cual en el programa COBOL. Cada expresión entre ${ y } se expande como otro parámetro al comando DISPLAY. Entonces, luego de compilar todo el texto a COBOL, CobolScript compila el resultado a JavaScript. La sintaxis de la plantillas es, entonces, una especie de “syntax sugar”.

La salida del programa anterior:

Factorial
---------

1!= 1
2!= 2
3!= 6
4!= 24
5!= 120
6!= 720
7!= 5040
8!= 40320
9!= 362880
10!= 3628800

Podría usar las plantillas para generar archivos de texto, y entonces, implementar generación de código en CobolScript, así como lo hice en AjGenesis (tanto en la variante clásica en .NET, como en Ruby o JavaScript/NodeJs). Antes de eso, ya tengo una implementación de páginas dinámicas basadas en este motor de plantillas (sí, páginas dinámicas en CobolScript, cosas vederes Sancho ;-). Pero es tema para otro post.

Nos leemos!

Angel “Java” Lopez

http://www.ajlopez.com

http://twitter.com/ajlopez

Leave a Reply

Your email address will not be published. Required fields are marked *