Related articles |
---|
Using functional notation to extend BNF zzq@hvc.rr.com (Bill Fenlason) (2007-01-08) |
Re: Using functional notation to extend BNF danwang74@gmail.com (Daniel C. Wang) (2007-01-09) |
Re: Using functional notation to extend BNF roar.foshaug@systor.st (Roar) (2007-01-09) |
Re: Using functional notation to extend BNF RLake@Oxfam.org.uk (2007-01-15) |
From: | RLake@Oxfam.org.uk |
Newsgroups: | comp.compilers |
Date: | 15 Jan 2007 14:06:26 -0500 |
Organization: | Compilers Central |
References: | 07-01-025 |
Keywords: | parse, bibliography |
Posted-Date: | 15 Jan 2007 14:06:26 EST |
Bill Fenlason writes:
> For example, things like:
> oneOrMore(1) ::= 1 | oneOrMore(1) 1 ;
> optional(1) ::= | 1 ;
> inParens(1) ::= "(" 1 ")" ;
> commaList(1) ::= 1 | commaList(1) "," 1 ;
> separatedList(1,2) ::= 1 | separatedList(1,2) 2 1 ;
By an extraordinary coincidence, I was just reading this paper when your
email dropped into my mailbox:
http://www.cs.lth.se/Research/LDTA2004/d09_TheimannNeubauer.pdf
"Parameterized LR Parsing" by Peter Thiemann and Matthias Neubauer
The examples therein are quite similar:
SepList (Sep, Item) : /* empty */
| NESepList (Sep, Item) ;
NESepList (Sep, Item) : Item
| NESepList (Sep, Item) Sep Item ;
List (Item) : /* empty */
| NEList (Item) ;
NEList (Item) : Item
| NEList (Item) Item ;
Option (Item) : /* empty */
| Item ;
Return to the
comp.compilers page.
Search the
comp.compilers archives again.