Diff for /capa/capa51/pProj/capaLexerDef.flex between versions 1.9 and 1.14

version 1.9, 2000/06/30 21:36:16 version 1.14, 2007/07/11 19:23:43
Line 2 Line 2
    Copyright (C) 1992-2000 Michigan State University     Copyright (C) 1992-2000 Michigan State University
   
    The CAPA system is free software; you can redistribute it and/or     The CAPA system is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public License as     modify it under the terms of the GNU General Public License as
    published by the Free Software Foundation; either version 2 of the     published by the Free Software Foundation; either version 2 of the
    License, or (at your option) any later version.     License, or (at your option) any later version.
   
    The CAPA system is distributed in the hope that it will be useful,     The CAPA system is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of     but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Library General Public License for more details.     General Public License for more details.
   
    You should have received a copy of the GNU Library General Public     You should have received a copy of the GNU General Public
    License along with the CAPA system; see the file COPYING.  If not,     License along with the CAPA system; see the file COPYING.  If not,
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,     write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */     Boston, MA 02111-1307, USA.
   
      As a special exception, you have permission to link this program
      with the TtH/TtM library and distribute executables, as long as you
      follow the requirements of the GNU GPL in regard to all of the
      software in the executable aside from TtH/TtM.
   */
   
 /*------------------------------------------------------------------------*/  /*------------------------------------------------------------------------*/
 /*         capaLexerDef.flex   created by Isaac Tsai Jul 15 1996          */  /*         capaLexerDef.flex   created by Isaac Tsai Jul 15 1996          */
