/[bison]/bison/src/lex.c
ViewVC logotype

Diff of /bison/src/lex.c

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

revision 1.33.2.12 by akim, Wed Nov 14 14:42:14 2001 UTC revision 1.33.2.13 by akim, Tue Jan 22 10:29:28 2002 UTC
# Line 590  parse_percent_token (void) Line 590  parse_percent_token (void)
590    size_t arg_offset = 0;    size_t arg_offset = 0;
591    
592    int c = getc (finput);    int c = getc (finput);
593      obstack_1grow (&token_obstack, '%');
594      obstack_1grow (&token_obstack, c);
595    
596    switch (c)    switch (c)
597      {      {
598      case '%':      case '%':
599          token_buffer = obstack_finish (&token_obstack);
600        return tok_two_percents;        return tok_two_percents;
601    
602      case '{':      case '{':
603          token_buffer = obstack_finish (&token_obstack);
604        return tok_percent_left_curly;        return tok_percent_left_curly;
605    
606        /* FIXME: Who the heck are those 5 guys!?! `%<' = `%left'!!!        /* The following guys are here for backward compatibility with
607           Let's ask for there removal.  */           very ancient Yacc versions.  The paper of Johnson mentions
608             them (as ancient :).  */
609      case '<':      case '<':
610          token_buffer = obstack_finish (&token_obstack);
611        return tok_left;        return tok_left;
612    
613      case '>':      case '>':
614          token_buffer = obstack_finish (&token_obstack);
615        return tok_right;        return tok_right;
616    
617      case '2':      case '2':
618          token_buffer = obstack_finish (&token_obstack);
619        return tok_nonassoc;        return tok_nonassoc;
620    
621      case '0':      case '0':
622          token_buffer = obstack_finish (&token_obstack);
623        return tok_token;        return tok_token;
624    
625      case '=':      case '=':
626          token_buffer = obstack_finish (&token_obstack);
627        return tok_prec;        return tok_prec;
628      }      }
629    
630    if (!isalpha (c))    if (!isalpha (c))
631      return tok_illegal;      {
632          token_buffer = obstack_finish (&token_obstack);
633          return tok_illegal;
634        }
635    
636    obstack_1grow (&token_obstack, '%');    while (c = getc (finput), isalpha (c) || c == '_' || c == '-')
   while (isalpha (c) || c == '_' || c == '-')  
637      {      {
638        if (c == '_')        if (c == '_')
639          c = '-';          c = '-';
640        obstack_1grow (&token_obstack, c);        obstack_1grow (&token_obstack, c);
       c = getc (finput);  
641      }      }
642    
643    /* %DIRECTIVE="ARG".  Separate into    /* %DIRECTIVE="ARG".  Separate into

Legend:
Removed from v.1.33.2.12  
changed lines
  Added in v.1.33.2.13

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26