1: %term number stop DEFINED 2: %term EQ NE LE GE LS RS 3: %term ANDAND OROR 4: %left ',' 5: %right '=' 6: %right '?' ':' 7: %left OROR 8: %left ANDAND 9: %left '|' '^' 10: %left '&' 11: %binary EQ NE 12: %binary '<' '>' LE GE 13: %left LS RS 14: %left '+' '-' 15: %left '*' '/' '%' 16: %right '!' '~' UMINUS 17: %left '(' '.' 18: %% 19: S: e stop ={return($1);} 20: 21: 22: e: e '*' e 23: ={$$ = $1 * $3;} 24: | e '/' e 25: ={$$ = $1 / $3;} 26: | e '%' e 27: ={$$ = $1 % $3;} 28: | e '+' e 29: ={$$ = $1 + $3;} 30: | e '-' e 31: ={$$ = $1 - $3;} 32: | e LS e 33: ={$$ = $1 << $3;} 34: | e RS e 35: ={$$ = $1 >> $3;} 36: | e '<' e 37: ={$$ = $1 < $3;} 38: | e '>' e 39: ={$$ = $1 > $3;} 40: | e LE e 41: ={$$ = $1 <= $3;} 42: | e GE e 43: ={$$ = $1 >= $3;} 44: | e EQ e 45: ={$$ = $1 == $3;} 46: | e NE e 47: ={$$ = $1 != $3;} 48: | e '&' e 49: ={$$ = $1 & $3;} 50: | e '^' e 51: ={$$ = $1 ^ $3;} 52: | e '|' e 53: ={$$ = $1 | $3;} 54: | e ANDAND e 55: ={$$ = $1 && $3;} 56: | e OROR e 57: ={$$ = $1 || $3;} 58: | e '?' e ':' e 59: ={$$ = $1 ? $3 : $5;} 60: | e ',' e 61: ={$$ = $3;} 62: | term 63: ={$$ = $1;} 64: term: 65: '-' term %prec UMINUS 66: ={$$ = -$1;} 67: | '!' term 68: ={$$ = !$1;} 69: | '~' term 70: ={$$ = ~$1;} 71: | '(' e ')' 72: ={$$ = $2;} 73: | DEFINED '(' number ')' 74: ={$$= $3;} 75: | DEFINED number 76: ={$$ = $2;} 77: | number 78: ={$$= $1;} 79: %% 80: # include "yylex.c"