Related articles |
---|
grammar help pjhaynes@worldnet.att.net (Peter Haynes) (2000-04-05) |
Grammar help rbeckwith@commetrex.com (Randy Beckwith) (2002-06-28) |
Re: Grammar help kgw-news@stiscan.com (2002-07-02) |
Re: Grammar help casse@netcourrier.com (Casse Hugues) (2002-07-15) |
From: | "Casse Hugues" <casse@netcourrier.com> |
Newsgroups: | comp.compilers |
Date: | 15 Jul 2002 23:53:32 -0400 |
Organization: | Compilers Central |
References: | 02-06-077 |
Keywords: | parse |
Posted-Date: | 15 Jul 2002 23:53:32 EDT |
On Sat, 29 Jun 2002 00:11:25 +0200, Randy Beckwith wrote:
> I'm trying to write a simple grammar that will eventually be used with
> Bison but have run into a snag. Basically, I'm trying to get at a list
> of rules:
>
> rules_list := rule | rule rules_list
>
> That's the easy part. <g> Now a rule can be based on CallerID, CalledID,
> Date or ExcludeDate. There can be 0 or 1 CallerID, 0 or 1 CalledID, 0 or
> more Date and 0 or more ExcludeDate. I can do the the "0 or 1's" and the
> "0 or more's" but can't figure out how to get them all together.
>
> As an example, you could have rule matches on:
>
> CallerID
> CalledID
> CallerID AND CalledID
> CallerID AND CalledID AND Date
> Date
> Date AND Date
> CallerID AND Date
> CalledID AND Date AND ExcludeDate AND ExcludeDate
>
Ok,I think that the following grammar should work and is short (but the
bad thing is that is accept the empty grammar):
rule ::= opt_caller opt_called opt_dates
opt_caller ::= /* empty */
| caller
opt_called ::= /* empty */
| called
opt_dates ::= /* empty */
| dates
dates ::= date
| dates date
Return to the
comp.compilers page.
Search the
comp.compilers archives again.