'BEGIN'
    'COMMENT'   ET COMMENT;
    'COMMENT' LIBRARY 1;
    'REAL'
        C;
    'ARRAY'
        D[ - 0 : + 1, 0&0 : 1.0];
    'INTEGER''PROCEDURE' R(C);
        'REAL'
            C;
        R :=
            'IF' 'TRUE' 'THEN'
                C
            'ELSE'
                R(0);
    D[0, 0] := C := C := 1;
    'COMMENT' PROGRAM MODIFIED TO AVOID USE BEFORE DECLARATION;
    'BEGIN'
        'INTEGER''ARRAY'
            H,
            A[1 : C+D[0,1-(R(+1))]],
            J[0 :1];
        'SWITCH' B :=
            (B[2]),
            L,
            'IF' 'IF' A[1] = 0 'AND' 'NOT' 'FALSE' 'THEN' 'TRUE'
                'ELSE' 'FALSE' 'THEN' B[A[1] + 1] 'ELSE' L;
        'REAL' 'PROCEDURE' P;
            'BEGIN'
            Q(A, B, C, A[1])ENCORE : (B[1], (1));
            'FOR' C := 1 'STEP' 1 'UNTIL' 'IF' 'FALSE' 'THEN' P
                    'ELSE' 1 'DO'
                'FOR' C := 1,
                    2 'DO'
                    ;
            P := (0)
            'END' :P;
        'PROCEDURE' Q(A, B, C, D)E : (E, F);
            'INTEGER'
                F;
            'SWITCH'
                B;
            'INTEGER''ARRAY'
                A;
            'REAL'
                C;
            'REAL'
                D;
            'LABEL'
                E;
            ;
        'COMMENT'   'BEGIN' 'COMMENT' 'END';
        A[1] := 0;
        L :;
        OUTREAL(99, P);
        C := C + 1 * 1^1;
        'IF' C = 2 'THEN'
            'GOTO' B[P + 3]
    'END'
'END'