From 27faa872ce22414e3b21ae2e6e700782e791c398 Mon Sep 17 00:00:00 2001 From: "Robert R. Henry" Date: Mon, 30 Aug 1982 16:57:35 -0800 Subject: [PATCH] date and time created 82/08/30 09:57:35 by rrh SCCS-vsn: old/cpp/cpy.y 1.1 --- usr/src/old/cpp/cpy.y | 83 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 usr/src/old/cpp/cpy.y diff --git a/usr/src/old/cpp/cpy.y b/usr/src/old/cpp/cpy.y new file mode 100644 index 0000000000..f2fec68134 --- /dev/null +++ b/usr/src/old/cpp/cpy.y @@ -0,0 +1,83 @@ +/* + * @(#)cpy.y 1.1 %G% + */ +%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 + ={$$ = -$1;} + | '!' term + ={$$ = !$2;} + | '~' term + ={$$ = ~$2;} + | '(' e ')' + ={$$ = $2;} + | DEFINED '(' number ')' + ={$$= $3;} + | DEFINED number + ={$$ = $2;} + | number + ={$$= $1;} +%% +# include "yylex.c" -- 2.20.1