Related articles |
---|
perl regular expression grammar alan@oursland.net (2001-07-17) |
Re: perl regular expression grammar merlyn@stonehenge.com (2001-07-18) |
Re: perl regular expression grammar ralph@inputplus.demon.co.uk (2001-07-18) |
Re: perl regular expression grammar johnmillaway@yahoo.com (John W. Millaway) (2001-07-18) |
Re: perl regular expression grammar mjd@plover.com (2001-07-18) |
Re: perl regular expression grammar abigail@foad.org (2001-07-18) |
Re: perl regular expression grammar alan@oursland.net (2001-07-23) |
Re: perl regular expression grammar usenet11522@itz.pp.sci.fi (Ilmari Karonen) (2001-07-23) |
Re: perl regular expression grammar mjd@plover.com (2001-08-02) |
From: | Ilmari Karonen <usenet11522@itz.pp.sci.fi> |
Newsgroups: | comp.lang.perl.misc,comp.compilers |
Date: | 23 Jul 2001 02:23:47 -0400 |
Organization: | (dis)Order of the Holy Spoon (or whatever) |
References: | 01-07-080 |
Keywords: | parse |
Posted-Date: | 23 Jul 2001 02:23:46 EDT |
Alan Oursland wrote:
>
>Here is the grammar:
Here are some comments:
><term> ::= "." | "$" | "^" | <char> | <set>
The "$" is handled as a special case by the regex parser. It's a tail
anchor only when followed by "(", ")", "|", the end of the regex, or a
whitespace character. Otherwise it's assumed to start a variable that
should be interpolated.
I may be remembering the exact dirty details wrong. I suggest you see
the code in toke.c -- look for the string "tail anchor", and note that
as far as I can remember the code and the comments disagree on certain
minor details.
><char> ::= <non-meta> | "\"<escaped>
><non-meta> ::= any non-meta char
><escaped> ::= <meta>|<control>|<special>|<assert>
You might want to take advantage of the fact that "\" followed by any
non-word character always represents that literal character. This is
guaranteed, as is the fact that no non-backslashed word character can
ever be a metacharacter. (This is how quotemeta() can work.)
Use the source. It will help you, assuming it won't make you give up
the task in disgust.
--
Ilmari Karonen -- http://www.sci.fi/~iltzu/
Return to the
comp.compilers page.
Search the
comp.compilers archives again.