Path: csiph.com!xmission!news.snarked.org!border2.nntp.dca1.giganews.com!nntp.giganews.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: Hans-Peter Diettrich Newsgroups: comp.compilers Subject: Re: FIRST_k, FOLLOW_k, k>1 Date: Sat, 8 Feb 2020 11:00:48 +0100 Organization: Compilers Central Lines: 22 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <20-02-007@comp.compilers> References: <20-02-004@comp.compilers> <20-02-005@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="80801"; mail-complaints-to="abuse@iecc.com" Keywords: parse, LL(1) Posted-Date: 08 Feb 2020 09:36:36 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:2445 Am 06.02.2020 um 23:16 schrieb Andy: > I search examples, > E->aWbXYcdZ > W->w > X->x > Y->y > Z->z > > if for FIRST(k=4) wil be: E={awbx} W={wbxy} X={xycd} Y={ycdz} Z={z} > what is convention? Your grammar definitely is LL(1). You should provide a grammar that requires longer lookahead. IMO the FIRST set covers all *different* sequences, in your case FIRST(E)={a} hence LL(1). Only if there exist multiple alternatives starting with 'a' they have to be listed as e.g. FIRST(E)={ax, ay}. Dunno about the FOLLOW set, perhaps it can stay LL(1)? DoDi