Related articles |
---|
BNF DEFINITION - help! banks@iowasp.physics.uiowa.edu (1994-09-11) |
Re: BNF DEFINITION - help! eanders+@CMU.EDU (Eric A. Anderson) (1994-09-12) |
Re: BNF DEFINITION - help! ellard@bbn.com (1994-09-17) |
Re: BNF DEFINITION - help! godau@dec2.wi-inf.uni-essen.de (H.-Juergen Godau) (1994-09-18) |
Re: BNF DEFINITION - help! mab@dst17.wdl.loral.com (1994-09-20) |
Newsgroups: | comp.compilers |
From: | "Eric A. Anderson" <eanders+@CMU.EDU> |
Keywords: | parse |
Organization: | Carnegie Mellon, Pittsburgh, PA |
References: | 94-09-024 |
Date: | Mon, 12 Sep 1994 19:34:35 GMT |
[question was to show BNF for odd length strings over {a,b} with the
first and middle tokens the same]
I believe this will work; I hope the question was already due.
Amid -> a | a Amid a | a Amid b | b Amid a | b Amid b
Bmid -> b | a Bmid a | a Bmid b | b Bmid a | b Bmid b
These two generate all odd length strings with either a or b in the middle
Agood -> a Amid a | a Amid b | a
Bgood -> b Bmid a | b Bmid b | b
These two take the previous two productions and guarentee the right
thing is on the front while leaving the end unspecified, they also
handle two special cases.
LANG -> Agood | Bgood
This combines our two pieces together.
--
It seems to me that you should be able to do Amid' and Bmid' so they
generate even length strings with the character you want as the
rightmost of the middle pair. This should eliminate the special case.
However, it didn't occur to me how to do that.
-Eric
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.