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

version 1.5, 1999/12/07 19:10:47 version 1.10, 2000/07/07 18:33:03
Line 1 Line 1
   /* main CAPA lexer
      Copyright (C) 1992-2000 Michigan State University
   
      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
      published by the Free Software Foundation; either version 2 of the
      License, or (at your option) any later version.
   
      The CAPA system is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      Library General Public License for more details.
   
      You should have received a copy of the GNU Library General Public
      License along with the CAPA system; see the file COPYING.  If not,
      write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
      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          */
 /*                             added /END(variable)                       */  /*                             added /END(variable)                       */
Line 28 Line 52
 #include <unistd.h>       /* access() */  #include <unistd.h>       /* access() */
 #endif  #endif
   
 #include "capaToken.h"    /* from YACC -d capaGrammarDef.y */  #define YYSTYPE Symbol*
 #include "capaCommon.h"   /* capa_access() */  #include "capaCommon.h"   /* capa_access() */
 #include "capaParser.h"   /* _symbol structure def */  #include "capaParser.h"   /* _symbol structure def */
   #include "capaToken.h"    /* from YACC -d capaGrammarDef.y */
 #include "lex_debug.h"    /* defined RETURN(xxx) macro */  #include "lex_debug.h"    /* defined RETURN(xxx) macro */
   
   
Line 352  EndLine    ([\r][\n]|[\n]) Line 377  EndLine    ([\r][\n]|[\n])
 %k 10000  %k 10000
 %p 10000  %p 10000
 %n 1000  %n 1000
 %x  S_COMMENT  S_HINT S_HINTEXLAINX  S_IMPORT S_EXPLAIN S_ENDX   S_UNIT   S_IGNORE    %x  S_COMMENT   S_HINT S_HINTEXLAINX  S_IMPORT S_EXPLAIN S_ENDX    S_UNIT   S_IGNORE  
 %x  S_SKIP     S_VARIABLE S_LET  S_DEFINE     S_TEXT   S_MAP     S_FIGURE S_ANSWER   %x  S_SKIP      S_VARIABLE S_LET  S_DEFINE     S_TEXT    S_MAP     S_FIGURE S_ANSWER 
 %x  S_STRING   S_ANSCONTINUE     S_TRUE_FALSE_STMT     S_IF_SKIP S_WHILE_SKIP  %x  S_STRING    S_ANSCONTINUE     S_TRUE_FALSE_STMT      S_IF_SKIP S_WHILE_SKIP
 %x  S_NEXT_LINE S_RANDOMORDER    S_VERB  %x  S_NEXT_LINE S_RANDOMORDER     S_VERB
 %array  %array
   
   
Line 708  EndLine    ([\r][\n]|[\n]) Line 733  EndLine    ([\r][\n]|[\n])
 [Uu][Nn][Ii][Tt]             |  [Uu][Nn][Ii][Tt]             |
 [Uu][Nn][Ii][Tt][Ss]         { LLDBUG_PR1("[UNIT]");    RETURN(ANS_UNIT); }  [Uu][Nn][Ii][Tt][Ss]         { LLDBUG_PR1("[UNIT]");    RETURN(ANS_UNIT); }
 [Bb][Rr]                     { LLDBUG_PR1("[SHOW_BR]"); RETURN(ANS_SHOW_BR);  }  [Bb][Rr]                     { LLDBUG_PR1("[SHOW_BR]"); RETURN(ANS_SHOW_BR);  }
   [Vv][Ee][Rr][Bb][Aa][Tt][Ii][Mm] { LLDBUG_PR1("[VERBATIM]"); RETURN(ANS_VERBATIM); }
 [Aa][Nn][Ss][Bb][Oo][Xx]     { LLDBUG_PR1("[SHOW_ANS_BOX]"); RETURN(ANS_BOX_SHOW);  }  [Aa][Nn][Ss][Bb][Oo][Xx]     { LLDBUG_PR1("[SHOW_ANS_BOX]"); RETURN(ANS_BOX_SHOW);  }
 [Hh][Ii][Nn][Tt]             { LLDBUG_PR1("[HINT]");    RETURN(ANS_HINT); }  [Hh][Ii][Nn][Tt]             { LLDBUG_PR1("[HINT]");    RETURN(ANS_HINT); }
 [Ee][Xx][Pp][Ll][Aa][Ii][Nn] { LLDBUG_PR1("[EXPLAIN]"); RETURN(ANS_EXPLAIN); }  [Ee][Xx][Pp][Ll][Aa][Ii][Nn] { LLDBUG_PR1("[EXPLAIN]"); RETURN(ANS_EXPLAIN); }
Line 849  EndLine    ([\r][\n]|[\n]) Line 875  EndLine    ([\r][\n]|[\n])
 }  }
   
 <S_TRUE_FALSE_STMT>{  <S_TRUE_FALSE_STMT>{
 [\)]                     { LLDBUG_PR1("[) in TRUE_FALSE]"); Pcount--; if(Pcount == 0)  BEGIN S_NEXT_LINE; return(yytext[0]); }  [\)]                     { LLDBUG_PRL1("[) in TRUE_FALSE]"); Pcount--; if(Pcount == 0)  BEGIN S_NEXT_LINE; return(yytext[0]); }
 [\\]{Space}*{EndLine}    { LLDBUG_PR2("[\\EoL continue in S_TRUE_FALSE_STMT](%s)",yytext); /* continuation on next line */ }                         [\\]{Space}*{EndLine}    { LLDBUG_PR2("[\\EoL continue in S_TRUE_FALSE_STMT](%s)",yytext); /* continuation on next line */ }                       
 {EndLine}                { LLDBUG_PR1("[EoL within /IF()]\n"); RETURN(EoL); }  {EndLine}                { LLDBUG_PR1("[EoL within /IF()]\n"); RETURN(EoL); }
 .                   { char warn_msg[WARN_MSG_LENGTH];   .                   { char warn_msg[WARN_MSG_LENGTH]; 
Line 949  EndLine    ([\r][\n]|[\n]) Line 975  EndLine    ([\r][\n]|[\n])
 [^\n]*$                  { LLDBUG_PRL2("[SkipIF anything <IFcount=%d>]",IFcount);   }  [^\n]*$                  { LLDBUG_PRL2("[SkipIF anything <IFcount=%d>]",IFcount);   }
 }  }
 <S_NEXT_LINE>{  <S_NEXT_LINE>{
 ([.]*){EndLine}          { /* this ignores everything until it hits an EoL */ BEGIN S_TEXT; }  ([.]*){EndLine}          { /* this ignores everything until it hits an EoL */
                              LLDBUG_PRL2("[<S_NEXT_LINE> skip \'%s\' until EoL]\n",yytext); 
                              BEGIN S_TEXT;
                            }
 }  }
   
 <S_WHILE_SKIP>{  <S_WHILE_SKIP>{
Line 1526  char* parser_status() Line 1555  char* parser_status()
 void yyfatalerror(char*msg)  void yyfatalerror(char*msg)
 {  {
   char    warn_msg[WARN_MSG_LENGTH];    char    warn_msg[WARN_MSG_LENGTH];
   sprintf(warn_msg,"Invalid character[%s]\n",yytext);    sprintf(warn_msg,"Invalid character[\'%s\']\n",yytext);
   capa_msg(MESSAGE_ERROR,warn_msg);    capa_msg(MESSAGE_ERROR,warn_msg);
     capa_msg(MESSAGE_ERROR,msg);
 }  }
 void yyerror(char* msg)  void yyerror(char* msg)
 {  {

Removed from v.1.5  
changed lines
  Added in v.1.10


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