From 3321b8ce989e5c2642d74b694858b872fb79249a Mon Sep 17 00:00:00 2001 From: Bill Joy Date: Sun, 1 Mar 1981 04:11:21 -0800 Subject: [PATCH] op= now accepted SCCS-vsn: usr.bin/bc/bc.y 4.2 --- usr/src/usr.bin/bc/bc.y | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/usr/src/usr.bin/bc/bc.y b/usr/src/usr.bin/bc/bc.y index 89a90fac89..1071125564 100644 --- a/usr/src/usr.bin/bc/bc.y +++ b/usr/src/usr.bin/bc/bc.y @@ -1,5 +1,5 @@ %{ -static char *sccsid = "@(#)bc.y 4.1 (Berkeley) %G%"; +static char *sccsid = "@(#)bc.y 4.2 (Berkeley) 81/02/28"; int *getout(); %} %right '=' @@ -406,8 +406,8 @@ restart: default: return( '=' ); gotit: peekc = -1; return(c); } - case '+': return( cpeek( '+', INCR, '+' ) ); - case '-': return( cpeek( '-', DECR, '-' ) ); + case '+': return( cpeek( '+', INCR, cpeek( '=', EQPL, '+') ) ); + case '-': return( cpeek( '-', DECR, cpeek( '=', EQMI, '-') ) ); case '<': return( cpeek( '=', LE, '<' ) ); case '>': return( cpeek( '=', GE, '>' ) ); case '!': return( cpeek( '=', NE, '!' ) ); @@ -418,7 +418,17 @@ restart: peekc = -1; goto restart; } + else if (peekc == '=') { + c=EQDIV; + goto gotit; + } else return(c); + case '*': + return( cpeek( '=', EQMUL, '*' ) ); + case '%': + return( cpeek( '=', EQREM, '%' ) ); + case '^': + return( cpeek( '=', EQEXP, '^' ) ); case '"': yylval = str; while((c=getch()) != '"'){*str++ = c; -- 2.20.1