Annotation of 42BSD/lib/cpp/cpy.y, revision 1.1.1.1

1.1       root        1: /*
                      2:  * @(#)cpy.y 1.2 1/2/83
                      3:  */
                      4: %term number stop DEFINED
                      5: %term EQ NE LE GE LS RS
                      6: %term ANDAND OROR
                      7: %left ','
                      8: %right '='
                      9: %right '?' ':'
                     10: %left OROR
                     11: %left ANDAND
                     12: %left '|' '^'
                     13: %left '&'
                     14: %binary EQ NE
                     15: %binary '<' '>' LE GE
                     16: %left LS RS
                     17: %left '+' '-'
                     18: %left '*' '/' '%'
                     19: %right '!' '~' UMINUS
                     20: %left '(' '.'
                     21: %%
                     22: S:     e stop  ={return($1);}
                     23: 
                     24: 
                     25: e:       e '*' e
                     26:                ={$$ = $1 * $3;}
                     27:        | e '/' e
                     28:                ={$$ = $1 / $3;}
                     29:        | e '%' e
                     30:                ={$$ = $1 % $3;}
                     31:        | e '+' e
                     32:                ={$$ = $1 + $3;}
                     33:        | e '-' e
                     34:                ={$$ = $1 - $3;}
                     35:        | e LS e
                     36:                ={$$ = $1 << $3;}
                     37:        | e RS e
                     38:                ={$$ = $1 >> $3;}
                     39:        | e '<' e
                     40:                ={$$ = $1 < $3;}
                     41:        | e '>' e
                     42:                ={$$ = $1 > $3;}
                     43:        | e LE e
                     44:                ={$$ = $1 <= $3;}
                     45:        | e GE e
                     46:                ={$$ = $1 >= $3;}
                     47:        | e EQ e
                     48:                ={$$ = $1 == $3;}
                     49:        | e NE e
                     50:                ={$$ = $1 != $3;}
                     51:        | e '&' e
                     52:                ={$$ = $1 & $3;}
                     53:        | e '^' e
                     54:                ={$$ = $1 ^ $3;}
                     55:        | e '|' e
                     56:                ={$$ = $1 | $3;}
                     57:        | e ANDAND e
                     58:                ={$$ = $1 && $3;}
                     59:        | e OROR e
                     60:                ={$$ = $1 || $3;}
                     61:        | e '?' e ':' e
                     62:                ={$$ = $1 ? $3 : $5;}
                     63:        | e ',' e
                     64:                ={$$ = $3;}
                     65:        | term
                     66:                ={$$ = $1;}
                     67: term:
                     68:          '-' term %prec UMINUS
                     69:                ={$$ = -$2;}
                     70:        | '!' term
                     71:                ={$$ = !$2;}
                     72:        | '~' term
                     73:                ={$$ = ~$2;}
                     74:        | '(' e ')'
                     75:                ={$$ = $2;}
                     76:        | DEFINED '(' number ')'
                     77:                ={$$= $3;}
                     78:        | DEFINED number
                     79:                ={$$ = $2;}
                     80:        | number
                     81:                ={$$= $1;}
                     82: %%
                     83: # include "yylex.c"

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.