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


Quellverzeichnis  output.c.loaded.rtf   Sprache: unbekannt

 
{\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  */\cf0\par
\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
}


[ Original von:0.44Diese Quellcodebibliothek enthält Beispiele in vielen Programmiersprachen. Man kann per Verzeichnistruktur darin navigieren. Der Code wird farblich markiert angezeigt.  Datei übertragen  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


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