home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / C / YACCUNX.ZIP / CPY.Y < prev    next >
Encoding:
Text File  |  1980-01-01  |  2.0 KB  |  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.  
  134.                 ={$$ = $1;}
  135. term:
  136.           '-' term %prec UMINUS
  137.                 ={$$ = -$1;}
  138.         | '!' term
  139.                 ={$$ = !$1;}
  140.         | '~' term
  141.                 ={$$ = ~$1;}
  142.         | '(' e ')'
  143.                 ={$$ = $2;}
  144.         | DEFINED '(' number ')'
  145.                 ={$$= $3;}
  146.         | DEFINED number
  147.                 ={$$ = $2;}
  148.         | number
  149.                 ={$$= $1;}
  150. %%
  151. # include "yylex.c"
  152. 
  153.         | DEFINED number
  154.                 ={$$ = $2;}
  155.         | number
  156.                 ={$$= $1;}
  157. %%
  158. # include "yylex.c"