[BACK]Return to awklex.l CVS log [TXT][DIR] Up to [local] / src / usr.bin / awk

Diff for /src/usr.bin/awk/Attic/awklex.l between version 1.1 and 1.2

version 1.1, 1996/07/04 20:34:40 version 1.2, 1997/01/20 19:43:19
Line 1 
Line 1 
 %Start A strng sc reg comment  %Start A str sc reg comment
   
 %{  %{
 /****************************************************************  /****************************************************************
Line 211 
Line 211 
                         }                          }
                   }                    }
                 }                  }
 <A>\"           { BEGIN strng; caddreset(gs); }  <A>\"           { BEGIN str; caddreset(gs); }
   
 <A>"}"          { if (--bracecnt < 0) ERROR "extra }" SYNTAX; BEGIN sc; RET(';'); }  <A>"}"          { if (--bracecnt < 0) ERROR "extra }" SYNTAX; BEGIN sc; RET(';'); }
 <A>"]"          { if (--brackcnt < 0) ERROR "extra ]" SYNTAX; RET(']'); }  <A>"]"          { if (--brackcnt < 0) ERROR "extra ]" SYNTAX; RET(']'); }
Line 231 
Line 231 
                   RET(REGEXPR); }                    RET(REGEXPR); }
 <reg>.          { CADD; }  <reg>.          { CADD; }
   
 <strng>\"       { BEGIN A;  <str>\"         { BEGIN A;
                   cadd(gs, 0); s = tostring(gs->cbuf);                    cadd(gs, 0); s = tostring(gs->cbuf);
                   cunadd(gs);                    cunadd(gs);
                   cadd(gs, ' '); cadd(gs, 0);                    cadd(gs, ' '); cadd(gs, 0);
                   yylval.cp = setsymtab(gs->cbuf, s, 0.0, CON|STR, symtab);                    yylval.cp = setsymtab(gs->cbuf, s, 0.0, CON|STR, symtab);
                   RET(STRING); }                    RET(STRING); }
 <strng>\n       { ERROR "newline in string %.10s...", gs->cbuf SYNTAX; lineno++; BEGIN A; }  <str>\n         { ERROR "newline in string %.10s...", gs->cbuf SYNTAX; lineno++; BEGIN A; }
 <strng>"\\\""   { cadd(gs, '"'); }  <str>"\\\""     { cadd(gs, '"'); }
 <strng>"\\"n    { cadd(gs, '\n'); }  <str>"\\"n      { cadd(gs, '\n'); }
 <strng>"\\"t    { cadd(gs, '\t'); }  <str>"\\"t      { cadd(gs, '\t'); }
 <strng>"\\"f    { cadd(gs, '\f'); }  <str>"\\"f      { cadd(gs, '\f'); }
 <strng>"\\"r    { cadd(gs, '\r'); }  <str>"\\"r      { cadd(gs, '\r'); }
 <strng>"\\"b    { cadd(gs, '\b'); }  <str>"\\"b      { cadd(gs, '\b'); }
 <strng>"\\"v    { cadd(gs, '\v'); }     /* these ANSIisms may not be known by */  <str>"\\"v      { cadd(gs, '\v'); }     /* these ANSIisms may not be known by */
 <strng>"\\"a    { cadd(gs, '\007'); }   /* your compiler. hence 007 for bell */  <str>"\\"a      { cadd(gs, '\007'); }   /* your compiler. hence 007 for bell */
 <strng>"\\\\"   { cadd(gs, '\\'); }  <str>"\\\\"     { cadd(gs, '\\'); }
 <strng>"\\"({O}{O}{O}|{O}{O}|{O}) { int n;  <str>"\\"({O}{O}{O}|{O}{O}|{O}) { int n;
                   sscanf(yytext+1, "%o", &n); cadd(gs, n); }                    sscanf(yytext+1, "%o", &n); cadd(gs, n); }
 <strng>"\\"x({H}+) { int n;     /* ANSI permits any number! */  <str>"\\"x({H}+) { int n;       /* ANSI permits any number! */
                   sscanf(yytext+2, "%x", &n); cadd(gs, n); }                    sscanf(yytext+2, "%x", &n); cadd(gs, n); }
 <strng>"\\".    { cadd(gs, yytext[1]); }  <str>"\\".      { cadd(gs, yytext[1]); }
 <strng>.        { CADD; }  <str>.          { CADD; }
   
 %%  %%
   

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2