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: | "Blake Stone" <brian@NOSPAMibc.com.au> |
Newsgroups: | comp.compilers |
Date: | 30 Nov 2000 13:46:27 -0500 |
Organization: | Customer of Telstra Big Pond Direct |
Keywords: | lex, question |
Posted-Date: | 30 Nov 2000 13:46:27 EST |
Hi All,
Sorry if this isn't the right place. Are there any lex/yacc specific
forums?
I have some lex code below:
ws [ \t\r\n]+
eq {ws}?"="{ws}?
dq "\""
sq "'"
VersionNum [a-zA-Z0-9_.:]+
EncName [A-Za-z][A-Za-z0-9._]*
VersionInfo {ws}"version"{eq}({dq}|{sq}){VersionNum}({dq}|{sq})
EncodingDecl {ws}"encoding"{eq}({dq}|{sq}){EncName}({dq}|{sq})
StandaloneDecl {ws}"standalone"{eq}({dq}|{sq})("yes"|"no")({dq}|{sq})
XmlDecl "<?xml"{VersionInfo}{EncodingDecl}?{StandaloneDecl}?{ws}?"?>"
%%
{XmlDecl} { return XMLDECL; }
Note that the EncodingDecl and StandaloneDecl should be optional. Yet, when
I have
<?xml version="1.0" ?> as input it does not match {XmlDecl}. If I
remove{EncodingDecl} and {StandaloneDecl} then it works fine (or if I expand
the input to use them). Why is this and how do I fix it?
Cheers,
Blake
[I think I've seen bugs before in nested named patterns. -John]
Return to the
comp.compilers page.
Search the
comp.compilers archives again.