program pascgen (input, output);

begin
P := N*((T*7*(D+7)*4));
Z := E*2;
if 0 < ((F+J+(O+6*Y*1))) then
X := ((4)*6)+3+3
;
C := 6;
X := J
end

  <script>
  var reccount = 0;
  var reccountmax = 256;
  var reccountexpr = 0;
  var reccountexprmax = 16;
  
  var propabilityif = 3; 
  var propabilitywhile = 6; 
  var propabilityfor = 12;
  var propabilityassignment = 15;
  var propabilitycompound = 3;
  var propabilityspecial = 12;
  
  var propabilityforany = 4;
  var propabilityforifromzero = 16;
  var propabilityforifromone = 8;
  var propabilityforvarfromzero = 12;
  var propabilityforvarfromone = 6;


  
  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 ++;
        simplestatement ();        
    }
    else
        window.document.write ("Number of recursive function calls exceedet");
  }
  function simplestatement () {
    if (reccount < reccountmax) {
        reccount ++;
        r = Math.floor (Math.random ()*(propabilityassignment + propabilitycompound + propabilityspecial));
        if (r <= propabilityassignment) {
            reccountexpr = 0;
            assignmentstatement ();
        }
        else if ((r > propabilityassignment) && (r < (propabilityassignment + propabilitycompound))) 
            compoundstatement ();
        else if ((r > (propabilityassignment+propabilitycompound)) && (r < (propabilityassignment + propabilitycompound + propabilityspecial))) 
            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 ++;
        r = Math.floor (Math.random ()*(propabilityif + propabilitywhile + propabilityfor));
        if (r <= propabilityif) 
            ifstatement ();
        else if ((r > propabilityif) && (r <= (propabilityif + propabilitywhile)))   
            whilestatement ();
        else if ((r > (propabilityif + propabilitywhile)) && (r <= (propabilityif + propabilitywhile + propabilityfor)))
            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 ("");
        statement ();
        window.document.write ("");
        if (Math.floor(Math.random ()*2) == 0) {
            window.document.write ("else
");
            window.document.write ("");
            statement ();
            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 ("");
        statement ();
        window.document.write ("");
    }
    else
        window.document.write ("Number of recursive function calls exceedet");
  }
  function forstatement () {
      if (reccount < reccountmax) {
        reccount ++;
        window.document.write ("for  ");
        
          
        r = Math.floor (Math.random () * (propabilityforany + propabilityforifromzero + propabilityforifromone + propabilityforvarfromzero + propabilityforvarfromone));
        
        if (r <= propabilityforany) {
            assignmentstatement ();
            window.document.write (" to  ");
            reccountexpr = 0;
            numexpr ();
            window.document.write (" do
");
            window.document.write ("");
            statement ();
            window.document.write ("");
        }
        else if ((r > propabilityforany) && (r < (propabilityforany + propabilityforifromzero))) {
            setitozero ();
            window.document.write (" to  ");
            reccountexpr = 0;
            naturalnumber ();
            window.document.write (" do
");
            window.document.write ("");
            statement ();
            window.document.write ("");
            
        }
        else if ((r > (propabilityforany+propabilityforifromzero)) && (r < (propabilityforany + propabilityforifromzero + propabilityforifromone))) {
            setitoone ();
            window.document.write (" to  ");
            reccountexpr = 0;
            naturalnumber ();
            window.document.write (" do
");
            window.document.write ("");
            statement ();
            window.document.write ("");
        }
           else if ((r > (propabilityforany+propabilityforifromzero+propabilityforifromone)) && (r < (propabilityforany + propabilityforifromzero + propabilityforifromone+propabilityforvarfromzero))) {
            var x = String.fromCharCode (Math.floor (Math.random () * 26) + 65);
            setvartozero (x);
            window.document.write (" to  ");
            reccountexpr = 0;
            naturalnumber ();
            window.document.write (" do
");
            window.document.write ("");
            statement ();
            window.document.write ("");            
        }  
        else if ((r > (propabilityforany+propabilityforifromzero+propabilityforifromone+propabilityforvarfromzero)) && (r < (propabilityforany + propabilityforifromzero + propabilityforifromone+propabilityforvarfromzero+propabilityforvarfromone))) {
            var x = String.fromCharCode (Math.floor (Math.random () * 26) + 65);
            setvartone (x);
            window.document.write (" to  ");
            reccountexpr = 0;
            naturalnumber ();
            window.document.write (" do
");
            window.document.write ("");
            statement ();
            window.document.write ("");            
        }  
    }
    else
        window.document.write ("Number of recursive function calls exceedet");
  }
  function naturalnumber () {
    window.document.write ((Math.floor (Math.random () * 64)).toString ());
  }
  
  function setitozero () {
    window.document.write ("i := 0");
  }
  function setitoone () {
    window.document.write ("i := 1");
  }
  function iincrement () {
    window.document.write ("i := i + 1");
  }
  function iincrement2 () {
    window.document.write ("i := i + 2");
  }
  function setvartozero (vr) {
    window.document.write (vr + " : = 0");
  }
  function setvartoone (vr) {
    window.document.write (vr + " : = 1");
  }
  function ivarncrement (vr) {
    window.document.write (vr + " := " + vr + " + 1");
  }
  function ivarncrement2 (vr) {
    window.document.write (vr + " := " + vr + " + ");
  }

  
  
  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 (reccountexpr < reccountexprmax) {
        reccountexpr++;
        if ((r = Math.floor (Math.random ()*3)) == 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 = Math.floor (Math.random ()*2)) == 0) 
            window.document.write (Math.floor (Math.random ()*10));
        else if (r == 1) 
            window.document.write (String.fromCharCode(Math.floor (Math.random ()*26) + 65));
        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
P := N*((T*7*(D+7)*4));
Z := E*2;
if 0 < ((F+J+(O+6*Y*1))) then
X := ((4)*6)+3+3;
C := 6;
X := Jend