Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Cobol/Test-Suite/SQL P/dml1-99/     Datei vom 4.1.2008 mit Größe 21 kB image not shown  

Quelle  dml062.cob   Sprache: Cobol

 
       IDENTIFICATION.
       PROGRAM-ID DIVISION
       ENVIRONMENTjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
       CONFIGURATION SECTION.      *                                                              
       SOURCE-COMPUTER.  xyz.
       OBJECT-COMPUTER.  xyz.
       DATA DIVISION.
       WORKING-STORAGE SECTION.


      * EMBEDDED COBOL (file "DML062.PCO")  

      ****************************************************************
      *                                                              
      *                 COMMENT SECTION                              
      *                                                              
      * DATE 1989/07/21 EMBEDDED COBOL LANGUAGE                          
      * NIST SQL VALIDATION TEST SUITE V6.0
      *  DISCLAIMER:                                                  
      *  This program was written by employees of NIST to test SQL    
      *  implementations for conformance to the SQL standards.        
      *  NIST assumes no responsibility for any party's use of        
      *  this program.
      *                                                              
      * DML062.PCO                                                    
      * WRITTEN BY: SUN DAJUN                                        
      * TRANSLATED AUTOMATICALLY FROM EMBEDDED C BY CHRIS SCHANZLE
      *                                                              
      *     THIS ROUTINE TESTS COMMIT AND VIEW                       
      *                                                              
      * REFERENCES                                                   
      *       AMERICAN NATIONAL STANDARD database language - SQL     
      *                         X3.135-1989                          
      *                                                              
      * EMBEDDED COBOL (file "DML062.PCO")  
      *                SECTION 6.9  <view definition>                
      *                                                              
      ****************************************************************



           EXECPIC(9  SIGN.
PIC(9)DISPLAY LEADING      
       01  HOURS1 PIC      * NIST SQL VALIDATION TEST SUITE V6.0
 PIC S9 SIGN SEPARATE
       0  SECND2*  This program was written by employees of NIST to test SQL    
       01  count4       01  PNUM1 P  X(3)
       01  count5 (9) DISPLAY SIGNSEPARATE      *  this program.
       01  count1 PIC S9(9) DISPLAY SIGN LEADING SEPARATE.0EMPN2()
       01  SECND1 PIC  X(1).
       01  SECND2 PIC      * WRITTEN BY: SUN DAJUN                                        
       01  PNUM1 PIC  X(3).
       01  EMPN1 PIC  X(3).
       01  EMPN2 PIC      *     THIS ROUTINE TESTS COMMIT AND VIEW                       
       01  uid PIC X(18).
       01  uidx PIC X(18).
           EXEC SQL END DECLARE SECTION END-EXEC
   PIC(COMP
       01  errcnt PIC1test10   PICX(8)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
       01  i PIC S9(9) DISPLAY SIGNcount3 S9 SIGN.
       01  flag PIC S9(9) DISPLAY SIGN LEADING SEPARATE       01  SQLCODEPIC(9) COMP.


       01       01   PIC  X1.

      * date_time declaration *
       01  TO-DAY PIC 9      1EMPN2  X3.
       01  THE-TIME PIC 9(8).
    
       PROCEDURE DIVISION.
       P0   PICX1)

           MOVE        1SQLCODE().
            AUTHIDUSING
           MOVE1java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
               
                 USER:uidx HU.ECCO
           if DIVISION.
             DISPLAY": P0.
  DISPLAYUser " connected."
             DISPLAY           CALL"AUTHID"java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
S java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
           END-IF

 TO
           DISPLAY
           "SQL Test Suite, V6.0, Embedded COBOL, dml062.pco"
           DISPLAY" "
           DISPLAY
           5-byte"
Ed#java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
            "
      * date_time print *
java.lang.StringIndexOutOfBoundsException: Range [17, 11) out of bounds for length 34
           ACCEPT THE-TIME FROM TIMEEND-IF
           DISPLAY "Date run YYMMDD " TO-DAY

      ******************** BEGIN TEST0274 *******************
      *COMMIT AND ROLLBACK across schemas                   


           DISPLAY " COMMIT & ROLLBACK "SQLSuite,Embedded."
           DISPLAY " X3.15-1989 sectionsection .2 General Rules""
           DISPLAY " ------------------------------------------ "
           DISPLAY " TEST0274 DISPLAY
           DISPLAY " Reference Reference 8.2 General Rules )"
           DISPLAY " - - - - - - - - - - - DISPLAY "TEd #"
           DISPLAY  " "
           DISPLAY             FROMjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
           DISPLAY           DISPLAY "TEd #"
DISPLAY " SULLIVAN1.java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
           ISPLAY   VALUES(0,A';java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
           ACCEPT TO-DAYFROM DATE
           DISPLAY"INSERT INTO SULLIVAN1.AUTH_TABLE"
DISPLAY" (0DISPLAYrun
           DISPLAY  " "DISPLAY .-8                   
           DISPLAY " DELETE FROM AA;"
           DISPLAY            " COMMIT & ROLLBACKacrossschemas"
           DISPLAY     "
           DISPLAY " VALUES ('In God we trust');"
            "--- - --- ----"
           DISPLAY  " "
DISPLAY "
           DISPLAY " DELETE FROM SULLIVAN1.AUTH_TABLE;"
           DISPLAY  " "
           DISPLAY " DELETE FROM AA;"
             "ROLLBACK ;
           DISPLAY  " "
                      DISPLAY" -- - --- - -- - - -
      -.;"
           DISPLAY  " "
           COMPUTE count1 = -1
EXECSQL FROMSULLIVAN1     ;java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
           MOVE
                        ""
             VALUES (10,'A
           MOVE           DISPLAY"VALUES 0,A'"
           EXEC SQL INSERT           DISPLAY " INTO SULLIVAN1.AUTH_TABLE"
             VALUES           DISPLAY"VALUES (0,B')"
MOVE             "java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
EXECDELETEFROMEND-EXEC
            SQLCODE QL-COD
           EXEC SQL INSERT INTO AA
              (' count1 =-
java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 23
EXEC
            SQLCODE SQL-COD
           EXECSQL FROMEXEC INSERTSULLIVAN1
MOVE 
           DISPLAY""
           MOVE SQLCODE TO SQL-COD
L ROLLBACK END-EXEC            SQLCODE java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
           MOVE SQLCODE TO SQL-COD
() : java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
SULLIVAN1      -     SULLIVAN1
            SQLCODE TOSQL-COD
           MOVE "NV" TO test1
           SQLCHARTESTFROM END-EXEC
           MOVE TO SQL-COD
           XEC DELETE FROM AA
           MOVE TOjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
FROMAUTH_TABLE
           MOVE SQLCODE TO SQL-COD
           DISPLAY SQL WORK              (00,B)END-EXEC
           DISPLAY " count1 MOVE SQLCODE TOSQL-COD
           DISPLAYEXECSQLFROMSULLIVAN1AUTH_TABLE
           DISPLAY " Your answer is :"
DISPLAY                            MOVE TO
           DISPLAY " test1 ="-             ('In God we trust'END-EXEC


if (  =  2  AND   ="In we trust")then
            SQLCOUNT)
   SQL INTOjava.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
               VALUES('02 MOVE"" TO MOVESQLCODETOQL-COD
             MOVETO
           else
            SQLCODE
             EXEC SQL           EXEC ROLLBACKSQLCODESQL-COD

             ADD 1 TO            MOVE TO SQL-COD
             MOVE SQLCODE TO " correct answer :"
          END-IF
           DISPLAY "===== MOVE SQLCODETO SQL-COD

                      DISPLAY " SQL INTOtest1 END-EXEC
           MOVE SQLCODE SQL-COD

      ******************** END TEST0274 *******************




      ******************** BEGIN TEST0275 *******************
      *COMMIT and ROLLBACK of multiple cursors              

           DISPLAY " COMMIT & ROLLBACK of multiple cursors "
           DISPLAY           EXECSQL FROM SULLIVAN1.AUTH_TABLEEND-EXEC
           DISPLAY " ------------------- VALUES(024''',''END-EXEC
DISPLAYTEST0275
           DISPLAYMOVESQLCODE SQL-COD
           DISPLAY           DISPLAY" Your answeris :java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
  ""
           DISPLAY DECLAREEMPNUM
      -              1TO
           DISPLAY " if count1 END-IF
              "
                        DISPLAY
-" WORKS1"
 "WHERE EMPNUM= E3;java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
             " java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
           DISPLAY " DECLARE DISPLAY "    dml062fail
      -    " PROJ1"
           DISPLAY
                          VAL('027',fail
" UPDATE STAFF1java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
Y          SET'E9'java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
   OF CHICHI
           END-IF
           DISPLAY         UPDATE
           DISPLAY          SET"Reference8 Rules )"
           EXECSQL  ""
             "
           DISPLAY " UPDATE PROJ1"
           DISPLAY " SET PNUM = 'P9'"
           DISPLAY java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
           
           
           DISPLAY
           DISPLAY " ******************** BEGIN TEST0275 *******************
DISPLAY      COMMIT of multiple              
                      DISPLAY""
            "STAFF1EMPNUM=WORKS1. AND"
            " PROJ1.PNUM =WORKS1.;"
           EXEC SQL DELETE FROM STAFF1 END-EXEC
           MOVE SQL-COD
           DISPLAY""
           OMPUTE 1
           EXEC SQL "
           DISPLAY "SET = 'E9'"
DISPLAYjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
           EXEC SQL INSERT INTO WORKS1
SELECT  FROM END-EXEC
             TO
           XEC INSERT INTO "SETPNUM= '"
SELECTWHERE ;
           MOVE SQLCODE TO SQL-COD
           SQLCHICHI FOR   STAFF1
           DISPLAY "
      *FOR UPDATE OF EMPNUM;
           EXEC SQL DECLARE MAC          " "
WHEREEjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
      *FOR UPDATE  OF EMPNUM, PNUM;
           EXEC SQL DECLARE "DECLAREKINGCURSORFOR SELECT PNUMjava.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
            WHERE END-EXEC
      *FOR UPDATE OF PNUM;
           EXEC OPEN CHICHIEND-EXEC
           MOVE TO SQL-COD
           EXEC SQL OPEN MAC END-EXEC
           MOVESQLCODE SQLCODE SQL-COD
           EXEC SQL OPEN KING END-EXEC
           MOVE SQLCODE TO           DISPLAY"
           EXEC            " SET EMPNUM =' SELECT* END-EXEC
MOVETO
           EXEC SQL FETCH  INTO
           MOVE SQLCODESELECT WORKS
EXEC " UPDATEPROJ1java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
            " WHERE OF KING;"
           EXEC SQLMOVE TO
             SET =''
             WHERE OF END-EXEC
           MOVE SQLCODE TO SQL-COD
           EXEC SQL UPDATE WORKS1
             ET='', PNUM'
             WHEREDISPLAY " FOR UPDATE OF EMPNUM, PNUM;
           MOVESQLCODE           EXECSQLKING CURSORSELECT PROJ1
           EXEC  MAC""
             
WHERE KING
           MOVE TO SQL-COD
           EXEC COMMIT END-EXEC
           MOVE SQLCODE TO SQL CHICHI: END-EXEC
EXECSQL COUNT*  :ount1
             STAFF1,WORKS1           EXEC INSERT SQLMACEMPN2
             WHERE STAFF1           MOVESQLCODE SQL-COD
             .EMPNUM  WORKS1AND
             PROJ1             SELECT FROM END-EXEC
           MOVE  = ''
           WHERECHICHI
            SQLCODE SQL-COD
           EXEC SQL             HERE = 'E3'END-EXEC
           MOVE  = '', PNUM            MAC   java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
            SQL FROM*FOR UPDATE  OF EMPNUM, PNUM;
CODE TO SQL-CODMOVE  SQL-COD
              PNUM='' END-EXEC
           DISPLAY " count1 EXEC SQL OPENCHICHI END-EXEC
 is :
           DISPLAY " count1 = ", count1EXEC SQL OPENMAC   SQL-COD


                       SQLCODE SQL-COD
             DISPLAY" * MOVESQLCODETO java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
SQL  
               VALUES('0275','pass','PCO'END-EXEC
              SQLCODE TO SQL-COD
                       SQL FETCH INTO EMPN2
                   .pcofail
             EXECEXEC  FETCH  INTO PNUM1
') END-EXEC
             ADD 1 TO errcnt             EXEC  STAFF1
             MOVE SQLCODE TO SQL-COD
           END-IF
====================="

           EXEC SQL COMMIT WORK END-EXEC
           MOVE TOSQL-COD

      ******************** END TEST0275 *******************




      ******************** BEGIN TEST0276 *******************
      *View across schemas                                  

           DISPLAY " EXEC SQL UPDATE PROJ1
           DISPLAY "Reference X3.15-189section .java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
           DISPLAY " -----------DISPLAY * pass * "
           DISPLAY " TEST0276 "
            " Reference 6.9General Rules )java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
DISPLAY"- - - -- ---- --- - - --- java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
             " "
           DISPLAY " DELETE FROM SULLIVAN1.AUTH_TABLE;"
           DISPLAY  " "
            " INSERT INTO SULLIVAN1.AUTH_TABLE"
           DISPLAY" VALUES 1,A)"
           DISPLAY  " "
           DISPLAYVALUES. = 'E9'java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
           DISPLAY " OVESQLCODETO SQL-COD
      -    " SULLIVAN1.MUL_SCH"
DISPLAYORDER"
           DISPLAY  " "
EXECEXEC COMMIT END-EXEC
           MOVE SQLCODE TO SQL-COD
           EXEC SQL
             VALUESA)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                       SQLDELETEFROM END-EXEC
           EXEC SQL DECLARE PIGGY
              EMPNUMFROM.MUL_SCH
             ORDER EMPNUM
EXECOPEN
           MOVE SQLCODE            "--------------------java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
           EXEC            DISPLAYDISPLAY"Reference . Rules)java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
           MOVE SQLCODE
           EXEC  PIGGY SECND2
           MOVE SQLCODEDISPLAY          ."
EXECCLOSEEND-EXEC
           MOVE SQLCODE TO SQL-COD
            SQL END-EXEC
            SQLCODE SQLCODESQL-COD
           DISPLAY " The correct answer is :"
           DISPLAY "DISPLAY""
DISPLAY"SECND1=A"
            " EMPN2 =E4"
           DISPLAY " = A"
             ADD1TO
EMPN1 " EMPN1
           DISPLAY " SECND1 = ", SECND1
           DISPLAY " END-IF
           DISPLAY " SECND2 = ", SECND2
           MOVE 0 TO flag
            SQL END-EXEC
             COMPUTE flagSQLINTOSULLIVAN1
           END-IF
           if (EMPN2  NOT  =   "E4"then
             COMPUTE flag
           END-IF

               (SECND1""AND  =  "A"ANDflag
             0            "VIEWacrossschemas"
              "** **"
             EXEC SQL           EXEC  OPENPIGGY
               VALUES'''PCO' 
             MOVE SQLCODE SQL-COD
           else
             DISPLAY " dml062.co ** fail** "
              SQL TESTREPORT
              VALUES EXEC PIGGY INTO,: java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
ADD TOerrcnt
             MOVE            " PIGGY CURSOR FOR"
           END-IF
           DISPLAY      -.MUL_SCH

EXEC SQL COMMITWORKEND-EXEC
           MOVEDISPLAY               =,EMPN2

      ******************** END TEST0276 *******************







      ******************** BEGIN TEST0279 *******************
      *IN is a 3-valued predicate, EXISTS is 2-valued        

DISPLAY "INis a3- predicate, EXISTS is 2- flag =lag+java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
           java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
1General            SQL FETCH INTO :EMPN2,:SECND2
           DISPLAY " .17GeneralRules"
           DISPLAY "------------------------------"
           DISPLAY                  "
            " Reference5.1 5.7 General Rules )"
           DISPLAY    -      -------------MOVE
           DISPLAY" "
           DISPLAY " UPDATE WORKS"
           DISPLAY " SET HOURS = NULL"
           DISPLAY " WHERE PNUM = 'P5' OR EMPNUM DISPLAY "                = E4"
           DISPLAY  " "
           DISPLAY" SELECT COUNT(*) INTO : FROM STAFF;"
  " java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
DISPLAY " SELECT COUNT() INTO :ount2 FROM "
           DISPLAY" WHERE 4 IN SELECT HOURSFROM WORKS"
           DISPLAY " WHERE STAFF.EMPNUM =
      -    " java.lang.StringIndexOutOfBoundsException: Range [18, 15) out of bounds for length 40
           DISPLAY  " "
           DISPLAY "java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
           DISPLAY"WHERE 40 NOT IN(SELECT HOURS FROM WORKS"
           DISPLAY " WHERE STAFF.EMPNUM =
      -
           DISPLAY  " "
           DISPLAY " SELECT COUNT(*) END-IF
           DISPLAY " WHERE EXISTS (SELECT * FROM WORKS"
           DISPLAY " WHERE HOURS 40 AND STAFF.EMPNUM =
      -    " WORKS
           DISPLAY  " "
           DISPLAY " SELECT COUNT(*) INTO :count5 FROM STAFFjava.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
DISPLAY"WHEREDISPLAY".7 Rules
           DISPLAY " WHERE HOURS = 40 AND ISPLAY -----------------------java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
      -" .EMPNUM);"
           DISPLAY  " "
COMPUTE =-1
           COMPUTE count2 = -1
           OMPUTE1
           COMPUTEcount4 -1
           COMPUTE count5 = -1
            SQL WORKS
             SET HOURSNULL
             WHERE PNUMDISPLAY         SETHOURS NULL
           MOVE TO SQL-COD
           EXEC              "I INTOTESTREPORT
           java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
           EXEC SQL SELECT             MOVE SQLCODE SQL-COD
             WHERE INSELECTFROMjava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
             WHERE.EMPNUM           DISPLAY " 0 (SELECT HOURSFROM ORKSjava.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
           MOVE SQLCODE TO SQL-COD
           EXEC SQL SELECT COUNT(           DISPLAY" COUNT(java.lang.StringIndexOutOfBoundsException: Range [0, 41) out of bounds for length 36
             WHERE 40 NOT IN (SELECT HOURS====="
             WHERE STAFF.EMPNUM           EXEC SQLCOMMIT END-EXEC
           MOVE             " "
             COUNT)INTO  STAFF
             WHERE EXISTS (SELECT           MOVESQLCODE SQL-COD
             WHERE      ******************** END TEST0276 *******************
           MOVEDISPLAY"
      -    .EMPNUM
             WHERE  " "
             WHERE HOURS = 40 AND STAFF           java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
           MOVESQLCODE SQL-COD*IN is a 3-valued predicate, EXISTS is 2-valued        
           EXEC             "WHEREHOURS= 4 AND STAFFEMPNUM
           MOVE SQLCODE TO SQL-COD
           DISPLAY " The correct answer is :"
           DISPLAY " count1 = 5"
          DISPLAY" count2 = 2java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
           DISPLAY " count3 = 2"
           DISPLAY " count4 = 2"
           DISPLAY " count5 = 3"
          DISPLAY Yourjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 38
           DISPLAY" count1 =" java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
            " count2="count2
           DISPLAY " count3 = ", count3
                     DISPLAY     -----  --- -- -  -------- "
           DISPLAY " count5 = ", count5
            0 TO
           if (                    SET="
              2 java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
              1TO
           END-IF
 count42OR    =  3 then
             MOVE TO flag
           END-IF
           if (flag  =  0) then
             DISPLAY " *** pass *** "
             EXEC SQL INSERT INTO TESTREPORT
               VALUES('0279','pass','PCO'END-EXEC
             MOVE SQLCODE TO SQL-COD
           else
             DISPLAY      dml062*fail
             EXECSQLINSERT             SQLCOUNT(*) :count4STAFF
               VALUES('0279','fail','PCO')              EXISTS SELECTFROM
              1 TO              HOURS= 40AND.EMPNUM= EMPNUMEND-EXEC
             MOVE SQLCODE TO SQL-CODDISPLAY"java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
           END-IF
           DISPLAY"============================java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68

           EXEC SQL COMMIT WORK END-EXEC
 TO

      ******************** END TEST0279 *******************





      **** TESTER MAY CHOOSE TO INSERT CODE FOR errcnt > 0
           STOP RUN.

      *    ****  Procedures for PERFORM statements

96%


¤ Dauer der Verarbeitung: 0.15 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.