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

version 1.10, 2000/07/07 18:33:03 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.
Line 41 Line 41
 /*------------------------------------------------------------------------*/  /*------------------------------------------------------------------------*/
 /**************************************************************************/  /**************************************************************************/
   
   %option stack
   
 %{  %{
   
 #include <stdio.h>  #include <stdio.h>
Line 241  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 304  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 1047  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 1124  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 1582  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 1591  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.10  
changed lines
  Added in v.1.14


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