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 |