program pascgen (input, output);

begin
X := +G*0*(+*+H*+7);
if (+((E+)*T**Y)+()*A)<+ then
;
if 2*0*((K*2*))<+X* then
;
V := (L)+((*(9*8)*6+M+I+0))
else
begin
begin
V := K*8*A*+((*N*)*8*Q+*6*0*(7))
end
end
;
begin
;
begin
begin
begin
begin
if 0*(0*Z)**5+(F*F)*W<M*+R*M*(4)*(*J*(F++1*(N*6))) then
else
begin
begin
end
end
;
;
;
;
;
;
;
begin
begin
while 0<S*B*M do
V := *F+**((9)+A)*V*5**S
end
;
begin
V := ((9*(W*5*0*C)+6**8+*(7**6*3)))
end
end
;
U := 4*(W*H)*6+E+1;
begin
end
;
begin
;
begin
begin
begin
Number of recursive function calls exceedet;
Number of recursive function calls exceedet
end
end
end
end
;
Number of recursive function calls exceedet
end
end
end
;
Number of recursive function calls exceedet
end
end
;
Number of recursive function calls exceedet
end

  <script>
  var reccount = 0;
  var reccountmax = 128;
  var reccountexpr = 0;
  var reccountexprmax = 16;
  
  program ();
  
  function program () {
    programheading ();
    block ();
  }
  function programheading () {
    window.document.write ("program pascgen (input, output);

")
  }
  function block () {
    declarationpart ();
    statementpart ();
  }
  function declarationpart () {
  
  }
  function statementpart () {
    window.document.write ("begin
");
    window.document.write ("");
    statmnt ();
    window.document.write ("
");   
    window.document.write ("end
");
  }
  function statmnt () {
    if (reccount < reccountmax) {
        reccount ++;
        statement ();
        if (Math.floor (Math.random ()*2) == 1) {
            window.document.write (";
");
            statmnt ();
        }
    }
    else
        window.document.write ("Number of recursive function calls exceedet");
  }
  function statement () {
    if (reccount < reccountmax) {
        reccount ++;
        if (Math.floor (Math.random ()*2) == 1) 
            simplestatement ();
        else if (Math.floor (Math.random ()*2) == 0) 
            compoundstatement ();
        
    }
    else
        window.document.write ("Number of recursive function calls exceedet");
  }
  function simplestatement () {
    if (reccount < reccountmax) {
        reccount ++;
        if ((r = Math.floor (Math.random ()*3)) == 0) {
            reccountexpr = 0;
            assignmentstatement ();
        }
        else if (r == 1) 
            compoundstatement ();
        else if (r == 2) 
            specialstatement ();

    }  
    else
        window.document.write ("Number of recursive function calls exceedet");
  }
  function assignmentstatement () {
    window.document.write (String.fromCharCode(Math.floor (Math.random ()*26) + 65) + " := ");
    numexpr ();
    //window.document.write ("
");
  }
  function compoundstatement () {
    if (reccount < reccountmax) {
        reccount ++;
        window.document.write ("begin
");
        window.document.write ("");
        statmnt ();
        window.document.write ("");   
        window.document.write ("end
");
    }
    else
        window.document.write ("Number of recursive function calls exceedet");
  }
  function specialstatement () {
    if (reccount < reccountmax) {
        reccount ++;
        if ((r = Math.floor (Math.random ()*3)) == 0) 
            ifstatement ();
        else if (r == 1)   
            whilestatement ();
        else if (r == 2)
            forstatement ();
    }  
    else
        window.document.write ("Number of recursive function calls exceedet");  
  }
  function ifstatement () {
    if (reccount < reccountmax) {
        reccount ++;
        window.document.write ("if ");
        condition ();
        window.document.write (" then
");
        window.document.write ("");
        statmnt ();
        window.document.write ("");
        if (Math.floor(Math.random ()*2) == 0) {
            window.document.write ("else
");
            window.document.write ("");
            statmnt ();
            window.document.write ("");
        }
    }
    else
        window.document.write ("Number of recursive function calls exceedet");
  }
  function whilestatement () {
    if (reccount < reccountmax) {
        reccount ++;
        window.document.write ("while ");
        condition ();
        window.document.write (" do
");
        window.document.write ("");
        statmnt ();
        window.document.write ("");
    }
    else
        window.document.write ("Number of recursive function calls exceedet");
  }
  function forstatement () {
      if (reccount < reccountmax) {
        reccount ++;
        window.document.write ("for  ");
        assignmentstatement ();
        window.document.write ("to  ");
        reccountexpr = 0;
        numexpr ();
        window.document.write (" do
");
        window.document.write ("");
        statmnt ();
        window.document.write ("");
    }
    else
        window.document.write ("Number of recursive function calls exceedet");
  }

  function condition () {
    boolexpr ();
  }
  function boolexpr () {
    reccountexpr = 0;
    numexpr ();
    window.document.write ("<");
    reccountexpr = 0;
    numexpr ();
  }
  
  function numexpr () {
    term ();
    numexpr2 ();
  }
  function numexpr2 () {
    reccountexpr++;
    if (reccountexpr > reccountexprmax)
        return;
    if (Math.floor (Math.random ()*2) == 1) {
        window.document.write ('+');
        term ();
        numexpr2 ();
    }
  }
  function term () {
    factor ();
    term2 ();
  }
  function term2 () {
    reccountexpr++;
    if (reccountexpr > reccountexprmax)
        return;
    if (Math.floor (Math.random ()*2) == 1) {
        window.document.write ('*');
        factor ();
        term2 ();
    }
  }
  function factor () {
    if ((r = Math.floor (Math.random ()*4)) == 0) 
        window.document.write (Math.floor (Math.random ()*10));
    else if (r == 1) 
        window.document.write (String.fromCharCode(Math.floor (Math.random ()*26) + 65));
    else if (r == 2){
        window.document.write ('(');
        numexpr ();
        window.document.write (')');
    }
    else if (r == 3) {
        return;
    }
  }
  
    var x = document.getElementById ("myscript");
  var content = myscript.innerHTML;
  content = content.replace ("<", "<");
  content = content.replace (">", ">");
  content = content.replace(/(?:\r\n|\r|\n)/g, '
');
  content = content.replace(/ /g, " "); 
  window.document.write (content);
  
  program pascgen (input, output);

begin
X := +G*0*(+*+H*+7);
if (+((E+)*T**Y)+()*A)<then
;
if 2*0*((K*2*))<+X* then
;
V := (L)+((*(9*8)*6+M+I+0))else
begin
begin
V := K*8*A*+((*N*)*8*Q+*6*0*(7))end
end
;
begin
;
begin
begin
begin
begin
if 0*(0*Z)**5+(F*F)*W<M*+R*M*(4)*(*J*(F++1*(N*6))) then
else
begin
begin
end
end
;
;
;
;
;
;
;
begin
begin
while 0<S*B*M do
V := *F+**((9)+A)*V*5**Send
;
begin
V := ((9*(W*5*0*C)+6**8+*(7**6*3)))end
end
;
U := 4*(W*H)*6+E+1;
begin
end
;
begin
;
begin
begin
begin
Number of recursive function calls exceedet;
Number of recursive function calls exceedetend
end
end
end
;
Number of recursive function calls exceedetend
end
end
;
Number of recursive function calls exceedetend
end
;
Number of recursive function calls exceedetend