Path: csiph.com!3.us.feeder.erje.net!feeder.erje.net!news.alt.net!feeder.usenetexpress.com!tr1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: carlglassberg@gmail.com Newsgroups: comp.compilers Subject: Re: A minimal LL(1) parser generator ? Date: Thu, 23 Jan 2020 02:41:24 -0800 (PST) Organization: Compilers Central Lines: 18 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <20-01-028@comp.compilers> References: <19-12-016@comp.compilers> <19-12-030@comp.compilers> <19-12-032@comp.compilers> <19-12-040@comp.compilers> <20-01-001@comp.compilers> <20-01-003@comp.compilers> <20-01-008@comp.compilers> <20-01-025@comp.compilers> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="8852"; mail-complaints-to="abuse@iecc.com" Keywords: LL(1) Posted-Date: 23 Jan 2020 10:29:09 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:2436 Anton, I now see that, in Gray, the precedence of "&&" is higher than every other operator. So Gray EBNF: a b && c d && e f && <- x is equivalent to Wirth EBNF: x = a { b a } c { d c } e { f e } . Likewise: a b && ? <- x is x = [ a { b a } ] . Carl