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


Quelle  output.c.rtf   Sprache: unbekannt

 
{\rtf1\ansi\ansicpg850 \deff0{\fonttbl{\f0\fnil Courier New;}{\f1\fnil Courier New;}{\f2\fnil Elbian;}}
{\colortbl;\red255\green0\blue0;\red0\green0\blue255;\red0\green0\blue128;\red0\green0\blue0;\red128\green0\blue0;\red0\green128\blue0;\red128\green128\blue128;\red128\green0\blue128;\red255\green0\blue255;}\f1\fs18 
\cf6 //------------------------------------------------------------------------------\cf0 \par
\cf6 //\cf0 \par
\cf6 //  modifications by CO3\cf0 \par
\cf6 //\cf0 \par
\cf6 //------------------------------------------------------------------------------\cf0 \par
\cf6 //  Einbau von Nlmod() wegen der Zeilenzahl\cf0 \par
\cf6 //\cf0 \par
\cf6 /*\cf0 \par
\cf6  \cf0 \cf6 *\cf0 \cf6  ACCENT \cf0 \par
\cf6  \cf0 \cf6 *\cf0 \cf6  \cf0 \par
\cf6  \cf0 \cf6 *\cf0 \cf6  A Compiler Compiler for the Entire Class of Context-Free Languages\cf0 \par
\cf6  \cf0 \cf6 *\cf0 \cf6  \cf0 \par
\cf6  \cf0 \cf6 *\cf0 \cf6  Copyright (C) 1999  Friedrich Wilhelm Schroeer\cf0 \par
\cf6  \cf0 \cf6 *\cf0 \cf6  \cf0 \par
\cf6  \cf0 \cf6 *\cf0 \cf6  This program is free software; you can redistribute it and\cf0 \cf6 /\cf0 \cf6 or modify\cf0 \par
\cf6  \cf0 \cf6 *\cf0 \cf6  it under the terms of the GNU General Public License as published by\cf0 \par
\cf6  \cf0 \cf6 *\cf0 \cf6  the Free Software Foundation; either version 2 of the License, or\cf0 \par
\cf6  \cf0 \cf6 *\cf0 \cf6  (at your option) any later version.\cf0 \par
\cf6  \cf0 \cf6 *\cf0 \cf6  \cf0 \par
\cf6  \cf0 \cf6 *\cf0 \cf6  This program is distributed in the hope that it will be useful,\cf0 \par
\cf6  \cf0 \cf6 *\cf0 \cf6  but WITHOUT ANY WARRANTY; without even the implied warranty of\cf0 \par
\cf6  \cf0 \cf6 *\cf0 \cf6  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\cf0 \par
\cf6  \cf0 \cf6 *\cf0 \cf6  GNU General Public License for more details.\cf0 \par
\cf6  \cf0 \cf6 *\cf0 \cf6  \cf0 \par
\cf6  \cf0 \cf6 *\cf0 \cf6  You should have received a copy of the GNU General Public License\cf0 \par
\cf6  \cf0 \cf6 *\cf0 \cf6  along with this program; if not, write to the Free Software\cf0 \par
\cf6  \cf0 \cf6 *\cf0 \cf6  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\cf0 \par
\cf6  \cf0 \cf6 */\cf0 \par
\par
\par
#\cf9 define\cf0  \cf9 PRIVATE\cf0  \cf9 static\cf0 \par
\par
#\cf9 include\cf0  \cf2 <stdio.h>\cf0 \par
\par
\cf6 /*\cf0 \cf6 --------------------------------------------------------------------\cf0 \cf6 */\cf0 \par
\par
#\cf9 define\cf0  \cf9 OutBufSize\cf0  \cf9 6000\cf0 \par
#\cf9 define\cf0  \cf9 FlushPos\cf0  \cf9 5000\cf0 \par
\par
\cf6 /*\cf0 \cf6 --------------------------------------------------------------------\cf0 \cf6 */\cf0 \par
\par
\cf4 PRIVATE\cf0  \cf1 long\cf0  \cf4 OutputLineCount\cf0  \cf2 =\cf0  \cf3 0\cf0 ;\par
\cf4 PRIVATE\cf0  \cf1 long\cf0  \cf4 OutputLineCountCo3\cf0  \cf2 =\cf0  \cf3 0\cf0 ;        \cf6 // CO3\cf0 \par
\par
\cf4 PRIVATE\cf0  \cf1 char\cf0  \cf4 OutBuf\cf0 [\cf4 OutBufSize\cf0 ];\par
\cf4 PRIVATE\cf0  \cf1 char\cf0  \cf2 *\cf0 \cf4 OutBufPtr\cf0 ;\par
\cf4 PRIVATE\cf0  \cf4 FILE\cf0  \cf2 *\cf0 \cf4 OutFile\cf0 ;\par
\par
\cf6 /*\cf0 \cf6 --------------------------------------------------------------------\cf0 \cf6 */\cf0 \par
\par
\cf4 OpenOutput\cf0  (\cf4 Name\cf0 )\par
   \cf1 char\cf0  \cf2 *\cf0 \cf4 Name\cf0 ;\par
\{\par
   \cf4 OutFile\cf0  \cf2 =\cf0  \cf4 fopen\cf0 (\cf4 Name\cf0 , \cf2 "w"\cf0 );\par
\par
   \cf1 if\cf0  (\cf4 OutFile\cf0  \cf2 ==\cf0  \cf4 NULL\cf0 ) \{\par
      \cf4 printf\cf0 (\cf2 "cannot open %s\\n"\cf0 , \cf4 Name\cf0 ); \cf1 exit\cf0 (\cf3 1\cf0 );\par
   \}\par
   \cf4 OutBufPtr\cf0  \cf2 =\cf0  \cf2 &\cf0 \cf4 OutBuf\cf0 [\cf3 0\cf0 ];\par
   \cf4 OutputLineCount\cf0  \cf2 =\cf0  \cf3 0\cf0 ;\par
   \cf1 return\cf0  \cf3 1\cf0 ;\par
\}\par
\par
\cf6 /*\cf0 \cf6 --------------------------------------------------------------------\cf0 \cf6 */\cf0 \par
\cf4 CloseOutput\cf0  ()\par
\{\par
   \cf4 fwrite\cf0 (\cf4 OutBuf\cf0 , \cf3 1\cf0 , \cf4 OutBufPtr\cf0  \cf2 -\cf0  \cf2 &\cf0 \cf4 OutBuf\cf0 [\cf3 0\cf0 ], \cf4 OutFile\cf0 );\par
   \cf4 fclose\cf0 (\cf4 OutFile\cf0 );\par
\}\par
\par
\cf6 /*\cf0 \cf6 --------------------------------------------------------------------\cf0 \cf6 */\cf0 \par
\cf4 Put\cf0 (\cf4 Str\cf0 )\par
   \cf1 char\cf0  \cf2 *\cf0 \cf4 Str\cf0 ;\par
\{\par
   \cf1 while\cf0 (\cf2 *\cf0 \cf4 Str\cf0 ) \cf2 *\cf0 \cf4 OutBufPtr\cf0 \cf2 ++\cf0  \cf2 =\cf0  \cf2 *\cf0 \cf4 Str\cf0 \cf2 ++\cf0 ; \par
\}\par
\par
\cf6 //----------------------------------------------------------------------\cf0 \par
\cf6 // CO3 nderung prototype yygrammp.h\cf0 \par
\cf4 FILE\cf0  \cf2 *\cf0 \cf4 co3proto\cf0 \cf2 =\cf0 \cf3 0\cf0 ;\par
\cf4 Putco3\cf0 (\cf1 char\cf0  \cf2 *\cf0 \cf4 Str\cf0 ) \{\par
  \cf1 if\cf0  (\cf2 !\cf0 \cf4 co3proto\cf0 ) \{\par
    \cf4 co3proto\cf0 \cf2 =\cf0 \cf4 fopen\cf0 (\cf2 "yygrammp.h"\cf0 ,\cf2 "w"\cf0 );\par
    \cf4 fprintf\cf0 (\cf4 co3proto\cf0 ,\cf2 "%s\\n"\cf0 ,\cf2 "void init_lexelem(void);"\cf0 );\par
    \cf4 fprintf\cf0 (\cf4 co3proto\cf0 ,\cf2 "%s\\n"\cf0 ,\cf2 "void first_lexval(void);"\cf0 );\par
    \cf4 fprintf\cf0 (\cf4 co3proto\cf0 ,\cf2 "%s\\n"\cf0 ,\cf2 "void next_lexval(void);"\cf0 );\par
    \cf4 fprintf\cf0 (\cf4 co3proto\cf0 ,\cf2 "%s\\n"\cf0 ,\cf2 "void get_lexval(void);"\cf0 );\par
    \cf4 fprintf\cf0 (\cf4 co3proto\cf0 ,\cf2 "%s\\n"\cf0 ,\cf2 "void init_dirsets(void);"\cf0 );\par
    \cf4 fprintf\cf0 (\cf4 co3proto\cf0 ,\cf2 "%s\\n"\cf0 ,\cf2 "int yyselect(void);"\cf0 );\par
    \cf4 fprintf\cf0 (\cf4 co3proto\cf0 ,\cf2 "%s\\n"\cf0 ,\cf2 "int yytransparent(int);"\cf0 );\par
    \cf4 fprintf\cf0 (\cf4 co3proto\cf0 ,\cf2 "%s\\n"\cf0 ,\cf2 "int yymallocerror(void);"\cf0 );\par
    \}\par
  \cf4 fprintf\cf0 (\cf4 co3proto\cf0 ,\cf2 "%s"\cf0 ,\cf4 Str\cf0 );\par
 \cf4 Put\cf0 (\cf4 Str\cf0 );   \par
\cf1 return\cf0 ;\}\par
\cf4 Nlco3\cf0  () \{\cf4 fprintf\cf0 (\cf4 co3proto\cf0 ,\cf2 ";\\n"\cf0 );\}\par
\cf6 // Ende CO3-nderung\cf0 \par
\cf6 //----------------------------------------------------------------------\cf0 \par
\par
\cf6 /*\cf0 \cf6 --------------------------------------------------------------------\cf0 \cf6 */\cf0 \par
\cf4 PutBlockText\cf0 (\cf4 Str\cf0 )\par
   \cf1 char\cf0  \cf2 *\cf0 \cf4 Str\cf0 ;\par
\{\par
   \cf1 while\cf0 (\cf2 *\cf0 \cf4 Str\cf0 ) \{\par
      \cf1 if\cf0  (\cf2 *\cf0 \cf4 Str\cf0  \cf2 ==\cf0  \cf3 '\\n'\cf0 ) \{\par
         \cf4 Nl\cf0 ();\par
         \cf4 Str\cf0 \cf2 ++\cf0 ;\par
      \}\par
      \cf1 else\cf0 \par
         \cf2 *\cf0 \cf4 OutBufPtr\cf0 \cf2 ++\cf0  \cf2 =\cf0  \cf2 *\cf0 \cf4 Str\cf0 \cf2 ++\cf0 ; \par
   \}\par
\}\par
\par
\cf6 /*\cf0 \cf6 --------------------------------------------------------------------\cf0 \cf6 */\cf0 \par
\cf4 PutI\cf0  (\cf4 N\cf0 )\par
   \cf1 long\cf0  \cf4 N\cf0 ;\par
\{\par
   \cf1 if\cf0  (\cf4 N\cf0  \cf2 <\cf0  \cf3 0\cf0 ) \{\par
      \cf2 *\cf0 \cf4 OutBufPtr\cf0 \cf2 ++\cf0  \cf2 =\cf0  \cf3 '-'\cf0 ;\par
      \cf4 N\cf0  \cf2 =\cf0  \cf2 -\cf0 \cf4 N\cf0 ;\par
   \}\par
   \cf1 if\cf0  (\cf4 N\cf0  \cf2 <\cf0  \cf3 10\cf0 ) \{\par
      \cf2 *\cf0 \cf4 OutBufPtr\cf0 \cf2 ++\cf0  \cf2 =\cf0  \cf4 N\cf0  \cf2 +\cf0  \cf3 '0'\cf0 ;\par
   \}\par
   \cf1 else\cf0  \cf1 if\cf0  (\cf4 N\cf0  \cf2 <\cf0  \cf3 100\cf0 ) \{\par
      \cf2 *\cf0 \cf4 OutBufPtr\cf0 \cf2 ++\cf0  \cf2 =\cf0  \cf4 N\cf0 \cf2 /\cf0 \cf3 10\cf0  \cf2 +\cf0  \cf3 '0'\cf0 ;\par
      \cf2 *\cf0 \cf4 OutBufPtr\cf0 \cf2 ++\cf0  \cf2 =\cf0  \cf4 N\cf0 \cf2 %\cf0 \cf3 10\cf0  \cf2 +\cf0  \cf3 '0'\cf0 ;\par
   \}\par
   \cf1 else\cf0  \{\par
      \cf1 char\cf0  \cf4 buf\cf0 [\cf3 50\cf0 ];\par
      \cf1 register\cf0  \cf4 i\cf0 ;\par
      \cf1 register\cf0  \cf4 n\cf0  \cf2 =\cf0  \cf4 N\cf0 ;\par
\par
      \cf4 i\cf0  \cf2 =\cf0  \cf3 0\cf0 ;\par
\par
      \cf1 do\cf0  \{\par
         \cf4 buf\cf0 [\cf2 ++\cf0 \cf4 i\cf0 ] \cf2 =\cf0  (\cf4 n\cf0  \cf2 %\cf0  \cf3 10\cf0 ) \cf2 +\cf0  \cf3 '0'\cf0 ;\par
         \cf4 n\cf0  \cf2 =\cf0  \cf4 n\cf0  \cf2 /\cf0  \cf3 10\cf0 ;\par
      \} \cf1 while\cf0  (\cf4 n\cf0 );\par
\par
      \cf1 while\cf0  (\cf4 i\cf0 )\par
         \cf2 *\cf0 \cf4 OutBufPtr\cf0 \cf2 ++\cf0  \cf2 =\cf0  \cf4 buf\cf0 [\cf4 i\cf0 \cf2 --\cf0 ];\par
   \}\par
\}\par
\par
\cf6 /*\cf0 \cf6 --------------------------------------------------------------------\cf0 \cf6 */\cf0 \par
\cf4 Nl\cf0  ()\par
\{\par
   \cf1 if\cf0  (\cf4 OutBufPtr\cf0  \cf2 >\cf0  \cf2 &\cf0 \cf4 OutBuf\cf0 [\cf4 FlushPos\cf0 ]) \{\par
      \cf4 fwrite\cf0 (\cf4 OutBuf\cf0 , \cf3 1\cf0 , \cf4 OutBufPtr\cf0  \cf2 -\cf0  \cf2 &\cf0 \cf4 OutBuf\cf0 [\cf3 0\cf0 ], \cf4 OutFile\cf0 );\par
      \cf4 OutBufPtr\cf0  \cf2 =\cf0  \cf2 &\cf0 \cf4 OutBuf\cf0 [\cf3 0\cf0 ];\par
   \}\par
\par
#\cf9 ifdef\cf0  \cf9 EMIT_CR\cf0 \par
   \cf2 *\cf0 \cf4 OutBufPtr\cf0 \cf2 ++\cf0  \cf2 =\cf0  \cf3 '\\r'\cf0 ;\par
#\cf9 endif\cf0 \par
   \cf2 *\cf0 \cf4 OutBufPtr\cf0 \cf2 ++\cf0  \cf2 =\cf0  \cf3 '\\n'\cf0 ;\par
   \cf4 OutputLineCount\cf0 \cf2 ++\cf0 ;\par
\}\par
\par
\cf6 /*\cf0 \cf6 --------------------------------------------------------------------\cf0 \cf6 */\cf0 \par
\cf4 Nlmod\cf0  ()\par
\{\par
   \cf1 if\cf0  (\cf4 OutBufPtr\cf0  \cf2 >\cf0  \cf2 &\cf0 \cf4 OutBuf\cf0 [\cf4 FlushPos\cf0 ]) \{\par
      \cf4 fwrite\cf0 (\cf4 OutBuf\cf0 , \cf3 1\cf0 , \cf4 OutBufPtr\cf0  \cf2 -\cf0  \cf2 &\cf0 \cf4 OutBuf\cf0 [\cf3 0\cf0 ], \cf4 OutFile\cf0 );\par
      \cf4 OutBufPtr\cf0  \cf2 =\cf0  \cf2 &\cf0 \cf4 OutBuf\cf0 [\cf3 0\cf0 ];\par
   \}\par
\par
\cf1 if\cf0  (\cf4 OutputLineCountCo3\cf0 \cf2 %\cf0 \cf3 3\cf0 \cf2 ==\cf0 \cf3 2\cf0 ) \{\par
#\cf9 ifdef\cf0  \cf9 EMIT_CR\cf0 \par
   \cf2 *\cf0 \cf4 OutBufPtr\cf0 \cf2 ++\cf0  \cf2 =\cf0  \cf3 '\\r'\cf0 ;\par
#\cf9 endif\cf0 \par
   \cf2 *\cf0 \cf4 OutBufPtr\cf0 \cf2 ++\cf0  \cf2 =\cf0  \cf3 '\\n'\cf0 ;\par
   \cf4 OutputLineCount\cf0 \cf2 ++\cf0 ;\par
   \cf4 OutputLineCountCo3\cf0 \cf2 =\cf0 \cf3 0\cf0 ;\}\par
\cf1 else\cf0 \par
  \cf4 OutputLineCountCo3\cf0 \cf2 ++\cf0 ;\par
\par
\}\par
\par
\cf6 /*\cf0 \cf6 --------------------------------------------------------------------\cf0 \cf6 */\cf0 \par
\par
\cf4 GetOutputLineCount\cf0 (\cf4 ref_n\cf0 )\par
   \cf1 int\cf0  \cf2 *\cf0  \cf4 ref_n\cf0 ;\par
\{\par
   \cf2 *\cf0 \cf4 ref_n\cf0  \cf2 =\cf0  \cf4 OutputLineCount\cf0 ;\par
\}\par
\par
\cf6 /*\cf0 \cf6 --------------------------------------------------------------------\cf0 \cf6 */\cf0 \par
}


[ zur Elbe Produktseite wechseln0.54Quellennavigators  Analyse erneut starten  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


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

Monitoring

Montastic status badge