home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / OS2-YACC.ZIP / CPY.BAK next >
Text File  |  1980-01-01  |  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"