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

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

  ViewVC Help
Powered by ViewVC 1.1.0 with CvsGraph 1.7.0