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

Diff for /src/usr.bin/awk/lex.c between version 1.17 and 1.18

version 1.17, 2020/06/10 21:04:40 version 1.18, 2020/06/10 21:05:02
Line 44 
Line 44 
         int     type;          int     type;
 } Keyword;  } Keyword;
   
 Keyword keywords[] ={   /* keep sorted: binary searched */  const Keyword keywords[] = {    /* keep sorted: binary searched */
         { "BEGIN",      XBEGIN,         XBEGIN },          { "BEGIN",      XBEGIN,         XBEGIN },
         { "END",        XEND,           XEND },          { "END",        XEND,           XEND },
         { "NF",         VARNF,          VARNF },          { "NF",         VARNF,          VARNF },
Line 102 
Line 102 
 int gettok(char **, int *);  int gettok(char **, int *);
 int binsearch(char *, Keyword *, int);  int binsearch(char *, Keyword *, int);
   
 int peek(void)  static int peek(void)
 {  {
         int c = input();          int c = input();
         unput(c);          unput(c);
         return c;          return c;
 }  }
   
 int gettok(char **pbuf, int *psz)       /* get next input token */  static int gettok(char **pbuf, int *psz)        /* get next input token */
 {  {
         int c, retc;          int c, retc;
         char *buf = *pbuf;          char *buf = *pbuf;
Line 401 
Line 401 
                         case 'r': *bp++ = '\r'; break;                          case 'r': *bp++ = '\r'; break;
                         case 'b': *bp++ = '\b'; break;                          case 'b': *bp++ = '\b'; break;
                         case 'v': *bp++ = '\v'; break;                          case 'v': *bp++ = '\v'; break;
                         case 'a': *bp++ = '\007'; break;                          case 'a': *bp++ = '\a'; break;
                         case '\\': *bp++ = '\\'; break;                          case '\\': *bp++ = '\\'; break;
   
                         case '0': case '1': case '2': /* octal: \d \dd \ddd */                          case '0': case '1': case '2': /* octal: \d \dd \ddd */
Line 451 
Line 451 
 }  }
   
   
 int binsearch(char *w, Keyword *kp, int n)  static int binsearch(char *w, const Keyword *kp, int n)
 {  {
         int cond, low, mid, high;          int cond, low, mid, high;
   
Line 471 
Line 471 
   
 int word(char *w)  int word(char *w)
 {  {
         Keyword *kp;          const Keyword *kp;
         int c, n;          int c, n;
   
         n = binsearch(w, keywords, sizeof(keywords)/sizeof(keywords[0]));          n = binsearch(w, keywords, sizeof(keywords)/sizeof(keywords[0]));
Line 587 
Line 587 
   
 void unput(int c)       /* put lexical character back on input */  void unput(int c)       /* put lexical character back on input */
 {  {
           if (c == '\n')
                   lineno--;
         if (yysptr >= yysbuf + sizeof(yysbuf))          if (yysptr >= yysbuf + sizeof(yysbuf))
                 FATAL("pushed back too much: %.20s...", yysbuf);                  FATAL("pushed back too much: %.20s...", yysbuf);
         *yysptr++ = c;          *yysptr++ = c;

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.18