Related articles |
---|
lex rules brian@NOSPAMibc.com.au (Blake Stone) (2000-11-30) |
Re: lex rules fjh@cs.mu.OZ.AU (2000-12-01) |
Re: lex rules esmond.pitt@bigpond.com (Esmond Pitt) (2000-12-01) |
From: | Esmond Pitt <esmond.pitt@bigpond.com> |
Newsgroups: | comp.compilers |
Date: | 1 Dec 2000 13:36:36 -0500 |
Organization: | Melbourne Software Company Pty Ltd |
References: | 00-11-176 |
Keywords: | lex |
Posted-Date: | 01 Dec 2000 13:36:36 EST |
Are you using lex or flex?
lex has a bug that things inside {} are not treated as single units.
e.g. your {EncName} is not treated as ([A-Za-z][A-Za-z0-9._]*) but as
[A-Za-z][A-Za-z0-9._]*.
This gets tricky if you have constructions like {name}? &c, the ? only
applies to the last part of the thing expanded, not the whole.
This was fixed in flex at my request in about 1991. You should use flex
anyway, it's miles better. If you can't, and if this is your problem,
change all your name definitions to be inside brackets, e.g.
ws ([ \t\r\n]+)
Esmond Pitt
[This turned out indeed to be the problem - private communication with
original poster - EJP.]
Return to the
comp.compilers page.
Search the
comp.compilers archives again.