F.E.L.T.

Functionally Equivalent Language Translation

PROGN

(progn expr1 expr2 ... exprN)    ; a "block" of expressions

(if (== a 42)                    ; if a is 42 then
    (progn                       ;  execute this block of expressions
     ...body..))

See also IF

This instruction is how you logically enclose a block of expressions. In PHP, javaScript and Node.js this is the same as encasing the same block of code within the {} sequence. Any valid FELT expressions can be placed within the body of the PROGN instruction.


Blocks and Lexical Scoping

You can use the PROGN instruction to introduce a new lexically scoped block of statements into you target language at any point that that is legal to do so but be careful that you do not cause problems for yourself. Some languages have different rules about shadowing when you do this.

In 'C' and 'C++' you can use a block to introduce extra variables into the "case" part of a "switch" statement for example. That's academic right now as neither of those is supported by FELT yet but just bear in mind that whilst FELT takes advantage of the fact that most languages have a large enough overlap to allow it to work at all, you can get bitten if you are not paying full attention at all times.