|
|
1.1 root 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: ={$$ = $1;}
64: term:
65: '-' term %prec UMINUS
66: ={$$ = -$1;}
67: | '!' term
68: ={$$ = !$2;}
69: | '~' term
70: ={$$ = ~$2;}
71: | '(' e ')'
72: ={$$ = $2;}
73: | DEFINED '(' number ')'
74: ={$$= $3;}
75: | DEFINED number
76: ={$$ = $2;}
77: | number
78: ={$$= $1;}
79: %%
80: # include "yylex.c"
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.