Path: csiph.com!xmission!usenet.csail.mit.edu!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: "Ev. Drikos" Newsgroups: comp.compilers Subject: Re: About finding the start symbol of a grammar Date: Sat, 22 May 2021 06:52:17 +0300 Organization: Aioe.org NNTP Server Lines: 15 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <21-05-019@comp.compilers> References: <21-05-015@comp.compilers> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="33346"; mail-complaints-to="abuse@iecc.com" Keywords: parse Posted-Date: 22 May 2021 13:23:54 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Content-Language: en-US Xref: csiph.com comp.compilers:2670 On 21/05/2021 13:49, Eduardo Costa wrote: > While there would exist grammars we could recursively check to find out which > it's start symbol is (i.e.: it's the only rule that used the rest of them, > where checking every other resulted in dangling rules that weren't even called > in), there might be other grammars for which more than one rule yields full > coverage (all of these obviously defining different languages) and so leading > to ambiguity. IMHO, it can be so simple as you describe here without important overhead. Typically, a parser will reduce the start symbol and finish. All rules that yield full coverage can be ie alternatives of a single root symbol: RootSymbol -> R1 | R2 | ... | Rn Ev. Drikos