/[CvsGraph]/cvsgraph/rcsl.l
ViewVC logotype

Diff of /cvsgraph/rcsl.l

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.10.4.3, Wed May 21 11:51:36 2008 UTC revision 1.11, Sat Nov 18 21:53:17 2006 UTC
# Line 26  Line 26 
26  %x xSKIPSTR  %x xSKIPSTR
27  %x xAUTHOR  %x xAUTHOR
28    
 %option nounput  
   
29  %{  %{
30  #include <stdio.h>  #include <stdio.h>
31  #include <stdlib.h>  #include <stdlib.h>
# Line 40  Line 38 
38  #include "cvsgraph.h"  #include "cvsgraph.h"
39  #include "readconf.h"  #include "readconf.h"
40  #include "rcs.h"  #include "rcs.h"
41  #include "rcsy.h"  #include "rcs.tab.h"
42    
43  #define SKIP_DELTATEXT  1  #define SKIP_DELTATEXT  1
44    
# Line 98  Line 96 
96    
97          /* Here come any other 'newphrase' constructs */          /* Here come any other 'newphrase' constructs */
98  {num}?{idchar}({idchar}|{num})*         {  {num}?{idchar}({idchar}|{num})*         {
99                  yylval.str = xstrdup(yytext);                  rcslval.str = xstrdup(rcstext);
100                  return tNEWPHRASE;                  return tNEWPHRASE;
101          }          }
102    
# Line 106  Line 104 
104  <xSKIP>[^;@\n]+         ;  <xSKIP>[^;@\n]+         ;
105  <xSKIP>\n               line_number++;  <xSKIP>\n               line_number++;
106  <xSKIP>@                BEGIN(xSKIPSTR);  <xSKIP>@                BEGIN(xSKIPSTR);
107  <xSKIP>;                BEGIN(INITIAL); return *yytext;  <xSKIP>;                BEGIN(INITIAL); return *rcstext;
108    
109  <xSKIPSTR>[^\n@]+       ;  <xSKIPSTR>[^\n@]+       ;
110  <xSKIPSTR>\n            line_number++;  <xSKIPSTR>\n            line_number++;
111  <xSKIPSTR>@@            ;  <xSKIPSTR>@@            ;
112  <xSKIPSTR>@             BEGIN(xSKIP);  <xSKIPSTR>@             BEGIN(xSKIP);
113    
114  {num}                   yylval.str = xstrdup(yytext); return tREV;  {num}                   rcslval.str = xstrdup(rcstext); return tREV;
115  [:;$]                   return *yytext;  [:;$]                   return *rcstext;
116    
117  <xID>{ws}+      ;  <xID>{ws}+      ;
118  <xID>\n         line_number++;  <xID>\n         line_number++;
119  <xID>{special}  BEGIN(INITIAL); return *yytext;  <xID>{special}  BEGIN(INITIAL); return *rcstext;
120  <xID>{num}?{idchar}({idchar}|{num})*            {  <xID>{num}?{idchar}({idchar}|{num})*            {
121                  yylval.str = xstrdup(yytext);                  rcslval.str = xstrdup(rcstext);
122                  BEGIN(INITIAL);                  BEGIN(INITIAL);
123                  return tID;                  return tID;
124          }          }
125  <xID>{num}?.    rcserror("Invalid character in ID '%s' (0x%02x)", yytext, yytext[yyleng-1]);  <xID>{num}?.    rcserror("Invalid character in ID '%s' (0x%02x)", rcstext, rcstext[yyleng-1]);
126    
127  <xSYM>{ws}+     ;  <xSYM>{ws}+     ;
128  <xSYM>\n        line_number++;  <xSYM>\n        line_number++;
129  <xSYM>{special} BEGIN(INITIAL); return *yytext;  <xSYM>{special} BEGIN(INITIAL); return *rcstext;
130  <xSYM>{digit}*{idchar}({idchar}|{digit})*       {  <xSYM>{digit}*{idchar}({idchar}|{digit})*       {
131                  yylval.str = xstrdup(yytext);                  rcslval.str = xstrdup(rcstext);
132                  BEGIN(INITIAL);                  BEGIN(INITIAL);
133                  return tSYM;                  return tSYM;
134          }          }
135  <xSYM>{digit}*. rcserror("Invalid character in SYMBOL '%s' (0x%02x)", yytext, yytext[yyleng-1]);  <xSYM>{digit}*. rcserror("Invalid character in SYMBOL '%s' (0x%02x)", rcstext, rcstext[yyleng-1]);
136    
137  @               reset_str(); BEGIN(xSTR);  @               reset_str(); BEGIN(xSTR);
138  <xSTR>[^@\n]+   add_str(yytext, yyleng);  <xSTR>[^@\n]+   add_str(rcstext, rcsleng);
139  <xSTR>\n        line_number++; add_str(yytext, yyleng);  <xSTR>\n        line_number++; add_str(rcstext, rcsleng);
140  <xSTR>@@        add_str(yytext, 1);  <xSTR>@@        add_str(rcstext, 1);
141  <xSTR>@         yylval.str = get_str(); BEGIN(INITIAL); skip_string = 0; return tSTRING;  <xSTR>@         rcslval.str = get_str(); BEGIN(INITIAL); skip_string = 0; return tSTRING;
142    
143  <xAUTHOR>@      reset_str(); BEGIN(xSTR);  <xAUTHOR>@      reset_str(); BEGIN(xSTR);
144  <xAUTHOR>{ws}+  ;  <xAUTHOR>{ws}+  ;
145  <xAUTHOR>\n     line_number++;  <xAUTHOR>\n     line_number++;
146  <xAUTHOR>{special}      BEGIN(INITIAL); return *yytext;  <xAUTHOR>{special}      BEGIN(INITIAL); return *rcstext;
147  <xAUTHOR>({idchar}|{num}|{ws})+         {  <xAUTHOR>({idchar}|{num}|{ws})+         {
148                  yylval.str = xstrdup(yytext);                  rcslval.str = xstrdup(rcstext);
149                  BEGIN(INITIAL);                  BEGIN(INITIAL);
150                  return tID;                  return tID;
151          }          }
152  <xAUTHOR>.      rcserror("Invalid character in AUTHOR '%s' (0x%02x)", yytext, yytext[yyleng-1]);  <xAUTHOR>.      rcserror("Invalid character in AUTHOR '%s' (0x%02x)", rcstext, rcstext[yyleng-1]);
153    
154  {ws}+           ; /* Ignore whitespace */  {ws}+           ; /* Ignore whitespace */
155  \n              line_number++;  \n              line_number++;
156    
157  .               rcserror("Unknown char/unmatched text '%c' (0x%02x)", isprint((int)((unsigned char)*yytext)) ? *yytext : ' ', *yytext);  .               rcserror("Unknown char/unmatched text '%c' (0x%02x)", isprint((int)((unsigned char)*rcstext)) ? *rcstext : ' ', *rcstext);
158    
159  %%  %%
160    
161  int yywrap(void)  int rcswrap(void)
162  {  {
163          return 1;          return 1;
164  }  }

Legend:
Removed from v.1.10.4.3  
changed lines
  Added in v.1.11

  ViewVC Help
Powered by ViewVC 1.1.0 with CvsGraph 1.7.0