home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V7 / usr / src / cmd / cpp / cpy.y < prev    next >
Encoding:
Text File  |  1979-01-10  |  1.2 KB  |  81 lines

  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"
  81.