Related articles |
---|
How detect grammar not derive nonterminals ? borucki.andrzej@gmail.com (Andy) (2023-09-11) |
Re: How detect grammar not derive nonterminals ? gah4@u.washington.edu (gah4) (2023-09-12) |
Re: How detect grammar not derive nonterminals ? borucki.andrzej@gmail.com (Andy) (2023-09-13) |
Re: How detect grammar not derive nonterminals ? 864-117-4973@kylheku.com (Kaz Kylheku) (2023-09-14) |
Re: How detect grammar not derive nonterminals ? gah4@u.washington.edu (gah4) (2023-09-14) |
From: | gah4 <gah4@u.washington.edu> |
Newsgroups: | comp.compilers |
Date: | Thu, 14 Sep 2023 20:04:30 -0700 |
Organization: | Compilers Central |
References: | 23-09-001 23-09-002 23-09-006 |
Injection-Info: | gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="39545"; mail-complaints-to="abuse@iecc.com" |
Keywords: | parse, design, comment |
Posted-Date: | 15 Sep 2023 19:14:46 EDT |
In-Reply-To: | 23-09-006 |
(our moderator wrote)
> [At the very least, you'd need some rules that don't have nonterminals
> on the right side to make it possible to break loops. -John]
So do it by back propagation.
Mark all rules that have a terminal on the right side.
Mark all rules that have a rule that has a terminal on the right side.
Repeat until there aren't any more to mark.
Any unmarked rules don't ever reach a terminal.
[It's not quite that, it's rules that have no nonterminals, that
is, either just terminals or empty. This will recognize a
possibly empty sequence of x's:
A: /* nothing */
A: x A
-John]
Return to the
comp.compilers page.
Search the
comp.compilers archives again.