=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/m4/parser.y,v retrieving revision 1.6 retrieving revision 1.7 diff -c -r1.6 -r1.7 *** src/usr.bin/m4/parser.y 2008/08/21 21:00:14 1.6 --- src/usr.bin/m4/parser.y 2012/04/12 17:00:11 1.7 *************** *** 1,5 **** %{ ! /* $OpenBSD: parser.y,v 1.6 2008/08/21 21:00:14 espie Exp $ */ /* * Copyright (c) 2004 Marc Espie * --- 1,5 ---- %{ ! /* $OpenBSD: parser.y,v 1.7 2012/04/12 17:00:11 espie Exp $ */ /* * Copyright (c) 2004 Marc Espie * *************** *** 15,20 **** --- 15,21 ---- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ + #include #include #define YYSTYPE int32_t extern int32_t end_result; *************** *** 33,38 **** --- 34,40 ---- %left LSHIFT RSHIFT %left '+' '-' %left '*' '/' '%' + %right EXPONENT %right UMINUS UPLUS '!' '~' %% *************** *** 41,46 **** --- 43,49 ---- ; expr : expr '+' expr { $$ = $1 + $3; } | expr '-' expr { $$ = $1 - $3; } + | expr EXPONENT expr { $$ = pow($1, $3); } | expr '*' expr { $$ = $1 * $3; } | expr '/' expr { if ($3 == 0) {