/[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.50 by akim, Sat Dec 15 15:13:36 2001 UTC revision 1.51 by akim, Thu Jan 24 17:09:34 2002 UTC
# Line 482  parse_percent_token (void) Line 482  parse_percent_token (void)
482    size_t arg_offset = 0;    size_t arg_offset = 0;
483    
484    int c = getc (finput);    int c = getc (finput);
485      obstack_1grow (&token_obstack, '%');
486      obstack_1grow (&token_obstack, c);
487    
488    switch (c)    switch (c)
489      {      {
490      case '%':      case '%':
491          token_buffer = obstack_finish (&token_obstack);
492        return tok_two_percents;        return tok_two_percents;
493    
494      case '{':      case '{':
495          token_buffer = obstack_finish (&token_obstack);
496        return tok_percent_left_curly;        return tok_percent_left_curly;
497    
498        /* FIXME: Who the heck are those 5 guys!?! `%<' = `%left'!!!        /* The following guys are here for backward compatibility with
499           Let's ask for there removal.  */           very ancient Yacc versions.  The paper of Johnson mentions
500             them (as ancient :).  */
501      case '<':      case '<':
502          token_buffer = obstack_finish (&token_obstack);
503        return tok_left;        return tok_left;
504    
505      case '>':      case '>':
506          token_buffer = obstack_finish (&token_obstack);
507        return tok_right;        return tok_right;
508    
509      case '2':      case '2':
510          token_buffer = obstack_finish (&token_obstack);
511        return tok_nonassoc;        return tok_nonassoc;
512    
513      case '0':      case '0':
514          token_buffer = obstack_finish (&token_obstack);
515        return tok_token;        return tok_token;
516    
517      case '=':      case '=':
518          token_buffer = obstack_finish (&token_obstack);
519        return tok_prec;        return tok_prec;
520      }      }
521    
522    if (!isalpha (c))    if (!isalpha (c))
523      return tok_illegal;      {
524          token_buffer = obstack_finish (&token_obstack);
525          return tok_illegal;
526        }
527    
528    obstack_1grow (&token_obstack, '%');    while (c = getc (finput), isalpha (c) || c == '_' || c == '-')
   while (isalpha (c) || c == '_' || c == '-')  
529      {      {
530        if (c == '_')        if (c == '_')
531          c = '-';          c = '-';
532        obstack_1grow (&token_obstack, c);        obstack_1grow (&token_obstack, c);
       c = getc (finput);  
533      }      }
534    
535    /* %DIRECTIVE="ARG".  Separate into    /* %DIRECTIVE="ARG".  Separate into

Legend:
Removed from v.1.50  
changed lines
  Added in v.1.51

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