QUEST
%token <i> FINAL DOT ALL CCL NCCL CHAR OR STAR QUEST PLUS EMPTYRE
case QUEST:
case QUEST:
#define UNARY case STAR: case PLUS: case QUEST:
case QUEST:
return (unary(op2(QUEST, np, NIL)));
case '?': return QUEST;
%right QUEST COLON
| expr QUEST expr COLON expr {
$$ = node(QUEST, $1, node(COLON, $3, $5));
%token <node> NOT AND OR EXP QUEST
c = QUEST;
case QUEST:
| '-' term %prec QUEST { $$ = op1(UMINUS, $2); }
| '+' term %prec QUEST { $$ = $2; }
| r QUEST { $$ = op2(QUEST, $1, (NODE *) 0); }
%left STAR PLUS QUEST
case QUEST:
case QUEST: follow(p);
#define UNARY case FINAL: case STAR: case PLUS: case QUEST:
{ $$.i = mn1(QUEST,$1.i); }
case QUEST:
case STAR: case QUEST: case PLUS: case CARAT:
case QUEST:
case STAR: case PLUS: case QUEST: case RSCON:
case BAR: case QUEST: case RNEWE:
case STAR: case QUEST: