Literales de bloque en formato libre
PowerRustCOBOL incorpora una extension del lenguaje: un
literal de bloque
delimitado por vallas, con la misma notacion que un bloque de codigo de
Markdown.
COBOL-85 no tiene literales de varias lineas. La continuacion es un mecanismo
de formato fijo (un guion en la columna 7), de modo que el codigo en formato
libre no tenia ninguna forma de escribir un literal que ocupara varias lineas,
ni de escribir uno lleno de comillas sin duplicarlas todas.
Como se escribe
El texto son las lineas que quedan
entre las vallas, tal cual:
Código:
MOVE
```
Hello, World!
```
TO WS-GREETING.
WS-GREETING recibe
Hello, World!
Las reglas
- El texto empieza en la linea siguiente a la valla de apertura. Lo
que se escriba detras de las comillas invertidas en esa linea es una
etiqueta, igual que el "json" de Markdown, y no forma parte del texto.
- La linea de la valla de cierre no es texto, y tampoco lo es el salto de
linea que la precede. Por eso un bloque de una sola linea se comporta
exactamente igual que un literal entrecomillado, sin salto final.
- Los saltos de linea interiores si se conservan. Ese es justamente
el proposito.
- No hay escapes. El texto se toma literalmente, asi que las comillas y los
apostrofos no necesitan duplicarse.
Para que sirve
Esa ultima regla es la que hace comodo el JSON, el SQL y el HTML incrustados:
Código:
MOVE
```json
{"name": "O'Brien", "tags": ["a", "b"], "ok": true}
```
TO WS-PAYLOAD.
CALL "COBOL-HTTP-POST" USING WS-URL WS-PAYLOAD WS-RESPONSE.
Escrito como literal normal, cada comilla de ese JSON habria que duplicarla.
Solo en formato libre
El formato fijo tiene zona de indicador y zona de secuencia, de modo que una
linea de comillas invertidas alli significa otra cosa. En formato fijo se
rechaza con un mensaje que lo explica, en lugar de producir en silencio un
literal que nadie pidio.
Documentacion:
PowerRustCOBOL/docs/developers-guide-en.md at main · CloudLandBeta/PowerRustCOBOL · GitHub
Anthropic Claude Codex Agent