add LCC - a better C-Compiler for WEGA
This commit is contained in:
parent
d527987e1c
commit
58aa71fa23
|
|
@ -0,0 +1,82 @@
|
||||||
|
/* ~(#)cpy.y 2.1 */
|
||||||
|
/* ~(#)cpy.y 1.1 */
|
||||||
|
%term number stop DEFINED
|
||||||
|
%term EQ NE LE GE LS RS
|
||||||
|
%term ANDAND OROR
|
||||||
|
%left ','
|
||||||
|
%right '='
|
||||||
|
%right '?' ':'
|
||||||
|
%left OROR
|
||||||
|
%left ANDAND
|
||||||
|
%left '|' '^'
|
||||||
|
%left '&'
|
||||||
|
%binary EQ NE
|
||||||
|
%binary '<' '>' LE GE
|
||||||
|
%left LS RS
|
||||||
|
%left '+' '-'
|
||||||
|
%left '*' '/' '%'
|
||||||
|
%right '!' '~' UMINUS
|
||||||
|
%left '(' '.'
|
||||||
|
%%
|
||||||
|
S: e stop ={return($1);}
|
||||||
|
|
||||||
|
|
||||||
|
e: e '*' e
|
||||||
|
={$$ = $1 * $3;}
|
||||||
|
| e '/' e
|
||||||
|
={$$ = $1 / $3;}
|
||||||
|
| e '%' e
|
||||||
|
={$$ = $1 % $3;}
|
||||||
|
| e '+' e
|
||||||
|
={$$ = $1 + $3;}
|
||||||
|
| e '-' e
|
||||||
|
={$$ = $1 - $3;}
|
||||||
|
| e LS e
|
||||||
|
={$$ = $1 << $3;}
|
||||||
|
| e RS e
|
||||||
|
={$$ = $1 >> $3;}
|
||||||
|
| e '<' e
|
||||||
|
={$$ = $1 < $3;}
|
||||||
|
| e '>' e
|
||||||
|
={$$ = $1 > $3;}
|
||||||
|
| e LE e
|
||||||
|
={$$ = $1 <= $3;}
|
||||||
|
| e GE e
|
||||||
|
={$$ = $1 >= $3;}
|
||||||
|
| e EQ e
|
||||||
|
={$$ = $1 == $3;}
|
||||||
|
| e NE e
|
||||||
|
={$$ = $1 != $3;}
|
||||||
|
| e '&' e
|
||||||
|
={$$ = $1 & $3;}
|
||||||
|
| e '^' e
|
||||||
|
={$$ = $1 ^ $3;}
|
||||||
|
| e '|' e
|
||||||
|
={$$ = $1 | $3;}
|
||||||
|
| e ANDAND e
|
||||||
|
={$$ = $1 && $3;}
|
||||||
|
| e OROR e
|
||||||
|
={$$ = $1 || $3;}
|
||||||
|
| e '?' e ':' e
|
||||||
|
={$$ = $1 ? $3 : $5;}
|
||||||
|
| e ',' e
|
||||||
|
={$$ = $3;}
|
||||||
|
| term
|
||||||
|
={$$ = $1;}
|
||||||
|
term:
|
||||||
|
'-' term %prec UMINUS
|
||||||
|
={$$ = -$2;}
|
||||||
|
| '!' term
|
||||||
|
={$$ = !$2;}
|
||||||
|
| '~' term
|
||||||
|
={$$ = ~$2;}
|
||||||
|
| '(' e ')'
|
||||||
|
={$$ = $2;}
|
||||||
|
| DEFINED '(' number ')'
|
||||||
|
={$$= $3;}
|
||||||
|
| DEFINED number
|
||||||
|
={$$ = $2;}
|
||||||
|
| number
|
||||||
|
={$$= $1;}
|
||||||
|
%%
|
||||||
|
# include "yylex.c"
|
||||||
Loading…
Reference in New Issue