Path: csiph.com!usenet.pasdenom.info!usenet.blueworldhosting.com!feeder01.blueworldhosting.com!border2.nntp.dca1.giganews.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news.iecc.com!.POSTED!nerds-end From: Stefan Monnier Newsgroups: comp.compilers Subject: Re: Grammar with low-precedence postfix operator? Date: Sun, 08 Feb 2015 12:34:27 -0500 Organization: A noiseless patient Spider Lines: 20 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <15-02-018@comp.compilers> References: <15-02-006@comp.compilers> NNTP-Posting-Host: news.iecc.com Mime-Version: 1.0 Content-Type: text/plain X-Trace: miucha.iecc.com 1423440382 82577 2001:470:1f07:1126:0:676f:7373:6970 (9 Feb 2015 00:06:22 GMT) X-Complaints-To: abuse@iecc.com NNTP-Posting-Date: Mon, 9 Feb 2015 00:06:22 +0000 (UTC) Keywords: parse Posted-Date: 08 Feb 2015 19:06:22 EST X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: csiph.com comp.compilers:1520 > term > : INT > | '(' expr ')' //parentheses > | term '^' term //exponentiation > | term term //implicit multiplication > ; > expr > : term > | ('+' | '-') expr //unary plus/minus > | expr ('/' | '*') expr //division and explicit multiplication > | expr ('+' | '-') expr //addition/subtraction > | expr '++' //increment > ; This last production rule is wrong: "expr ++" should produce a "term", not an "expr". Stefan