Diff for /loncom/homework/CAPA-converter/capaLexerDef.flex between versions 1.14 and 1.15

version 1.14, 2001/12/04 15:17:57 version 1.15, 2001/12/05 18:58:21
Line 150  int           IFcount; Line 150  int           IFcount;
 WhileLoop_t   WhileStack[MAX_FUNC_NEST];   /* <-- perhaps we can use linked list */  WhileLoop_t   WhileStack[MAX_FUNC_NEST];   /* <-- perhaps we can use linked list */
 int           While_idx, Wcount;  int           While_idx, Wcount;
 int           sccount;           /* Semi-colon count for MAP and RMAP  */  int           sccount;           /* Semi-colon count for MAP and RMAP  */
   int           HINTflag=0;
   int           EXPflag=0;
   
 #ifdef  USE_DYNAMIC_SYMBOLS  #ifdef  USE_DYNAMIC_SYMBOLS
 Symbol       *SymbList_p;  Symbol       *SymbList_p;
Line 427  EndLine    ([\r][\n]|[\n]) Line 429  EndLine    ([\r][\n]|[\n])
    send("<PRE>\n");     send("<PRE>\n");
                                  }                                   }
 ^{Spaces}"/HIN"{Alpha}*{Spaces}  { LLDBUG_PRL1("[HIN]");   ^{Spaces}"/HIN"{Alpha}*{Spaces}  { LLDBUG_PRL1("[HIN]"); 
                                    start_mode(MODE_HINT, "");                                 /*    start_mode(MODE_HINT, "");*/
                                      if (!HINTflag) {
                                        start_streams(HINT_DEST,1);
                                        HINTflag=-1;
                                      }
                                      change_destination(HINT_DEST);
    BEGIN S_HINT;      BEGIN S_HINT; 
                                  }                                   }
 ^{Spaces}"/EXP"{Alpha}*{Spaces}  { start_mode(MODE_BLOCK,"condition=&explanation");  ^{Spaces}"/EXP"{Alpha}*{Spaces}  { 
                                      if (!EXPflag) {
                                        start_streams(EXP_DEST,1);
                                        EXPflag=-1;
                                      }
                                      change_destination(EXP_DEST);
                                    LLDBUG_PRL1("[EXP]"); Current_char_p = String_buf;  BEGIN S_EXPLAIN; }                                     LLDBUG_PRL1("[EXP]"); Current_char_p = String_buf;  BEGIN S_EXPLAIN; }
 ^{Spaces}"/IMP"{Alpha}*{Space}+  { LLDBUG_PRL1("[IMP]"); BEGIN S_IMPORT; end_mode(); }  ^{Spaces}"/IMP"{Alpha}*{Space}+  { LLDBUG_PRL1("[IMP]"); BEGIN S_IMPORT; end_mode(); }
 ^{Spaces}"/END"                  { LLDBUG_PRL1("[END]");    ^{Spaces}"/END"                  { LLDBUG_PRL1("[END]");  
Line 516  EndLine    ([\r][\n]|[\n]) Line 528  EndLine    ([\r][\n]|[\n])
                                 LLDBUG_PRL2("[IF <IFcount=%d>]",IFcount);                                  LLDBUG_PRL2("[IF <IFcount=%d>]",IFcount);
  BEGIN S_TRUE_FALSE_STMT;   BEGIN S_TRUE_FALSE_STMT;
  if ( IFcount == 1) {   if ( IFcount == 1) {
    start_streams(2);     start_streams(DEFAULT_DEST, 2);
   watch_mode[1]=1;                                    change_destination(DEFAULT_DEST);
     watch_mode[current_dest][1]=1;
  }   }
  end_mode_stream(0);   end_mode_stream(DEFAULT_DEST, 0);
  start_mode_stream(1,MODE_SCRIPT,NULL);   start_mode_stream(DEFAULT_DEST,1,MODE_SCRIPT,NULL);
  for(i=1;i<IFcount;i++) {send("\t",NULL);}   for(i=1;i<IFcount;i++) {send("\t",NULL);}
  send_stream(0,"<block condition=\"",NULL);   send_stream(0,"<block condition=\"",NULL);
  send_stream(1,"if (",NULL);   send_stream(1,"if (",NULL);
Line 529  EndLine    ([\r][\n]|[\n]) Line 542  EndLine    ([\r][\n]|[\n])
        }         }
 ^{Spaces}"/ELSE"([^\n])*      { int i;  ^{Spaces}"/ELSE"([^\n])*      { int i;
  LLDBUG_PRL2("[ELSE <IFcount=%d>]\n",IFcount);   LLDBUG_PRL2("[ELSE <IFcount=%d>]\n",IFcount);
  end_mode_stream(0);   end_mode_stream(DEFAULT_DEST,0);
  for(i=1;i<IFcount;i++) {send("\t",NULL);}   for(i=1;i<IFcount;i++) {send("\t",NULL);}
   send_stream(0,    send_stream(0,
                                       "</block>\n<block condition=\"!(%s)\">",                                        "</block>\n<block condition=\"!(%s)\">",
Line 538  EndLine    ([\r][\n]|[\n]) Line 551  EndLine    ([\r][\n]|[\n])
                               }                                }
 ^{Spaces}"/ENDIF"([^\n])*     { int i;  ^{Spaces}"/ENDIF"([^\n])*     { int i;
  IFcount--;   IFcount--;
  end_mode_stream(0);   end_mode_stream(DEFAULT_DEST,0);
  for(i=0;i<IFcount;i++) {send("\t",NULL);}   for(i=0;i<IFcount;i++) {send("\t",NULL);}
  send_stream(0,"</block>");   send_stream(0,"</block>");
  send_stream(1,"}");   send_stream(1,"}");
  if (IFcount == 0) {   if (IFcount == 0) {
   if (watch_mode[1]) {    if (watch_mode[current_dest][1]) {
     end_streams(1);      end_streams(DEFAULT_DEST,1);
    } else {     } else {
     end_streams(0);      end_streams(DEFAULT_DEST,0);
   }    }
                                     change_destination(DEFAULT_DEST);
  }   }
  delete_cache();   delete_cache();
  LLDBUG_PRL2("[ENDIF <IFcount=%d>]\n",IFcount);    LLDBUG_PRL2("[ENDIF <IFcount=%d>]\n",IFcount); 
Line 698  EndLine    ([\r][\n]|[\n]) Line 712  EndLine    ([\r][\n]|[\n])
 <S_HINT>{  <S_HINT>{
 {EndLine}                     {  LLDBUG_PR1("[CR hint]");  {EndLine}                     {  LLDBUG_PR1("[CR hint]");
                                  send("\n");                                    send("\n"); 
                                    change_destination(DEFAULT_DEST);
                                  BEGIN S_TEXT;                                   BEGIN S_TEXT;
                               }                                }
 }  }
 <S_EXPLAIN>{  <S_EXPLAIN>{
 {EndLine}                     {  LLDBUG_PR1("[CR explain]");  {EndLine}                     {  LLDBUG_PR1("[CR explain]");
                                  send("\n");                                    send("\n"); 
                                    change_destination(DEFAULT_DEST);
                                  BEGIN S_TEXT;                                   BEGIN S_TEXT;
                               }                                }
 }  }
Line 800  EndLine    ([\r][\n]|[\n]) Line 816  EndLine    ([\r][\n]|[\n])
                                dosend=2;                                 dosend=2;
                              }                               }
   
 [Ss][Tt][Rr]                 { LLDBUG_PR1("[STR]"); send("\" str=\""); dosend=1; }  [Ss][Tt][Rr]                 { LLDBUG_PR1("[STR]"); send("\" type=\""); dosend=1; }
 [Ee][Vv][Aa][Ll]             |  [Ee][Vv][Aa][Ll]             |
 [Ee][Vv][Aa][Ll][Uu][Aa][Tt][Ee] { LLDBUG_PR1("[EVAL]");send("\" eval="); dosend=1;}  [Ee][Vv][Aa][Ll][Uu][Aa][Tt][Ee] { LLDBUG_PR1("[EVAL]");send("\" eval="); dosend=1;}
 [Uu][Nn][Ii][Tt]             |  [Uu][Nn][Ii][Tt]             |
Line 827  EndLine    ([\r][\n]|[\n]) Line 843  EndLine    ([\r][\n]|[\n])
        dosend=1;         dosend=1;
        flush_delayed();         flush_delayed();
        if (firstparam!=1) send("\" />\n");         if (firstparam!=1) send("\" />\n");
        send("\t<textline />\n</numericalresponse>\n");         send("\t<textline />\n");
                            /* Fill in Hints */ 
          if ( !is_dest_empty(HINT_DEST) ) {
            send("<hintgroup>\n\t<hintpart on=\"default\">\n\t<startouttext />");
                                    end_streams(HINT_DEST,0);
                                    HINTflag=0;
                                    send("\t<endouttext />\n\t</hintpart>\n</hintgroup>\n");
          }
          send("\n</numericalresponse>\n");
   
          if ( !is_dest_empty(EXP_DEST) ) {
            send("<postanswerdate>\n\t<startouttext />\n");
                                    end_streams(EXP_DEST,0);
                                    EXPflag=0;
                                    send("\t<endouttext />\n</postanswerdate>\n");
                                  }
                              }                               }
 }  }
   

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


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