home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / prgramer / yacc / cpy.y < prev    next >
Text File  |  1989-11-04  |  2KB  |  92 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.  
  64.  
  65.  
  66.  
  67.                 ={$$ = $1;}
  68. term:
  69.           '-' term %prec UMINUS
  70.                 ={$$ = -$1;}
  71.         | '!' term
  72.                 ={$$ = !$1;}
  73.         | '~' term
  74.                 ={$$ = ~$1;}
  75.         | '(' e ')'
  76.                 ={$$ = $2;}
  77.         | DEFINED '(' number ')'
  78.                 ={$$= $3;}
  79.         | DEFINED number
  80.                 ={$$ = $2;}
  81.         | number
  82.                 ={$$= $1;}
  83. %%
  84. # include "yylex.c"
  85. 
  86.         | DEFINED number
  87.                 ={$$ = $2;}
  88.         | number
  89.                 ={$$= $1;}
  90. %%
  91. # include "yylex.c"
  92.