Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quellcode-Bibliothek

© Kompilation durch diese Firma

[Weder Korrektheit noch Funktionsfähigkeit der Software werden zugesichert.]

Datei: jatan2.pvs   Sprache: PVS

Haftungsausschluß.rtf KontaktCS {CS[243] C[317] Ada[586]}diese Dinge liegen außhalb unserer Verantwortung

{\rtf1\ansi\ansicpg850\deff0{\fonttbl{\f0\fnil Courier New;}}
{\colortbl ;\red0\green128\blue0;\red255\green0\blue255;\red0\green0\blue255;\red0\green0\blue0;\red255\green0\blue0;\red0\green0\blue128;}
\viewkind4\uc1\pard\cf1\lang1031\f0\fs18 //------------------------------------------------------------------------------\cf0\par
\cf1 //\cf0\par
\cf1 //  modifications by CO3\cf0\par
\cf1 //\cf0\par
\cf1 //------------------------------------------------------------------------------\cf0\par
\cf1 //  Einbau von Nlmod() wegen der Zeilenzahl\cf0\par
\cf1 //\cf0\par
\cf1 /*\cf0\par
\cf1  * ACCENT \cf0\par
\cf1  * \cf0\par
\cf1  * A Compiler Compiler for the Entire Class of Context-Free Languages\cf0\par
\cf1  * \cf0\par
\cf1  * Copyright (C) 1999  Friedrich Wilhelm Schroeer\cf0\par
\cf1  * \cf0\par
\cf1  * This program is free software; you can redistribute it and/or modify\cf0\par
\cf1  * it under the terms of the GNU General Public License as published by\cf0\par
\cf1  * the Free Software Foundation; either version 2 of the License, or\cf0\par
\cf1  * (at your option) any later version.\cf0\par
\cf1  * \cf0\par
\cf1  * This program is distributed in the hope that it will be useful,\cf0\par
\cf1  * but WITHOUT ANY WARRANTY; without even the implied warranty of\cf0\par
\cf1  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\cf0\par
\cf1  * GNU General Public License for more details.\cf0\par
\cf1  * \cf0\par
\cf1  * You should have received a copy of the GNU General Public License\cf0\par
\cf1  * along with this program; if not, write to the Free Software\cf0\par
\cf1  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\cf0\par
\cf1  */

\par
\par
#\cf2 define\cf0  \cf2 PRIVATE\cf0  \cf2 static\cf0\par
\par
#\cf2 include\cf0  \cf3 <stdio.h>\cf0\par
\par
\cf1 /*--------------------------------------------------------------------*/\cf0\par
\par
#\cf2 define\cf0  \cf2 OutBufSize\cf0  \cf2 6000\cf0\par
#\cf2 define\cf0  \cf2 FlushPos\cf0  \cf2 5000\cf0\par
\par
\cf1 /*--------------------------------------------------------------------*/\cf0\par
\par
\cf4 PRIVATE\cf0  \cf5 long\cf0  \cf4 OutputLineCount\cf0  \cf3 =\cf0  \cf6 0\cf0 ;\par
\cf4 PRIVATE\cf0  \cf5 long\cf0  \cf4 OutputLineCountCo3\cf0  \cf3 =\cf0  \cf6 0\cf0 ;        \cf1 // CO3\cf0\par
\par
\cf4 PRIVATE\cf0  \cf5 char\cf0  \cf4 OutBuf\cf0 [\cf4 OutBufSize\cf0 ];\par
\cf4 PRIVATE\cf0  \cf5 char\cf0  \cf3 *\cf4 OutBufPtr\cf0 ;\par
\cf4 PRIVATE\cf0  \cf4 FILE\cf0  \cf3 *\cf4 OutFile\cf0 ;\par
\par
\cf1 /*--------------------------------------------------------------------*/\cf0\par
\par
\cf4 OpenOutput\cf0  (\cf4 Name\cf0 )\par
   \cf5 char\cf0  \cf3 *\cf4 Name\cf0 ;\par
\{\par
   \cf4 OutFile\cf0  \cf3 =\cf0  \cf4 fopen\cf0 (\cf4 Name\cf0 , \cf3 "w"\cf0 );\par
\par
   \cf5 if\cf0  (\cf4 OutFile\cf0  \cf3 ==\cf0  \cf4 NULL\cf0 ) \{\par
      \cf4 printf\cf0 (\cf3 "cannot open %s\\n"\cf0 , \cf4 Name\cf0 ); \cf5 exit\cf0 (\cf6 1\cf0 );\par
   \}\par
   \cf4 OutBufPtr\cf0  \cf3 =\cf0  \cf3 &\cf4 OutBuf\cf0 [\cf6 0\cf0 ];\par
   \cf4 OutputLineCount\cf0  \cf3 =\cf0  \cf6 0\cf0 ;\par
   \cf5 return\cf0  \cf6 1\cf0 ;\par
\}\par
\par
\cf1 /*--------------------------------------------------------------------*/\cf0\par
\cf4 CloseOutput\cf0  ()\par
\{\par
   \cf4 fwrite\cf0 (\cf4 OutBuf\cf0 , \cf6 1\cf0 , \cf4 OutBufPtr\cf0  \cf3 -\cf0  \cf3 &\cf4 OutBuf\cf0 [\cf6 0\cf0 ], \cf4 OutFile\cf0 );\par
   \cf4 fclose\cf0 (\cf4 OutFile\cf0 );\par
\}\par
\par
\cf1 /*--------------------------------------------------------------------*/\cf0\par
\cf4 Put\cf0 (\cf4 Str\cf0 )\par
   \cf5 char\cf0  \cf3 *\cf4 Str\cf0 ;\par
\{\par
   \cf5 while\cf0 (\cf3 *\cf4 Str\cf0 ) \cf3 *\cf4 OutBufPtr\cf3 ++\cf0  \cf3 =\cf0  \cf3 *\cf4 Str\cf3 ++\cf0 ; \par
\}\par
\par
\cf1 //----------------------------------------------------------------------\cf0\par
\cf1 // CO3 nderung prototype yygrammp.h\cf0\par
\cf4 FILE\cf0  \cf3 *\cf4 co3proto\cf3 =\cf6 0\cf0 ;\par
\cf4 Putco3\cf0 (\cf5 char\cf0  \cf3 *\cf4 Str\cf0 ) \{\par
  \cf5 if\cf0  (\cf3 !\cf4 co3proto\cf0 ) \{\par
    \cf4 co3proto\cf3 =\cf4 fopen\cf0 (\cf3 "yygrammp.h"\cf0 ,\cf3 "w"\cf0 );\par
    \cf4 fprintf\cf0 (\cf4 co3proto\cf0 ,\cf3 "%s\\n"\cf0 ,\cf3 "void init_lexelem(void);"\cf0 );\par
    \cf4 fprintf\cf0 (\cf4 co3proto\cf0 ,\cf3 "%s\\n"\cf0 ,\cf3 "void first_lexval(void);"\cf0 );\par
    \cf4 fprintf\cf0 (\cf4 co3proto\cf0 ,\cf3 "%s\\n"\cf0 ,\cf3 "void next_lexval(void);"\cf0 );\par
    \cf4 fprintf\cf0 (\cf4 co3proto\cf0 ,\cf3 "%s\\n"\cf0 ,\cf3 "void get_lexval(void);"\cf0 );\par
    \cf4 fprintf\cf0 (\cf4 co3proto\cf0 ,\cf3 "%s\\n"\cf0 ,\cf3 "void init_dirsets(void);"\cf0 );\par
    \cf4 fprintf\cf0 (\cf4 co3proto\cf0 ,\cf3 "%s\\n"\cf0 ,\cf3 "int yyselect(void);"\cf0 );\par
    \cf4 fprintf\cf0 (\cf4 co3proto\cf0 ,\cf3 "%s\\n"\cf0 ,\cf3 "int yytransparent(int);"\cf0 );\par
    \cf4 fprintf\cf0 (\cf4 co3proto\cf0 ,\cf3 "%s\\n"\cf0 ,\cf3 "int yymallocerror(void);"\cf0 );\par
    \}\par
  \cf4 fprintf\cf0 (\cf4 co3proto\cf0 ,\cf3 "%s"\cf0 ,\cf4 Str\cf0 );\par
 \cf4 Put\cf0 (\cf4 Str\cf0 );   \par
\cf5 return\cf0 ;\}\par
\cf4 Nlco3\cf0  () \{\cf4 fprintf\cf0 (\cf4 co3proto\cf0 ,\cf3 ";\\n"\cf0 );\}\par
\cf1 // Ende CO3-nderung\cf0\par
\cf1 //----------------------------------------------------------------------\cf0\par
\par
\cf1 /*--------------------------------------------------------------------*/\cf0\par
\cf4 PutBlockText\cf0 (\cf4 Str\cf0 )\par
   \cf5 char\cf0  \cf3 *\cf4 Str\cf0 ;\par
\{\par
   \cf5 while\cf0 (\cf3 *\cf4 Str\cf0 ) \{\par
      \cf5 if\cf0  (\cf3 *\cf4 Str\cf0  \cf3 ==\cf0  \cf6 '\\n'\cf0 ) \{\par
         \cf4 Nl\cf0 ();\par
         \cf4 Str\cf3 ++\cf0 ;\par
      \}\par
      \cf5 else\cf0\par
         \cf3 *\cf4 OutBufPtr\cf3 ++\cf0  \cf3 =\cf0  \cf3 *\cf4 Str\cf3 ++\cf0 ; \par
   \}\par
\}\par
\par
\cf1 /*--------------------------------------------------------------------*/\cf0\par
\cf4 PutI\cf0  (\cf4 N\cf0 )\par
   \cf5 long\cf0  \cf4 N\cf0 ;\par
\{\par
   \cf5 if\cf0  (\cf4 N\cf0  \cf3 <\cf0  \cf6 0\cf0 ) \{\par
      \cf3 *\cf4 OutBufPtr\cf3 ++\cf0  \cf3 =\cf0  \cf6 '-'\cf0 ;\par
      \cf4 N\cf0  \cf3 =\cf0  \cf3 -\cf4 N\cf0 ;\par
   \}\par
   \cf5 if\cf0  (\cf4 N\cf0  \cf3 <\cf0  \cf6 10\cf0 ) \{\par
      \cf3 *\cf4 OutBufPtr\cf3 ++\cf0  \cf3 =\cf0  \cf4 N\cf0  \cf3 +\cf0  \cf6 '0'\cf0 ;\par
   \}\par
   \cf5 else\cf0  \cf5 if\cf0  (\cf4 N\cf0  \cf3 <\cf0  \cf6 100\cf0 ) \{\par
      \cf3 *\cf4 OutBufPtr\cf3 ++\cf0  \cf3 =\cf0  \cf4 N\cf3 /\cf6 10\cf0  \cf3 +\cf0  \cf6 '0'\cf0 ;\par
      \cf3 *\cf4 OutBufPtr\cf3 ++\cf0  \cf3 =\cf0  \cf4 N\cf3 %\cf6 10\cf0  \cf3 +\cf0  \cf6 '0'\cf0 ;\par
   \}\par
   \cf5 else\cf0  \{\par
      \cf5 char\cf0  \cf4 buf\cf0 [\cf6 50\cf0 ];\par
      \cf5 register\cf0  \cf4 i\cf0 ;\par
      \cf5 register\cf0  \cf4 n\cf0  \cf3 =\cf0  \cf4 N\cf0 ;\par
\par
      \cf4 i\cf0  \cf3 =\cf0  \cf6 0\cf0 ;\par
\par
      \cf5 do\cf0  \{\par
         \cf4 buf\cf0 [\cf3 ++\cf4 i\cf0 ] \cf3 =\cf0  (\cf4 n\cf0  \cf3 %\cf0  \cf6 10\cf0 ) \cf3 +\cf0  \cf6 '0'\cf0 ;\par
         \cf4 n\cf0  \cf3 =\cf0  \cf4 n\cf0  \cf3 /\cf0  \cf6 10\cf0 ;\par
      \} \cf5 while\cf0  (\cf4 n\cf0 );\par
\par
      \cf5 while\cf0  (\cf4 i\cf0 )\par
         \cf3 *\cf4 OutBufPtr\cf3 ++\cf0  \cf3 =\cf0  \cf4 buf\cf0 [\cf4 i\cf3 --\cf0 ];\par
   \}\par
\}\par
\par
\cf1 /*--------------------------------------------------------------------*/\cf0\par
\cf4 Nl\cf0  ()\par
\{\par
   \cf5 if\cf0  (\cf4 OutBufPtr\cf0  \cf3 >\cf0  \cf3 &\cf4 OutBuf\cf0 [\cf4 FlushPos\cf0 ]) \{\par
      \cf4 fwrite\cf0 (\cf4 OutBuf\cf0 , \cf6 1\cf0 , \cf4 OutBufPtr\cf0  \cf3 -\cf0  \cf3 &\cf4 OutBuf\cf0 [\cf6 0\cf0 ], \cf4 OutFile\cf0 );\par
      \cf4 OutBufPtr\cf0  \cf3 =\cf0  \cf3 &\cf4 OutBuf\cf0 [\cf6 0\cf0 ];\par
   \}\par
\par
#\cf2 ifdef\cf0  \cf2 EMIT_CR\cf0\par
   \cf3 *\cf4 OutBufPtr\cf3 ++\cf0  \cf3 =\cf0  \cf6 '\\r'\cf0 ;\par
#\cf2 endif\cf0\par
   \cf3 *\cf4 OutBufPtr\cf3 ++\cf0  \cf3 =\cf0  \cf6 '\\n'\cf0 ;\par
   \cf4 OutputLineCount\cf3 ++\cf0 ;\par
\}\par
\par
\cf1 /*--------------------------------------------------------------------*/\cf0\par
\cf4 Nlmod\cf0  ()\par
\{\par
   \cf5 if\cf0  (\cf4 OutBufPtr\cf0  \cf3 >\cf0  \cf3 &\cf4 OutBuf\cf0 [\cf4 FlushPos\cf0 ]) \{\par
      \cf4 fwrite\cf0 (\cf4 OutBuf\cf0 , \cf6 1\cf0 , \cf4 OutBufPtr\cf0  \cf3 -\cf0  \cf3 &\cf4 OutBuf\cf0 [\cf6 0\cf0 ], \cf4 OutFile\cf0 );\par
      \cf4 OutBufPtr\cf0  \cf3 =\cf0  \cf3 &\cf4 OutBuf\cf0 [\cf6 0\cf0 ];\par
   \}\par
\par
\cf5 if\cf0  (\cf4 OutputLineCountCo3\cf3 %\cf6 3\cf3 ==\cf6 2\cf0 ) \{\par
#\cf2 ifdef\cf0  \cf2 EMIT_CR\cf0\par
   \cf3 *\cf4 OutBufPtr\cf3 ++\cf0  \cf3 =\cf0  \cf6 '\\r'\cf0 ;\par
#\cf2 endif\cf0\par
   \cf3 *\cf4 OutBufPtr\cf3 ++\cf0  \cf3 =\cf0  \cf6 '\\n'\cf0 ;\par
   \cf4 OutputLineCount\cf3 ++\cf0 ;\par
   \cf4 OutputLineCountCo3\cf3 =\cf6 0\cf0 ;\}\par
\cf5 else\cf0\par
  \cf4 OutputLineCountCo3\cf3 ++\cf0 ;\par
\par
\}\par
\par
\cf1 /*--------------------------------------------------------------------*/\cf0\par
\par
\cf4 GetOutputLineCount\cf0 (\cf4 ref_n\cf0 )\par
   \cf5 int\cf0  \cf3 *\cf0  \cf4 ref_n\cf0 ;\par
\{\par
   \cf3 *\cf4 ref_n\cf0  \cf3 =\cf0  \cf4 OutputLineCount\cf0 ;\par
\}\par
\par
\cf1 /*--------------------------------------------------------------------*/\cf0\par
}


[ Seitenstruktur0.126Drucken  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik