home *** CD-ROM | disk | FTP | other *** search
/ Frostbyte's 1980s DOS Shareware Collection / floppyshareware.zip / floppyshareware / USCX / YACC.ARC / CPY.Y next >
Text File  |  1986-03-29  |  2KB  |  157 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67. %term number stop DEFINED
  68. %term EQ NE LE GE LS RS
  69. %term ANDAND OROR
  70. %left ','
  71. %right '='
  72. %right '?' ':'
  73. %left OROR
  74. %left ANDAND
  75. %left '|' '^'
  76. %left '&'
  77. %binary EQ NE
  78. %binary '<' '>' LE GE
  79. %left LS RS
  80. %left '+' '-'
  81. %left '*' '/' '%'
  82. %right '!' '~' UMINUS
  83. %left '(' '.'
  84. %%
  85. S:      e stop  ={return($1);}
  86.  
  87.  
  88. e:        e '*' e
  89.                 ={$$ = $1 * $3;}
  90.         | e '/' e
  91.                 ={$$ = $1 / $3;}
  92.         | e '%' e
  93.                 ={$$ = $1 % $3;}
  94.         | e '+' e
  95.                 ={$$ = $1 + $3;}
  96.         | e '-' e
  97.                 ={$$ = $1 - $3;}
  98.         | e LS e
  99.                 ={$$ = $1 << $3;}
  100.         | e RS e
  101.                 ={$$ = $1 >> $3;}
  102.         | e '<' e
  103.                 ={$$ = $1 < $3;}
  104.         | e '>' e
  105.                 ={$$ = $1 > $3;}
  106.         | e LE e
  107.                 ={$$ = $1 <= $3;}
  108.         | e GE e
  109.                 ={$$ = $1 >= $3;}
  110.         | e EQ e
  111.                 ={$$ = $1 == $3;}
  112.         | e NE e
  113.                 ={$$ = $1 != $3;}
  114.         | e '&' e
  115.                 ={$$ = $1 & $3;}
  116.         | e '^' e
  117.                 ={$$ = $1 ^ $3;}
  118.         | e '|' e
  119.                 ={$$ = $1 | $3;}
  120.         | e ANDAND e
  121.                 ={$$ = $1 && $3;}
  122.         | e OROR e
  123.                 ={$$ = $1 || $3;}
  124.         | e '?' e ':' e
  125.                 ={$$ = $1 ? $3 : $5;}
  126.         | e ',' e
  127.                 ={$$ = $3;}
  128.         | term
  129.  
  130.  
  131.  
  132.  
  133.                 ={$$ = $1;}
  134. term:
  135.           '-' term %prec UMINUS
  136.                 ={$$ = -$1;}
  137.         | '!' term
  138.                 ={$$ = !$1;}
  139.         | '~' term
  140.                 ={$$ = ~$1;}
  141.         | '(' e ')'
  142.                 ={$$ = $2;}
  143.         | DEFINED '(' number ')'
  144.                 ={$$= $3;}
  145.         | DEFINED number
  146.                 ={$$ = $2;}
  147.         | number
  148.                 ={$$= $1;}
  149. %%
  150. # include "yylex.c"
  151. 
  152.         | DEFINED number
  153.                 ={$$ = $2;}
  154.         | number
  155.                 ={$$= $1;}
  156. %%
  157. # include "yylex.c"