Line 35 Line 41
 /*------------------------------------------------------------------------*/  /*------------------------------------------------------------------------*/
 /**************************************************************************/  /**************************************************************************/
   
   %option stack
   
 %{  %{
   
 #include <stdio.h>  #include <stdio.h>
Line 235  void newyy_input (char *buf,int *result, Line 243  void newyy_input (char *buf,int *result,
     if ( Lexi_buf[Input_idx] == NULL ) { \      if ( Lexi_buf[Input_idx] == NULL ) { \
       Lexi_buf[Input_idx] = (char *)capa_malloc(sizeof(char)*LEX_BUFLEN+1,1); out_of_char=1; \        Lexi_buf[Input_idx] = (char *)capa_malloc(sizeof(char)*LEX_BUFLEN+1,1); out_of_char=1; \
     } else { \      } else { \
       if (!Lexi_buf[Input_idx][Lexi_pos[Input_idx]]) { /* test if the line buffer is empty or at the end */ \        if (!Lexi_buf[Input_idx][Lexi_pos[Input_idx] ]) { /* test if the line buffer is empty or at the end */ \
         out_of_char=1; \          out_of_char=1; \
       } \        } \
     } \      } \
     if( out_of_char ) { \      if( out_of_char ) { \
       if (fgets(Lexi_buf[Input_idx],LEX_BUFLEN-1,Input_stream[Input_idx])==NULL) { /* read in one line */ \        if (fgets(Lexi_buf[Input_idx],LEX_BUFLEN-1,Input_stream[Input_idx])==NULL) { /* read in one line */ \
         LIDBUG_PR2("<<yy_input() fgets() returns NULL, input index=%d>>\n",Input_idx); \          LIDBUG_PR2("<<yy_input() fgets() returns NULL, input index=%d>>\n",Input_idx); \
         if( (Input_idx > 0) && ( Lexi_buf[Input_idx][Lexi_pos[Input_idx]] == '\0') ) { \          if( (Input_idx > 0) && ( Lexi_buf[Input_idx][Lexi_pos[Input_idx] ] == '\0') ) { \
           LIDBUG_PR2("<<yy_input() close an input stream, input index=%d>>\n",Input_idx); \            LIDBUG_PR2("<<yy_input() close an input stream, input index=%d>>\n",Input_idx); \
           fclose(Input_stream[Input_idx]); \            fclose(Input_stream[Input_idx]); \
           capa_mfree((char *)Lexi_buf[Input_idx]); \            capa_mfree((char *)Lexi_buf[Input_idx]); \
Line 298  void newyy_input (char *buf,int *result, Line 306  void newyy_input (char *buf,int *result,
        first_run=0; \         first_run=0; \
        yyin = Input_stream[Input_idx]; LIDBUG_PR1("<<yy_input() startup>>\n"); \         yyin = Input_stream[Input_idx]; LIDBUG_PR1("<<yy_input() startup>>\n"); \
     } \      } \
     if (!Lexi_buf[Input_idx][Lexi_pos[Input_idx]]) { /* test if the line buffer is empty or at the end */ \      if (!Lexi_buf[Input_idx][Lexi_pos[Input_idx] ]) { /* test if the line buffer is empty or at the end */ \
       if (fgets(Lexi_buf[Input_idx],LEX_BUFLEN-1,Input_stream[Input_idx])==NULL) { /* read in one line */ \        if (fgets(Lexi_buf[Input_idx],LEX_BUFLEN-1,Input_stream[Input_idx])==NULL) { /* read in one line */ \
         LIDBUG_PR2("<<yy_input() fgets() returns NULL, input index=%d>>\n",Input_idx); \          LIDBUG_PR2("<<yy_input() fgets() returns NULL, input index=%d>>\n",Input_idx); \
         if( (Input_idx > 0) && ( Lexi_buf[Input_idx][Lexi_pos[Input_idx]] == '\0') ) { \          if( (Input_idx > 0) && ( Lexi_buf[Input_idx][Lexi_pos[Input_idx] ] == '\0') ) { \
           LIDBUG_PR2("<<yy_input() close an input stream, input index=%d>>\n",Input_idx); \            LIDBUG_PR2("<<yy_input() close an input stream, input index=%d>>\n",Input_idx); \
           fclose(Input_stream[Input_idx]); \            fclose(Input_stream[Input_idx]); \
           Input_idx--; \            Input_idx--; \
Line 1041  begin_text() { BEGIN S_TEXT; } Line 1049  begin_text() { BEGIN S_TEXT; }
 extern void  extern void
 begin_question() { LLDBUG_PR1("[<S_TEXT>]");   begin_question() { LLDBUG_PR1("[<S_TEXT>]"); 
                    IFcount = 0; While_idx=0; /* initialize some stacks */                     IFcount = 0; While_idx=0; /* initialize some stacks */
                    End_of_input = 0; YY_FLUSH_BUFFER; BEGIN S_TEXT; }                     End_of_input = 0; yy_flush_buffer(YY_CURRENT_BUFFER ); BEGIN S_TEXT; }
   
 extern void  extern void
 end_problemset() { End_of_input = 0; YY_FLUSH_BUFFER; BEGIN S_TEXT; }  end_problemset() { End_of_input = 0; yy_flush_buffer(YY_CURRENT_BUFFER ); BEGIN S_TEXT; }
   
   
 /* ========================================================================================== */  /* ========================================================================================== */
Line 1118  input()                    /* ARGUMENTS: Line 1126  input()                    /* ARGUMENTS:
        startup=0;         startup=0;
        yyin = Input_stream[Input_idx];         yyin = Input_stream[Input_idx];
   }    }
   if (!Lexi_buf[Input_idx][Lexi_pos[Input_idx]]) {    if (!Lexi_buf[Input_idx][Lexi_pos[Input_idx] ]) {
     if (fgets(Lexi_buf[Input_idx],LEX_BUFLEN-1,Input_stream[Input_idx])==NULL) {       if (fgets(Lexi_buf[Input_idx],LEX_BUFLEN-1,Input_stream[Input_idx])==NULL) { 
       /* EOF? */        /* EOF? */
       /* no use in flex        /* no use in flex
Line 1576  void newyy_input (char *buf,int *result, Line 1584  void newyy_input (char *buf,int *result,
  if ( Lexi_buf[Input_idx] == NULL ) {    if ( Lexi_buf[Input_idx] == NULL ) { 
    Lexi_buf[Input_idx] = (char *)capa_malloc(sizeof(char)*LEX_BUFLEN+1,1); out_of_char=1;     Lexi_buf[Input_idx] = (char *)capa_malloc(sizeof(char)*LEX_BUFLEN+1,1); out_of_char=1;
  } else {    } else { 
    if (!Lexi_buf[Input_idx][Lexi_pos[Input_idx]]) {      if (!Lexi_buf[Input_idx][Lexi_pos[Input_idx] ]) { 
      /* test if the line buffer is empty or at the end */        /* test if the line buffer is empty or at the end */ 
      out_of_char=1;        out_of_char=1; 
    }      } 
Line 1585  void newyy_input (char *buf,int *result, Line 1593  void newyy_input (char *buf,int *result,
    if (fgets(Lexi_buf[Input_idx],LEX_BUFLEN-1,Input_stream[Input_idx])==NULL) {      if (fgets(Lexi_buf[Input_idx],LEX_BUFLEN-1,Input_stream[Input_idx])==NULL) { 
      /* read in one line */        /* read in one line */ 
      LIDBUG_PR2("<<yy_input() fgets() returns NULL, input index=%d>>\n",Input_idx);        LIDBUG_PR2("<<yy_input() fgets() returns NULL, input index=%d>>\n",Input_idx); 
      if( (Input_idx > 0) && ( Lexi_buf[Input_idx][Lexi_pos[Input_idx]] == '\0') ) {        if( (Input_idx > 0) && ( Lexi_buf[Input_idx][Lexi_pos[Input_idx] ] == '\0') ) { 
        LIDBUG_PR2("<<yy_input() close an input stream, input index=%d>>\n",Input_idx);          LIDBUG_PR2("<<yy_input() close an input stream, input index=%d>>\n",Input_idx); 
        fclose(Input_stream[Input_idx]);          fclose(Input_stream[Input_idx]); 
        capa_mfree((char *)Lexi_buf[Input_idx]);          capa_mfree((char *)Lexi_buf[Input_idx]); 

Removed from v.1.9  
changed lines
  Added in v.1.14


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>